From 42527fd749e6afd1bfdf8f37645e7d3b101a393b Mon Sep 17 00:00:00 2001 From: "Jeffrey C. Ollie" <jeff@ocjtech.us> Date: Mon, 5 Dec 2011 16:00:40 -0600 Subject: [PATCH 1/2] get rid of vendor libraries --- Rakefile | 2 +- lib/mcollective.rb | 3 - lib/mcollective/vendor.rb | 41 - lib/mcollective/vendor/json/.gitignore | 6 - lib/mcollective/vendor/json/CHANGES | 188 - lib/mcollective/vendor/json/COPYING | 58 - lib/mcollective/vendor/json/COPYING-json-jruby | 57 - lib/mcollective/vendor/json/GPL | 340 -- lib/mcollective/vendor/json/README | 356 -- .../vendor/json/README-json-jruby.markdown | 33 - lib/mcollective/vendor/json/Rakefile | 401 -- lib/mcollective/vendor/json/TODO | 1 - lib/mcollective/vendor/json/VERSION | 1 - .../GeneratorBenchmarkComparison.log | 52 - ...BenchmarkExt#generator_fast-autocorrelation.dat | 1000 ----- .../GeneratorBenchmarkExt#generator_fast.dat | 1001 ----- ...nchmarkExt#generator_pretty-autocorrelation.dat | 900 ----- .../GeneratorBenchmarkExt#generator_pretty.dat | 901 ----- ...BenchmarkExt#generator_safe-autocorrelation.dat | 1000 ----- .../GeneratorBenchmarkExt#generator_safe.dat | 1001 ----- .../data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log | 261 -- ...enchmarkPure#generator_fast-autocorrelation.dat | 1000 ----- .../GeneratorBenchmarkPure#generator_fast.dat | 1001 ----- ...chmarkPure#generator_pretty-autocorrelation.dat | 1000 ----- .../GeneratorBenchmarkPure#generator_pretty.dat | 1001 ----- ...enchmarkPure#generator_safe-autocorrelation.dat | 1000 ----- .../GeneratorBenchmarkPure#generator_safe.dat | 1001 ----- .../data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log | 262 -- ...torBenchmarkRails#generator-autocorrelation.dat | 1000 ----- .../GeneratorBenchmarkRails#generator.dat | 1001 ----- .../GeneratorBenchmarkRails.log | 82 - .../ParserBenchmarkComparison.log | 34 - .../ParserBenchmarkExt#parser-autocorrelation.dat | 900 ----- .../ParserBenchmarkExt#parser.dat | 901 ----- .../data-p4-3GHz-ruby18/ParserBenchmarkExt.log | 81 - .../ParserBenchmarkPure#parser-autocorrelation.dat | 1000 ----- .../ParserBenchmarkPure#parser.dat | 1001 ----- .../data-p4-3GHz-ruby18/ParserBenchmarkPure.log | 82 - ...ParserBenchmarkRails#parser-autocorrelation.dat | 1000 ----- .../ParserBenchmarkRails#parser.dat | 1001 ----- .../data-p4-3GHz-ruby18/ParserBenchmarkRails.log | 82 - .../ParserBenchmarkYAML#parser-autocorrelation.dat | 1000 ----- .../ParserBenchmarkYAML#parser.dat | 1001 ----- .../data-p4-3GHz-ruby18/ParserBenchmarkYAML.log | 82 - .../vendor/json/benchmarks/generator2_benchmark.rb | 222 -- .../vendor/json/benchmarks/generator_benchmark.rb | 224 -- lib/mcollective/vendor/json/benchmarks/ohai.json | 1216 ------ lib/mcollective/vendor/json/benchmarks/ohai.ruby | 1 - .../vendor/json/benchmarks/parser2_benchmark.rb | 251 -- .../vendor/json/benchmarks/parser_benchmark.rb | 259 -- lib/mcollective/vendor/json/bin/edit_json.rb | 9 - lib/mcollective/vendor/json/bin/prettify_json.rb | 75 - lib/mcollective/vendor/json/data/example.json | 1 - lib/mcollective/vendor/json/data/index.html | 38 - lib/mcollective/vendor/json/data/prototype.js | 4184 -------------------- .../vendor/json/ext/json/ext/generator/extconf.rb | 20 - .../vendor/json/ext/json/ext/generator/generator.c | 1417 ------- .../vendor/json/ext/json/ext/generator/generator.h | 197 - .../vendor/json/ext/json/ext/parser/extconf.rb | 16 - .../vendor/json/ext/json/ext/parser/parser.c | 1969 --------- .../vendor/json/ext/json/ext/parser/parser.h | 78 - .../vendor/json/ext/json/ext/parser/parser.rl | 826 ---- lib/mcollective/vendor/json/install.rb | 26 - .../vendor/json/java/lib/bytelist-1.0.6.jar | Bin 10493 -> 0 bytes lib/mcollective/vendor/json/java/lib/jcodings.jar | Bin 242327 -> 0 bytes .../json/java/src/json/ext/ByteListTranscoder.java | 167 - .../vendor/json/java/src/json/ext/Generator.java | 441 -- .../json/java/src/json/ext/GeneratorMethods.java | 231 -- .../json/java/src/json/ext/GeneratorService.java | 42 - .../json/java/src/json/ext/GeneratorState.java | 473 --- .../json/java/src/json/ext/OptionsReader.java | 119 - .../vendor/json/java/src/json/ext/Parser.java | 2295 ----------- .../vendor/json/java/src/json/ext/Parser.rl | 825 ---- .../json/java/src/json/ext/ParserService.java | 34 - .../vendor/json/java/src/json/ext/RuntimeInfo.java | 119 - .../json/java/src/json/ext/StringDecoder.java | 166 - .../json/java/src/json/ext/StringEncoder.java | 106 - .../vendor/json/java/src/json/ext/Utils.java | 89 - lib/mcollective/vendor/json/json-java.gemspec | 20 - lib/mcollective/vendor/json/lib/json.rb | 10 - lib/mcollective/vendor/json/lib/json/Array.xpm | 21 - .../vendor/json/lib/json/FalseClass.xpm | 21 - lib/mcollective/vendor/json/lib/json/Hash.xpm | 21 - lib/mcollective/vendor/json/lib/json/Key.xpm | 73 - lib/mcollective/vendor/json/lib/json/NilClass.xpm | 21 - lib/mcollective/vendor/json/lib/json/Numeric.xpm | 28 - lib/mcollective/vendor/json/lib/json/String.xpm | 96 - lib/mcollective/vendor/json/lib/json/TrueClass.xpm | 21 - lib/mcollective/vendor/json/lib/json/add/core.rb | 147 - lib/mcollective/vendor/json/lib/json/add/rails.rb | 8 - lib/mcollective/vendor/json/lib/json/common.rb | 419 -- lib/mcollective/vendor/json/lib/json/editor.rb | 1369 ------- lib/mcollective/vendor/json/lib/json/ext.rb | 28 - lib/mcollective/vendor/json/lib/json/json.xpm | 1499 ------- lib/mcollective/vendor/json/lib/json/pure.rb | 15 - .../vendor/json/lib/json/pure/generator.rb | 441 -- .../vendor/json/lib/json/pure/parser.rb | 320 -- lib/mcollective/vendor/json/lib/json/version.rb | 8 - .../vendor/json/tests/fixtures/fail1.json | 1 - .../vendor/json/tests/fixtures/fail10.json | 1 - .../vendor/json/tests/fixtures/fail11.json | 1 - .../vendor/json/tests/fixtures/fail12.json | 1 - .../vendor/json/tests/fixtures/fail13.json | 1 - .../vendor/json/tests/fixtures/fail14.json | 1 - .../vendor/json/tests/fixtures/fail18.json | 1 - .../vendor/json/tests/fixtures/fail19.json | 1 - .../vendor/json/tests/fixtures/fail2.json | 1 - .../vendor/json/tests/fixtures/fail20.json | 1 - .../vendor/json/tests/fixtures/fail21.json | 1 - .../vendor/json/tests/fixtures/fail22.json | 1 - .../vendor/json/tests/fixtures/fail23.json | 1 - .../vendor/json/tests/fixtures/fail24.json | 1 - .../vendor/json/tests/fixtures/fail25.json | 1 - .../vendor/json/tests/fixtures/fail27.json | 2 - .../vendor/json/tests/fixtures/fail28.json | 2 - .../vendor/json/tests/fixtures/fail3.json | 1 - .../vendor/json/tests/fixtures/fail4.json | 1 - .../vendor/json/tests/fixtures/fail5.json | 1 - .../vendor/json/tests/fixtures/fail6.json | 1 - .../vendor/json/tests/fixtures/fail7.json | 1 - .../vendor/json/tests/fixtures/fail8.json | 1 - .../vendor/json/tests/fixtures/fail9.json | 1 - .../vendor/json/tests/fixtures/pass1.json | 56 - .../vendor/json/tests/fixtures/pass15.json | 1 - .../vendor/json/tests/fixtures/pass16.json | 1 - .../vendor/json/tests/fixtures/pass17.json | 1 - .../vendor/json/tests/fixtures/pass2.json | 1 - .../vendor/json/tests/fixtures/pass26.json | 1 - .../vendor/json/tests/fixtures/pass3.json | 6 - lib/mcollective/vendor/json/tests/setup_variant.rb | 11 - lib/mcollective/vendor/json/tests/test_json.rb | 390 -- .../vendor/json/tests/test_json_addition.rb | 167 - .../vendor/json/tests/test_json_encoding.rb | 65 - .../vendor/json/tests/test_json_fixtures.rb | 35 - .../vendor/json/tests/test_json_generate.rb | 179 - .../vendor/json/tests/test_json_string_matching.rb | 40 - .../vendor/json/tests/test_json_unicode.rb | 72 - lib/mcollective/vendor/json/tools/fuzz.rb | 139 - lib/mcollective/vendor/json/tools/server.rb | 61 - lib/mcollective/vendor/load_json.rb | 1 - lib/mcollective/vendor/load_systemu.rb | 1 - lib/mcollective/vendor/require_vendored.rb | 2 - lib/mcollective/vendor/systemu/LICENSE | 3 - lib/mcollective/vendor/systemu/README | 169 - lib/mcollective/vendor/systemu/README.erb | 37 - lib/mcollective/vendor/systemu/Rakefile | 364 -- lib/mcollective/vendor/systemu/lib/systemu.rb | 357 -- lib/mcollective/vendor/systemu/samples/a.rb | 11 - lib/mcollective/vendor/systemu/samples/b.rb | 12 - lib/mcollective/vendor/systemu/samples/c.rb | 10 - lib/mcollective/vendor/systemu/samples/d.rb | 11 - lib/mcollective/vendor/systemu/samples/e.rb | 9 - lib/mcollective/vendor/systemu/samples/f.rb | 18 - lib/mcollective/vendor/systemu/systemu.gemspec | 27 - spec/unit/vendor_spec.rb | 34 - 155 files changed, 1 insertions(+), 47155 deletions(-) delete mode 100644 lib/mcollective/vendor.rb delete mode 100644 lib/mcollective/vendor/json/.gitignore delete mode 100644 lib/mcollective/vendor/json/CHANGES delete mode 100644 lib/mcollective/vendor/json/COPYING delete mode 100644 lib/mcollective/vendor/json/COPYING-json-jruby delete mode 100644 lib/mcollective/vendor/json/GPL delete mode 100644 lib/mcollective/vendor/json/README delete mode 100644 lib/mcollective/vendor/json/README-json-jruby.markdown delete mode 100644 lib/mcollective/vendor/json/Rakefile delete mode 100644 lib/mcollective/vendor/json/TODO delete mode 100644 lib/mcollective/vendor/json/VERSION delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/.keep delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat delete mode 100644 lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log delete mode 100644 lib/mcollective/vendor/json/benchmarks/data/.keep delete mode 100755 lib/mcollective/vendor/json/benchmarks/generator2_benchmark.rb delete mode 100755 lib/mcollective/vendor/json/benchmarks/generator_benchmark.rb delete mode 100644 lib/mcollective/vendor/json/benchmarks/ohai.json delete mode 100644 lib/mcollective/vendor/json/benchmarks/ohai.ruby delete mode 100755 lib/mcollective/vendor/json/benchmarks/parser2_benchmark.rb delete mode 100755 lib/mcollective/vendor/json/benchmarks/parser_benchmark.rb delete mode 100755 lib/mcollective/vendor/json/bin/edit_json.rb delete mode 100755 lib/mcollective/vendor/json/bin/prettify_json.rb delete mode 100644 lib/mcollective/vendor/json/data/example.json delete mode 100644 lib/mcollective/vendor/json/data/index.html delete mode 100644 lib/mcollective/vendor/json/data/prototype.js delete mode 100644 lib/mcollective/vendor/json/diagrams/.keep delete mode 100644 lib/mcollective/vendor/json/ext/json/ext/generator/extconf.rb delete mode 100644 lib/mcollective/vendor/json/ext/json/ext/generator/generator.c delete mode 100644 lib/mcollective/vendor/json/ext/json/ext/generator/generator.h delete mode 100644 lib/mcollective/vendor/json/ext/json/ext/parser/extconf.rb delete mode 100644 lib/mcollective/vendor/json/ext/json/ext/parser/parser.c delete mode 100644 lib/mcollective/vendor/json/ext/json/ext/parser/parser.h delete mode 100644 lib/mcollective/vendor/json/ext/json/ext/parser/parser.rl delete mode 100755 lib/mcollective/vendor/json/install.rb delete mode 100644 lib/mcollective/vendor/json/java/lib/bytelist-1.0.6.jar delete mode 100644 lib/mcollective/vendor/json/java/lib/jcodings.jar delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/ByteListTranscoder.java delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/Generator.java delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/GeneratorMethods.java delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/GeneratorService.java delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/GeneratorState.java delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/OptionsReader.java delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/Parser.java delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/Parser.rl delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/ParserService.java delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/RuntimeInfo.java delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/StringDecoder.java delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/StringEncoder.java delete mode 100644 lib/mcollective/vendor/json/java/src/json/ext/Utils.java delete mode 100644 lib/mcollective/vendor/json/json-java.gemspec delete mode 100644 lib/mcollective/vendor/json/lib/json.rb delete mode 100644 lib/mcollective/vendor/json/lib/json/Array.xpm delete mode 100644 lib/mcollective/vendor/json/lib/json/FalseClass.xpm delete mode 100644 lib/mcollective/vendor/json/lib/json/Hash.xpm delete mode 100644 lib/mcollective/vendor/json/lib/json/Key.xpm delete mode 100644 lib/mcollective/vendor/json/lib/json/NilClass.xpm delete mode 100644 lib/mcollective/vendor/json/lib/json/Numeric.xpm delete mode 100644 lib/mcollective/vendor/json/lib/json/String.xpm delete mode 100644 lib/mcollective/vendor/json/lib/json/TrueClass.xpm delete mode 100644 lib/mcollective/vendor/json/lib/json/add/core.rb delete mode 100644 lib/mcollective/vendor/json/lib/json/add/rails.rb delete mode 100644 lib/mcollective/vendor/json/lib/json/common.rb delete mode 100644 lib/mcollective/vendor/json/lib/json/editor.rb delete mode 100644 lib/mcollective/vendor/json/lib/json/ext.rb delete mode 100644 lib/mcollective/vendor/json/lib/json/ext/.keep delete mode 100644 lib/mcollective/vendor/json/lib/json/json.xpm delete mode 100644 lib/mcollective/vendor/json/lib/json/pure.rb delete mode 100644 lib/mcollective/vendor/json/lib/json/pure/generator.rb delete mode 100644 lib/mcollective/vendor/json/lib/json/pure/parser.rb delete mode 100644 lib/mcollective/vendor/json/lib/json/version.rb delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail1.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail10.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail11.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail12.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail13.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail14.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail18.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail19.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail2.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail20.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail21.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail22.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail23.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail24.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail25.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail27.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail28.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail3.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail4.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail5.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail6.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail7.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail8.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/fail9.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/pass1.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/pass15.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/pass16.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/pass17.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/pass2.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/pass26.json delete mode 100644 lib/mcollective/vendor/json/tests/fixtures/pass3.json delete mode 100644 lib/mcollective/vendor/json/tests/setup_variant.rb delete mode 100755 lib/mcollective/vendor/json/tests/test_json.rb delete mode 100755 lib/mcollective/vendor/json/tests/test_json_addition.rb delete mode 100644 lib/mcollective/vendor/json/tests/test_json_encoding.rb delete mode 100755 lib/mcollective/vendor/json/tests/test_json_fixtures.rb delete mode 100755 lib/mcollective/vendor/json/tests/test_json_generate.rb delete mode 100644 lib/mcollective/vendor/json/tests/test_json_string_matching.rb delete mode 100755 lib/mcollective/vendor/json/tests/test_json_unicode.rb delete mode 100755 lib/mcollective/vendor/json/tools/fuzz.rb delete mode 100755 lib/mcollective/vendor/json/tools/server.rb delete mode 100644 lib/mcollective/vendor/load_json.rb delete mode 100644 lib/mcollective/vendor/load_systemu.rb delete mode 100644 lib/mcollective/vendor/require_vendored.rb delete mode 100644 lib/mcollective/vendor/systemu/LICENSE delete mode 100644 lib/mcollective/vendor/systemu/README delete mode 100644 lib/mcollective/vendor/systemu/README.erb delete mode 100644 lib/mcollective/vendor/systemu/Rakefile delete mode 100644 lib/mcollective/vendor/systemu/lib/systemu.rb delete mode 100644 lib/mcollective/vendor/systemu/samples/a.rb delete mode 100644 lib/mcollective/vendor/systemu/samples/b.rb delete mode 100644 lib/mcollective/vendor/systemu/samples/c.rb delete mode 100644 lib/mcollective/vendor/systemu/samples/d.rb delete mode 100644 lib/mcollective/vendor/systemu/samples/e.rb delete mode 100644 lib/mcollective/vendor/systemu/samples/f.rb delete mode 100644 lib/mcollective/vendor/systemu/systemu.gemspec delete mode 100644 spec/unit/vendor_spec.rb diff --git a/lib/mcollective.rb b/lib/mcollective.rb index 3fc5a16..28151ad 100644 --- a/lib/mcollective.rb +++ b/lib/mcollective.rb @@ -52,11 +52,8 @@ module MCollective autoload :SSL, "mcollective/ssl" autoload :Application, "mcollective/application" autoload :Applications, "mcollective/applications" - autoload :Vendor, "mcollective/vendor" autoload :Shell, "mcollective/shell" - MCollective::Vendor.load_vendored - VERSION="1.3.1" def self.version diff --git a/lib/mcollective/vendor.rb b/lib/mcollective/vendor.rb deleted file mode 100644 index 2620648..0000000 --- a/lib/mcollective/vendor.rb +++ /dev/null @@ -1,41 +0,0 @@ -module MCollective - # Simple module to manage vendored code. - # - # To vendor a library simply download its whole git repo or untar - # into vendor/libraryname and create a load_libraryname.rb file - # to add its libdir into the $:. - # - # Once you have that file, add a require line in vendor/require_vendored.rb - # which will run after all the load_* files. - # - # The intention is to not change vendored libraries and to eventually - # make adding them in optional so that distros can simply adjust their - # packaging to exclude this directory and the various load_xxx.rb scripts - # if they wish to install these gems as native packages. - class Vendor - class << self - def vendor_dir - File.join([File.dirname(File.expand_path(__FILE__)), "vendor"]) - end - - def load_entry(entry) - Log.debug("Loading vendored #{$1}") - load "#{vendor_dir}/#{entry}" - end - - def require_libs - require 'mcollective/vendor/require_vendored' - end - - def load_vendored - Dir.entries(vendor_dir).each do |entry| - if entry.match(/load_(\w+?)\.rb$/) - load_entry entry - end - end - - require_libs - end - end - end -end diff --git a/lib/mcollective/vendor/json/.gitignore b/lib/mcollective/vendor/json/.gitignore deleted file mode 100644 index 694ff3a..0000000 --- a/lib/mcollective/vendor/json/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.*.sw[pon] -coverage -pkg -.nfs.* -.idea -java/Json.iml diff --git a/lib/mcollective/vendor/json/CHANGES b/lib/mcollective/vendor/json/CHANGES deleted file mode 100644 index 3ee1a8b..0000000 --- a/lib/mcollective/vendor/json/CHANGES +++ /dev/null @@ -1,188 +0,0 @@ -2011-01-24 (1.5.1) - * Made rake-compiler build a fat binary gem. This should fix issue - https://github.com/flori/json/issues#issue/54. -2011-01-22 (1.5.0) - * Included Java source codes for the Jruby extension made by Daniel Luz - <dev@mernen.com>. - * Output full exception message of deep_const_get to aid debugging. - * Fixed an issue with ruby 1.9 Module#const_defined? method, that was - reported by Riley Goodside. -2010-08-09 (1.4.6) - * Fixed oversight reported in http://github.com/flori/json/issues/closed#issue/23, - always create a new object from the state prototype. - * Made pure and ext api more similar again. -2010-08-07 (1.4.5) - * Manage data structure nesting depth in state object during generation. This - should reduce problems with to_json method definіtions that only have one - argument. - * Some fixes in the state objects and additional tests. -2010-08-06 (1.4.4) - * Fixes build problem for rubinius under OS X, http://github.com/flori/json/issues/closed#issue/25 - * Fixes crashes described in http://github.com/flori/json/issues/closed#issue/21 and - http://github.com/flori/json/issues/closed#issue/23 -2010-05-05 (1.4.3) - * Fixed some test assertions, from Ruby r27587 and r27590, patch by nobu. - * Fixed issue http://github.com/flori/json/issues/#issue/20 reported by - electronicwhisper@github. Thx! -2010-04-26 (1.4.2) - * Applied patch from naruse Yui NARUSE <naruse@airemix.com> to make building with - Microsoft Visual C possible again. - * Applied patch from devrandom <c1.github@niftybox.net> in order to allow building of - json_pure if extensiontask is not present. - * Thanks to Dustin Schneider <dustin@stocktwits.com>, who reported a memory - leak, which is fixed in this release. - * Applied 993f261ccb8f911d2ae57e9db48ec7acd0187283 patch from josh@github. -2010-04-25 (1.4.1) - * Fix for a bug reported by Dan DeLeo <dan@kallistec.com>, caused by T_FIXNUM - being different on 32bit/64bit architectures. -2010-04-23 (1.4.0) - * Major speed improvements and building with simplified - directory/file-structure. - * Extension should at least be comapatible with MRI, YARV and Rubinius. -2010-04-07 (1.2.4) - * Triger const_missing callback to make Rails' dynamic class loading work. -2010-03-11 (1.2.3) - * Added a State#[] method which returns an attribute's value in order to - increase duck type compatibility to Hash. -2010-02-27 (1.2.2) - * Made some changes to make the building of the parser/generator compatible - to Rubinius. -2009-11-25 (1.2.1) - * Added :symbolize_names option to Parser, which returns symbols instead of - strings in object names/keys. -2009-10-01 (1.2.0) - * fast_generate now raises an exeception for nan and infinite floats. - * On Ruby 1.8 json supports parsing of UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, - and UTF-32LE JSON documents now. Under Ruby 1.9 the M17n conversion - functions are used to convert from all supported encodings. ASCII-8BIT - encoded strings are handled like all strings under Ruby 1.8 were. - * Better documentation -2009-08-23 (1.1.9) - * Added forgotten main doc file extra_rdoc_files. -2009-08-23 (1.1.8) - * Applied a patch by OZAWA Sakuro <sakuro@2238club.org> to make json/pure - work in environments that don't provide iconv. - * Applied patch by okkez_ in order to fix Ruby Bug #1768: - http://redmine.ruby-lang.org/issues/show/1768. - * Finally got around to avoid the rather paranoid escaping of ?/ characters - in the generator's output. The parsers aren't affected by this change. - Thanks to Rich Apodaca <rapodaca@metamolecular.com> for the suggestion. -2009-06-29 (1.1.7) - * Security Fix for JSON::Pure::Parser. A specially designed string could - cause catastrophic backtracking in one of the parser's regular expressions - in earlier 1.1.x versions. JSON::Ext::Parser isn't affected by this issue. - Thanks to Bartosz Blimke <bartosz@new-bamboo.co.uk> for reporting this - problem. - * This release also uses a less strict ruby version requirement for the - creation of the mswin32 native gem. -2009-05-10 (1.1.6) - * No changes. І tested native linux gems in the last release and they don't - play well with different ruby versions other than the one the gem was built - with. This release is just to bump the version number in order to skip the - native gem on rubyforge. -2009-05-10 (1.1.5) - * Started to build gems with rake-compiler gem. - * Applied patch object/array class patch from Brian Candler - <B.Candler@pobox.com> and fixes. -2009-04-01 (1.1.4) - * Fixed a bug in the creation of serialized generic rails objects reported by - Friedrich Graeter <graeter@hydrixos.org>. - * Deleted tests/runner.rb, we're using testrb instead. - * Editor supports Infinity in numbers now. - * Made some changes in order to get the library to compile/run under Ruby - 1.9. - * Improved speed of the code path for the fast_generate method in the pure - variant. -2008-07-10 (1.1.3) - * Wesley Beary <monki@geemus.com> reported a bug in json/add/core's DateTime - handling: If the nominator and denominator of the offset were divisible by - each other Ruby's Rational#to_s returns them as an integer not a fraction - with '/'. This caused a ZeroDivisionError during parsing. - * Use Date#start and DateTime#start instead of sg method, while - remaining backwards compatible. - * Supports ragel >= 6.0 now. - * Corrected some tests. - * Some minor changes. -2007-11-27 (1.1.2) - * Remember default dir (last used directory) in editor. - * JSON::Editor.edit method added, the editor can now receive json texts from - the clipboard via C-v. - * Load json texts from an URL pasted via middle button press. - * Added :create_additions option to Parser. This makes it possible to disable - the creation of additions by force, in order to treat json texts as data - while having additions loaded. - * Jacob Maine <jmaine@blurb.com> reported, that JSON(:foo) outputs a JSON - object if the rails addition is enabled, which is wrong. It now outputs a - JSON string "foo" instead, like suggested by Jacob Maine. - * Discovered a bug in the Ruby Bugs Tracker on rubyforge, that was reported - by John Evans lgastako@gmail.com. He could produce a crash in the JSON - generator by returning something other than a String instance from a - to_json method. I now guard against this by doing a rather crude type - check, which raises an exception instead of crashing. -2007-07-06 (1.1.1) - * Yui NARUSE <naruse@airemix.com> sent some patches to fix tests for Ruby - 1.9. I applied them and adapted some of them a bit to run both on 1.8 and - 1.9. - * Introduced a JSON.parse! method without depth checking for people who like - danger. - * Made generate and pretty_generate methods configurable by an options hash. - * Added :allow_nan option to parser and generator in order to handle NaN, - Infinity, and -Infinity correctly - if requested. Floats, which aren't numbers, - aren't valid JSON according to RFC4627, so by default an exception will be - raised if any of these symbols are encountered. Thanks to Andrea Censi - <andrea.censi@dis.uniroma1.it> for his hint about this. - * Fixed some more tests for Ruby 1.9. - * Implemented dump/load interface of Marshal as suggested in ruby-core:11405 - by murphy <murphy@rubychan.de>. - * Implemented the max_nesting feature for generate methods, too. - * Added some implementations for ruby core's custom objects for - serialisation/deserialisation purposes. -2007-05-21 (1.1.0) - * Implemented max_nesting feature for parser to avoid stack overflows for - data from untrusted sources. If you trust the source, you can disable it - with the option max_nesting => false. - * Piers Cawley <pdcawley@bofh.org.uk> reported a bug, that not every - character can be escaped by ?\ as required by RFC4627. There's a - contradiction between David Crockford's JSON checker test vectors (in - tests/fixtures) and RFC4627, though. I decided to stick to the RFC, because - the JSON checker seems to be a bit older than the RFC. - * Extended license to Ruby License, which includes the GPL. - * Added keyboard shortcuts, and 'Open location' menu item to edit_json.rb. -2007-05-09 (1.0.4) - * Applied a patch from Yui NARUSE <naruse@airemix.com> to make JSON compile - under Ruby 1.9. Thank you very much for mailing it to me! - * Made binary variants of JSON fail early, instead of falling back to the - pure version. This should avoid overshadowing of eventual problems while - loading of the binary. -2007-03-24 (1.0.3) - * Improved performance of pure variant a bit. - * The ext variant of this release supports the mswin32 platform. Ugh! -2007-03-24 (1.0.2) - * Ext Parser didn't parse 0e0 correctly into 0.0: Fixed! -2007-03-24 (1.0.1) - * Forgot some object files in the build dir. I really like that - not! -2007-03-24 (1.0.0) - * Added C implementations for the JSON generator and a ragel based JSON - parser in C. - * Much more tests, especially fixtures from json.org. - * Further improved conformance to RFC4627. -2007-02-09 (0.4.3) - * Conform more to RFC4627 for JSON: This means JSON strings - now always must contain exactly one object "{ ... }" or array "[ ... ]" in - order to be parsed without raising an exception. The definition of what - constitutes a whitespace is narrower in JSON than in Ruby ([ \t\r\n]), and - there are differences in floats and integers (no octals or hexadecimals) as - well. - * Added aliases generate and pretty_generate of unparse and pretty_unparse. - * Fixed a test case. - * Catch an Iconv::InvalidEncoding exception, that seems to occur on some Sun - boxes with SunOS 5.8, if iconv doesn't support utf16 conversions. This was - reported by Andrew R Jackson <andrewj@bcm.tmc.edu>, thanks a bunch! -2006-08-25 (0.4.2) - * Fixed a bug in handling solidi (/-characters), that was reported by - Kevin Gilpin <kevin.gilpin@alum.mit.edu>. -2006-02-06 (0.4.1) - * Fixed a bug related to escaping with backslashes. Thanks for the report go - to Florian Munz <surf@theflow.de>. -2005-09-23 (0.4.0) - * Initial Rubyforge Version diff --git a/lib/mcollective/vendor/json/COPYING b/lib/mcollective/vendor/json/COPYING deleted file mode 100644 index c3a2126..0000000 --- a/lib/mcollective/vendor/json/COPYING +++ /dev/null @@ -1,58 +0,0 @@ -Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.co.jp>. -You can redistribute it and/or modify it under either the terms of the GPL -(see GPL file), or the conditions below: - - 1. You may make and give away verbatim copies of the source form of the - software without restriction, provided that you duplicate all of the - original copyright notices and associated disclaimers. - - 2. You may modify your copy of the software in any way, provided that - you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise - make them Freely Available, such as by posting said - modifications to Usenet or an equivalent medium, or by allowing - the author to include your modifications in the software. - - b) use the modified software only within your corporation or - organization. - - c) rename any non-standard executables so the names do not conflict - with standard executables, which must also be provided. - - d) make other distribution arrangements with the author. - - 3. You may distribute the software in object code or executable - form, provided that you do at least ONE of the following: - - a) distribute the executables and library files of the software, - together with instructions (in the manual page or equivalent) - on where to get the original distribution. - - b) accompany the distribution with the machine-readable source of - the software. - - c) give non-standard executables non-standard names, with - instructions on where to get the original software distribution. - - d) make other distribution arrangements with the author. - - 4. You may modify and include the part of the software into any other - software (possibly commercial). But some files in the distribution - are not written by the author, so that they are not under this terms. - - They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some - files under the ./missing directory. See each file for the copying - condition. - - 5. The scripts and library files supplied as input to or produced as - output from the software do not automatically fall under the - copyright of the software, but belong to whomever generated them, - and may be sold commercially, and may be aggregated with this - software. - - 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. - diff --git a/lib/mcollective/vendor/json/COPYING-json-jruby b/lib/mcollective/vendor/json/COPYING-json-jruby deleted file mode 100644 index 137a3da..0000000 --- a/lib/mcollective/vendor/json/COPYING-json-jruby +++ /dev/null @@ -1,57 +0,0 @@ -JSON-JRuby is copyrighted free software by Daniel Luz <mernen at gmail dot com>, -and is a derivative work of Florian Frank's json library <flori at ping dot de>. -You can redistribute it and/or modify it under either the terms of the GPL -version 2 (see the file GPL), or the conditions below: - - 1. You may make and give away verbatim copies of the source form of the - software without restriction, provided that you duplicate all of the - original copyright notices and associated disclaimers. - - 2. You may modify your copy of the software in any way, provided that - you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise - make them Freely Available, such as by posting said - modifications to Usenet or an equivalent medium, or by allowing - the author to include your modifications in the software. - - b) use the modified software only within your corporation or - organization. - - c) give non-standard binaries non-standard names, with - instructions on where to get the original software distribution. - - d) make other distribution arrangements with the author. - - 3. You may distribute the software in object code or binary form, - provided that you do at least ONE of the following: - - a) distribute the binaries and library files of the software, - together with instructions (in the manual page or equivalent) - on where to get the original distribution. - - b) accompany the distribution with the machine-readable source of - the software. - - c) give non-standard binaries non-standard names, with - instructions on where to get the original software distribution. - - d) make other distribution arrangements with the author. - - 4. You may modify and include the part of the software into any other - software (possibly commercial). But some files in the distribution - are not written by the author, so that they are not under these terms. - - For the list of those files and their copying conditions, see the - file LEGAL. - - 5. The scripts and library files supplied as input to or produced as - output from the software do not automatically fall under the - copyright of the software, but belong to whomever generated them, - and may be sold commercially, and may be aggregated with this - software. - - 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. diff --git a/lib/mcollective/vendor/json/GPL b/lib/mcollective/vendor/json/GPL deleted file mode 100644 index db2fc45..0000000 --- a/lib/mcollective/vendor/json/GPL +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/lib/mcollective/vendor/json/README b/lib/mcollective/vendor/json/README deleted file mode 100644 index 22249ba..0000000 --- a/lib/mcollective/vendor/json/README +++ /dev/null @@ -1,356 +0,0 @@ -== Description - -This is a implementation of the JSON specification according to RFC 4627 -http://www.ietf.org/rfc/rfc4627.txt . Starting from version 1.0.0 on there -will be two variants available: - -* A pure ruby variant, that relies on the iconv and the stringscan - extensions, which are both part of the ruby standard library. -* The quite a bit faster C extension variant, which is in parts implemented - in C and comes with its own unicode conversion functions and a parser - generated by the ragel state machine compiler - http://www.cs.queensu.ca/~thurston/ragel . - -Both variants of the JSON generator generate UTF-8 character sequences by -default. If an :ascii_only option with a true value is given, they escape all -non-ASCII and control characters with \uXXXX escape sequences, and support -UTF-16 surrogate pairs in order to be able to generate the whole range of -unicode code points. - -All strings, that are to be encoded as JSON strings, should be UTF-8 byte -sequences on the Ruby side. To encode raw binary strings, that aren't UTF-8 -encoded, please use the to_json_raw_object method of String (which produces -an object, that contains a byte array) and decode the result on the receiving -endpoint. - -The JSON parsers can parse UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE -JSON documents under Ruby 1.8. Under Ruby 1.9 they take advantage of Ruby's -M17n features and can parse all documents which have the correct -String#encoding set. If a document string has ASCII-8BIT as an encoding the -parser attempts to figure out which of the UTF encodings from above it is and -trys to parse it. - -== Installation - -It's recommended to use the extension variant of JSON, because it's faster than -the pure ruby variant. If you cannot build it on your system, you can settle -for the latter. - -Just type into the command line as root: - - # rake install - -The above command will build the extensions and install them on your system. - - # rake install_pure - -or - - # ruby install.rb - -will just install the pure ruby implementation of JSON. - -If you use Rubygems you can type - - # gem install json - -instead, to install the newest JSON version. - -There is also a pure ruby json only variant of the gem, that can be installed -with: - - # gem install json_pure - -== Compiling the extensions yourself - -If you want to build the extensions yourself you need rake: - - You can get it from rubyforge: - http://rubyforge.org/projects/rake - - or just type - - # gem install rake - - for the installation via rubygems. - -If you want to create the parser.c file from its parser.rl file or draw nice -graphviz images of the state machines, you need ragel from: http://www.cs.queensu.ca/~thurston/ragel - - -== Usage - -To use JSON you can - require 'json' -to load the installed variant (either the extension 'json' or the pure -variant 'json_pure'). If you have installed the extension variant, you can -pick either the extension variant or the pure variant by typing - require 'json/ext' -or - require 'json/pure' - -Now you can parse a JSON document into a ruby data structure by calling - - JSON.parse(document) - -If you want to generate a JSON document from a ruby data structure call - JSON.generate(data) - -You can also use the pretty_generate method (which formats the output more -verbosely and nicely) or fast_generate (which doesn't do any of the security -checks generate performs, e. g. nesting deepness checks). - -To create a valid JSON document you have to make sure, that the output is -embedded in either a JSON array [] or a JSON object {}. The easiest way to do -this, is by putting your values in a Ruby Array or Hash instance. - -There are also the JSON and JSON[] methods which use parse on a String or -generate a JSON document from an array or hash: - - document = JSON 'test' => 23 # => "{\"test\":23}" - document = JSON['test'] => 23 # => "{\"test\":23}" - -and - - data = JSON '{"test":23}' # => {"test"=>23} - data = JSON['{"test":23}'] # => {"test"=>23} - -You can choose to load a set of common additions to ruby core's objects if -you - require 'json/add/core' - -After requiring this you can, e. g., serialise/deserialise Ruby ranges: - - JSON JSON(1..10) # => 1..10 - -To find out how to add JSON support to other or your own classes, read the -section "More Examples" below. - -To get the best compatibility to rails' JSON implementation, you can - require 'json/add/rails' - -Both of the additions attempt to require 'json' (like above) first, if it has -not been required yet. - -== More Examples - -To create a JSON document from a ruby data structure, you can call -JSON.generate like that: - - json = JSON.generate [1, 2, {"a"=>3.141}, false, true, nil, 4..10] - # => "[1,2,{\"a\":3.141},false,true,null,\"4..10\"]" - -To get back a ruby data structure from a JSON document, you have to call -JSON.parse on it: - - JSON.parse json - # => [1, 2, {"a"=>3.141}, false, true, nil, "4..10"] - -Note, that the range from the original data structure is a simple -string now. The reason for this is, that JSON doesn't support ranges -or arbitrary classes. In this case the json library falls back to call -Object#to_json, which is the same as #to_s.to_json. - -It's possible to add JSON support serialization to arbitrary classes by -simply implementing a more specialized version of the #to_json method, that -should return a JSON object (a hash converted to JSON with #to_json) like -this (don't forget the *a for all the arguments): - - class Range - def to_json(*a) - { - 'json_class' => self.class.name, # = 'Range' - 'data' => [ first, last, exclude_end? ] - }.to_json(*a) - end - end - -The hash key 'json_class' is the class, that will be asked to deserialise the -JSON representation later. In this case it's 'Range', but any namespace of -the form 'A::B' or '::A::B' will do. All other keys are arbitrary and can be -used to store the necessary data to configure the object to be deserialised. - -If a the key 'json_class' is found in a JSON object, the JSON parser checks -if the given class responds to the json_create class method. If so, it is -called with the JSON object converted to a Ruby hash. So a range can -be deserialised by implementing Range.json_create like this: - - class Range - def self.json_create(o) - new(*o['data']) - end - end - -Now it possible to serialise/deserialise ranges as well: - - json = JSON.generate [1, 2, {"a"=>3.141}, false, true, nil, 4..10] - # => "[1,2,{\"a\":3.141},false,true,null,{\"json_class\":\"Range\",\"data\":[4,10,false]}]" - JSON.parse json - # => [1, 2, {"a"=>3.141}, false, true, nil, 4..10] - -JSON.generate always creates the shortest possible string representation of a -ruby data structure in one line. This is good for data storage or network -protocols, but not so good for humans to read. Fortunately there's also -JSON.pretty_generate (or JSON.pretty_generate) that creates a more readable -output: - - puts JSON.pretty_generate([1, 2, {"a"=>3.141}, false, true, nil, 4..10]) - [ - 1, - 2, - { - "a": 3.141 - }, - false, - true, - null, - { - "json_class": "Range", - "data": [ - 4, - 10, - false - ] - } - ] - -There are also the methods Kernel#j for generate, and Kernel#jj for -pretty_generate output to the console, that work analogous to Core Ruby's p and -the pp library's pp methods. - -The script tools/server.rb contains a small example if you want to test, how -receiving a JSON object from a webrick server in your browser with the -javasript prototype library http://www.prototypejs.org works. - -== Speed Comparisons - -I have created some benchmark results (see the benchmarks/data-p4-3Ghz -subdir of the package) for the JSON-parser to estimate the speed up in the C -extension: - - Comparing times (call_time_mean): - 1 ParserBenchmarkExt#parser 900 repeats: - 553.922304770 ( real) -> 21.500x - 0.001805307 - 2 ParserBenchmarkYAML#parser 1000 repeats: - 224.513358139 ( real) -> 8.714x - 0.004454078 - 3 ParserBenchmarkPure#parser 1000 repeats: - 26.755020642 ( real) -> 1.038x - 0.037376163 - 4 ParserBenchmarkRails#parser 1000 repeats: - 25.763381731 ( real) -> 1.000x - 0.038814780 - calls/sec ( time) -> speed covers - secs/call - -In the table above 1 is JSON::Ext::Parser, 2 is YAML.load with YAML -compatbile JSON document, 3 is is JSON::Pure::Parser, and 4 is -ActiveSupport::JSON.decode. The ActiveSupport JSON-decoder converts the -input first to YAML and then uses the YAML-parser, the conversion seems to -slow it down so much that it is only as fast as the JSON::Pure::Parser! - -If you look at the benchmark data you can see that this is mostly caused by -the frequent high outliers - the median of the Rails-parser runs is still -overall smaller than the median of the JSON::Pure::Parser runs: - - Comparing times (call_time_median): - 1 ParserBenchmarkExt#parser 900 repeats: - 800.592479481 ( real) -> 26.936x - 0.001249075 - 2 ParserBenchmarkYAML#parser 1000 repeats: - 271.002390644 ( real) -> 9.118x - 0.003690004 - 3 ParserBenchmarkRails#parser 1000 repeats: - 30.227910865 ( real) -> 1.017x - 0.033082008 - 4 ParserBenchmarkPure#parser 1000 repeats: - 29.722384421 ( real) -> 1.000x - 0.033644676 - calls/sec ( time) -> speed covers - secs/call - -I have benchmarked the JSON-Generator as well. This generated a few more -values, because there are different modes that also influence the achieved -speed: - - Comparing times (call_time_mean): - 1 GeneratorBenchmarkExt#generator_fast 1000 repeats: - 547.354332608 ( real) -> 15.090x - 0.001826970 - 2 GeneratorBenchmarkExt#generator_safe 1000 repeats: - 443.968212317 ( real) -> 12.240x - 0.002252414 - 3 GeneratorBenchmarkExt#generator_pretty 900 repeats: - 375.104545883 ( real) -> 10.341x - 0.002665923 - 4 GeneratorBenchmarkPure#generator_fast 1000 repeats: - 49.978706968 ( real) -> 1.378x - 0.020008521 - 5 GeneratorBenchmarkRails#generator 1000 repeats: - 38.531868759 ( real) -> 1.062x - 0.025952543 - 6 GeneratorBenchmarkPure#generator_safe 1000 repeats: - 36.927649925 ( real) -> 1.018x 7 (>=3859) - 0.027079979 - 7 GeneratorBenchmarkPure#generator_pretty 1000 repeats: - 36.272134441 ( real) -> 1.000x 6 (>=3859) - 0.027569373 - calls/sec ( time) -> speed covers - secs/call - -In the table above 1-3 are JSON::Ext::Generator methods. 4, 6, and 7 are -JSON::Pure::Generator methods and 5 is the Rails JSON generator. It is now a -bit faster than the generator_safe and generator_pretty methods of the pure -variant but slower than the others. - -To achieve the fastest JSON document output, you can use the fast_generate -method. Beware, that this will disable the checking for circular Ruby data -structures, which may cause JSON to go into an infinite loop. - -Here are the median comparisons for completeness' sake: - - Comparing times (call_time_median): - 1 GeneratorBenchmarkExt#generator_fast 1000 repeats: - 708.258020939 ( real) -> 16.547x - 0.001411915 - 2 GeneratorBenchmarkExt#generator_safe 1000 repeats: - 569.105020353 ( real) -> 13.296x - 0.001757145 - 3 GeneratorBenchmarkExt#generator_pretty 900 repeats: - 482.825371244 ( real) -> 11.280x - 0.002071142 - 4 GeneratorBenchmarkPure#generator_fast 1000 repeats: - 62.717626652 ( real) -> 1.465x - 0.015944481 - 5 GeneratorBenchmarkRails#generator 1000 repeats: - 43.965681162 ( real) -> 1.027x - 0.022745013 - 6 GeneratorBenchmarkPure#generator_safe 1000 repeats: - 43.929073409 ( real) -> 1.026x 7 (>=3859) - 0.022763968 - 7 GeneratorBenchmarkPure#generator_pretty 1000 repeats: - 42.802514491 ( real) -> 1.000x 6 (>=3859) - 0.023363113 - calls/sec ( time) -> speed covers - secs/call - -== Author - -Florian Frank <mailto:flori@ping.de> - -== License - -Ruby License, see the COPYING file included in the source distribution. The -Ruby License includes the GNU General Public License (GPL), Version 2, so see -the file GPL as well. - -== Download - -The latest version of this library can be downloaded at - -* http://rubyforge.org/frs?group_id=953 - -Online Documentation should be located at - -* http://json.rubyforge.org diff --git a/lib/mcollective/vendor/json/README-json-jruby.markdown b/lib/mcollective/vendor/json/README-json-jruby.markdown deleted file mode 100644 index 1336837..0000000 --- a/lib/mcollective/vendor/json/README-json-jruby.markdown +++ /dev/null @@ -1,33 +0,0 @@ -JSON-JRuby -========== - -JSON-JRuby is a port of Florian Frank's native -[`json` library](http://json.rubyforge.org/) to JRuby. -It aims to be a perfect drop-in replacement for `json_pure`. - - -Development version -=================== - -The latest version is available from the -[Git repository](http://github.com/mernen/json-jruby/tree): - - git clone git://github.com/mernen/json-jruby.git - - -Compiling -========= - -You'll need JRuby version 1.2 or greater to build JSON-JRuby. -Its path must be set on the `jruby.dir` property of -`nbproject/project.properties` (defaults to `../jruby`). - -Additionally, you'll need [Ant](http://ant.apache.org/), and -[Ragel](http://www.cs.queensu.ca/~thurston/ragel/) 6.4 or greater. - -Then, from the folder where the sources are located, type: - - ant clean jar - -to clean any leftovers from previous builds and generate the `.jar` files. -To generate a RubyGem, specify the `gem` action rather than `jar`. diff --git a/lib/mcollective/vendor/json/Rakefile b/lib/mcollective/vendor/json/Rakefile deleted file mode 100644 index 8bbd7d9..0000000 --- a/lib/mcollective/vendor/json/Rakefile +++ /dev/null @@ -1,401 +0,0 @@ -begin - require 'rake/gempackagetask' -rescue LoadError -end - -begin - require 'rake/extensiontask' -rescue LoadError - warn "WARNING: rake-compiler is not installed. You will not be able to build the json gem until you install it." -end - -require 'rbconfig' -include Config - -require 'rake/clean' -CLOBBER.include Dir['benchmarks/data/*.{dat,log}'] -CLEAN.include FileList['diagrams/*.*'], 'doc', 'coverage', 'tmp', - FileList["ext/**/{Makefile,mkmf.log}"], 'build', 'dist', FileList['**/*.rbc'], - FileList["{ext,lib}/**/*.{so,bundle,#{CONFIG['DLEXT']},o,obj,pdb,lib,manifest,exp,def,jar,class}"], - FileList['java/src/**/*.class'] - -MAKE = ENV['MAKE'] || %w[gmake make].find { |c| system(c, '-v') } -PKG_NAME = 'json' -PKG_TITLE = 'JSON Implementation for Ruby' -PKG_VERSION = File.read('VERSION').chomp -PKG_FILES = FileList["**/*"].exclude(/CVS|pkg|tmp|coverage|Makefile|\.nfs\.|\.iml\Z/).exclude(/\.(so|bundle|o|class|#{CONFIG['DLEXT']})$/) - -EXT_ROOT_DIR = 'ext/json/ext' -EXT_PARSER_DIR = "#{EXT_ROOT_DIR}/parser" -EXT_PARSER_DL = "#{EXT_PARSER_DIR}/parser.#{CONFIG['DLEXT']}" -RAGEL_PATH = "#{EXT_PARSER_DIR}/parser.rl" -EXT_PARSER_SRC = "#{EXT_PARSER_DIR}/parser.c" -PKG_FILES << EXT_PARSER_SRC -EXT_GENERATOR_DIR = "#{EXT_ROOT_DIR}/generator" -EXT_GENERATOR_DL = "#{EXT_GENERATOR_DIR}/generator.#{CONFIG['DLEXT']}" -EXT_GENERATOR_SRC = "#{EXT_GENERATOR_DIR}/generator.c" - -JAVA_DIR = "java/src/json/ext" -JAVA_RAGEL_PATH = "#{JAVA_DIR}/Parser.rl" -JAVA_PARSER_SRC = "#{JAVA_DIR}/Parser.java" -JAVA_SOURCES = FileList["#{JAVA_DIR}/*.java"] -JAVA_CLASSES = [] -JRUBY_PARSER_JAR = File.expand_path("lib/json/ext/parser.jar") -JRUBY_GENERATOR_JAR = File.expand_path("lib/json/ext/generator.jar") - -RAGEL_CODEGEN = %w[rlcodegen rlgen-cd ragel].find { |c| system(c, '-v') } -RAGEL_DOTGEN = %w[rlgen-dot rlgen-cd ragel].find { |c| system(c, '-v') } - -def myruby(*args, &block) - @myruby ||= File.join(CONFIG['bindir'], CONFIG['ruby_install_name']) - options = (Hash === args.last) ? args.pop : {} - if args.length > 1 then - sh(*([@myruby] + args + [options]), &block) - else - sh("#{@myruby} #{args.first}", options, &block) - end -end - -desc "Installing library (pure)" -task :install_pure => :version do - myruby 'install.rb' -end - -task :install_ext_really do - sitearchdir = CONFIG["sitearchdir"] - cd 'ext' do - for file in Dir["json/ext/*.#{CONFIG['DLEXT']}"] - d = File.join(sitearchdir, file) - mkdir_p File.dirname(d) - install(file, d) - end - end -end - -desc "Installing library (extension)" -task :install_ext => [ :compile_ext, :install_pure, :install_ext_really ] - -desc "Installing library (extension)" -if RUBY_PLATFORM =~ /java/ - task :install => :install_pure -else - task :install => :install_ext -end - -if defined?(Gem) and defined?(Rake::GemPackageTask) - spec_pure = Gem::Specification.new do |s| - s.name = 'json_pure' - s.version = PKG_VERSION - s.summary = PKG_TITLE - s.description = "This is a JSON implementation in pure Ruby." - - s.files = PKG_FILES - - s.require_path = 'lib' - - s.bindir = "bin" - s.executables = [ "edit_json.rb", "prettify_json.rb" ] - s.default_executable = "edit_json.rb" - - s.has_rdoc = true - s.extra_rdoc_files << 'README' - s.rdoc_options << - '--title' << 'JSON implemention for ruby' << '--main' << 'README' - s.test_files.concat Dir['./tests/test_*.rb'] - - s.author = "Florian Frank" - s.email = "flori@ping.de" - s.homepage = "http://flori.github.com/#{PKG_NAME}" - s.rubyforge_project = "json" - end - - Rake::GemPackageTask.new(spec_pure) do |pkg| - pkg.need_tar = true - pkg.package_files = PKG_FILES - end -end - -if defined?(Gem) and defined?(Rake::GemPackageTask) and defined?(Rake::ExtensionTask) - spec_ext = Gem::Specification.new do |s| - s.name = 'json' - s.version = PKG_VERSION - s.summary = PKG_TITLE - s.description = "This is a JSON implementation as a Ruby extension in C." - - s.files = PKG_FILES - - s.extensions = FileList['ext/**/extconf.rb'] - - s.require_path = EXT_ROOT_DIR - s.require_paths << 'ext' - s.require_paths << 'lib' - - s.bindir = "bin" - s.executables = [ "edit_json.rb", "prettify_json.rb" ] - s.default_executable = "edit_json.rb" - - s.has_rdoc = true - s.extra_rdoc_files << 'README' - s.rdoc_options << - '--title' << 'JSON implemention for Ruby' << '--main' << 'README' - s.test_files.concat Dir['./tests/test_*.rb'] - - s.author = "Florian Frank" - s.email = "flori@ping.de" - s.homepage = "http://flori.github.com/#{PKG_NAME}" - s.rubyforge_project = "json" - end - - Rake::GemPackageTask.new(spec_ext) do |pkg| - pkg.need_tar = true - pkg.package_files = PKG_FILES - end - - Rake::ExtensionTask.new do |ext| - ext.name = 'parser' - ext.gem_spec = spec_ext - ext.cross_compile = true - ext.cross_platform = %w[i386-mswin32 i386-mingw32] - ext.ext_dir = 'ext/json/ext/parser' - ext.lib_dir = 'lib/json/ext' - end - - Rake::ExtensionTask.new do |ext| - ext.name = 'generator' - ext.gem_spec = spec_ext - ext.cross_compile = true - ext.cross_platform = %w[i386-mswin32 i386-mingw32] - ext.ext_dir = 'ext/json/ext/generator' - ext.lib_dir = 'lib/json/ext' - end -end - -desc m = "Writing version information for #{PKG_VERSION}" -task :version do - puts m - File.open(File.join('lib', 'json', 'version.rb'), 'w') do |v| - v.puts <<EOT -module JSON - # JSON version - VERSION = '#{PKG_VERSION}' - VERSION_ARRAY = VERSION.split(/\\./).map { |x| x.to_i } # :nodoc: - VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc: - VERSION_MINOR = VERSION_ARRAY[1] # :nodoc: - VERSION_BUILD = VERSION_ARRAY[2] # :nodoc: -end -EOT - end -end - -desc "Testing library (pure ruby)" -task :test_pure => :clean do - ENV['JSON'] = 'pure' - ENV['RUBYOPT'] = "-Ilib #{ENV['RUBYOPT']}" - myruby '-S', 'testrb', *Dir['./tests/test_*.rb'] -end - -desc "Testing library (pure ruby and extension)" -task :test => [ :test_pure, :test_ext ] - - -if defined?(RUBY_ENGINE) and RUBY_ENGINE == 'jruby' - file JAVA_PARSER_SRC => JAVA_RAGEL_PATH do - cd JAVA_DIR do - if RAGEL_CODEGEN == 'ragel' - sh "ragel Parser.rl -J -o Parser.java" - else - sh "ragel -x Parser.rl | #{RAGEL_CODEGEN} -J" - end - end - end - - desc "Generate parser for java with ragel" - task :ragel => JAVA_PARSER_SRC - - desc "Delete the ragel generated Java source" - task :ragel_clean do - rm_rf JAVA_PARSER_SRC - end - - JRUBY_JAR = File.join(Config::CONFIG["libdir"], "jruby.jar") - if File.exist?(JRUBY_JAR) - JAVA_SOURCES.each do |src| - classpath = (Dir['java/lib/*.jar'] << 'java/src' << JRUBY_JAR) * ':' - obj = src.sub(/\.java\Z/, '.class') - file obj => src do - sh 'javac', '-classpath', classpath, '-source', '1.5', src - end - JAVA_CLASSES << obj - end - else - warn "WARNING: Cannot find jruby in path => Cannot build jruby extension!" - end - - desc "Compiling jruby extension" - task :compile_ext => JAVA_CLASSES - - desc "Package the jruby gem" - task :jruby_gem => :create_jar do - sh 'gem build json-java.gemspec' - mkdir_p 'pkg' - mv "json-#{PKG_VERSION}-java.gem", 'pkg' - end - - desc "Testing library (jruby)" - task :test_ext => :create_jar do - ENV['JSON'] = 'ext' - myruby '-S', 'testrb', '-Ilib', *Dir['./tests/test_*.rb'] - end - - file JRUBY_PARSER_JAR => :compile_ext do - cd 'java/src' do - parser_classes = FileList[ - "json/ext/ByteListTranscoder*.class", - "json/ext/OptionsReader*.class", - "json/ext/Parser*.class", - "json/ext/RuntimeInfo*.class", - "json/ext/StringDecoder*.class", - "json/ext/Utils*.class" - ] - sh 'jar', 'cf', File.basename(JRUBY_PARSER_JAR), *parser_classes - mv File.basename(JRUBY_PARSER_JAR), File.dirname(JRUBY_PARSER_JAR) - end - end - - desc "Create parser jar" - task :create_parser_jar => JRUBY_PARSER_JAR - - file JRUBY_GENERATOR_JAR => :compile_ext do - cd 'java/src' do - generator_classes = FileList[ - "json/ext/ByteListTranscoder*.class", - "json/ext/OptionsReader*.class", - "json/ext/Generator*.class", - "json/ext/RuntimeInfo*.class", - "json/ext/StringEncoder*.class", - "json/ext/Utils*.class" - ] - sh 'jar', 'cf', File.basename(JRUBY_GENERATOR_JAR), *generator_classes - mv File.basename(JRUBY_GENERATOR_JAR), File.dirname(JRUBY_GENERATOR_JAR) - end - end - - desc "Create generator jar" - task :create_generator_jar => JRUBY_GENERATOR_JAR - - desc "Create parser and generator jars" - task :create_jar => [ :create_parser_jar, :create_generator_jar ] - - desc "Build all gems and archives for a new release of the jruby extension." - task :release => [ :clean, :version, :jruby_gem ] -else - desc "Compiling extension" - task :compile_ext => [ EXT_PARSER_DL, EXT_GENERATOR_DL ] - - file EXT_PARSER_DL => EXT_PARSER_SRC do - cd EXT_PARSER_DIR do - myruby 'extconf.rb' - sh MAKE - end - cp "#{EXT_PARSER_DIR}/parser.#{CONFIG['DLEXT']}", EXT_ROOT_DIR - end - - file EXT_GENERATOR_DL => EXT_GENERATOR_SRC do - cd EXT_GENERATOR_DIR do - myruby 'extconf.rb' - sh MAKE - end - cp "#{EXT_GENERATOR_DIR}/generator.#{CONFIG['DLEXT']}", EXT_ROOT_DIR - end - - desc "Testing library (extension)" - task :test_ext => :compile_ext do - ENV['JSON'] = 'ext' - ENV['RUBYOPT'] = "-Iext:lib #{ENV['RUBYOPT']}" - myruby '-S', 'testrb', *Dir['./tests/test_*.rb'] - end - - desc "Benchmarking parser" - task :benchmark_parser do - ENV['RUBYOPT'] = "-Ilib:ext #{ENV['RUBYOPT']}" - myruby 'benchmarks/parser_benchmark.rb' - myruby 'benchmarks/parser2_benchmark.rb' - end - - desc "Benchmarking generator" - task :benchmark_generator do - ENV['RUBYOPT'] = "-Ilib:ext #{ENV['RUBYOPT']}" - myruby 'benchmarks/generator_benchmark.rb' - myruby 'benchmarks/generator2_benchmark.rb' - end - - desc "Benchmarking library" - task :benchmark => [ :benchmark_parser, :benchmark_generator ] - - desc "Create RDOC documentation" - task :doc => [ :version, EXT_PARSER_SRC ] do - sh "sdoc -o doc -t '#{PKG_TITLE}' -m README README lib/json.rb #{FileList['lib/json/**/*.rb']} #{EXT_PARSER_SRC} #{EXT_GENERATOR_SRC}" - end - - desc "Generate parser with ragel" - task :ragel => EXT_PARSER_SRC - - desc "Delete the ragel generated C source" - task :ragel_clean do - rm_rf EXT_PARSER_SRC - end - - file EXT_PARSER_SRC => RAGEL_PATH do - cd EXT_PARSER_DIR do - if RAGEL_CODEGEN == 'ragel' - sh "ragel parser.rl -G2 -o parser.c" - else - sh "ragel -x parser.rl | #{RAGEL_CODEGEN} -G2" - end - end - end - - desc "Generate diagrams of ragel parser (ps)" - task :ragel_dot_ps do - root = 'diagrams' - specs = [] - File.new(RAGEL_PATH).grep(/^\s*machine\s*(\S+);\s*$/) { specs << $1 } - for s in specs - if RAGEL_DOTGEN == 'ragel' - sh "ragel #{RAGEL_PATH} -S#{s} -p -V | dot -Tps -o#{root}/#{s}.ps" - else - sh "ragel -x #{RAGEL_PATH} -S#{s} | #{RAGEL_DOTGEN} -p|dot -Tps -o#{root}/#{s}.ps" - end - end - end - - desc "Generate diagrams of ragel parser (png)" - task :ragel_dot_png do - root = 'diagrams' - specs = [] - File.new(RAGEL_PATH).grep(/^\s*machine\s*(\S+);\s*$/) { specs << $1 } - for s in specs - if RAGEL_DOTGEN == 'ragel' - sh "ragel #{RAGEL_PATH} -S#{s} -p -V | dot -Tpng -o#{root}/#{s}.png" - else - sh "ragel -x #{RAGEL_PATH} -S#{s} | #{RAGEL_DOTGEN} -p|dot -Tpng -o#{root}/#{s}.png" - end - end - end - - desc "Generate diagrams of ragel parser" - task :ragel_dot => [ :ragel_dot_png, :ragel_dot_ps ] - - task :environment do - ENV['RUBY_CC_VERSION'] = '1.8.7:1.9.2' - end - - desc "Build all gems and archives for a new release of json and json_pure." - task :release => [ :clean, :version, :environment, :cross, :native, :gem, ] do - sh "#$0 clean native gem" - sh "#$0 clean package" - end -end - -desc "Compile in the the source directory" -task :default => [ :version ] diff --git a/lib/mcollective/vendor/json/TODO b/lib/mcollective/vendor/json/TODO deleted file mode 100644 index 8b13789..0000000 --- a/lib/mcollective/vendor/json/TODO +++ /dev/null @@ -1 +0,0 @@ - diff --git a/lib/mcollective/vendor/json/VERSION b/lib/mcollective/vendor/json/VERSION deleted file mode 100644 index 26ca594..0000000 --- a/lib/mcollective/vendor/json/VERSION +++ /dev/null @@ -1 +0,0 @@ -1.5.1 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/.keep b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log deleted file mode 100644 index f63d7ff..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log +++ /dev/null @@ -1,52 +0,0 @@ -========================== 2009-04-01T16:54:14 CEST =========================== - -Comparing times (call_time_mean): - 1 GeneratorBenchmarkExt#generator_fast 1000 repeats: - 547.354332608 ( real) -> 15.090x - 0.001826970 - 2 GeneratorBenchmarkExt#generator_safe 1000 repeats: - 443.968212317 ( real) -> 12.240x - 0.002252414 - 3 GeneratorBenchmarkExt#generator_pretty 900 repeats: - 375.104545883 ( real) -> 10.341x - 0.002665923 - 4 GeneratorBenchmarkPure#generator_fast 1000 repeats: - 49.978706968 ( real) -> 1.378x - 0.020008521 - 5 GeneratorBenchmarkRails#generator 1000 repeats: - 38.531868759 ( real) -> 1.062x - 0.025952543 - 6 GeneratorBenchmarkPure#generator_safe 1000 repeats: - 36.927649925 ( real) -> 1.018x 7 (>=3859) - 0.027079979 - 7 GeneratorBenchmarkPure#generator_pretty 1000 repeats: - 36.272134441 ( real) -> 1.000x 6 (>=3859) - 0.027569373 - calls/sec ( time) -> speed covers - secs/call - -Comparing times (call_time_median): - 1 GeneratorBenchmarkExt#generator_fast 1000 repeats: - 708.258020939 ( real) -> 16.547x - 0.001411915 - 2 GeneratorBenchmarkExt#generator_safe 1000 repeats: - 569.105020353 ( real) -> 13.296x - 0.001757145 - 3 GeneratorBenchmarkExt#generator_pretty 900 repeats: - 482.825371244 ( real) -> 11.280x - 0.002071142 - 4 GeneratorBenchmarkPure#generator_fast 1000 repeats: - 62.717626652 ( real) -> 1.465x - 0.015944481 - 5 GeneratorBenchmarkRails#generator 1000 repeats: - 43.965681162 ( real) -> 1.027x - 0.022745013 - 6 GeneratorBenchmarkPure#generator_safe 1000 repeats: - 43.929073409 ( real) -> 1.026x 7 (>=3859) - 0.022763968 - 7 GeneratorBenchmarkPure#generator_pretty 1000 repeats: - 42.802514491 ( real) -> 1.000x 6 (>=3859) - 0.023363113 - calls/sec ( time) -> speed covers - secs/call -=============================================================================== diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat deleted file mode 100644 index 4b1253c..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat +++ /dev/null @@ -1,1000 +0,0 @@ -#lag autocorrelation -1 1.0 -2 -0.00598106516199361 -3 -0.0112807270419403 -4 -0.0123696625707977 -5 -0.0156474123184087 -6 -0.0167058727326317 -7 -0.0174226257732614 -8 -0.0189193377912716 -9 -0.0214634645195233 -10 -0.0210243967687236 -11 -0.0184155266311585 -12 -0.0181108782382041 -13 -0.0176431070033873 -14 -0.0156578972028912 -15 -0.0177374502087085 -16 -0.0141455286987274 -17 -0.00795945141612284 -18 -0.0113514826844811 -19 -0.00973302086315654 -20 -0.00752544154967475 -21 -0.00910755332739381 -22 -0.0135251862007292 -23 -0.018973749693597 -24 -0.0204970425654037 -25 -0.0215794434931503 -26 -0.0208820323198205 -27 -0.0215343932179269 -28 -0.0197971427401652 -29 -0.0184170283596744 -30 -0.0175671796001255 -31 -0.0182236843115851 -32 -0.0197281221230859 -33 -0.0150052309130744 -34 -0.0149918485410557 -35 -0.0148118613887254 -36 -0.0167181900944588 -37 -0.0206983251289769 -38 -0.0210801801789031 -39 -0.0208844740744579 -40 -0.019184207940328 -41 -0.017212049362023 -42 -0.0120240041713764 -43 -0.0100234143586629 -44 -0.00665522354326635 -45 -0.0100620537646498 -46 -0.00769258313093049 -47 -0.0101574928855612 -48 -0.0159677916154784 -49 -0.0165646691066312 -50 -0.0130718375795871 -51 -0.0164703973814153 -52 -0.0175737709174274 -53 -0.0196185539680136 -54 -0.0206376650276647 -55 -0.0205816624943907 -56 -0.0182046841305021 -57 -0.0170847346598826 -58 -0.0173697791657325 -59 -0.0137208345061376 -60 -0.015172781992446 -61 -0.0115255106202091 -62 0.417092484407713 -63 0.504693995877898 -64 -0.00952721402961746 -65 -0.0131282852877526 -66 -0.0119948030163429 -67 -0.016073832621251 -68 -0.0161014355592232 -69 -0.0171579854383285 -70 -0.01991680519785 -71 -0.0201834782243293 -72 -0.0193410584396016 -73 -0.0171039752714963 -74 -0.0161429988491727 -75 -0.0132132704199617 -76 -0.0168078802690772 -77 -0.0158003286920553 -78 -0.00835714207351243 -79 -0.00762120905134282 -80 -0.0123153809247642 -81 -0.00899280191875777 -82 -0.0119224362468367 -83 -0.0119149552172981 -84 -0.0153878383194161 -85 -0.0180946307259483 -86 -0.0183903902356951 -87 -0.0192363155579457 -88 -0.0187515314979391 -89 -0.017863448747676 -90 -0.0164433211511183 -91 -0.0165939525554464 -92 -0.0165402045616707 -93 -0.0185978157278274 -94 -0.0142998133920208 -95 -0.0132850828003168 -96 -0.0138653751741504 -97 -0.015439338933265 -98 -0.020103623875719 -99 -0.0195401109212907 -100 -0.0201426108270252 -101 -0.0189159648139772 -102 -0.017741354411347 -103 -0.0123542006315354 -104 -0.00844298039184578 -105 -0.00684884437276309 -106 -0.00886668438174435 -107 -0.0112356781545771 -108 -0.00988387556228173 -109 -0.0132456696681112 -110 -0.0163390481544352 -111 -0.0139327158127501 -112 -0.0163794215654705 -113 -0.016828431108095 -114 -0.0170664831346389 -115 -0.0194839016196901 -116 -0.0196691116442597 -117 -0.0171523870407326 -118 -0.0162329780166863 -119 -0.015465269120626 -120 -0.0149628404982249 -121 -0.0131035423300313 -122 -0.0131195334166545 -123 -0.00981529237544382 -124 0.80187886471569 -125 0.0584684544905557 -126 -0.0102423491415993 -127 -0.0120909818906237 -128 -0.0108758895949621 -129 -0.014289679096502 -130 -0.0143039174642426 -131 -0.0156868282211593 -132 -0.0179722786147755 -133 -0.018466068371964 -134 -0.017079048029739 -135 -0.015065426013034 -136 -0.0138193891158787 -137 -0.0108007611003438 -138 -0.0135404983439662 -139 -0.0106058448707185 -140 -0.00496922876002826 -141 -0.00606791982549938 -142 -0.00898435609237426 -143 -0.00744828430883844 -144 -0.00954635887187427 -145 -0.0117471427501629 -146 -0.0167882985759187 -147 -0.0165458334875186 -148 -0.0185963339262843 -149 -0.0180476363378826 -150 -0.0184792287658906 -151 -0.0168571398090795 -152 -0.0156376237363163 -153 -0.0147405503105207 -154 -0.0155752570759927 -155 -0.0168091690226222 -156 -0.0121055609701471 -157 -0.0119152241705694 -158 -0.0119692018483073 -159 -0.0139405471343238 -160 -0.0182047564679262 -161 -0.0184815245671085 -162 -0.0183316150688267 -163 -0.016818527387266 -164 -0.0172998927309072 -165 -0.0124657171517376 -166 -0.0142205952112049 -167 -0.0114632791024164 -168 -0.011221691825434 -169 -0.00957685728179515 -170 -0.0118576208768814 -171 -0.0153568395493832 -172 -0.0151309123215381 -173 -0.0112872846794788 -174 -0.0147612619416181 -175 -0.0154278253183317 -176 -0.017303559049782 -177 -0.0182913411620323 -178 -0.0177712913609271 -179 -0.0155461026200739 -180 -0.0145007758787646 -181 -0.0144152256728993 -182 -0.0107727311780094 -183 -0.0119747664680712 -184 -0.00882273326524172 -185 0.298288232093739 -186 0.504424933837681 -187 -0.00805741122482888 -188 -0.00961890557289795 -189 -0.00944688808242372 -190 -0.0119139223572203 -191 -0.0124508210479303 -192 -0.0127383878728495 -193 -0.0140193628792942 -194 -0.0170021455698375 -195 -0.0164885587823976 -196 -0.0148914800888949 -197 -0.0140274704089252 -198 -0.0131444255262164 -199 -0.0142902568930679 -200 -0.0126395509953569 -201 -0.00514616330632373 -202 -0.00425889059218646 -203 -0.00870210148720889 -204 -0.00484025498847868 -205 -0.00794583465279226 -206 -0.0116098809300245 -207 -0.0102840248799257 -208 -0.0140847096783508 -209 -0.0161819274468977 -210 -0.0172520609046289 -211 -0.0165784733425168 -212 -0.0171152877835852 -213 -0.0173274798435417 -214 -0.0172101117258917 -215 -0.0170745436946526 -216 -0.0166392767496565 -217 -0.0113694394099134 -218 -0.0105561014609266 -219 -0.0105629655709691 -220 -0.0125843349808509 -221 -0.0169833235509721 -222 -0.0165970567333725 -223 -0.0169456130691041 -224 -0.0161440375799497 -225 -0.0149208783509213 -226 -0.0127041663317928 -227 -0.0111128965166982 -228 -0.0107029810231524 -229 -0.0101086923411873 -230 -0.0118221345845309 -231 -0.0102332052283776 -232 -0.0142577541114976 -233 -0.0140498538213083 -234 -0.010942704916447 -235 -0.0136212685457223 -236 -0.0138034339481212 -237 -0.0142845001756096 -238 -0.0165754738828122 -239 -0.0171898507581589 -240 -0.0146271352439982 -241 -0.0137790375298089 -242 -0.0133917511680577 -243 -0.0131288925890812 -244 -0.0109685827301647 -245 -0.0109244911317575 -246 -0.0080777880722406 -247 0.629508042863424 -248 0.116751190107802 -249 -0.00891172050628469 -250 -0.0107100331770611 -251 -0.00937995296389259 -252 -0.0124380337244143 -253 -0.0121281792844181 -254 -0.0135654919014245 -255 -0.0157362779934119 -256 -0.0164366578243166 -257 -0.0158700429675927 -258 -0.0136292281849102 -259 -0.0127546292697666 -260 -0.0122591657651713 -261 -0.0127690216839386 -262 -0.00988530296069743 -263 -0.00345655852423828 -264 -0.00433593866795492 -265 -0.00706082950577672 -266 -0.00451315885069749 -267 -0.00668518865876445 -268 -0.00988046989504585 -269 -0.0142752753866166 -270 -0.0139256221754419 -271 -0.0154989360192202 -272 -0.0151674600751258 -273 -0.0149460719819308 -274 -0.0149332807768296 -275 -0.0156711823892888 -276 -0.0155655062141426 -277 -0.0160655120365346 -278 -0.0148872833405304 -279 -0.00979872106668723 -280 -0.00908095518721164 -281 -0.00991496017614028 -282 -0.0116461289373857 -283 -0.0161876753215528 -284 -0.0160928457909713 -285 -0.0161826534411892 -286 -0.0144074994368989 -287 -0.0150828945998731 -288 -0.0112888375805587 -289 -0.01017522369822 -290 -0.00930009208093838 -291 -0.00867898201478243 -292 -0.00724704290881507 -293 -0.00975976377430877 -294 -0.0136277415192816 -295 -0.013064486102752 -296 -0.00951242385528366 -297 -0.0127976272170567 -298 -0.0136452137191805 -299 -0.0153115325990551 -300 -0.0163644585755829 -301 -0.0159743500315232 -302 -0.0137072967343182 -303 -0.0124465021916348 -304 -0.0124687214149045 -305 -0.00923829560254089 -306 -0.0116586507911887 -307 -0.0118002509969036 -308 0.176862227601212 -309 0.507428903450577 -310 -0.00730757087579498 -311 -0.00846216129742899 -312 -0.0086945045504047 -313 -0.011091656573089 -314 -0.0114036881984761 -315 -0.0114574795677765 -316 -0.0125072909586858 -317 -0.0147923369011883 -318 -0.0139629326786614 -319 -0.0118661842320723 -320 -0.0108640634604502 -321 -0.010582567791708 -322 -0.0114105551744683 -323 -0.0105534816285999 -324 -0.00543143567377151 -325 -0.00207879610778993 -326 -0.00616628496249775 -327 -0.00538988970591758 -328 -0.0031888414219768 -329 -0.00479592155107035 -330 -0.00797063379731725 -331 -0.011431205793035 -332 -0.0133294486936305 -333 -0.0147073192182352 -334 -0.014038242930232 -335 -0.0143451636631283 -336 -0.0140952574704935 -337 -0.0141886904764963 -338 -0.0136754388417917 -339 -0.0130591984480721 -340 -0.00725308466960931 -341 -0.00666308425269444 -342 -0.00687998553665841 -343 -0.00973374474504822 -344 -0.0145448202812331 -345 -0.0144458922456604 -346 -0.0146115187586966 -347 -0.0137964028516015 -348 -0.0124149959973093 -349 -0.0103171021174392 -350 -0.00982139573529766 -351 -0.0112899814813755 -352 -0.0106130941986117 -353 -0.0130952590767051 -354 -0.0147157103352019 -355 -0.0148442531106679 -356 -0.0143141102828524 -357 -0.0117602635999597 -358 -0.013769448570632 -359 -0.0143111324151261 -360 -0.0143034333755129 -361 -0.0145038145090546 -362 -0.0142515435786701 -363 -0.0119387033366702 -364 -0.0110049806968185 -365 -0.0105761121274039 -366 -0.0104785382739133 -367 -0.00944568136776289 -368 -0.0114291935775792 -369 -0.00879625572792011 -370 0.438761037882253 -371 0.179388282669024 -372 -0.00564395369291442 -373 -0.00796462420259203 -374 -0.00642615015965443 -375 -0.00989354521629732 -376 -0.00988574813192154 -377 -0.010723082658232 -378 -0.0127986854912136 -379 -0.0136055571418597 -380 -0.0128927066034855 -381 -0.0107658464618742 -382 -0.00995213975574464 -383 -0.00950294253792146 -384 -0.00955020479384878 -385 -0.00635693744222024 -386 -0.000110105629481581 -387 -0.00115234232053054 -388 -0.00429086433256201 -389 -0.00179503584405276 -390 -0.00481498545647159 -391 -0.00622514956456138 -392 -0.0109222820132791 -393 -0.0108955712556429 -394 -0.0123614076397208 -395 -0.0126411139244774 -396 -0.0124467915001655 -397 -0.0130137305814043 -398 -0.0128228771923896 -399 -0.0133955237199494 -400 -0.0133849955851085 -401 -0.0122588534660976 -402 -0.00605726179970702 -403 -0.00502476043379232 -404 -0.00560189961426453 -405 -0.0075065597345586 -406 -0.0127782782962923 -407 -0.0123644950908042 -408 -0.0124232734011331 -409 -0.0109783824772762 -410 -0.0115303718379531 -411 -0.00784267469552262 -412 -0.00849462201372912 -413 -0.00971386505469192 -414 -0.00917632724668119 -415 -0.0115816105603832 -416 -0.0132376761929919 -417 -0.0135661416672985 -418 -0.0131585974552153 -419 -0.009660405912689 -420 -0.013055251783936 -421 -0.0133821772767449 -422 -0.0130499023401334 -423 -0.0135178049026562 -424 -0.0131069725662085 -425 -0.0108380392131661 -426 -0.00969469507043081 -427 -0.00954426797454458 -428 -0.00662684836615926 -429 -0.00886476227407113 -430 -0.00950496793349554 -431 0.0516441983020747 -432 0.49322914953269 -433 -0.00439284173686481 -434 -0.00627870269436533 -435 -0.00627332941383523 -436 -0.0081288435528136 -437 -0.0083780008033963 -438 -0.00862522210775739 -439 -0.00957558038511007 -440 -0.0117456231732853 -441 -0.0115534470740916 -442 -0.00933816760400665 -443 -0.00879390501434828 -444 -0.00845807802179637 -445 -0.00898392178831317 -446 -0.00828222615510185 -447 -0.00430409141657551 -448 0.00156457708563651 -449 -0.00326984307949075 -450 -0.00317159959830949 -451 -0.000555487307447615 -452 -0.00364382690619819 -453 -0.0048566860611129 -454 -0.00894018408715954 -455 -0.0107486040996964 -456 -0.0116685949740421 -457 -0.0110016491468837 -458 -0.0115059582687225 -459 -0.0113472600167867 -460 -0.0116171812940172 -461 -0.0117282268858408 -462 -0.0117299783690078 -463 -0.010643752908432 -464 -0.00459501012645056 -465 -0.00453644637628407 -466 -0.0046306868795152 -467 -0.00635091362132938 -468 -0.0110723370950498 -469 -0.0112408403912337 -470 -0.0111324401483636 -471 -0.00982286064921767 -472 -0.00975128137366522 -473 -0.00628951348673262 -474 -0.00786220555305698 -475 -0.00721222723625666 -476 -0.0090992927480125 -477 -0.0111183444128793 -478 -0.0113067097038558 -479 -0.011160514456695 -480 -0.0112090771926765 -481 -0.00787638634175043 -482 -0.0112615847473125 -483 -0.011628136525895 -484 -0.011622337861315 -485 -0.0117577801145762 -486 -0.0116192296501852 -487 -0.0116776081404665 -488 -0.0111121010572735 -489 -0.0114339606683442 -490 -0.00850048144220754 -491 -0.00902076717194715 -492 -0.00658807969775991 -493 0.308280122150922 -494 0.179904382021428 -495 -0.00620246818692402 -496 -0.00732155340431931 -497 -0.00633028997310617 -498 -0.00733583870036483 -499 -0.00727032081926197 -500 -0.008010509906149 -501 -0.0104317034705988 -502 -0.0108056052586449 -503 -0.0101990692728759 -504 -0.00818461307326559 -505 -0.00749890086004878 -506 -0.00705010773652864 -507 -0.00756096305230179 -508 -0.00672526873673494 -509 0.00243080947177157 -510 0.00196312027219733 -511 -0.00235862710511876 -512 0.000701377712459682 -513 -0.00162314281016339 -514 -0.00353069628359856 -515 -0.00535592160011964 -516 -0.009629255720372 -517 -0.00984838119518035 -518 -0.0101309734254507 -519 -0.00965058701149376 -520 -0.00979426033632281 -521 -0.00938720368934997 -522 -0.00970041415352301 -523 -0.00945810455304286 -524 -0.00835333695491461 -525 -0.00280808168888623 -526 -0.0018804910475821 -527 -0.00249542031082639 -528 -0.00423360594570751 -529 -0.00881996119495001 -530 -0.00884482660493057 -531 -0.00893861689042032 -532 -0.00886923400254016 -533 -0.00998854214305494 -534 -0.00781482686410285 -535 -0.0048629430667884 -536 -0.00625148660128163 -537 -0.00591714866358709 -538 -0.00819957670878541 -539 -0.0104317069032842 -540 -0.0106270020619331 -541 -0.0104145097418402 -542 -0.00717985135988735 -543 -0.0101615859824435 -544 -0.0104518334037382 -545 -0.0100972729943529 -546 -0.0104524105955466 -547 -0.0103545229187737 -548 -0.0101624037567498 -549 -0.0100186657519469 -550 -0.0099303685542785 -551 -0.00989811608443676 -552 -0.00956029844279647 -553 -0.00987970559123677 -554 -0.00776430984790597 -555 0.433831953345655 -556 -0.00507447586044935 -557 -0.00562849792786146 -558 -0.00769600508140686 -559 -0.00901860581255264 -560 -0.00910092607595847 -561 -0.00887368633065391 -562 -0.00919143351659684 -563 -0.00919246832815283 -564 -0.008693156564635 -565 -0.00662529921447376 -566 -0.00607353164847735 -567 -0.00581991561933677 -568 -0.00632678279589719 -569 -0.00589706554542697 -570 -0.00209808022849792 -571 0.00411078303934323 -572 -0.000550094449704642 -573 -0.000635669377549439 -574 0.00207348794440178 -575 -0.000652521824982924 -576 -0.00515463244200143 -577 -0.00805160292500236 -578 -0.00758462894007334 -579 -0.00865860296291249 -580 -0.00829675359569146 -581 -0.0086341327011501 -582 -0.0083284907763213 -583 -0.00874191010292116 -584 -0.00870026046977296 -585 -0.00874342968783533 -586 -0.00782090704127864 -587 -0.00226753389792357 -588 -0.00233729750931911 -589 -0.00253165604475073 -590 -0.00420974711192665 -591 -0.00876258732479398 -592 -0.00860694373819948 -593 -0.00860741436892977 -594 -0.0083641380851702 -595 -0.00895178779353354 -596 -0.00556499426763376 -597 -0.00484682362918658 -598 -0.00431757566397834 -599 -0.00499416642389915 -600 -0.0069669589511167 -601 -0.00890645540721195 -602 -0.00886958918530451 -603 -0.00887658861258958 -604 -0.00581930809163898 -605 -0.00874979775103718 -606 -0.00880186470377256 -607 -0.0082818394785986 -608 -0.00853275083442652 -609 -0.00830191068093658 -610 -0.00821443778904117 -611 -0.00784238482387328 -612 -0.0079414174200303 -613 -0.00783383912859581 -614 -0.00787555505012593 -615 -0.00665499786835605 -616 0.176487627240953 -617 0.182522618275643 -618 -0.00369616845832028 -619 -0.00629001903058491 -620 -0.0075473564025736 -621 -0.00792057625851698 -622 -0.00782303511234032 -623 -0.00755843668657251 -624 -0.00792883379421707 -625 -0.00821060913555977 -626 -0.00741039814688092 -627 -0.00537210505585104 -628 -0.00495675282893683 -629 -0.00433218280972181 -630 -0.00535942261482297 -631 -0.00418008644241062 -632 0.00339696969399508 -633 0.00414508932380595 -634 -0.000193158774272635 -635 0.00259164894888744 -636 0.000223760303507433 -637 -0.00430196126108769 -638 -0.00456371747951704 -639 -0.00736903921601653 -640 -0.00712023652975677 -641 -0.0075278214202441 -642 -0.00720130207341965 -643 -0.00737872965783862 -644 -0.00699531188368127 -645 -0.00746073468584514 -646 -0.00732625819637498 -647 -0.00635877618822083 -648 -0.000793999038955055 -649 -8.0164531740219e-05 -650 -0.000446668232184141 -651 -0.00235908247044392 -652 -0.00713214115663551 -653 -0.00713237034121296 -654 -0.00694174474662415 -655 -0.00660829668781119 -656 -0.00716164439750203 -657 -0.00538381268641803 -658 -0.00345728430157964 -659 -0.0033493822325227 -660 -0.00308002139612534 -661 -0.00485508307526379 -662 -0.00689806029174172 -663 -0.00725543105565978 -664 -0.00698203515046677 -665 -0.0036867796009008 -666 -0.00651046025528584 -667 -0.0064253977689179 -668 -0.00603538702792052 -669 -0.00663542008142919 -670 -0.00686564183730989 -671 -0.007061940627829 -672 -0.00723724969313594 -673 -0.00690352936553413 -674 -0.00708800826417091 -675 -0.0068488351807369 -676 -0.00697588236069582 -677 -0.00489382754866038 -678 0.293679681878456 -679 -0.00217575247097526 -680 -0.00251980831108943 -681 -0.00469346437639234 -682 -0.00602274026620383 -683 -0.00613736008179977 -684 -0.00587828046880654 -685 -0.00631371498944638 -686 -0.00631120094430527 -687 -0.00664034373839927 -688 -0.0065666129986998 -689 -0.0067007590666881 -690 -0.00636748542215835 -691 -0.00656138473046679 -692 -0.00601000081275883 -693 -0.0026357408923799 -694 -0.000456498707602518 -695 -0.0016897260544663 -696 -0.00129952239659223 -697 0.00153196218519829 -698 0.000970496676276022 -699 -0.00251269063690647 -700 -0.00524088068527027 -701 -0.00518392957419252 -702 -0.00545009901887635 -703 -0.00523471171454499 -704 -0.00546688754012952 -705 -0.00514683356691874 -706 -0.00558347319397717 -707 -0.00550031695581813 -708 -0.00556266938963792 -709 -0.00450101319069993 -710 0.000877138356826208 -711 0.00114849594155746 -712 0.00116701578333245 -713 -0.000552903676364493 -714 -0.0051532107788052 -715 -0.00508271809802478 -716 -0.00497444873496618 -717 -0.00492017832252063 -718 -0.00541639497149525 -719 -0.00390291948630837 -720 -0.00239018748643075 -721 -0.00232508546653691 -722 -0.00238990898592966 -723 -0.00406012905361738 -724 -0.00582934957876193 -725 -0.00577054545061284 -726 -0.00588044486012239 -727 -0.00321173514726905 -728 -0.00576676030640332 -729 -0.00581363201901516 -730 -0.0056403530033928 -731 -0.00588225715878274 -732 -0.00580726160331349 -733 -0.00584418671281739 -734 -0.00551263103237493 -735 -0.00574673916997464 -736 -0.00550923727010732 -737 -0.00564351841421052 -738 -0.00461818807132501 -739 0.114369039955867 -740 0.113874088642992 -741 -0.00428093342498865 -742 -0.00466682336739501 -743 -0.00457646329947025 -744 -0.00489743453576601 -745 -0.00478667563624186 -746 -0.00478604895368296 -747 -0.00490784598204448 -748 -0.00514403999502352 -749 -0.00513630650904552 -750 -0.00518918499122095 -751 -0.00520548675089309 -752 -0.00507998628564919 -753 -0.00523911370578295 -754 -0.00411076499229555 -755 -0.000110526273692137 -756 -6.97046088930254e-05 -757 -0.000654613465091875 -758 0.00250880368745154 -759 0.00224241061455796 -760 -0.00127852637176592 -761 -0.00157811331971793 -762 -0.00436060574090802 -763 -0.00420211405494215 -764 -0.00448393259372739 -765 -0.00432404767220953 -766 -0.00453637743990225 -767 -0.0044808869432662 -768 -0.00464814288481283 -769 -0.00453419455157583 -770 -0.00369714822055501 -771 0.00151504237188244 -772 0.00179518632309489 -773 0.001877255156902 -774 -5.89581979368288e-06 -775 -0.00470919317381923 -776 -0.00458472486731563 -777 -0.00444898240381536 -778 -0.00416698542857512 -779 -0.00466136770411855 -780 -0.00300892846748779 -781 -0.00124674831643176 -782 -0.00133718137527554 -783 -0.00138860486323427 -784 -0.00288124092405525 -785 -0.00481691924321098 -786 -0.00486161642251353 -787 -0.00471484323647818 -788 -0.00221399725838215 -789 -0.00461120524247493 -790 -0.00490984409593776 -791 -0.00458164873735298 -792 -0.00500568265157337 -793 -0.00490456309124687 -794 -0.00492264602032272 -795 -0.00479512401393326 -796 -0.00461122828156398 -797 -0.00469058713813641 -798 -0.00454741240404029 -799 -0.00452098615172967 -800 -0.00315464001423668 -801 0.176647243851048 -802 -0.00310821457329599 -803 -0.00336871130300844 -804 -0.00334712545163953 -805 -0.00333048116128302 -806 -0.00340010988805163 -807 -0.00329002162318321 -808 -0.00389183721144577 -809 -0.003901676075626 -810 -0.00414870722240944 -811 -0.0042711605574371 -812 -0.00421188870174774 -813 -0.00414929847217633 -814 -0.00411313613833283 -815 -0.00371760367608498 -816 -0.000349935639289262 -817 0.00180273856524285 -818 0.000409396862338841 -819 0.000734497343308131 -820 0.00357982919909658 -821 0.00303969865706741 -822 -0.000471276008475531 -823 -0.00316577242759788 -824 -0.00325311026089004 -825 -0.00334640971609744 -826 -0.00347090142695205 -827 -0.00347282859499611 -828 -0.00359181895609804 -829 -0.00354380245119079 -830 -0.0035817065706009 -831 -0.00354789086207514 -832 -0.0033749175776577 -833 -0.000494214343391087 -834 -0.000251455009457498 -835 -1.57658927165261e-05 -836 -0.000109367762943036 -837 -0.00314845093040657 -838 -0.00309137992026045 -839 -0.00318781326315422 -840 -0.00286403779926594 -841 -0.00342399488914169 -842 -0.00153873408849432 -843 0.000122565876620567 -844 -1.39442056199256e-05 -845 -8.34506223344456e-06 -846 -0.00166426373161533 -847 -0.0033554053632988 -848 -0.00333776480910794 -849 -0.00310606886442986 -850 -0.00260312208985637 -851 -0.00283750216949298 -852 -0.00285757048464359 -853 -0.00279461193366553 -854 -0.00292497054991065 -855 -0.00301956311195488 -856 -0.00315103554002891 -857 -0.00317407494144514 -858 -0.00344006955591978 -859 -0.00328324564157648 -860 -0.00336672245209469 -861 -0.00320070783993313 -862 0.0571143000302908 -863 0.0581421535264736 -864 -0.0023646349129562 -865 -0.00248000937790515 -866 -0.00253895254011341 -867 -0.00263523871798653 -868 -0.00263848242276221 -869 -0.00242543818411627 -870 -0.00273912401905961 -871 -0.00279476040899776 -872 -0.00276176065666512 -873 -0.00287486997075063 -874 -0.00286611281167776 -875 -0.00273356872691796 -876 -0.00288780319152133 -877 -0.002745393856585 -878 -0.00110006883426424 -879 -0.00137915534327329 -880 -0.00167310911091998 -881 -0.00155747103077571 -882 -0.00146093482278994 -883 -0.00154136929877317 -884 -0.00153121465319545 -885 -0.00155953620814648 -886 -0.00144267681269488 -887 -0.00161412167459229 -888 -0.00163145566649099 -889 -0.00167029505161209 -890 -0.0016373144133233 -891 -0.00175124070416498 -892 -0.00167165052115149 -893 -0.00171108984754183 -894 0.00117838884322948 -895 0.00144758999216869 -896 0.00151805445737221 -897 0.00143935117483618 -898 -0.00186099280431895 -899 -0.00179654067064747 -900 -0.00179116042661383 -901 -0.00142755861186833 -902 -0.00186611279612203 -903 -0.000162622805446086 -904 0.00152056201372212 -905 0.0013706788122524 -906 0.00143726069429263 -907 -0.000252329857205533 -908 -0.00193352667375601 -909 -0.00209884306201327 -910 -0.00202064054439592 -911 -0.00173618259943807 -912 -0.00205445430329035 -913 -0.00214780602120254 -914 -0.00196595166631794 -915 -0.00219157283133128 -916 -0.00212894079242623 -917 -0.00207889032650752 -918 -0.00219841623335388 -919 -0.00205620493282394 -920 -0.00208349802201294 -921 -0.001893539445651 -922 -0.00194526313087232 -923 -0.00168643075330111 -924 0.0586998178531413 -925 -0.000911884922536993 -926 -0.00117572577102972 -927 -0.00129923545036716 -928 -0.00118465790078785 -929 -0.00132314491365947 -930 -0.00127160006680386 -931 -0.00138439529549555 -932 -0.00129787510221711 -933 -0.00144993779770551 -934 -0.001425792453437 -935 -0.0014496057960256 -936 -0.00119586479826629 -937 -0.000922564261699133 -938 -0.000922740892289067 -939 -0.000848528386538916 -940 0.00175174402948496 -941 0.000128892409261148 -942 -0.000419829894278227 -943 -0.000466898563936845 -944 -0.00047122376341752 -945 -0.000471416288654379 -946 -0.000513935965825421 -947 -0.000572116986488244 -948 -0.000449041074008682 -949 -0.000574563662818422 -950 -0.000610788790280961 -951 -0.000662270176313313 -952 -0.000642471283187866 -953 -0.000686357192098764 -954 -0.000680811112666425 -955 -0.000667897583364248 -956 0.00217250089025851 -957 0.00241500705227074 -958 0.00258713826301258 -959 0.0024109350186895 -960 -0.000776314155991479 -961 -0.00084983870235422 -962 -0.000772678557610008 -963 -0.000413064616358682 -964 -0.000839502130396645 -965 -0.000791381040363275 -966 -0.00077040262869677 -967 -0.000754568976269093 -968 -0.000450602414219829 -969 -0.000688212102427542 -970 -0.0007167932903372 -971 -0.000785852386158499 -972 -0.000722306234880277 -973 -0.000324661092143018 -974 -0.000653202791545457 -975 -0.000633458113878451 -976 -0.000607853671870952 -977 -0.000679470747639321 -978 -0.000681703637956587 -979 -0.000664738980547628 -980 -0.000722422330407423 -981 -0.000669373102929127 -982 -0.000718387488703849 -983 -0.000712032436105745 -984 -0.000590219813904669 -985 -0.000416669360601081 -986 0.000288888405178535 -987 0.000270024550156701 -988 0.000249840739788964 -989 0.000235694503184828 -990 0.000215798850441515 -991 0.00019492814388371 -992 0.000175357251222976 -993 0.000153462442160884 -994 0.000132677328666247 -995 0.000111945810591477 -996 9.04814593951449e-05 -997 7.02106833140884e-05 -998 5.0145189268859e-05 -999 3.05214189890438e-05 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat deleted file mode 100644 index 7df4c82..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat +++ /dev/null @@ -1,1001 +0,0 @@ -#scatter real total user system repeat -1 0.00156402587890625 0.0 0.0 0.0 1 -2 0.00149393081665039 0.0 0.0 0.0 2 -3 0.00144386291503906 0.0 0.0 0.0 3 -4 0.0014338493347168 0.00999999999999979 0.00999999999999979 0.0 4 -5 0.00144386291503906 0.0 0.0 0.0 5 -6 0.00141716003417969 0.0 0.0 0.0 6 -7 0.00143003463745117 0.0 0.0 0.0 7 -8 0.0014190673828125 0.0 0.0 0.0 8 -9 0.00141215324401855 0.0 0.0 0.0 9 -10 0.00143003463745117 0.0 0.0 0.0 10 -11 0.00141310691833496 0.0100000000000007 0.0100000000000002 0.0 11 -12 0.0014190673828125 0.0 0.0 0.0 12 -13 0.00155305862426758 0.0 0.0 0.0 13 -14 0.00142192840576172 0.0 0.0 0.0 14 -15 0.00141000747680664 0.0 0.0 0.0 15 -16 0.00142812728881836 0.0 0.0 0.0 16 -17 0.00143098831176758 0.0 0.0 0.0 17 -18 0.00151705741882324 0.00999999999999979 0.00999999999999979 0.0 18 -19 0.00141406059265137 0.0 0.0 0.0 19 -20 0.0014197826385498 0.0 0.0 0.0 20 -21 0.00142383575439453 0.0 0.0 0.0 21 -22 0.00141191482543945 0.0 0.0 0.0 22 -23 0.00156402587890625 0.0 0.0 0.0 23 -24 0.00142812728881836 0.00999999999999979 0.00999999999999979 0.0 24 -25 0.00139307975769043 0.0 0.0 0.0 25 -26 0.00141000747680664 0.0 0.0 0.0 26 -27 0.00255894660949707 0.0 0.0 0.0 27 -28 0.00261497497558594 0.0 0.0 0.0 28 -29 0.00254607200622559 0.00999999999999979 0.00999999999999979 0.0 29 -30 0.00245094299316406 0.0 0.0 0.0 30 -31 0.00142312049865723 0.0 0.0 0.0 31 -32 0.00141000747680664 0.0 0.0 0.0 32 -33 0.00139904022216797 0.0 0.0 0.0 33 -34 0.00141096115112305 0.0 0.0 0.0 34 -35 0.00139689445495605 0.0100000000000007 0.0100000000000007 0.0 35 -36 0.00140500068664551 0.0 0.0 0.0 36 -37 0.00140786170959473 0.0 0.0 0.0 37 -38 0.00144600868225098 0.0 0.0 0.0 38 -39 0.00139689445495605 0.0 0.0 0.0 39 -40 0.00140810012817383 0.0 0.0 0.0 40 -41 0.00141406059265137 0.0 0.0 0.0 41 -42 0.00140595436096191 0.00999999999999979 0.00999999999999979 0.0 42 -43 0.00140094757080078 0.0 0.0 0.0 43 -44 0.00138092041015625 0.0 0.0 0.0 44 -45 0.00151491165161133 0.0 0.0 0.0 45 -46 0.00203394889831543 0.0 0.0 0.0 46 -47 0.00142693519592285 0.0 0.0 0.0 47 -48 0.00138998031616211 0.00999999999999979 0.00999999999999979 0.0 48 -49 0.00144696235656738 0.0 0.0 0.0 49 -50 0.00140500068664551 0.0 0.0 0.0 50 -51 0.00138998031616211 0.0 0.0 0.0 51 -52 0.00141000747680664 0.0 0.0 0.0 52 -53 0.00139188766479492 0.0 0.0 0.0 53 -54 0.00142598152160645 0.0 0.0 0.0 54 -55 0.00141406059265137 0.00999999999999979 0.00999999999999979 0.0 55 -56 0.00139594078063965 0.0 0.0 0.0 56 -57 0.00139284133911133 0.0 0.0 0.0 57 -58 0.00141692161560059 0.0 0.0 0.0 58 -59 0.00140810012817383 0.0 0.0 0.0 59 -60 0.00141215324401855 0.0 0.0 0.0 60 -61 0.00145602226257324 0.0 0.0 0.0 61 -62 0.0231201648712158 0.0300000000000002 0.0300000000000002 0.0 62 -63 0.0014808177947998 0.0 0.0 0.0 63 -64 0.00142788887023926 0.0 0.0 0.0 64 -65 0.00147199630737305 0.0 0.0 0.0 65 -66 0.00143098831176758 0.0 0.0 0.0 66 -67 0.00142908096313477 0.0 0.0 0.0 67 -68 0.00142097473144531 0.00999999999999979 0.00999999999999979 0.0 68 -69 0.00142598152160645 0.0 0.0 0.0 69 -70 0.00142812728881836 0.0 0.0 0.0 70 -71 0.00140595436096191 0.0 0.0 0.0 71 -72 0.00142288208007812 0.0 0.0 0.0 72 -73 0.00140810012817383 0.0 0.0 0.0 73 -74 0.00141692161560059 0.0 0.0 0.0 74 -75 0.00140786170959473 0.0100000000000007 0.0100000000000007 0.0 75 -76 0.00142312049865723 0.0 0.0 0.0 76 -77 0.00140213966369629 0.0 0.0 0.0 77 -78 0.00140500068664551 0.0 0.0 0.0 78 -79 0.00141096115112305 0.0 0.0 0.0 79 -80 0.00141406059265137 0.0 0.0 0.0 80 -81 0.00141310691833496 0.0 0.0 0.0 81 -82 0.00140905380249023 0.00999999999999979 0.00999999999999979 0.0 82 -83 0.00140190124511719 0.0 0.0 0.0 83 -84 0.00140881538391113 0.0 0.0 0.0 84 -85 0.00141191482543945 0.0 0.0 0.0 85 -86 0.00141406059265137 0.0 0.0 0.0 86 -87 0.00142097473144531 0.0 0.0 0.0 87 -88 0.0013890266418457 0.0 0.0 0.0 88 -89 0.00141406059265137 0.00999999999999979 0.00999999999999979 0.0 89 -90 0.00139498710632324 0.0 0.0 0.0 90 -91 0.00141286849975586 0.0 0.0 0.0 91 -92 0.00141096115112305 0.0 0.0 0.0 92 -93 0.00140190124511719 0.0 0.0 0.0 93 -94 0.00141501426696777 0.0 0.0 0.0 94 -95 0.0013880729675293 0.0 0.0 0.0 95 -96 0.00140595436096191 0.00999999999999979 0.00999999999999979 0.0 96 -97 0.00140213966369629 0.0 0.0 0.0 97 -98 0.0014040470123291 0.0 0.0 0.0 98 -99 0.00140500068664551 0.0 0.0 0.0 99 -100 0.00141501426696777 0.0 0.0 0.0 100 -101 0.00141119956970215 0.0 0.0 0.0 101 -102 0.00139808654785156 0.0 0.0 0.0 102 -103 0.00141000747680664 0.0 0.0 0.0 103 -104 0.00137805938720703 0.0 0.0 0.0 104 -105 0.00139307975769043 0.0 0.0 0.0 105 -106 0.00139594078063965 0.0 0.0 0.0 106 -107 0.00138688087463379 0.0 0.0 0.0 107 -108 0.00140810012817383 0.0 0.0 0.0 108 -109 0.00140094757080078 0.00999999999999979 0.00999999999999979 0.0 109 -110 0.00139999389648438 0.0 0.0 0.0 110 -111 0.00139808654785156 0.0 0.0 0.0 111 -112 0.00141096115112305 0.0 0.0 0.0 112 -113 0.00139212608337402 0.0 0.0 0.0 113 -114 0.00142288208007812 0.0 0.0 0.0 114 -115 0.00139188766479492 0.0 0.0 0.0 115 -116 0.00140810012817383 0.00999999999999979 0.00999999999999979 0.0 116 -117 0.00147700309753418 0.0 0.0 0.0 117 -118 0.00140810012817383 0.0 0.0 0.0 118 -119 0.0014030933380127 0.0 0.0 0.0 119 -120 0.00142097473144531 0.0 0.0 0.0 120 -121 0.00140213966369629 0.0 0.0 0.0 121 -122 0.00139689445495605 0.0 0.0 0.0 122 -123 0.0233688354492188 0.0300000000000002 0.0300000000000002 0.0 123 -124 0.0014951229095459 0.0 0.0 0.0 124 -125 0.00143909454345703 0.0 0.0 0.0 125 -126 0.00145697593688965 0.0 0.0 0.0 126 -127 0.00147509574890137 0.0 0.0 0.0 127 -128 0.00142598152160645 0.0 0.0 0.0 128 -129 0.00143003463745117 0.00999999999999979 0.00999999999999979 0.0 129 -130 0.00141477584838867 0.0 0.0 0.0 130 -131 0.00142502784729004 0.0 0.0 0.0 131 -132 0.00140786170959473 0.0 0.0 0.0 132 -133 0.00141310691833496 0.0 0.0 0.0 133 -134 0.00141000747680664 0.0 0.0 0.0 134 -135 0.00141501426696777 0.00999999999999979 0.00999999999999979 0.0 135 -136 0.00141501426696777 0.0 0.0 0.0 136 -137 0.0014190673828125 0.0 0.0 0.0 137 -138 0.00140500068664551 0.0 0.0 0.0 138 -139 0.00140595436096191 0.0 0.0 0.0 139 -140 0.00143909454345703 0.0 0.0 0.0 140 -141 0.00140094757080078 0.0 0.0 0.0 141 -142 0.00142407417297363 0.0100000000000007 0.0100000000000007 0.0 142 -143 0.00141406059265137 0.0 0.0 0.0 143 -144 0.00142002105712891 0.0 0.0 0.0 144 -145 0.00140094757080078 0.0 0.0 0.0 145 -146 0.00140690803527832 0.0 0.0 0.0 146 -147 0.0014188289642334 0.0 0.0 0.0 147 -148 0.00142002105712891 0.0 0.0 0.0 148 -149 0.00139808654785156 0.00999999999999979 0.00999999999999979 0.0 149 -150 0.00139594078063965 0.0 0.0 0.0 150 -151 0.00140285491943359 0.0 0.0 0.0 151 -152 0.0013880729675293 0.0 0.0 0.0 152 -153 0.00139498710632324 0.0 0.0 0.0 153 -154 0.0014040470123291 0.0 0.0 0.0 154 -155 0.0014040470123291 0.0 0.0 0.0 155 -156 0.00140094757080078 0.00999999999999979 0.00999999999999979 0.0 156 -157 0.0014030933380127 0.0 0.0 0.0 157 -158 0.00138711929321289 0.0 0.0 0.0 158 -159 0.00139999389648438 0.0 0.0 0.0 159 -160 0.00140595436096191 0.0 0.0 0.0 160 -161 0.00139689445495605 0.0 0.0 0.0 161 -162 0.00141000747680664 0.0 0.0 0.0 162 -163 0.00140094757080078 0.00999999999999979 0.00999999999999979 0.0 163 -164 0.00140905380249023 0.0 0.0 0.0 164 -165 0.00251889228820801 0.0 0.0 0.0 165 -166 0.00264787673950195 0.0 0.0 0.0 166 -167 0.00169110298156738 0.0 0.0 0.0 167 -168 0.00159692764282227 0.00999999999999979 0.00999999999999979 0.0 168 -169 0.00142788887023926 0.0 0.0 0.0 169 -170 0.00155997276306152 0.0 0.0 0.0 170 -171 0.00141811370849609 0.0 0.0 0.0 171 -172 0.00139784812927246 0.0 0.0 0.0 172 -173 0.00142884254455566 0.0 0.0 0.0 173 -174 0.00139999389648438 0.0 0.0 0.0 174 -175 0.00139784812927246 0.0100000000000007 0.0100000000000007 0.0 175 -176 0.00139999389648438 0.0 0.0 0.0 176 -177 0.00145101547241211 0.0 0.0 0.0 177 -178 0.00141716003417969 0.0 0.0 0.0 178 -179 0.00143289566040039 0.0 0.0 0.0 179 -180 0.00141310691833496 0.0 0.0 0.0 180 -181 0.00141406059265137 0.0 0.0 0.0 181 -182 0.00141406059265137 0.0 0.0 0.0 182 -183 0.00141310691833496 0.0 0.0 0.0 183 -184 0.00140595436096191 0.0 0.0 0.0 184 -185 0.0231029987335205 0.0199999999999996 0.0199999999999996 0.0 185 -186 0.00171899795532227 0.0 0.0 0.0 186 -187 0.00143694877624512 0.0100000000000007 0.0100000000000007 0.0 187 -188 0.00144410133361816 0.0 0.0 0.0 188 -189 0.00142693519592285 0.0 0.0 0.0 189 -190 0.00143599510192871 0.0 0.0 0.0 190 -191 0.00142097473144531 0.0 0.0 0.0 191 -192 0.00142979621887207 0.0 0.0 0.0 192 -193 0.00142502784729004 0.0 0.0 0.0 193 -194 0.00142002105712891 0.00999999999999979 0.00999999999999979 0.0 194 -195 0.00142908096313477 0.0 0.0 0.0 195 -196 0.00141191482543945 0.0 0.0 0.0 196 -197 0.00141382217407227 0.0 0.0 0.0 197 -198 0.00141191482543945 0.0 0.0 0.0 198 -199 0.00143718719482422 0.0 0.0 0.0 199 -200 0.00141096115112305 0.0 0.0 0.0 200 -201 0.00142407417297363 0.00999999999999979 0.00999999999999979 0.0 201 -202 0.00146198272705078 0.0 0.0 0.0 202 -203 0.00143194198608398 0.0 0.0 0.0 203 -204 0.00138998031616211 0.0 0.0 0.0 204 -205 0.00140595436096191 0.0 0.0 0.0 205 -206 0.00142097473144531 0.0 0.0 0.0 206 -207 0.00141787528991699 0.00999999999999979 0.00999999999999979 0.0 207 -208 0.00145101547241211 0.0 0.0 0.0 208 -209 0.00143909454345703 0.0 0.0 0.0 209 -210 0.00141215324401855 0.0 0.0 0.0 210 -211 0.00140094757080078 0.0 0.0 0.0 211 -212 0.0014030933380127 0.0 0.0 0.0 212 -213 0.00140595436096191 0.0 0.0 0.0 213 -214 0.00143194198608398 0.0100000000000007 0.0100000000000007 0.0 214 -215 0.00139999389648438 0.0 0.0 0.0 215 -216 0.00140786170959473 0.0 0.0 0.0 216 -217 0.00141501426696777 0.0 0.0 0.0 217 -218 0.00139904022216797 0.0 0.0 0.0 218 -219 0.00141310691833496 0.0 0.0 0.0 219 -220 0.00140786170959473 0.0 0.0 0.0 220 -221 0.00146889686584473 0.00999999999999979 0.00999999999999979 0.0 221 -222 0.00139880180358887 0.0 0.0 0.0 222 -223 0.00141501426696777 0.0 0.0 0.0 223 -224 0.00139808654785156 0.0 0.0 0.0 224 -225 0.00140690803527832 0.0 0.0 0.0 225 -226 0.00140500068664551 0.0 0.0 0.0 226 -227 0.00139713287353516 0.0 0.0 0.0 227 -228 0.00139498710632324 0.00999999999999979 0.00999999999999979 0.0 228 -229 0.00141000747680664 0.0 0.0 0.0 229 -230 0.00139284133911133 0.0 0.0 0.0 230 -231 0.00140690803527832 0.0 0.0 0.0 231 -232 0.0014040470123291 0.0 0.0 0.0 232 -233 0.00137710571289062 0.0 0.0 0.0 233 -234 0.00140595436096191 0.0 0.0 0.0 234 -235 0.00137901306152344 0.0 0.0 0.0 235 -236 0.00143909454345703 0.00999999999999979 0.00999999999999979 0.0 236 -237 0.00138688087463379 0.0 0.0 0.0 237 -238 0.00141811370849609 0.0 0.0 0.0 238 -239 0.00141406059265137 0.0 0.0 0.0 239 -240 0.00139284133911133 0.0 0.0 0.0 240 -241 0.0014188289642334 0.0 0.0 0.0 241 -242 0.0013878345489502 0.0 0.0 0.0 242 -243 0.00142407417297363 0.0100000000000007 0.0100000000000007 0.0 243 -244 0.00141000747680664 0.0 0.0 0.0 244 -245 0.00146222114562988 0.0 0.0 0.0 245 -246 0.0225439071655273 0.0199999999999996 0.0199999999999996 0.0 246 -247 0.00150012969970703 0.0 0.0 0.0 247 -248 0.00144600868225098 0.0 0.0 0.0 248 -249 0.00144791603088379 0.0 0.0 0.0 249 -250 0.00143003463745117 0.0 0.0 0.0 250 -251 0.00143313407897949 0.0 0.0 0.0 251 -252 0.00141406059265137 0.0 0.0 0.0 252 -253 0.00143194198608398 0.0 0.0 0.0 253 -254 0.00141596794128418 0.0 0.0 0.0 254 -255 0.00141811370849609 0.0 0.0 0.0 255 -256 0.00142002105712891 0.0100000000000007 0.0100000000000007 0.0 256 -257 0.0014190673828125 0.0 0.0 0.0 257 -258 0.00141000747680664 0.0 0.0 0.0 258 -259 0.00142097473144531 0.0 0.0 0.0 259 -260 0.00142192840576172 0.0 0.0 0.0 260 -261 0.00141096115112305 0.0 0.0 0.0 261 -262 0.00141215324401855 0.0 0.0 0.0 262 -263 0.00141501426696777 0.00999999999999979 0.00999999999999979 0.0 263 -264 0.00141096115112305 0.0 0.0 0.0 264 -265 0.00140213966369629 0.0 0.0 0.0 265 -266 0.00142192840576172 0.0 0.0 0.0 266 -267 0.0014030933380127 0.0 0.0 0.0 267 -268 0.00141596794128418 0.0 0.0 0.0 268 -269 0.00141000747680664 0.0 0.0 0.0 269 -270 0.00141406059265137 0.00999999999999979 0.00999999999999979 0.0 270 -271 0.00140810012817383 0.0 0.0 0.0 271 -272 0.00141215324401855 0.0 0.0 0.0 272 -273 0.00139999389648438 0.0 0.0 0.0 273 -274 0.00139093399047852 0.0 0.0 0.0 274 -275 0.00149083137512207 0.0 0.0 0.0 275 -276 0.00139594078063965 0.0 0.0 0.0 276 -277 0.00141191482543945 0.00999999999999979 0.00999999999999979 0.0 277 -278 0.0013887882232666 0.0 0.0 0.0 278 -279 0.00141382217407227 0.0 0.0 0.0 279 -280 0.0014030933380127 0.0 0.0 0.0 280 -281 0.00141787528991699 0.0 0.0 0.0 281 -282 0.0014030933380127 0.0 0.0 0.0 282 -283 0.00140714645385742 0.0100000000000007 0.0100000000000007 0.0 283 -284 0.00139999389648438 0.0 0.0 0.0 284 -285 0.00139904022216797 0.0 0.0 0.0 285 -286 0.00141000747680664 0.0 0.0 0.0 286 -287 0.00139498710632324 0.0 0.0 0.0 287 -288 0.00140500068664551 0.0 0.0 0.0 288 -289 0.00140810012817383 0.0 0.0 0.0 289 -290 0.00141096115112305 0.00999999999999979 0.00999999999999979 0.0 290 -291 0.0014030933380127 0.0 0.0 0.0 291 -292 0.00141692161560059 0.0 0.0 0.0 292 -293 0.00140786170959473 0.0 0.0 0.0 293 -294 0.00140810012817383 0.0 0.0 0.0 294 -295 0.00141000747680664 0.0 0.0 0.0 295 -296 0.00139212608337402 0.0 0.0 0.0 296 -297 0.00141406059265137 0.0 0.0 0.0 297 -298 0.0013890266418457 0.00999999999999979 0.00999999999999979 0.0 298 -299 0.00141096115112305 0.0 0.0 0.0 299 -300 0.00139379501342773 0.0 0.0 0.0 300 -301 0.00141501426696777 0.0 0.0 0.0 301 -302 0.00139498710632324 0.0 0.0 0.0 302 -303 0.00139594078063965 0.0 0.0 0.0 303 -304 0.00140690803527832 0.0 0.0 0.0 304 -305 0.00188708305358887 0.00999999999999979 0.00999999999999979 0.0 305 -306 0.00266003608703613 0.0 0.0 0.0 306 -307 0.00257205963134766 0.0 0.0 0.0 307 -308 0.0239479541778564 0.0300000000000002 0.0300000000000002 0.0 308 -309 0.0016789436340332 0.0 0.0 0.0 309 -310 0.00142788887023926 0.0 0.0 0.0 310 -311 0.00144720077514648 0.0 0.0 0.0 311 -312 0.00142407417297363 0.0 0.0 0.0 312 -313 0.00144100189208984 0.0 0.0 0.0 313 -314 0.00140810012817383 0.0 0.0 0.0 314 -315 0.00142502784729004 0.00999999999999979 0.00999999999999979 0.0 315 -316 0.00141501426696777 0.0 0.0 0.0 316 -317 0.00142884254455566 0.0 0.0 0.0 317 -318 0.00140810012817383 0.0 0.0 0.0 318 -319 0.00141692161560059 0.0 0.0 0.0 319 -320 0.00141096115112305 0.0 0.0 0.0 320 -321 0.00143098831176758 0.0 0.0 0.0 321 -322 0.00141501426696777 0.00999999999999979 0.00999999999999979 0.0 322 -323 0.00141501426696777 0.0 0.0 0.0 323 -324 0.00140595436096191 0.0 0.0 0.0 324 -325 0.00141692161560059 0.0 0.0 0.0 325 -326 0.00150609016418457 0.0 0.0 0.0 326 -327 0.00142478942871094 0.0 0.0 0.0 327 -328 0.00141191482543945 0.0 0.0 0.0 328 -329 0.00140190124511719 0.0100000000000007 0.0100000000000007 0.0 329 -330 0.00142121315002441 0.0 0.0 0.0 330 -331 0.00140500068664551 0.0 0.0 0.0 331 -332 0.00142288208007812 0.0 0.0 0.0 332 -333 0.00139188766479492 0.0 0.0 0.0 333 -334 0.00141811370849609 0.0 0.0 0.0 334 -335 0.00139999389648438 0.0 0.0 0.0 335 -336 0.00138592720031738 0.00999999999999979 0.00999999999999979 0.0 336 -337 0.00139522552490234 0.0 0.0 0.0 337 -338 0.00139093399047852 0.0 0.0 0.0 338 -339 0.00140500068664551 0.0 0.0 0.0 339 -340 0.00138497352600098 0.0 0.0 0.0 340 -341 0.00139999389648438 0.0 0.0 0.0 341 -342 0.00139594078063965 0.0 0.0 0.0 342 -343 0.00139617919921875 0.00999999999999979 0.00999999999999979 0.0 343 -344 0.00139784812927246 0.0 0.0 0.0 344 -345 0.00139784812927246 0.0 0.0 0.0 345 -346 0.00141716003417969 0.0 0.0 0.0 346 -347 0.00139307975769043 0.0 0.0 0.0 347 -348 0.00141191482543945 0.0 0.0 0.0 348 -349 0.00139999389648438 0.0 0.0 0.0 349 -350 0.00140380859375 0.00999999999999979 0.00999999999999979 0.0 350 -351 0.00140500068664551 0.0 0.0 0.0 351 -352 0.00149989128112793 0.0 0.0 0.0 352 -353 0.00278902053833008 0.0 0.0 0.0 353 -354 0.00261592864990234 0.0 0.0 0.0 354 -355 0.00245213508605957 0.0100000000000007 0.0100000000000007 0.0 355 -356 0.00246095657348633 0.0 0.0 0.0 356 -357 0.00265288352966309 0.0 0.0 0.0 357 -358 0.00261092185974121 0.00999999999999979 0.00999999999999979 0.0 358 -359 0.00242495536804199 0.0 0.0 0.0 359 -360 0.00170683860778809 0.0 0.0 0.0 360 -361 0.00139093399047852 0.0 0.0 0.0 361 -362 0.00142908096313477 0.0 0.0 0.0 362 -363 0.00140976905822754 0.0 0.0 0.0 363 -364 0.00142288208007812 0.00999999999999979 0.00999999999999979 0.0 364 -365 0.00140380859375 0.0 0.0 0.0 365 -366 0.00140714645385742 0.0 0.0 0.0 366 -367 0.00139594078063965 0.0 0.0 0.0 367 -368 0.00140118598937988 0.0 0.0 0.0 368 -369 0.0262439250946045 0.0300000000000002 0.0200000000000005 0.01 369 -370 0.00150489807128906 0.00999999999999979 0.00999999999999979 0.0 370 -371 0.00143313407897949 0.0 0.0 0.0 371 -372 0.00153613090515137 0.0 0.0 0.0 372 -373 0.00143313407897949 0.0 0.0 0.0 373 -374 0.00144290924072266 0.0 0.0 0.0 374 -375 0.00142097473144531 0.0 0.0 0.0 375 -376 0.00142097473144531 0.0 0.0 0.0 376 -377 0.00140810012817383 0.00999999999999979 0.00999999999999979 0.0 377 -378 0.00140690803527832 0.0 0.0 0.0 378 -379 0.0014338493347168 0.0 0.0 0.0 379 -380 0.00142192840576172 0.0 0.0 0.0 380 -381 0.00142502784729004 0.0 0.0 0.0 381 -382 0.00140595436096191 0.0 0.0 0.0 382 -383 0.00141811370849609 0.0 0.0 0.0 383 -384 0.00143003463745117 0.00999999999999979 0.00999999999999979 0.0 384 -385 0.00141596794128418 0.0 0.0 0.0 385 -386 0.00140619277954102 0.0 0.0 0.0 386 -387 0.00142288208007812 0.0 0.0 0.0 387 -388 0.00142002105712891 0.0 0.0 0.0 388 -389 0.00141596794128418 0.0 0.0 0.0 389 -390 0.00142407417297363 0.0 0.0 0.0 390 -391 0.00138282775878906 0.0100000000000007 0.0100000000000007 0.0 391 -392 0.00141501426696777 0.0 0.0 0.0 392 -393 0.00139188766479492 0.0 0.0 0.0 393 -394 0.00141382217407227 0.0 0.0 0.0 394 -395 0.00140714645385742 0.0 0.0 0.0 395 -396 0.00141000747680664 0.0 0.0 0.0 396 -397 0.00139307975769043 0.0 0.0 0.0 397 -398 0.00139307975769043 0.00999999999999979 0.00999999999999979 0.0 398 -399 0.00141000747680664 0.0 0.0 0.0 399 -400 0.00138998031616211 0.0 0.0 0.0 400 -401 0.00140213966369629 0.0 0.0 0.0 401 -402 0.00139904022216797 0.0 0.0 0.0 402 -403 0.00141191482543945 0.0 0.0 0.0 403 -404 0.00139999389648438 0.0 0.0 0.0 404 -405 0.00139188766479492 0.00999999999999979 0.00999999999999979 0.0 405 -406 0.00142502784729004 0.0 0.0 0.0 406 -407 0.00139904022216797 0.0 0.0 0.0 407 -408 0.00157594680786133 0.0 0.0 0.0 408 -409 0.00140500068664551 0.0 0.0 0.0 409 -410 0.00139784812927246 0.0 0.0 0.0 410 -411 0.00139188766479492 0.0 0.0 0.0 411 -412 0.00141215324401855 0.00999999999999979 0.00999999999999979 0.0 412 -413 0.00137901306152344 0.0 0.0 0.0 413 -414 0.0014040470123291 0.0 0.0 0.0 414 -415 0.00138497352600098 0.0 0.0 0.0 415 -416 0.00140285491943359 0.0 0.0 0.0 416 -417 0.00147199630737305 0.0 0.0 0.0 417 -418 0.00141096115112305 0.0100000000000007 0.0100000000000007 0.0 418 -419 0.0013890266418457 0.0 0.0 0.0 419 -420 0.00139093399047852 0.0 0.0 0.0 420 -421 0.00139999389648438 0.0 0.0 0.0 421 -422 0.00141406059265137 0.0 0.0 0.0 422 -423 0.00142383575439453 0.0 0.0 0.0 423 -424 0.00139904022216797 0.0 0.0 0.0 424 -425 0.00141310691833496 0.00999999999999979 0.00999999999999979 0.0 425 -426 0.0013880729675293 0.0 0.0 0.0 426 -427 0.00140094757080078 0.0 0.0 0.0 427 -428 0.00140786170959473 0.0 0.0 0.0 428 -429 0.00139880180358887 0.0 0.0 0.0 429 -430 0.00140118598937988 0.0 0.0 0.0 430 -431 0.0276179313659668 0.0299999999999994 0.0299999999999994 0.0 431 -432 0.00144100189208984 0.0 0.0 0.0 432 -433 0.00150609016418457 0.0 0.0 0.0 433 -434 0.0014500617980957 0.0 0.0 0.0 434 -435 0.00144720077514648 0.0100000000000007 0.0100000000000007 0.0 435 -436 0.00142598152160645 0.0 0.0 0.0 436 -437 0.00144004821777344 0.0 0.0 0.0 437 -438 0.00141215324401855 0.0 0.0 0.0 438 -439 0.00140690803527832 0.0 0.0 0.0 439 -440 0.00140905380249023 0.0 0.0 0.0 440 -441 0.00141191482543945 0.0 0.0 0.0 441 -442 0.00141382217407227 0.00999999999999979 0.00999999999999979 0.0 442 -443 0.00141382217407227 0.0 0.0 0.0 443 -444 0.00142979621887207 0.0 0.0 0.0 444 -445 0.00140786170959473 0.0 0.0 0.0 445 -446 0.00141787528991699 0.0 0.0 0.0 446 -447 0.00142502784729004 0.0 0.0 0.0 447 -448 0.00141716003417969 0.00999999999999979 0.00999999999999979 0.0 448 -449 0.00141692161560059 0.0 0.0 0.0 449 -450 0.00142502784729004 0.0 0.0 0.0 450 -451 0.00140690803527832 0.0 0.0 0.0 451 -452 0.00139808654785156 0.0 0.0 0.0 452 -453 0.00140094757080078 0.0 0.0 0.0 453 -454 0.00141501426696777 0.0 0.0 0.0 454 -455 0.00142598152160645 0.00999999999999979 0.00999999999999979 0.0 455 -456 0.00140595436096191 0.0 0.0 0.0 456 -457 0.00141096115112305 0.0 0.0 0.0 457 -458 0.00138306617736816 0.0 0.0 0.0 458 -459 0.00140500068664551 0.0 0.0 0.0 459 -460 0.00141096115112305 0.0 0.0 0.0 460 -461 0.0013880729675293 0.0 0.0 0.0 461 -462 0.00140094757080078 0.0100000000000007 0.0100000000000007 0.0 462 -463 0.00139594078063965 0.0 0.0 0.0 463 -464 0.00141310691833496 0.0 0.0 0.0 464 -465 0.00138282775878906 0.0 0.0 0.0 465 -466 0.00141596794128418 0.0 0.0 0.0 466 -467 0.00141692161560059 0.0 0.0 0.0 467 -468 0.00142002105712891 0.0 0.0 0.0 468 -469 0.00139999389648438 0.00999999999999979 0.00999999999999979 0.0 469 -470 0.00137901306152344 0.0 0.0 0.0 470 -471 0.00140595436096191 0.0 0.0 0.0 471 -472 0.0013880729675293 0.0 0.0 0.0 472 -473 0.00141310691833496 0.0 0.0 0.0 473 -474 0.0014040470123291 0.0 0.0 0.0 474 -475 0.00141406059265137 0.0 0.0 0.0 475 -476 0.00139713287353516 0.00999999999999979 0.00999999999999979 0.0 476 -477 0.00139307975769043 0.0 0.0 0.0 477 -478 0.00140786170959473 0.0 0.0 0.0 478 -479 0.00139784812927246 0.0 0.0 0.0 479 -480 0.00139784812927246 0.0 0.0 0.0 480 -481 0.00139999389648438 0.0 0.0 0.0 481 -482 0.00140190124511719 0.0 0.0 0.0 482 -483 0.00139594078063965 0.00999999999999979 0.00999999999999979 0.0 483 -484 0.0014188289642334 0.0 0.0 0.0 484 -485 0.00140810012817383 0.0 0.0 0.0 485 -486 0.00141596794128418 0.0 0.0 0.0 486 -487 0.0014030933380127 0.0 0.0 0.0 487 -488 0.00141596794128418 0.0 0.0 0.0 488 -489 0.00141811370849609 0.0 0.0 0.0 489 -490 0.00140094757080078 0.0100000000000007 0.0100000000000007 0.0 490 -491 0.00142717361450195 0.0 0.0 0.0 491 -492 0.00140190124511719 0.0 0.0 0.0 492 -493 0.0237669944763184 0.0199999999999996 0.0199999999999996 0.0 493 -494 0.00249719619750977 0.0 0.0 0.0 494 -495 0.00208711624145508 0.0 0.0 0.0 495 -496 0.00229597091674805 0.00999999999999979 0.00999999999999979 0.0 496 -497 0.00143194198608398 0.0 0.0 0.0 497 -498 0.00144100189208984 0.0 0.0 0.0 498 -499 0.00142002105712891 0.0 0.0 0.0 499 -500 0.00144791603088379 0.0 0.0 0.0 500 -501 0.00140190124511719 0.0 0.0 0.0 501 -502 0.00142192840576172 0.0 0.0 0.0 502 -503 0.00142502784729004 0.0100000000000007 0.0100000000000007 0.0 503 -504 0.0014350414276123 0.0 0.0 0.0 504 -505 0.00141811370849609 0.0 0.0 0.0 505 -506 0.00141811370849609 0.0 0.0 0.0 506 -507 0.00141596794128418 0.0 0.0 0.0 507 -508 0.00141501426696777 0.0 0.0 0.0 508 -509 0.00140094757080078 0.0 0.0 0.0 509 -510 0.00142502784729004 0.00999999999999979 0.00999999999999979 0.0 510 -511 0.0014350414276123 0.0 0.0 0.0 511 -512 0.00139403343200684 0.0 0.0 0.0 512 -513 0.00142598152160645 0.0 0.0 0.0 513 -514 0.00142598152160645 0.0 0.0 0.0 514 -515 0.00181007385253906 0.0 0.0 0.0 515 -516 0.00142097473144531 0.0 0.0 0.0 516 -517 0.0014030933380127 0.00999999999999979 0.00999999999999979 0.0 517 -518 0.00141310691833496 0.0 0.0 0.0 518 -519 0.00140595436096191 0.0 0.0 0.0 519 -520 0.00139999389648438 0.0 0.0 0.0 520 -521 0.00140881538391113 0.0 0.0 0.0 521 -522 0.00139498710632324 0.0 0.0 0.0 522 -523 0.00141406059265137 0.0 0.0 0.0 523 -524 0.00139307975769043 0.00999999999999979 0.00999999999999979 0.0 524 -525 0.0014040470123291 0.0 0.0 0.0 525 -526 0.00141501426696777 0.0 0.0 0.0 526 -527 0.00141716003417969 0.0 0.0 0.0 527 -528 0.00141501426696777 0.0 0.0 0.0 528 -529 0.00147104263305664 0.0 0.0 0.0 529 -530 0.00141096115112305 0.0 0.0 0.0 530 -531 0.00140213966369629 0.0100000000000007 0.0100000000000007 0.0 531 -532 0.00141406059265137 0.0 0.0 0.0 532 -533 0.00139904022216797 0.0 0.0 0.0 533 -534 0.00139403343200684 0.0 0.0 0.0 534 -535 0.00139713287353516 0.0 0.0 0.0 535 -536 0.00140786170959473 0.0 0.0 0.0 536 -537 0.00139403343200684 0.0 0.0 0.0 537 -538 0.00140714645385742 0.00999999999999979 0.00999999999999979 0.0 538 -539 0.00139093399047852 0.0 0.0 0.0 539 -540 0.00140094757080078 0.0 0.0 0.0 540 -541 0.00138711929321289 0.0 0.0 0.0 541 -542 0.00140500068664551 0.0 0.0 0.0 542 -543 0.00141406059265137 0.0 0.0 0.0 543 -544 0.0014030933380127 0.0 0.0 0.0 544 -545 0.00138497352600098 0.00999999999999979 0.00999999999999979 0.0 545 -546 0.00148582458496094 0.0 0.0 0.0 546 -547 0.00141191482543945 0.0 0.0 0.0 547 -548 0.00141119956970215 0.0 0.0 0.0 548 -549 0.00140690803527832 0.0 0.0 0.0 549 -550 0.00140881538391113 0.0 0.0 0.0 550 -551 0.00141286849975586 0.00999999999999979 0.00999999999999979 0.0 551 -552 0.00141286849975586 0.0 0.0 0.0 552 -553 0.00139021873474121 0.0 0.0 0.0 553 -554 0.0234880447387695 0.0200000000000005 0.0200000000000005 0.0 554 -555 0.00147581100463867 0.0 0.0 0.0 555 -556 0.00144290924072266 0.0 0.0 0.0 556 -557 0.00200700759887695 0.00999999999999979 0.00999999999999979 0.0 557 -558 0.00271010398864746 0.0 0.0 0.0 558 -559 0.00263786315917969 0.0 0.0 0.0 559 -560 0.00255584716796875 0.0 0.0 0.0 560 -561 0.0022728443145752 0.00999999999999979 0.00999999999999979 0.0 561 -562 0.0014340877532959 0.0 0.0 0.0 562 -563 0.00143599510192871 0.0 0.0 0.0 563 -564 0.00140905380249023 0.0 0.0 0.0 564 -565 0.00140786170959473 0.0 0.0 0.0 565 -566 0.00142693519592285 0.0 0.0 0.0 566 -567 0.00141596794128418 0.00999999999999979 0.00999999999999979 0.0 567 -568 0.00147199630737305 0.0 0.0 0.0 568 -569 0.00142502784729004 0.0 0.0 0.0 569 -570 0.00143003463745117 0.0 0.0 0.0 570 -571 0.00140595436096191 0.0 0.0 0.0 571 -572 0.00144600868225098 0.0 0.0 0.0 572 -573 0.00141096115112305 0.0 0.0 0.0 573 -574 0.00142717361450195 0.0100000000000007 0.0100000000000007 0.0 574 -575 0.0025019645690918 0.0 0.0 0.0 575 -576 0.00191497802734375 0.0 0.0 0.0 576 -577 0.00141119956970215 0.0 0.0 0.0 577 -578 0.00140690803527832 0.0 0.0 0.0 578 -579 0.00141501426696777 0.00999999999999979 0.00999999999999979 0.0 579 -580 0.00141692161560059 0.0 0.0 0.0 580 -581 0.00139212608337402 0.0 0.0 0.0 581 -582 0.00140810012817383 0.0 0.0 0.0 582 -583 0.00139307975769043 0.0 0.0 0.0 583 -584 0.00139498710632324 0.0 0.0 0.0 584 -585 0.0014030933380127 0.0 0.0 0.0 585 -586 0.0014030933380127 0.00999999999999979 0.00999999999999979 0.0 586 -587 0.00141096115112305 0.0 0.0 0.0 587 -588 0.00140500068664551 0.0 0.0 0.0 588 -589 0.00144505500793457 0.0 0.0 0.0 589 -590 0.00141191482543945 0.0 0.0 0.0 590 -591 0.00140213966369629 0.0 0.0 0.0 591 -592 0.00139594078063965 0.0 0.0 0.0 592 -593 0.00141096115112305 0.00999999999999979 0.00999999999999979 0.0 593 -594 0.00139093399047852 0.0 0.0 0.0 594 -595 0.00148797035217285 0.0 0.0 0.0 595 -596 0.00139999389648438 0.0 0.0 0.0 596 -597 0.00139689445495605 0.0 0.0 0.0 597 -598 0.00140094757080078 0.0 0.0 0.0 598 -599 0.00140786170959473 0.0 0.0 0.0 599 -600 0.00140810012817383 0.0100000000000007 0.0100000000000007 0.0 600 -601 0.00140810012817383 0.0 0.0 0.0 601 -602 0.00140500068664551 0.0 0.0 0.0 602 -603 0.00139093399047852 0.0 0.0 0.0 603 -604 0.00142192840576172 0.0 0.0 0.0 604 -605 0.00138998031616211 0.0 0.0 0.0 605 -606 0.00140213966369629 0.0 0.0 0.0 606 -607 0.00140285491943359 0.00999999999999979 0.00999999999999979 0.0 607 -608 0.00141000747680664 0.0 0.0 0.0 608 -609 0.00140190124511719 0.0 0.0 0.0 609 -610 0.00142097473144531 0.0 0.0 0.0 610 -611 0.00139689445495605 0.0 0.0 0.0 611 -612 0.00147509574890137 0.0 0.0 0.0 612 -613 0.00141000747680664 0.0 0.0 0.0 613 -614 0.00140285491943359 0.00999999999999979 0.00999999999999979 0.0 614 -615 0.00142002105712891 0.0 0.0 0.0 615 -616 0.0232539176940918 0.0200000000000005 0.0200000000000005 0.0 616 -617 0.00145983695983887 0.0 0.0 0.0 617 -618 0.00142908096313477 0.0 0.0 0.0 618 -619 0.00143790245056152 0.00999999999999979 0.00999999999999979 0.0 619 -620 0.00141000747680664 0.0 0.0 0.0 620 -621 0.00141692161560059 0.0 0.0 0.0 621 -622 0.00142216682434082 0.0 0.0 0.0 622 -623 0.00140905380249023 0.0 0.0 0.0 623 -624 0.00142598152160645 0.0 0.0 0.0 624 -625 0.00141096115112305 0.0 0.0 0.0 625 -626 0.00142097473144531 0.00999999999999979 0.00999999999999979 0.0 626 -627 0.00149297714233398 0.0 0.0 0.0 627 -628 0.0014348030090332 0.0 0.0 0.0 628 -629 0.00148200988769531 0.0 0.0 0.0 629 -630 0.0014040470123291 0.0 0.0 0.0 630 -631 0.00141596794128418 0.0 0.0 0.0 631 -632 0.00142216682434082 0.0 0.0 0.0 632 -633 0.00139999389648438 0.00999999999999979 0.00999999999999979 0.0 633 -634 0.00142693519592285 0.0 0.0 0.0 634 -635 0.00141692161560059 0.0 0.0 0.0 635 -636 0.00141501426696777 0.0 0.0 0.0 636 -637 0.00140976905822754 0.0 0.0 0.0 637 -638 0.00140500068664551 0.0 0.0 0.0 638 -639 0.00141787528991699 0.0 0.0 0.0 639 -640 0.0013880729675293 0.0100000000000007 0.0100000000000007 0.0 640 -641 0.00142812728881836 0.0 0.0 0.0 641 -642 0.0014040470123291 0.0 0.0 0.0 642 -643 0.0013880729675293 0.0 0.0 0.0 643 -644 0.00140810012817383 0.0 0.0 0.0 644 -645 0.00142192840576172 0.0 0.0 0.0 645 -646 0.00140810012817383 0.0 0.0 0.0 646 -647 0.00140190124511719 0.00999999999999979 0.00999999999999979 0.0 647 -648 0.00148701667785645 0.0 0.0 0.0 648 -649 0.0014040470123291 0.0 0.0 0.0 649 -650 0.00140094757080078 0.0 0.0 0.0 650 -651 0.00139904022216797 0.0 0.0 0.0 651 -652 0.00141811370849609 0.0 0.0 0.0 652 -653 0.00139403343200684 0.0 0.0 0.0 653 -654 0.00141191482543945 0.00999999999999979 0.00999999999999979 0.0 654 -655 0.00140500068664551 0.0 0.0 0.0 655 -656 0.00141096115112305 0.0 0.0 0.0 656 -657 0.00185894966125488 0.0 0.0 0.0 657 -658 0.00141286849975586 0.0 0.0 0.0 658 -659 0.00149917602539062 0.0 0.0 0.0 659 -660 0.00140190124511719 0.0 0.0 0.0 660 -661 0.00139188766479492 0.00999999999999979 0.00999999999999979 0.0 661 -662 0.00138711929321289 0.0 0.0 0.0 662 -663 0.00139904022216797 0.0 0.0 0.0 663 -664 0.00141596794128418 0.0 0.0 0.0 664 -665 0.00139212608337402 0.0 0.0 0.0 665 -666 0.00141191482543945 0.0 0.0 0.0 666 -667 0.00139403343200684 0.0 0.0 0.0 667 -668 0.00140905380249023 0.0100000000000007 0.0100000000000007 0.0 668 -669 0.00139307975769043 0.0 0.0 0.0 669 -670 0.00139999389648438 0.0 0.0 0.0 670 -671 0.00142002105712891 0.0 0.0 0.0 671 -672 0.00139904022216797 0.0 0.0 0.0 672 -673 0.00142097473144531 0.0 0.0 0.0 673 -674 0.00140500068664551 0.0 0.0 0.0 674 -675 0.00139594078063965 0.00999999999999979 0.00999999999999979 0.0 675 -676 0.00139284133911133 0.0 0.0 0.0 676 -677 0.0242998600006104 0.0199999999999996 0.0199999999999996 0.0 677 -678 0.00148987770080566 0.0 0.0 0.0 678 -679 0.00144290924072266 0.0 0.0 0.0 679 -680 0.00143098831176758 0.0100000000000007 0.0100000000000007 0.0 680 -681 0.00144410133361816 0.0 0.0 0.0 681 -682 0.00142598152160645 0.0 0.0 0.0 682 -683 0.00140094757080078 0.0 0.0 0.0 683 -684 0.00146293640136719 0.0 0.0 0.0 684 -685 0.00141811370849609 0.0 0.0 0.0 685 -686 0.00143098831176758 0.0 0.0 0.0 686 -687 0.00144100189208984 0.00999999999999979 0.00999999999999979 0.0 687 -688 0.00143003463745117 0.0 0.0 0.0 688 -689 0.00141406059265137 0.0 0.0 0.0 689 -690 0.00143194198608398 0.0 0.0 0.0 690 -691 0.0014040470123291 0.0 0.0 0.0 691 -692 0.00141191482543945 0.0 0.0 0.0 692 -693 0.00259590148925781 0.00999999999999979 0.00999999999999979 0.0 693 -694 0.00263714790344238 0.0 0.0 0.0 694 -695 0.00258207321166992 0.0 0.0 0.0 695 -696 0.00255298614501953 0.0 0.0 0.0 696 -697 0.00179100036621094 0.00999999999999979 0.00999999999999979 0.0 697 -698 0.00142312049865723 0.0 0.0 0.0 698 -699 0.00141215324401855 0.0 0.0 0.0 699 -700 0.00140094757080078 0.0 0.0 0.0 700 -701 0.00138998031616211 0.0 0.0 0.0 701 -702 0.00139999389648438 0.0 0.0 0.0 702 -703 0.00142312049865723 0.0 0.0 0.0 703 -704 0.00142812728881836 0.00999999999999979 0.00999999999999979 0.0 704 -705 0.00140690803527832 0.0 0.0 0.0 705 -706 0.00139999389648438 0.0 0.0 0.0 706 -707 0.00140500068664551 0.0 0.0 0.0 707 -708 0.00139498710632324 0.0 0.0 0.0 708 -709 0.00139498710632324 0.0 0.0 0.0 709 -710 0.0014030933380127 0.0 0.0 0.0 710 -711 0.00138497352600098 0.0100000000000007 0.0100000000000007 0.0 711 -712 0.00139498710632324 0.0 0.0 0.0 712 -713 0.00139904022216797 0.0 0.0 0.0 713 -714 0.00141000747680664 0.0 0.0 0.0 714 -715 0.00140118598937988 0.0 0.0 0.0 715 -716 0.00141406059265137 0.0 0.0 0.0 716 -717 0.00140094757080078 0.0 0.0 0.0 717 -718 0.00141787528991699 0.00999999999999979 0.00999999999999979 0.0 718 -719 0.00140714645385742 0.0 0.0 0.0 719 -720 0.00142097473144531 0.0 0.0 0.0 720 -721 0.0013880729675293 0.0 0.0 0.0 721 -722 0.00140094757080078 0.0 0.0 0.0 722 -723 0.0014190673828125 0.0 0.0 0.0 723 -724 0.00139117240905762 0.0 0.0 0.0 724 -725 0.00139784812927246 0.00999999999999979 0.00999999999999979 0.0 725 -726 0.00163793563842773 0.0 0.0 0.0 726 -727 0.00141406059265137 0.0 0.0 0.0 727 -728 0.00140500068664551 0.0 0.0 0.0 728 -729 0.00141692161560059 0.0 0.0 0.0 729 -730 0.00141000747680664 0.0 0.0 0.0 730 -731 0.00139594078063965 0.00999999999999979 0.00999999999999979 0.0 731 -732 0.00140595436096191 0.0 0.0 0.0 732 -733 0.00140881538391113 0.0 0.0 0.0 733 -734 0.00140500068664551 0.0 0.0 0.0 734 -735 0.00139904022216797 0.0 0.0 0.0 735 -736 0.00141787528991699 0.0 0.0 0.0 736 -737 0.00141406059265137 0.0 0.0 0.0 737 -738 0.00141000747680664 0.0100000000000007 0.0100000000000007 0.0 738 -739 0.0232431888580322 0.0199999999999996 0.0199999999999996 0.0 739 -740 0.00145602226257324 0.0 0.0 0.0 740 -741 0.00145196914672852 0.0 0.0 0.0 741 -742 0.00142693519592285 0.0 0.0 0.0 742 -743 0.00143599510192871 0.0 0.0 0.0 743 -744 0.00144100189208984 0.00999999999999979 0.00999999999999979 0.0 744 -745 0.00146389007568359 0.0 0.0 0.0 745 -746 0.00143003463745117 0.0 0.0 0.0 746 -747 0.00141501426696777 0.0 0.0 0.0 747 -748 0.00139808654785156 0.0 0.0 0.0 748 -749 0.00142097473144531 0.0 0.0 0.0 749 -750 0.00140905380249023 0.0 0.0 0.0 750 -751 0.00150108337402344 0.0100000000000007 0.0100000000000007 0.0 751 -752 0.00140714645385742 0.0 0.0 0.0 752 -753 0.00142908096313477 0.0 0.0 0.0 753 -754 0.0014040470123291 0.0 0.0 0.0 754 -755 0.00141501426696777 0.0 0.0 0.0 755 -756 0.00140094757080078 0.0 0.0 0.0 756 -757 0.00141215324401855 0.00999999999999979 0.00999999999999979 0.0 757 -758 0.00141000747680664 0.0 0.0 0.0 758 -759 0.00140714645385742 0.0 0.0 0.0 759 -760 0.00141096115112305 0.0 0.0 0.0 760 -761 0.00140213966369629 0.0 0.0 0.0 761 -762 0.0014188289642334 0.0 0.0 0.0 762 -763 0.00138497352600098 0.0 0.0 0.0 763 -764 0.00142192840576172 0.00999999999999979 0.00999999999999979 0.0 764 -765 0.00140380859375 0.0 0.0 0.0 765 -766 0.00153803825378418 0.0 0.0 0.0 766 -767 0.0013880729675293 0.0 0.0 0.0 767 -768 0.00141191482543945 0.0 0.0 0.0 768 -769 0.00139689445495605 0.0 0.0 0.0 769 -770 0.00144219398498535 0.0 0.0 0.0 770 -771 0.00145888328552246 0.00999999999999979 0.00999999999999979 0.0 771 -772 0.00142621994018555 0.0 0.0 0.0 772 -773 0.00138998031616211 0.0 0.0 0.0 773 -774 0.00141286849975586 0.0 0.0 0.0 774 -775 0.00140190124511719 0.0 0.0 0.0 775 -776 0.00139498710632324 0.0 0.0 0.0 776 -777 0.00141191482543945 0.0 0.0 0.0 777 -778 0.00138211250305176 0.0100000000000007 0.0100000000000007 0.0 778 -779 0.00141000747680664 0.0 0.0 0.0 779 -780 0.00139093399047852 0.0 0.0 0.0 780 -781 0.00139188766479492 0.0 0.0 0.0 781 -782 0.00139904022216797 0.0 0.0 0.0 782 -783 0.0013880729675293 0.0 0.0 0.0 783 -784 0.00139880180358887 0.0 0.0 0.0 784 -785 0.00137805938720703 0.00999999999999979 0.00999999999999979 0.0 785 -786 0.00141191482543945 0.0 0.0 0.0 786 -787 0.00139498710632324 0.0 0.0 0.0 787 -788 0.00141286849975586 0.0 0.0 0.0 788 -789 0.00140285491943359 0.0 0.0 0.0 789 -790 0.00140213966369629 0.0 0.0 0.0 790 -791 0.00139808654785156 0.0 0.0 0.0 791 -792 0.00141000747680664 0.00999999999999979 0.00999999999999979 0.0 792 -793 0.00142383575439453 0.0 0.0 0.0 793 -794 0.0014040470123291 0.0 0.0 0.0 794 -795 0.00141215324401855 0.0 0.0 0.0 795 -796 0.00140690803527832 0.0 0.0 0.0 796 -797 0.00139689445495605 0.0 0.0 0.0 797 -798 0.00139403343200684 0.0 0.0 0.0 798 -799 0.00141096115112305 0.00999999999999979 0.00999999999999979 0.0 799 -800 0.0231518745422363 0.0200000000000005 0.0200000000000005 0.0 800 -801 0.00148391723632812 0.0 0.0 0.0 801 -802 0.00144004821777344 0.0 0.0 0.0 802 -803 0.00144600868225098 0.0 0.0 0.0 803 -804 0.00148105621337891 0.00999999999999979 0.00999999999999979 0.0 804 -805 0.0014500617980957 0.0 0.0 0.0 805 -806 0.00141406059265137 0.0 0.0 0.0 806 -807 0.00140595436096191 0.0 0.0 0.0 807 -808 0.00142502784729004 0.0 0.0 0.0 808 -809 0.00140285491943359 0.0 0.0 0.0 809 -810 0.00142288208007812 0.0 0.0 0.0 810 -811 0.0014030933380127 0.00999999999999979 0.00999999999999979 0.0 811 -812 0.00139999389648438 0.0 0.0 0.0 812 -813 0.00141000747680664 0.0 0.0 0.0 813 -814 0.00140881538391113 0.0 0.0 0.0 814 -815 0.00143098831176758 0.0 0.0 0.0 815 -816 0.00140094757080078 0.0 0.0 0.0 816 -817 0.00143003463745117 0.0 0.0 0.0 817 -818 0.00140500068664551 0.0100000000000007 0.0100000000000007 0.0 818 -819 0.00142002105712891 0.0 0.0 0.0 819 -820 0.00141096115112305 0.0 0.0 0.0 820 -821 0.00142502784729004 0.0 0.0 0.0 821 -822 0.00141096115112305 0.0 0.0 0.0 822 -823 0.00140619277954102 0.0 0.0 0.0 823 -824 0.00139093399047852 0.0 0.0 0.0 824 -825 0.00139999389648438 0.00999999999999979 0.00999999999999979 0.0 825 -826 0.00139999389648438 0.0 0.0 0.0 826 -827 0.00140190124511719 0.0 0.0 0.0 827 -828 0.0014030933380127 0.0 0.0 0.0 828 -829 0.00139808654785156 0.0 0.0 0.0 829 -830 0.00140786170959473 0.0 0.0 0.0 830 -831 0.00171494483947754 0.0 0.0 0.0 831 -832 0.00259613990783691 0.0 0.0 0.0 832 -833 0.00256896018981934 0.0 0.0 0.0 833 -834 0.00258994102478027 0.0 0.0 0.0 834 -835 0.00195598602294922 0.00999999999999979 0.00999999999999979 0.0 835 -836 0.00141477584838867 0.0 0.0 0.0 836 -837 0.0014030933380127 0.0 0.0 0.0 837 -838 0.00140500068664551 0.0 0.0 0.0 838 -839 0.00138711929321289 0.0 0.0 0.0 839 -840 0.00139904022216797 0.0 0.0 0.0 840 -841 0.00139403343200684 0.0 0.0 0.0 841 -842 0.00141215324401855 0.00999999999999979 0.00999999999999979 0.0 842 -843 0.0014498233795166 0.0 0.0 0.0 843 -844 0.00139594078063965 0.0 0.0 0.0 844 -845 0.00139307975769043 0.0 0.0 0.0 845 -846 0.0013890266418457 0.0 0.0 0.0 846 -847 0.00141000747680664 0.0 0.0 0.0 847 -848 0.00138711929321289 0.0 0.0 0.0 848 -849 0.00221610069274902 0.0100000000000007 0.0100000000000007 0.0 849 -850 0.00145506858825684 0.0 0.0 0.0 850 -851 0.00141501426696777 0.0 0.0 0.0 851 -852 0.00145888328552246 0.0 0.0 0.0 852 -853 0.00140500068664551 0.0 0.0 0.0 853 -854 0.00139904022216797 0.0 0.0 0.0 854 -855 0.00137901306152344 0.0 0.0 0.0 855 -856 0.00144314765930176 0.00999999999999979 0.00999999999999979 0.0 856 -857 0.00139904022216797 0.0 0.0 0.0 857 -858 0.00142312049865723 0.0 0.0 0.0 858 -859 0.00139689445495605 0.0 0.0 0.0 859 -860 0.00140786170959473 0.0 0.0 0.0 860 -861 0.00139713287353516 0.0 0.0 0.0 861 -862 0.0231709480285645 0.0300000000000002 0.0300000000000002 0.0 862 -863 0.00148701667785645 0.0 0.0 0.0 863 -864 0.00143599510192871 0.0 0.0 0.0 864 -865 0.00144219398498535 0.0 0.0 0.0 865 -866 0.00142002105712891 0.0 0.0 0.0 866 -867 0.0014500617980957 0.0 0.0 0.0 867 -868 0.00142502784729004 0.00999999999999979 0.00999999999999979 0.0 868 -869 0.00141692161560059 0.0 0.0 0.0 869 -870 0.00142192840576172 0.0 0.0 0.0 870 -871 0.00142192840576172 0.0 0.0 0.0 871 -872 0.00141191482543945 0.0 0.0 0.0 872 -873 0.00143194198608398 0.0 0.0 0.0 873 -874 0.00142288208007812 0.0 0.0 0.0 874 -875 0.00142884254455566 0.00999999999999979 0.00999999999999979 0.0 875 -876 0.00160384178161621 0.0 0.0 0.0 876 -877 0.00264906883239746 0.0 0.0 0.0 877 -878 0.00261187553405762 0.0 0.0 0.0 878 -879 0.00243496894836426 0.00999999999999979 0.00999999999999979 0.0 879 -880 0.00259900093078613 0.0 0.0 0.0 880 -881 0.0026240348815918 0.0 0.0 0.0 881 -882 0.00248599052429199 0.0 0.0 0.0 882 -883 0.0024101734161377 0.0100000000000007 0.0100000000000007 0.0 883 -884 0.00142192840576172 0.0 0.0 0.0 884 -885 0.0014488697052002 0.0 0.0 0.0 885 -886 0.00140285491943359 0.0 0.0 0.0 886 -887 0.00140213966369629 0.0 0.0 0.0 887 -888 0.00141406059265137 0.0 0.0 0.0 888 -889 0.00139999389648438 0.0 0.0 0.0 889 -890 0.00140690803527832 0.00999999999999979 0.00999999999999979 0.0 890 -891 0.00139093399047852 0.0 0.0 0.0 891 -892 0.00140500068664551 0.0 0.0 0.0 892 -893 0.00140690803527832 0.0 0.0 0.0 893 -894 0.00141000747680664 0.0 0.0 0.0 894 -895 0.00140810012817383 0.0 0.0 0.0 895 -896 0.00139403343200684 0.0 0.0 0.0 896 -897 0.00140810012817383 0.00999999999999979 0.00999999999999979 0.0 897 -898 0.00140810012817383 0.0 0.0 0.0 898 -899 0.00143003463745117 0.0 0.0 0.0 899 -900 0.00141811370849609 0.0 0.0 0.0 900 -901 0.00142002105712891 0.0 0.0 0.0 901 -902 0.00138211250305176 0.0 0.0 0.0 902 -903 0.00141096115112305 0.00999999999999979 0.00999999999999979 0.0 903 -904 0.00140595436096191 0.0 0.0 0.0 904 -905 0.00140690803527832 0.0 0.0 0.0 905 -906 0.00141501426696777 0.0 0.0 0.0 906 -907 0.00139594078063965 0.0 0.0 0.0 907 -908 0.00142002105712891 0.0 0.0 0.0 908 -909 0.00139808654785156 0.0 0.0 0.0 909 -910 0.00140905380249023 0.0100000000000007 0.0100000000000007 0.0 910 -911 0.0014040470123291 0.0 0.0 0.0 911 -912 0.00139808654785156 0.0 0.0 0.0 912 -913 0.00141000747680664 0.0 0.0 0.0 913 -914 0.00140619277954102 0.0 0.0 0.0 914 -915 0.0014040470123291 0.0 0.0 0.0 915 -916 0.0014040470123291 0.0 0.0 0.0 916 -917 0.00141310691833496 0.00999999999999979 0.00999999999999979 0.0 917 -918 0.00147795677185059 0.0 0.0 0.0 918 -919 0.00141000747680664 0.0 0.0 0.0 919 -920 0.00140786170959473 0.0 0.0 0.0 920 -921 0.00141000747680664 0.0 0.0 0.0 921 -922 0.00140786170959473 0.0 0.0 0.0 922 -923 0.0234408378601074 0.0300000000000002 0.0300000000000002 0.0 923 -924 0.00142312049865723 0.0 0.0 0.0 924 -925 0.00144505500793457 0.0 0.0 0.0 925 -926 0.00144791603088379 0.0 0.0 0.0 926 -927 0.00144004821777344 0.0 0.0 0.0 927 -928 0.00142192840576172 0.0 0.0 0.0 928 -929 0.00143814086914062 0.00999999999999979 0.00999999999999979 0.0 929 -930 0.00141406059265137 0.0 0.0 0.0 930 -931 0.00141501426696777 0.0 0.0 0.0 931 -932 0.00142312049865723 0.0 0.0 0.0 932 -933 0.00141215324401855 0.0 0.0 0.0 933 -934 0.00143003463745117 0.0 0.0 0.0 934 -935 0.0014188289642334 0.0 0.0 0.0 935 -936 0.00142192840576172 0.00999999999999979 0.00999999999999979 0.0 936 -937 0.00142598152160645 0.0 0.0 0.0 937 -938 0.00143218040466309 0.0 0.0 0.0 938 -939 0.00140094757080078 0.0 0.0 0.0 939 -940 0.00141811370849609 0.0 0.0 0.0 940 -941 0.00142598152160645 0.0 0.0 0.0 941 -942 0.00143694877624512 0.0 0.0 0.0 942 -943 0.00146985054016113 0.00999999999999979 0.00999999999999979 0.0 943 -944 0.00139403343200684 0.0 0.0 0.0 944 -945 0.00141096115112305 0.0 0.0 0.0 945 -946 0.00140595436096191 0.0 0.0 0.0 946 -947 0.00140213966369629 0.0 0.0 0.0 947 -948 0.00139594078063965 0.0 0.0 0.0 948 -949 0.00140190124511719 0.0 0.0 0.0 949 -950 0.00140213966369629 0.0100000000000007 0.0100000000000007 0.0 950 -951 0.0014040470123291 0.0 0.0 0.0 951 -952 0.00139999389648438 0.0 0.0 0.0 952 -953 0.00139904022216797 0.0 0.0 0.0 953 -954 0.00139617919921875 0.0 0.0 0.0 954 -955 0.00141000747680664 0.0 0.0 0.0 955 -956 0.00141716003417969 0.0 0.0 0.0 956 -957 0.00139594078063965 0.00999999999999979 0.00999999999999979 0.0 957 -958 0.00141096115112305 0.0 0.0 0.0 958 -959 0.00139999389648438 0.0 0.0 0.0 959 -960 0.00141787528991699 0.0 0.0 0.0 960 -961 0.00139808654785156 0.0 0.0 0.0 961 -962 0.0014030933380127 0.0 0.0 0.0 962 -963 0.00140810012817383 0.0 0.0 0.0 963 -964 0.00203394889831543 0.00999999999999979 0.00999999999999979 0.0 964 -965 0.00265693664550781 0.0 0.0 0.0 965 -966 0.00261211395263672 0.0 0.0 0.0 966 -967 0.00254082679748535 0.0 0.0 0.0 967 -968 0.00202393531799316 0.00999999999999979 0.00999999999999979 0.0 968 -969 0.00142693519592285 0.0 0.0 0.0 969 -970 0.00139784812927246 0.0 0.0 0.0 970 -971 0.00140213966369629 0.0 0.0 0.0 971 -972 0.00139594078063965 0.0 0.0 0.0 972 -973 0.00141501426696777 0.0 0.0 0.0 973 -974 0.0014030933380127 0.00999999999999979 0.00999999999999979 0.0 974 -975 0.00144290924072266 0.0 0.0 0.0 975 -976 0.00140500068664551 0.0 0.0 0.0 976 -977 0.00140690803527832 0.0 0.0 0.0 977 -978 0.00142502784729004 0.0 0.0 0.0 978 -979 0.00141000747680664 0.0 0.0 0.0 979 -980 0.00141501426696777 0.0 0.0 0.0 980 -981 0.00140118598937988 0.0100000000000007 0.0100000000000007 0.0 981 -982 0.00142693519592285 0.0 0.0 0.0 982 -983 0.00141310691833496 0.0 0.0 0.0 983 -984 0.00140690803527832 0.0 0.0 0.0 984 -985 0.0233311653137207 0.0199999999999996 0.0199999999999996 0.0 985 -986 0.00148701667785645 0.00999999999999979 0.00999999999999979 0.0 986 -987 0.00144100189208984 0.0 0.0 0.0 987 -988 0.00140595436096191 0.0 0.0 0.0 988 -989 0.00144505500793457 0.0 0.0 0.0 989 -990 0.00142598152160645 0.0 0.0 0.0 990 -991 0.0014491081237793 0.0 0.0 0.0 991 -992 0.00139904022216797 0.0 0.0 0.0 992 -993 0.00142788887023926 0.0100000000000007 0.0100000000000007 0.0 993 -994 0.00141382217407227 0.0 0.0 0.0 994 -995 0.00141119956970215 0.0 0.0 0.0 995 -996 0.00139999389648438 0.0 0.0 0.0 996 -997 0.00142192840576172 0.0 0.0 0.0 997 -998 0.0014197826385498 0.0 0.0 0.0 998 -999 0.00142288208007812 0.0 0.0 0.0 999 -1000 0.00141811370849609 0.00999999999999979 0.00999999999999979 0.0 1000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat deleted file mode 100644 index 238a8f3..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat +++ /dev/null @@ -1,900 +0,0 @@ -#lag autocorrelation -101 1.0 -102 0.00222153397099066 -103 -0.0143375943792822 -104 -0.0230145315894251 -105 -0.0272569948085685 -106 -0.0289478311233791 -107 -0.0239202547218024 -108 -0.0254569116577405 -109 -0.0204533758607008 -110 -0.0264699250769266 -111 -0.0247691307865804 -112 -0.0281656685433677 -113 -0.0282797510426555 -114 -0.0264980555156702 -115 -0.0264456484724888 -116 -0.027624326287035 -117 -0.0204913232518958 -118 -0.0136418899889287 -119 -0.0164287250050804 -120 -0.0160068899951543 -121 -0.0213508645203322 -122 -0.0261094503544549 -123 -0.0283361918761636 -124 -0.0221634425280319 -125 -0.0200377132134378 -126 -0.0158156288853482 -127 -0.0184937620769426 -128 -0.0167418191590156 -129 -0.0267897605444739 -130 -0.0277175604156327 -131 -0.0255031340290104 -132 -0.0259704766205717 -133 -0.026687135609607 -134 -0.0259098393314182 -135 -0.0257383295981194 -136 -0.0223218665246626 -137 -0.0237310896666623 -138 -0.0241241330086241 -139 -0.0289642979203642 -140 -0.0268317636147499 -141 -0.0245114013773254 -142 -0.0203659369554139 -143 0.0378050317430218 -144 0.426940829336361 -145 0.38796107377986 -146 0.0415547540823161 -147 -0.0195440376652659 -148 -0.0255053999646579 -149 -0.0275465915036962 -150 -0.0268562381835056 -151 -0.0234577846735018 -152 -0.0209532827400553 -153 -0.0189455488110332 -154 -0.02305883351641 -155 -0.0263771953757563 -156 -0.0280604279698784 -157 -0.0270717426772097 -158 -0.0246648903144108 -159 -0.0247175651482116 -160 -0.021051073568524 -161 -0.0163198388224076 -162 -0.0144235534240568 -163 -0.0136936717999382 -164 -0.01698846339106 -165 -0.0172619597265475 -166 -0.022224434827852 -167 -0.0219642323974638 -168 -0.0213243463149422 -169 -0.0192387869040187 -170 -0.0197178180625259 -171 -0.0247915784961403 -172 -0.0218270561892234 -173 -0.0262672996245232 -174 -0.024849965587679 -175 -0.0250252615288926 -176 -0.0251007165159392 -177 -0.0238806074688618 -178 -0.0238757651256144 -179 -0.0240426101294269 -180 -0.0234219466443065 -181 -0.0212602833600402 -182 -0.0229991714197526 -183 -0.0261227540349392 -184 -0.0221623986521011 -185 -0.0198657473347064 -186 0.036858247139314 -187 0.29256789370978 -188 0.217268577909927 -189 0.196770495691689 -190 0.094220865706204 -191 -0.0203791531848586 -192 -0.0242142425710697 -193 -0.0227327141359121 -194 -0.0219087131272295 -195 -0.0139180641371944 -196 -0.0165931483689415 -197 -0.0139691174427045 -198 -0.0250038332172815 -199 -0.0262538643545197 -200 -0.025280145240993 -201 -0.022716588551902 -202 -0.0229491126971064 -203 -0.020163745252957 -204 -0.0180649219211942 -205 -0.0174961232004392 -206 -0.0153752959032635 -207 -0.0151070882074296 -208 -0.0162636711403948 -209 -0.0213539658247787 -210 -0.0241878645706104 -211 -0.0233292145480391 -212 -0.0222792602366159 -213 -0.0200857928095336 -214 -0.0224102357962423 -215 -0.0200431331454358 -216 -0.0251386240282493 -217 -0.0217360075267156 -218 -0.0231247916814153 -219 -0.0236289558661022 -220 -0.022798275340034 -221 -0.022394916702971 -222 -0.0240641627722647 -223 -0.02767136777592 -224 -0.0188563255687053 -225 -0.0201523683449021 -226 -0.0196358949998781 -227 -0.0201572059848371 -228 -0.0180306969850485 -229 0.0330883208878215 -230 0.187053030884649 -231 0.180166992312632 -232 0.175193540635547 -233 0.0852511978178321 -234 0.0836036324945735 -235 -0.0180475894095978 -236 -0.0203965677916504 -237 -0.0234729155755235 -238 -0.0203967773857997 -239 -0.0168134546888542 -240 -0.0145823454491767 -241 -0.0182208080214287 -242 -0.0222702719218944 -243 -0.0245502962962475 -244 -0.0230701140380481 -245 -0.0205544743992634 -246 -0.0152766305199052 -247 -0.015660060910655 -248 -0.0182272831792615 -249 -0.0161416465628721 -250 -0.0138775731037607 -251 -0.0146059144127008 -252 -0.014851378459684 -253 -0.0174697076620558 -254 -0.020394504090619 -255 -0.020923051703186 -256 -0.0188690748415421 -257 -0.020691771573437 -258 -0.0180158099925264 -259 -0.025009300618942 -260 -0.0241656012183153 -261 -0.0201701986649696 -262 -0.0213418341591563 -263 -0.0212876158412719 -264 -0.0196613481631524 -265 -0.0224579972849258 -266 -0.0222709347842853 -267 -0.021839178151421 -268 -0.0181242059899927 -269 -0.0196595880691145 -270 -0.0176712734167537 -271 -0.0174037647691641 -272 0.0361609936559733 -273 0.136273065680629 -274 0.137142321378537 -275 0.119170985165791 -276 0.135128869617739 -277 0.0365729744317657 -278 0.0813532152332901 -279 -0.0164218823860774 -280 -0.0150012133117104 -281 -0.0180652264456629 -282 -0.0180223031364979 -283 -0.0146583895021702 -284 -0.0178385632762936 -285 -0.0183688063955637 -286 -0.0199104201945895 -287 -0.0209162045756424 -288 -0.0182424612671294 -289 -0.0102871995641823 -290 -0.0097194264103497 -291 -0.0166796622739482 -292 -0.0193090133043633 -293 -0.0109789304127889 -294 -0.0145511817849648 -295 -0.0159177263733151 -296 -0.0162297085566881 -297 -0.0160458825546633 -298 -0.0185277530735613 -299 -0.0201185134004853 -300 -0.0225767827149403 -301 -0.020600528590444 -302 -0.0178266254999198 -303 -0.0228272615104135 -304 -0.0188650304163709 -305 -0.0192512492130587 -306 -0.0198882781449453 -307 -0.018944580372254 -308 -0.0191976364453834 -309 -0.020380651922197 -310 -0.020008249388093 -311 -0.0199582696579672 -312 -0.016107489794778 -313 -0.0168857973840798 -314 -0.0159072805310197 -315 0.0337796643954297 -316 0.091400279956598 -317 0.128355772863555 -318 0.0811615095759163 -319 0.0770716694548368 -320 0.145070077843674 -321 -0.0188619341727165 -322 0.0799864438805513 -323 -0.0199478816959614 -324 -0.0210772723197886 -325 -0.0210646569907724 -326 -0.0200788443102393 -327 -0.0211662403279555 -328 -0.0167589827973132 -329 -0.0177459345163699 -330 -0.0176456584861234 -331 -0.0220878387663237 -332 -0.0138294678922046 -333 -0.00950860063270121 -334 -0.0127373100109087 -335 -0.0165386832541542 -336 -0.0182671925631197 -337 -0.0109720091878599 -338 -0.0142702474119185 -339 -0.0110379801788155 -340 -0.0154139924731546 -341 -0.0128889876019394 -342 -0.0173631353598641 -343 -0.0222795571128729 -344 -0.0201510823246637 -345 -0.014168231775332 -346 -0.0172988244822199 -347 -0.0166164172889096 -348 -0.0174591997875334 -349 -0.0178598488132696 -350 -0.0174148484681578 -351 -0.0181701494308226 -352 -0.0170602479756066 -353 -0.022860700637634 -354 -0.0186677124344551 -355 -0.0163631644839097 -356 -0.0150447805883455 -357 -0.0155934972805149 -358 0.0412705831487356 -359 0.0432271691160312 -360 0.134082054092421 -361 0.030429559359917 -362 0.128011199059957 -363 0.0290649669583617 -364 0.0977105919898357 -365 0.0268435678280154 -366 0.0353018054840323 -367 -0.0198055818066033 -368 -0.018378272291099 -369 -0.019916785016334 -370 -0.0205847247605069 -371 -0.0201224650176015 -372 -0.01627691948957 -373 -0.0153629187371632 -374 -0.0125002930105743 -375 -0.0160149273157025 -376 -0.0130459873232066 -377 -0.0117001449083753 -378 -0.0128253666323881 -379 -0.0149389076420028 -380 -0.0147672676170861 -381 -0.00941821935965455 -382 -0.00473688018446407 -383 -0.00808553215461901 -384 -0.0105108934303795 -385 -0.0155256488187373 -386 -0.0210836438529971 -387 -0.0194168403848756 -388 -0.0138959279148097 -389 -0.0167510111816621 -390 -0.0170725457918982 -391 -0.016150326422395 -392 -0.0187592561556726 -393 -0.0201368328637298 -394 -0.0171077907044443 -395 -0.0171103523390093 -396 -0.0182097163513887 -397 -0.0172423936894017 -398 -0.0146907180546899 -399 -0.0148205318166592 -400 -0.0144952560105946 -401 0.0391317015604062 -402 -0.00325045294442625 -403 0.135229844753472 -404 0.0339587870366385 -405 0.0833862815909146 -406 0.0775145154752597 -407 0.0288174710076017 -408 0.0542563755615635 -409 0.0810954683226646 -410 -0.017752492355491 -411 -0.0180579468812209 -412 -0.0189407872188061 -413 -0.0189713023163003 -414 -0.0189831714463216 -415 -0.0186956047569828 -416 -0.0188493030013216 -417 -0.0190954931073824 -418 -0.0189538951395989 -419 -0.0168159225101202 -420 -0.0149622277586486 -421 -0.0134585088118323 -422 -0.0107702264004257 -423 -0.0116881974906342 -424 -0.0135084097379996 -425 -0.0115600330212086 -426 -0.00385827806043179 -427 -0.00648046756427941 -428 -0.010678969741849 -429 -0.0174377994416611 -430 -0.0197415520446045 -431 -0.01387746808618 -432 -0.0142870555311067 -433 -0.0126167043533278 -434 -0.0145341368337345 -435 -0.0172588314742905 -436 -0.0192532464901077 -437 -0.0178888029842574 -438 -0.0149435002438141 -439 -0.0143499589296186 -440 -0.0113284320025856 -441 -0.0146907285452937 -442 -0.0118090676160861 -443 -0.0129550696231186 -444 -0.00943679479582223 -445 0.0410693940588715 -446 0.0981340063555525 -447 0.0301059977373294 -448 0.0798620238351765 -449 0.0399504241633469 -450 0.0799710609081107 -451 0.0375183260101038 -452 -0.0128846089593424 -453 0.093737068719454 -454 -0.0166488241943883 -455 -0.0171620322539306 -456 -0.0176681103949864 -457 -0.0177135709591161 -458 -0.0174025569142706 -459 -0.0176679666536122 -460 -0.0181412705139815 -461 -0.0178162340211567 -462 -0.0148661374954626 -463 -0.012878454938704 -464 -0.0136407519521233 -465 -0.0103957847636471 -466 -0.00908338367847883 -467 -0.0110136706236845 -468 -0.0121798225855914 -469 -0.00417292561751909 -470 -0.00307290764550916 -471 -0.00798497461616614 -472 -0.0111435895667381 -473 -0.0153727357774596 -474 -0.0130271532875312 -475 -0.0124190182516596 -476 -0.0084547082575317 -477 -0.00918576031696132 -478 -0.0162409259378339 -479 -0.018065492839516 -480 -0.0168355167430056 -481 -0.0140509731408616 -482 -0.0149035783683084 -483 -0.00931711982847588 -484 -0.014271656696945 -485 -0.0121711176661241 -486 -0.016804905268994 -487 -0.0104196286531009 -488 0.0383870537436679 -489 0.0552773935471216 -490 0.0345937652331171 -491 0.0813542198669446 -492 0.0363428500481453 -493 0.0402459628537269 -494 0.0880185317795738 -495 -0.0129023101613787 -496 0.0302552183198115 -497 0.0536535190947818 -498 -0.0156069516901892 -499 -0.0162156062091284 -500 -0.0162183722980474 -501 -0.0157747057135625 -502 -0.0166040466989765 -503 -0.0161608566990615 -504 -0.0167537182627031 -505 -0.0164722018431066 -506 -0.0143593770446019 -507 -0.012530817471516 -508 -0.0130107038316214 -509 -0.0127117424488491 -510 -0.0123582491090572 -511 -0.0143988077890034 -512 -0.0132043617399602 -513 -0.0121255066830081 -514 -0.00947286185269373 -515 -0.00465100530248661 -516 -0.0117788080303492 -517 -0.0130751296092514 -518 -0.0155036171011815 -519 -0.010643006695032 -520 -0.00739844298156769 -521 -0.0112412204699085 -522 -0.0161872155724303 -523 -0.0168989403333427 -524 -0.0153730958327368 -525 -0.0125043590711503 -526 -0.00940141758011818 -527 -0.00767975179438695 -528 -0.0109057442427293 -529 -0.0152170670171314 -530 -0.0148168636021302 -531 0.0536268084567977 -532 0.00159158256076242 -533 0.0395691988094227 -534 0.0851832556342331 -535 0.0404885336981451 -536 0.0359152408805565 -537 0.0400801815807958 -538 0.0426897422408288 -539 0.032487435819703 -540 0.0379746640301957 -541 -0.0114145850527779 -542 -0.0143266971158537 -543 -0.0144808626295274 -544 -0.0142835316361234 -545 -0.0144672980991767 -546 -0.0149347701157941 -547 -0.0147221461325212 -548 -0.0149340818843796 -549 -0.0149339646879691 -550 -0.0125515123976881 -551 -0.0106843909304337 -552 -0.0120477982033282 -553 -0.0107426813396423 -554 -0.0103781179386869 -555 -0.00980456885361171 -556 -0.0108064202489364 -557 -0.0121145826899896 -558 -0.00556810926546485 -559 -0.00930006259964903 -560 -0.00516953265688487 -561 -0.0103764487413688 -562 -0.0101531608339304 -563 -0.00918822426319678 -564 -0.0101644666934554 -565 -0.0112481176383032 -566 -0.0145127017542735 -567 -0.0147134045513878 -568 -0.0123144344086325 -569 -0.00570964879226978 -570 -0.0063187706922707 -571 -0.00374866158046794 -572 -0.013607724159013 -573 -0.0137804453374875 -574 -0.00939070104936453 -575 0.0423495547767671 -576 0.000209272987046017 -577 0.0880471222849516 -578 0.0385858128624645 -579 0.0396811891208319 -580 0.0353924058064461 -581 0.0495909051898724 -582 -0.0113155170664094 -583 0.0871168673380537 -584 -0.0115980451842322 -585 -0.0125526032386238 -586 -0.012561736194457 -587 -0.0122507426071209 -588 -0.0123064811043512 -589 -0.0121521641917975 -590 -0.0125333975284308 -591 -0.0130863343506295 -592 -0.0134314408515597 -593 -0.0107991754906669 -594 -0.00884398203252155 -595 -0.0100733336463772 -596 -0.00922955762602743 -597 -0.00949676131734901 -598 -0.0110224903229849 -599 -0.00991288650680148 -600 -0.00936825932623963 -601 -0.00980726528701717 -602 -0.00476664596953343 -603 -0.011430503413995 -604 -0.0113213354943102 -605 -0.0134064415109797 -606 -0.0126055847537459 -607 -0.0135083477615435 -608 -0.0113488370833923 -609 -0.0093156617098165 -610 -0.00976577466545605 -611 -0.0133363567698321 -612 -0.00759897085944556 -613 -0.00510037875494374 -614 -0.00408004384283288 -615 -0.00918160520147706 -616 -0.0108113236545845 -617 -0.0106231816617747 -618 -0.00758999243430865 -619 0.0435531551195662 -620 0.0520037268502813 -621 0.0439044539134388 -622 0.0386654726142954 -623 0.0394118644732992 -624 0.0449248987301056 -625 -0.00863719437291388 -626 0.0412392562292136 -627 0.0440129688249318 -628 -0.0101620925718705 -629 -0.0109600840877224 -630 -0.0112705053011257 -631 -0.0116301438053661 -632 -0.0113736455019991 -633 -0.0117661118641892 -634 -0.0113961495319145 -635 -0.0117740021837853 -636 -0.0117094958602983 -637 -0.00939366161371644 -638 -0.00755907350023703 -639 -0.00838658396126048 -640 -0.0074832135472603 -641 -0.00801205358318107 -642 -0.00624145194619799 -643 -0.0070240024426915 -644 -0.00834613473332137 -645 -0.00670243676363534 -646 -0.0106128186631781 -647 -0.0123852232161095 -648 -0.0124265826160123 -649 -0.0112567385689026 -650 -0.0126065730661914 -651 -0.0123854746644478 -652 -0.00987776546588025 -653 -0.00722003160503851 -654 -0.00380201074432189 -655 -0.00665072917336648 -656 -0.00528196776714817 -657 -0.00510807558151163 -658 -0.00811089821457131 -659 -0.00755766045240185 -660 -0.00919072675598614 -661 -0.00917820835177611 -662 0.0449751982709438 -663 0.00545567790804502 -664 0.047402752921981 -665 0.0446605853927159 -666 0.0383269966597984 -667 0.0485706532828867 -668 -0.00861899683875584 -669 0.036175649351787 -670 0.0495063574698606 -671 -0.00922596004976487 -672 -0.0101114415486753 -673 -0.00993735125464903 -674 -0.0100323503804273 -675 -0.0105460378506107 -676 -0.0101900492452311 -677 -0.0104909689537006 -678 -0.0106006916930028 -679 -0.0104312931865838 -680 -0.0103517278463301 -681 -0.00740828023970121 -682 -0.00544494861028685 -683 -0.00608611560648061 -684 -0.00534756025333046 -685 -0.0031542340646546 -686 -0.00508349746510613 -687 -0.00739762226897734 -688 -0.0053663959286737 -689 -0.00916557860646553 -690 -0.0110500156300869 -691 -0.00988205922376505 -692 -0.0109866472880073 -693 -0.0111866547046902 -694 -0.0111122786835176 -695 -0.0108203039490724 -696 -0.0102592902413053 -697 -0.0107873762797399 -698 -0.010503275107589 -699 -0.0107835661252666 -700 -0.00885386551992296 -701 -0.00913096053370505 -702 -0.006655207615153 -703 -0.00593455487034946 -704 -0.00427919054888438 -705 -0.007897096903017 -706 0.0490946252850488 -707 0.00815207966824887 -708 0.0473241399151052 -709 0.0451019841097689 -710 0.0479372536790981 -711 -0.00656127986315397 -712 0.0402549343925511 -713 0.0449105363109089 -714 -0.00775184190900309 -715 -0.00768054605133951 -716 -0.00839927750787529 -717 -0.00843853230017117 -718 -0.00790960738283612 -719 -0.0080103177775415 -720 -0.00742775541399996 -721 -0.00765629252098078 -722 -0.00799975093255115 -723 -0.00852792228057431 -724 -0.00869178550957608 -725 -0.00626674339877887 -726 -0.00412677151228354 -727 -0.0048446048963408 -728 -0.000902395625628718 -729 -0.000758143099110528 -730 -0.00408369870009201 -731 -0.00365498969615341 -732 -0.00766259847340275 -733 -0.00952428752243833 -734 -0.00944480113586648 -735 -0.00948862662694449 -736 -0.00966174451824508 -737 -0.00945600129424617 -738 -0.00943741727131444 -739 -0.00927951393185398 -740 -0.00928797610609347 -741 -0.0093286159789273 -742 -0.00765123775530771 -743 -0.00891136789083873 -744 -0.00940772724441718 -745 -0.00786456325355482 -746 -0.0047977712696699 -747 -0.00308223523552548 -748 0.000335699172084439 -749 -0.00143686229797692 -750 0.0513266950133769 -751 0.00563569816195414 -752 0.0477166719391144 -753 0.0538442014782216 -754 -0.0056982279416085 -755 0.0394329868140949 -756 0.0485711646307275 -757 -0.00685930745583302 -758 -0.0069941514632557 -759 -0.0066395137630499 -760 -0.00736962474522024 -761 -0.00752916655217279 -762 -0.00739785479449587 -763 -0.00756967688350672 -764 -0.00753735518588655 -765 -0.00780124181595982 -766 -0.0077216624864741 -767 -0.00784018338356136 -768 -0.00785468874319521 -769 -0.00421699574952483 -770 -0.00190288158223283 -771 -0.000206480072774308 -772 0.00141964253926074 -773 -4.28774976178744e-05 -774 -0.000986275524641414 -775 -0.00657709364993877 -776 -0.00833283088512488 -777 -0.00818951629006444 -778 -0.00836751926023713 -779 -0.00846989619881298 -780 -0.00820214471451413 -781 -0.00821893302874576 -782 -0.00796875201723603 -783 -0.00797370090373924 -784 -0.00777868495761638 -785 -0.00789699981214183 -786 -0.00815610674254451 -787 -0.00778049198735858 -788 -0.00818383133025141 -789 -0.00781336379026083 -790 -0.00682906252309473 -791 -0.00521347355977257 -792 -0.00500213245575373 -793 -0.00506883410260168 -794 0.0474518412366765 -795 0.00530982771618318 -796 0.0565700977023552 -797 -0.000392750407902867 -798 0.0453538486416986 -799 0.0476616389325516 -800 -0.00485863626421196 -801 -0.00525412195734806 -802 -0.00565503507026226 -803 -0.00551485423027977 -804 -0.00524396672704169 -805 -0.00590408701477556 -806 -0.00575508257342466 -807 -0.0058689006002845 -808 -0.00561694855307918 -809 -0.00612555234095552 -810 -0.00608574219510099 -811 -0.00564904015986621 -812 -0.00490660016533395 -813 -0.0046171197705464 -814 0.00177390652695689 -815 0.0035896881022546 -816 0.00161554733058578 -817 0.00437187124600963 -818 -0.000991588850557123 -819 -0.00478099352848916 -820 -0.00637007664471483 -821 -0.00627509734235782 -822 -0.00655857327658989 -823 -0.00656425755979379 -824 -0.00650927617188294 -825 -0.00650262457960547 -826 -0.00662413230967772 -827 -0.00657738252698944 -828 -0.00645476393708 -829 -0.00659463926044406 -830 -0.00649001643087145 -831 -0.00610360245952262 -832 -0.00578387897293013 -833 -0.00402985580826015 -834 -0.00406634314030596 -835 -0.00261501841642483 -836 -0.00301755910132054 -837 -0.00326543386600453 -838 0.0572941624786258 -839 0.00764310260634384 -840 0.00124989263445848 -841 0.0485617649608875 -842 0.0534245959427794 -843 -0.00365723487459394 -844 -0.00424930954244624 -845 -0.00447294923783986 -846 -0.0044749818394267 -847 -0.00464870339809727 -848 -0.00404145529364563 -849 -0.0047634223597755 -850 -0.00467301475043984 -851 -0.00482869667199491 -852 -0.00492239000387982 -853 -0.00463765006041817 -854 -0.0046895918656674 -855 -0.00469126659620766 -856 -0.00430815035273188 -857 -0.00128800088385523 -858 0.00267781615699824 -859 0.00356342242419808 -860 0.00436645666734667 -861 0.00184035931246651 -862 -0.000943211896465123 -863 -0.00341308542653818 -864 -0.00529528124001912 -865 -0.00542898683100493 -866 -0.00553749798487258 -867 -0.00551487806193758 -868 -0.00531561848433044 -869 -0.0053876668196608 -870 -0.00553192702900933 -871 -0.00563989142175504 -872 -0.00521799189299869 -873 -0.00553828490350608 -874 -0.00542860483166627 -875 -0.00537895256953826 -876 -0.00402015584547178 -877 -0.00377599406291178 -878 -0.00402869364355377 -879 -0.00251857216946617 -880 -0.00240522631583728 -881 -0.00231339313710883 -882 -0.00221867026914885 -883 0.0485842407165457 -884 0.00444090950886226 -885 0.052462247531025 -886 -0.00245866728272721 -887 -0.00219100298033388 -888 -0.00258850605081842 -889 -0.0027963562987193 -890 -0.00291992258910256 -891 -0.00299261604099267 -892 -0.00287127254000797 -893 -0.00289608069594768 -894 -0.00280812344627608 -895 -0.00270762901550325 -896 -0.00266975879125481 -897 -0.00220006592251856 -898 -0.00202466427043569 -899 0.0013412649013256 -900 0.00249450051103929 -901 0.00162230152238072 -902 0.00338232047570188 -903 -6.05925325718229e-05 -904 -0.00259194486873829 -905 -0.00291640344192111 -906 -0.00250008679719597 -907 -0.0028490159247303 -908 -0.00308392356343406 -909 -0.00315698199289235 -910 -0.00298811214364333 -911 -0.00314332876724667 -912 -0.0031949080511993 -913 -0.00322269110310181 -914 -0.00327914040255845 -915 -0.00328848900129892 -916 -0.00333752382027206 -917 -0.00309757512659634 -918 -0.00328479456404456 -919 -0.00212177476264958 -920 -0.00213301941637447 -921 -0.00216845672650316 -922 -0.00207541491244113 -923 -0.00207359226664921 -924 -0.000795789430015217 -925 -0.000779514662456165 -926 -0.000756465833443346 -927 0.0577265267706453 -928 0.00687785865649293 -929 -0.00083343873726207 -930 -0.00107719646114928 -931 -0.00108475651120658 -932 -0.00117127681410593 -933 -0.00122811644473185 -934 -0.00127607908277042 -935 -0.00131021310298656 -936 -0.0013179072335 -937 -0.00147237322207706 -938 -0.00138343425729852 -939 -0.00136475351227092 -940 -0.00143219923016344 -941 -0.00132045547517709 -942 -0.00124130927220743 -943 -0.00118457113968125 -944 -0.0011509753919375 -945 -0.000999222689811352 -946 -0.00117359451012239 -947 -0.00105429594479484 -948 -0.00122085082695325 -949 -0.00129578013904683 -950 -0.00102761415169174 -951 -0.00140096472953254 -952 -0.00139860939031699 -953 -0.00151498094704311 -954 -0.0014719650713445 -955 -0.00156023800835947 -956 -0.00160881766904741 -957 -0.00156225880303738 -958 -0.00163459726309757 -959 -0.00163126714870796 -960 -0.00165394472715442 -961 -5.20102850007659e-05 -962 -0.000181333021969587 -963 -0.000229410914437179 -964 -0.000271936329999531 -965 -0.000289225646672715 -966 -0.000264626695269327 -967 -0.000343743683778553 -968 0.00109579617257524 -969 0.00106253650901319 -970 0.00103053375796608 -971 0.000994475133650943 -972 0.00096219604797213 -973 0.000930291083643673 -974 0.00089629434032705 -975 0.000862706715224073 -976 0.000829567281721935 -977 0.000796368072697504 -978 0.000761767798271763 -979 0.000730769092014861 -980 0.000695768030599533 -981 0.000665093515571032 -982 0.000631804759496164 -983 0.000597688431802904 -984 0.000571043223397954 -985 0.00053621559120878 -986 0.0005056031461063 -987 0.000470414024698076 -988 0.000436113652307852 -989 0.000401280866025421 -990 0.000366892747802913 -991 0.000332558486017457 -992 0.00029776201514551 -993 0.000264088081422397 -994 0.000229570195953799 -995 0.000203049247782519 -996 0.000169032219339048 -997 0.000134474421245207 -998 0.000100377453607142 -999 6.59658062483004e-05 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat deleted file mode 100644 index 619ef98..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat +++ /dev/null @@ -1,901 +0,0 @@ -#scatter real total user system repeat -101 0.00208497047424316 0.0 0.0 0.0 101 -102 0.00208020210266113 0.0 0.0 0.0 102 -103 0.00206804275512695 0.0 0.0 0.0 103 -104 0.00207710266113281 0.0 0.0 0.0 104 -105 0.00206398963928223 0.00999999999999979 0.00999999999999979 0.0 105 -106 0.00206398963928223 0.0 0.0 0.0 106 -107 0.00208497047424316 0.0 0.0 0.0 107 -108 0.00206398963928223 0.0 0.0 0.0 108 -109 0.00207400321960449 0.0 0.0 0.0 109 -110 0.00206398963928223 0.0 0.0 0.0 110 -111 0.00205802917480469 0.0 0.0 0.0 111 -112 0.00207996368408203 0.0 0.0 0.0 112 -113 0.00207304954528809 0.0 0.0 0.0 113 -114 0.00206899642944336 0.00999999999999979 0.00999999999999979 0.0 114 -115 0.00207114219665527 0.0 0.0 0.0 115 -116 0.00212287902832031 0.0 0.0 0.0 116 -117 0.00205707550048828 0.0 0.0 0.0 117 -118 0.0020599365234375 0.0 0.0 0.0 118 -119 0.00206613540649414 0.0100000000000016 0.0100000000000016 0.0 119 -120 0.00205683708190918 0.0 0.0 0.0 120 -121 0.00205206871032715 0.0 0.0 0.0 121 -122 0.00204992294311523 0.0 0.0 0.0 122 -123 0.00208115577697754 0.0 0.0 0.0 123 -124 0.00205588340759277 0.00999999999999979 0.00999999999999979 0.0 124 -125 0.00207877159118652 0.0 0.0 0.0 125 -126 0.00207400321960449 0.0 0.0 0.0 126 -127 0.00206089019775391 0.0 0.0 0.0 127 -128 0.00205779075622559 0.00999999999999979 0.00999999999999979 0.0 128 -129 0.00205898284912109 0.0 0.0 0.0 129 -130 0.00206899642944336 0.0 0.0 0.0 130 -131 0.00204896926879883 0.0 0.0 0.0 131 -132 0.00209593772888184 0.0 0.0 0.0 132 -133 0.00208401679992676 0.00999999999999979 0.00999999999999979 0.0 133 -134 0.0276279449462891 0.0199999999999996 0.0199999999999996 0.0 134 -135 0.0021820068359375 0.00999999999999979 0.00999999999999979 0.0 135 -136 0.00213503837585449 0.0 0.0 0.0 136 -137 0.00211405754089355 0.0 0.0 0.0 137 -138 0.00212502479553223 0.0 0.0 0.0 138 -139 0.0020899772644043 0.0 0.0 0.0 139 -140 0.00207901000976562 0.00999999999999979 0.00999999999999979 0.0 140 -141 0.00206589698791504 0.0 0.0 0.0 141 -142 0.00207710266113281 0.0 0.0 0.0 142 -143 0.00205492973327637 0.0 0.0 0.0 143 -144 0.00208020210266113 0.0 0.0 0.0 144 -145 0.00206184387207031 0.00999999999999979 0.00999999999999979 0.0 145 -146 0.00208377838134766 0.0 0.0 0.0 146 -147 0.00206995010375977 0.0 0.0 0.0 147 -148 0.00206708908081055 0.0 0.0 0.0 148 -149 0.00207114219665527 0.0100000000000016 0.0100000000000016 0.0 149 -150 0.0020759105682373 0.0 0.0 0.0 150 -151 0.0021510124206543 0.0 0.0 0.0 151 -152 0.00207805633544922 0.0 0.0 0.0 152 -153 0.00206089019775391 0.0 0.0 0.0 153 -154 0.00206089019775391 0.00999999999999979 0.00999999999999979 0.0 154 -155 0.00207614898681641 0.0 0.0 0.0 155 -156 0.00205588340759277 0.0 0.0 0.0 156 -157 0.00206494331359863 0.0 0.0 0.0 157 -158 0.00280499458312988 0.00999999999999979 0.00999999999999979 0.0 158 -159 0.00453996658325195 0.0 0.0 0.0 159 -160 0.00369596481323242 0.0 0.0 0.0 160 -161 0.00410914421081543 0.00999999999999979 0.00999999999999979 0.0 161 -162 0.00381112098693848 0.0 0.0 0.0 162 -163 0.00235795974731445 0.0 0.0 0.0 163 -164 0.00209784507751465 0.0 0.0 0.0 164 -165 0.00204992294311523 0.00999999999999979 0.00999999999999979 0.0 165 -166 0.00204110145568848 0.0 0.0 0.0 166 -167 0.00205802917480469 0.0 0.0 0.0 167 -168 0.00205707550048828 0.0 0.0 0.0 168 -169 0.00208711624145508 0.0 0.0 0.0 169 -170 0.00208187103271484 0.00999999999999979 0.00999999999999979 0.0 170 -171 0.00205421447753906 0.0 0.0 0.0 171 -172 0.0020749568939209 0.0 0.0 0.0 172 -173 0.00210809707641602 0.0 0.0 0.0 173 -174 0.00206804275512695 0.00999999999999979 0.00999999999999979 0.0 174 -175 0.00205206871032715 0.0 0.0 0.0 175 -176 0.00207614898681641 0.0 0.0 0.0 176 -177 0.0020759105682373 0.0 0.0 0.0 177 -178 0.0242831707000732 0.0300000000000011 0.0300000000000011 0.0 178 -179 0.00222992897033691 0.0 0.0 0.0 179 -180 0.00214791297912598 0.0 0.0 0.0 180 -181 0.00211286544799805 0.0 0.0 0.0 181 -182 0.00209379196166992 0.0 0.0 0.0 182 -183 0.00209307670593262 0.0 0.0 0.0 183 -184 0.00218510627746582 0.0 0.0 0.0 184 -185 0.00206613540649414 0.0 0.0 0.0 185 -186 0.00207090377807617 0.0 0.0 0.0 186 -187 0.00206613540649414 0.00999999999999979 0.00999999999999979 0.0 187 -188 0.00206112861633301 0.0 0.0 0.0 188 -189 0.00206303596496582 0.0 0.0 0.0 189 -190 0.00205802917480469 0.0 0.0 0.0 190 -191 0.00206398963928223 0.0 0.0 0.0 191 -192 0.00210189819335938 0.00999999999999979 0.00999999999999979 0.0 192 -193 0.00206804275512695 0.0 0.0 0.0 193 -194 0.00206708908081055 0.0 0.0 0.0 194 -195 0.00206208229064941 0.0 0.0 0.0 195 -196 0.0020899772644043 0.0 0.0 0.0 196 -197 0.00205612182617188 0.00999999999999979 0.00999999999999979 0.0 197 -198 0.00205898284912109 0.0 0.0 0.0 198 -199 0.00208115577697754 0.0 0.0 0.0 199 -200 0.0020759105682373 0.0 0.0 0.0 200 -201 0.00205302238464355 0.00999999999999979 0.00999999999999979 0.0 201 -202 0.00206995010375977 0.0 0.0 0.0 202 -203 0.00206089019775391 0.0 0.0 0.0 203 -204 0.0020439624786377 0.0 0.0 0.0 204 -205 0.00207185745239258 0.0 0.0 0.0 205 -206 0.0020449161529541 0.00999999999999979 0.00999999999999979 0.0 206 -207 0.00223898887634277 0.0 0.0 0.0 207 -208 0.00205707550048828 0.0 0.0 0.0 208 -209 0.00206303596496582 0.0 0.0 0.0 209 -210 0.00205707550048828 0.0 0.0 0.0 210 -211 0.00204896926879883 0.0100000000000016 0.0100000000000016 0.0 211 -212 0.00204205513000488 0.0 0.0 0.0 212 -213 0.00211596488952637 0.0 0.0 0.0 213 -214 0.00206494331359863 0.0 0.0 0.0 214 -215 0.0020749568939209 0.0 0.0 0.0 215 -216 0.00206279754638672 0.00999999999999979 0.00999999999999979 0.0 216 -217 0.00206589698791504 0.0 0.0 0.0 217 -218 0.00207114219665527 0.0 0.0 0.0 218 -219 0.00208210945129395 0.0 0.0 0.0 219 -220 0.00207901000976562 0.00999999999999979 0.00999999999999979 0.0 220 -221 0.00207304954528809 0.0 0.0 0.0 221 -222 0.00209498405456543 0.0 0.0 0.0 222 -223 0.0286588668823242 0.0299999999999994 0.0299999999999994 0.0 223 -224 0.00219297409057617 0.0 0.0 0.0 224 -225 0.00214004516601562 0.0 0.0 0.0 225 -226 0.00212192535400391 0.00999999999999979 0.00999999999999979 0.0 226 -227 0.00208878517150879 0.0 0.0 0.0 227 -228 0.00208306312561035 0.0 0.0 0.0 228 -229 0.00206398963928223 0.0 0.0 0.0 229 -230 0.00207996368408203 0.0 0.0 0.0 230 -231 0.00206494331359863 0.00999999999999979 0.00999999999999979 0.0 231 -232 0.00206494331359863 0.0 0.0 0.0 232 -233 0.0020751953125 0.0 0.0 0.0 233 -234 0.00207805633544922 0.0 0.0 0.0 234 -235 0.00206494331359863 0.0 0.0 0.0 235 -236 0.00206398963928223 0.00999999999999979 0.00999999999999979 0.0 236 -237 0.0020749568939209 0.0 0.0 0.0 237 -238 0.00206494331359863 0.0 0.0 0.0 238 -239 0.00206494331359863 0.0 0.0 0.0 239 -240 0.00205492973327637 0.0 0.0 0.0 240 -241 0.00206518173217773 0.0100000000000016 0.0100000000000016 0.0 241 -242 0.00207686424255371 0.0 0.0 0.0 242 -243 0.00204920768737793 0.0 0.0 0.0 243 -244 0.00206398963928223 0.0 0.0 0.0 244 -245 0.00206184387207031 0.00999999999999979 0.00999999999999979 0.0 245 -246 0.00205397605895996 0.0 0.0 0.0 246 -247 0.00206804275512695 0.0 0.0 0.0 247 -248 0.00204014778137207 0.0 0.0 0.0 248 -249 0.00206995010375977 0.0 0.0 0.0 249 -250 0.00205802917480469 0.00999999999999979 0.00999999999999979 0.0 250 -251 0.00205612182617188 0.0 0.0 0.0 251 -252 0.0020439624786377 0.0 0.0 0.0 252 -253 0.00204610824584961 0.0 0.0 0.0 253 -254 0.00206518173217773 0.0 0.0 0.0 254 -255 0.00204300880432129 0.00999999999999979 0.00999999999999979 0.0 255 -256 0.00205802917480469 0.0 0.0 0.0 256 -257 0.0020759105682373 0.0 0.0 0.0 257 -258 0.00206303596496582 0.0 0.0 0.0 258 -259 0.00207281112670898 0.0 0.0 0.0 259 -260 0.00205898284912109 0.00999999999999979 0.00999999999999979 0.0 260 -261 0.00205898284912109 0.0 0.0 0.0 261 -262 0.00205683708190918 0.0 0.0 0.0 262 -263 0.00207901000976562 0.0 0.0 0.0 263 -264 0.00206780433654785 0.00999999999999979 0.00999999999999979 0.0 264 -265 0.00208497047424316 0.0 0.0 0.0 265 -266 0.00219416618347168 0.0 0.0 0.0 266 -267 0.024918794631958 0.0199999999999996 0.0199999999999996 0.0 267 -268 0.00214409828186035 0.0100000000000016 0.0100000000000016 0.0 268 -269 0.0021209716796875 0.0 0.0 0.0 269 -270 0.00211095809936523 0.0 0.0 0.0 270 -271 0.00207209587097168 0.0 0.0 0.0 271 -272 0.0020902156829834 0.00999999999999979 0.00999999999999979 0.0 272 -273 0.00208091735839844 0.0 0.0 0.0 273 -274 0.00206494331359863 0.0 0.0 0.0 274 -275 0.00207281112670898 0.0 0.0 0.0 275 -276 0.00205397605895996 0.0 0.0 0.0 276 -277 0.0020599365234375 0.00999999999999979 0.00999999999999979 0.0 277 -278 0.00206208229064941 0.0 0.0 0.0 278 -279 0.00205898284912109 0.0 0.0 0.0 279 -280 0.00207304954528809 0.0 0.0 0.0 280 -281 0.0020909309387207 0.0 0.0 0.0 281 -282 0.00206708908081055 0.00999999999999979 0.00999999999999979 0.0 282 -283 0.00206303596496582 0.0 0.0 0.0 283 -284 0.0020449161529541 0.0 0.0 0.0 284 -285 0.00206398963928223 0.0 0.0 0.0 285 -286 0.00204992294311523 0.0 0.0 0.0 286 -287 0.00205111503601074 0.00999999999999979 0.00999999999999979 0.0 287 -288 0.00205397605895996 0.0 0.0 0.0 288 -289 0.00206589698791504 0.0 0.0 0.0 289 -290 0.00206184387207031 0.0 0.0 0.0 290 -291 0.00207281112670898 0.00999999999999979 0.00999999999999979 0.0 291 -292 0.00205683708190918 0.0 0.0 0.0 292 -293 0.00205802917480469 0.0 0.0 0.0 293 -294 0.00206208229064941 0.0 0.0 0.0 294 -295 0.00205206871032715 0.0 0.0 0.0 295 -296 0.00206208229064941 0.00999999999999979 0.00999999999999979 0.0 296 -297 0.00205707550048828 0.0 0.0 0.0 297 -298 0.00207400321960449 0.0 0.0 0.0 298 -299 0.00205802917480469 0.0 0.0 0.0 299 -300 0.00205802917480469 0.0 0.0 0.0 300 -301 0.00207018852233887 0.00999999999999979 0.00999999999999979 0.0 301 -302 0.00206995010375977 0.0 0.0 0.0 302 -303 0.0021510124206543 0.0 0.0 0.0 303 -304 0.0020599365234375 0.0 0.0 0.0 304 -305 0.00206208229064941 0.0 0.0 0.0 305 -306 0.00221395492553711 0.0100000000000016 0.0100000000000016 0.0 306 -307 0.00210285186767578 0.0 0.0 0.0 307 -308 0.00223803520202637 0.0 0.0 0.0 308 -309 0.0020909309387207 0.0 0.0 0.0 309 -310 0.00207996368408203 0.00999999999999979 0.00999999999999979 0.0 310 -311 0.0255651473999023 0.0199999999999996 0.0199999999999996 0.0 311 -312 0.00424313545227051 0.00999999999999979 0.00999999999999979 0.0 312 -313 0.00345015525817871 0.0 0.0 0.0 313 -314 0.00213217735290527 0.0 0.0 0.0 314 -315 0.00210309028625488 0.0 0.0 0.0 315 -316 0.00207686424255371 0.00999999999999979 0.00999999999999979 0.0 316 -317 0.00207209587097168 0.0 0.0 0.0 317 -318 0.00213503837585449 0.0 0.0 0.0 318 -319 0.00294709205627441 0.0 0.0 0.0 319 -320 0.00207018852233887 0.00999999999999979 0.00999999999999979 0.0 320 -321 0.00208091735839844 0.0 0.0 0.0 321 -322 0.00208783149719238 0.0 0.0 0.0 322 -323 0.00208806991577148 0.0 0.0 0.0 323 -324 0.00208210945129395 0.0 0.0 0.0 324 -325 0.0020601749420166 0.00999999999999979 0.00999999999999979 0.0 325 -326 0.00206303596496582 0.0 0.0 0.0 326 -327 0.00205588340759277 0.0 0.0 0.0 327 -328 0.00206208229064941 0.0 0.0 0.0 328 -329 0.00205492973327637 0.0 0.0 0.0 329 -330 0.00205683708190918 0.00999999999999979 0.00999999999999979 0.0 330 -331 0.00205397605895996 0.0 0.0 0.0 331 -332 0.00206303596496582 0.0 0.0 0.0 332 -333 0.00205397605895996 0.0 0.0 0.0 333 -334 0.00205802917480469 0.0 0.0 0.0 334 -335 0.00204992294311523 0.0100000000000016 0.0100000000000016 0.0 335 -336 0.0020599365234375 0.0 0.0 0.0 336 -337 0.00216293334960938 0.0 0.0 0.0 337 -338 0.00204205513000488 0.0 0.0 0.0 338 -339 0.00208377838134766 0.00999999999999979 0.00999999999999979 0.0 339 -340 0.00212287902832031 0.0 0.0 0.0 340 -341 0.00205206871032715 0.0 0.0 0.0 341 -342 0.00207185745239258 0.0 0.0 0.0 342 -343 0.00206279754638672 0.0 0.0 0.0 343 -344 0.00204896926879883 0.00999999999999979 0.00999999999999979 0.0 344 -345 0.00205779075622559 0.0 0.0 0.0 345 -346 0.00207614898681641 0.0 0.0 0.0 346 -347 0.00204992294311523 0.0 0.0 0.0 347 -348 0.00206398963928223 0.0 0.0 0.0 348 -349 0.00206184387207031 0.00999999999999979 0.00999999999999979 0.0 349 -350 0.00206518173217773 0.0 0.0 0.0 350 -351 0.00207805633544922 0.0 0.0 0.0 351 -352 0.0020749568939209 0.0 0.0 0.0 352 -353 0.00208401679992676 0.0 0.0 0.0 353 -354 0.00214099884033203 0.00999999999999979 0.00999999999999979 0.0 354 -355 0.0242671966552734 0.0199999999999996 0.0199999999999996 0.0 355 -356 0.00216913223266602 0.0 0.0 0.0 356 -357 0.00213503837585449 0.00999999999999979 0.00999999999999979 0.0 357 -358 0.00212192535400391 0.0 0.0 0.0 358 -359 0.00210094451904297 0.0 0.0 0.0 359 -360 0.0020909309387207 0.0 0.0 0.0 360 -361 0.00209498405456543 0.0 0.0 0.0 361 -362 0.00208592414855957 0.0100000000000016 0.0100000000000016 0.0 362 -363 0.00206685066223145 0.0 0.0 0.0 363 -364 0.00205492973327637 0.0 0.0 0.0 364 -365 0.00207710266113281 0.0 0.0 0.0 365 -366 0.00207304954528809 0.0 0.0 0.0 366 -367 0.00205421447753906 0.0 0.0 0.0 367 -368 0.00206685066223145 0.0 0.0 0.0 368 -369 0.00206613540649414 0.0 0.0 0.0 369 -370 0.00255608558654785 0.0 0.0 0.0 370 -371 0.00206899642944336 0.00999999999999979 0.00999999999999979 0.0 371 -372 0.00216817855834961 0.0 0.0 0.0 372 -373 0.00214409828186035 0.0 0.0 0.0 373 -374 0.00205111503601074 0.0 0.0 0.0 374 -375 0.0020749568939209 0.0 0.0 0.0 375 -376 0.0020759105682373 0.00999999999999979 0.00999999999999979 0.0 376 -377 0.0020599365234375 0.0 0.0 0.0 377 -378 0.00207805633544922 0.0 0.0 0.0 378 -379 0.00205898284912109 0.0 0.0 0.0 379 -380 0.00205492973327637 0.0 0.0 0.0 380 -381 0.00205397605895996 0.00999999999999979 0.00999999999999979 0.0 381 -382 0.00205588340759277 0.0 0.0 0.0 382 -383 0.00204014778137207 0.0 0.0 0.0 383 -384 0.00204610824584961 0.0 0.0 0.0 384 -385 0.00206184387207031 0.0 0.0 0.0 385 -386 0.00203680992126465 0.00999999999999979 0.00999999999999979 0.0 386 -387 0.00206804275512695 0.0 0.0 0.0 387 -388 0.00205707550048828 0.0 0.0 0.0 388 -389 0.00206804275512695 0.0 0.0 0.0 389 -390 0.00206589698791504 0.00999999999999979 0.00999999999999979 0.0 390 -391 0.00206780433654785 0.0 0.0 0.0 391 -392 0.00206494331359863 0.0 0.0 0.0 392 -393 0.00206303596496582 0.0 0.0 0.0 393 -394 0.00204896926879883 0.0 0.0 0.0 394 -395 0.00207185745239258 0.00999999999999979 0.00999999999999979 0.0 395 -396 0.00207304954528809 0.0 0.0 0.0 396 -397 0.00208806991577148 0.0 0.0 0.0 397 -398 0.00208806991577148 0.0 0.0 0.0 398 -399 0.024277925491333 0.0300000000000011 0.0300000000000011 0.0 399 -400 0.00216102600097656 0.0 0.0 0.0 400 -401 0.00212621688842773 0.0 0.0 0.0 401 -402 0.00209689140319824 0.0 0.0 0.0 402 -403 0.00210285186767578 0.00999999999999979 0.00999999999999979 0.0 403 -404 0.00208210945129395 0.0 0.0 0.0 404 -405 0.00401806831359863 0.0 0.0 0.0 405 -406 0.00404691696166992 0.00999999999999979 0.00999999999999979 0.0 406 -407 0.00400710105895996 0.0 0.0 0.0 407 -408 0.00207805633544922 0.0 0.0 0.0 408 -409 0.00208497047424316 0.0 0.0 0.0 409 -410 0.0020751953125 0.00999999999999979 0.00999999999999979 0.0 410 -411 0.00208187103271484 0.0 0.0 0.0 411 -412 0.00213217735290527 0.0 0.0 0.0 412 -413 0.00207400321960449 0.0 0.0 0.0 413 -414 0.00206208229064941 0.0 0.0 0.0 414 -415 0.00206613540649414 0.00999999999999979 0.00999999999999979 0.0 415 -416 0.00204205513000488 0.0 0.0 0.0 416 -417 0.00208091735839844 0.0 0.0 0.0 417 -418 0.00227904319763184 0.0 0.0 0.0 418 -419 0.00206899642944336 0.00999999999999979 0.00999999999999979 0.0 419 -420 0.00207114219665527 0.0 0.0 0.0 420 -421 0.00207090377807617 0.0 0.0 0.0 421 -422 0.00204086303710938 0.0 0.0 0.0 422 -423 0.00205683708190918 0.0 0.0 0.0 423 -424 0.00205421447753906 0.00999999999999979 0.00999999999999979 0.0 424 -425 0.00205588340759277 0.0 0.0 0.0 425 -426 0.0020439624786377 0.0 0.0 0.0 426 -427 0.00203394889831543 0.0 0.0 0.0 427 -428 0.0020599365234375 0.0 0.0 0.0 428 -429 0.00205612182617188 0.0100000000000016 0.0100000000000016 0.0 429 -430 0.00206303596496582 0.0 0.0 0.0 430 -431 0.00206899642944336 0.0 0.0 0.0 431 -432 0.00206804275512695 0.0 0.0 0.0 432 -433 0.00212502479553223 0.0 0.0 0.0 433 -434 0.00207805633544922 0.00999999999999979 0.00999999999999979 0.0 434 -435 0.00205397605895996 0.0 0.0 0.0 435 -436 0.00214004516601562 0.0 0.0 0.0 436 -437 0.0020451545715332 0.0 0.0 0.0 437 -438 0.0020599365234375 0.00999999999999979 0.00999999999999979 0.0 438 -439 0.00207805633544922 0.0 0.0 0.0 439 -440 0.00207304954528809 0.0 0.0 0.0 440 -441 0.00207090377807617 0.0 0.0 0.0 441 -442 0.0238261222839355 0.0299999999999994 0.0299999999999994 0.0 442 -443 0.00229191780090332 0.0 0.0 0.0 443 -444 0.00225210189819336 0.0 0.0 0.0 444 -445 0.00214314460754395 0.0 0.0 0.0 445 -446 0.00211405754089355 0.0 0.0 0.0 446 -447 0.0021059513092041 0.00999999999999979 0.00999999999999979 0.0 447 -448 0.00212502479553223 0.0 0.0 0.0 448 -449 0.00215005874633789 0.0 0.0 0.0 449 -450 0.00206708908081055 0.0 0.0 0.0 450 -451 0.00206208229064941 0.00999999999999979 0.00999999999999979 0.0 451 -452 0.00206995010375977 0.0 0.0 0.0 452 -453 0.00207304954528809 0.0 0.0 0.0 453 -454 0.00208711624145508 0.0 0.0 0.0 454 -455 0.00207400321960449 0.0 0.0 0.0 455 -456 0.00205802917480469 0.0100000000000016 0.0100000000000016 0.0 456 -457 0.00207400321960449 0.0 0.0 0.0 457 -458 0.00209999084472656 0.0 0.0 0.0 458 -459 0.00374412536621094 0.0 0.0 0.0 459 -460 0.00207614898681641 0.0 0.0 0.0 460 -461 0.00207996368408203 0.00999999999999979 0.00999999999999979 0.0 461 -462 0.00205206871032715 0.0 0.0 0.0 462 -463 0.00207209587097168 0.0 0.0 0.0 463 -464 0.00206708908081055 0.0 0.0 0.0 464 -465 0.00206398963928223 0.0 0.0 0.0 465 -466 0.00205302238464355 0.00999999999999979 0.00999999999999979 0.0 466 -467 0.00206995010375977 0.0 0.0 0.0 467 -468 0.00209617614746094 0.0 0.0 0.0 468 -469 0.00206899642944336 0.0 0.0 0.0 469 -470 0.0020451545715332 0.0 0.0 0.0 470 -471 0.00206589698791504 0.00999999999999979 0.00999999999999979 0.0 471 -472 0.0020442008972168 0.0 0.0 0.0 472 -473 0.00206089019775391 0.0 0.0 0.0 473 -474 0.00205492973327637 0.0 0.0 0.0 474 -475 0.00206708908081055 0.0 0.0 0.0 475 -476 0.00205087661743164 0.00999999999999979 0.00999999999999979 0.0 476 -477 0.00206589698791504 0.0 0.0 0.0 477 -478 0.00207209587097168 0.0 0.0 0.0 478 -479 0.00204992294311523 0.0 0.0 0.0 479 -480 0.00207209587097168 0.00999999999999979 0.00999999999999979 0.0 480 -481 0.0020599365234375 0.0 0.0 0.0 481 -482 0.00206613540649414 0.0 0.0 0.0 482 -483 0.00205898284912109 0.0 0.0 0.0 483 -484 0.00209403038024902 0.0 0.0 0.0 484 -485 0.00207710266113281 0.00999999999999979 0.00999999999999979 0.0 485 -486 0.0239040851593018 0.0200000000000014 0.0200000000000014 0.0 486 -487 0.00222492218017578 0.0 0.0 0.0 487 -488 0.00213289260864258 0.0 0.0 0.0 488 -489 0.0021212100982666 0.00999999999999979 0.00999999999999979 0.0 489 -490 0.0021059513092041 0.0 0.0 0.0 490 -491 0.00208616256713867 0.0 0.0 0.0 491 -492 0.00208687782287598 0.0 0.0 0.0 492 -493 0.00207901000976562 0.0 0.0 0.0 493 -494 0.00206494331359863 0.00999999999999979 0.00999999999999979 0.0 494 -495 0.00204300880432129 0.0 0.0 0.0 495 -496 0.00206112861633301 0.0 0.0 0.0 496 -497 0.00206708908081055 0.0 0.0 0.0 497 -498 0.0030369758605957 0.00999999999999979 0.00999999999999979 0.0 498 -499 0.00405597686767578 0.0 0.0 0.0 499 -500 0.00401997566223145 0.0 0.0 0.0 500 -501 0.0026099681854248 0.00999999999999979 0.00999999999999979 0.0 501 -502 0.00206303596496582 0.0 0.0 0.0 502 -503 0.00206589698791504 0.0 0.0 0.0 503 -504 0.00206708908081055 0.0 0.0 0.0 504 -505 0.00212311744689941 0.00999999999999979 0.00999999999999979 0.0 505 -506 0.00225090980529785 0.0 0.0 0.0 506 -507 0.00206089019775391 0.0 0.0 0.0 507 -508 0.00205683708190918 0.0 0.0 0.0 508 -509 0.00205397605895996 0.0 0.0 0.0 509 -510 0.00206184387207031 0.00999999999999979 0.00999999999999979 0.0 510 -511 0.00205707550048828 0.0 0.0 0.0 511 -512 0.00204896926879883 0.0 0.0 0.0 512 -513 0.00204920768737793 0.0 0.0 0.0 513 -514 0.00206398963928223 0.0 0.0 0.0 514 -515 0.00204992294311523 0.00999999999999979 0.00999999999999979 0.0 515 -516 0.00204110145568848 0.0 0.0 0.0 516 -517 0.00205183029174805 0.0 0.0 0.0 517 -518 0.00206089019775391 0.0 0.0 0.0 518 -519 0.00207400321960449 0.00999999999999979 0.00999999999999979 0.0 519 -520 0.00206184387207031 0.0 0.0 0.0 520 -521 0.00205802917480469 0.0 0.0 0.0 521 -522 0.00205802917480469 0.0 0.0 0.0 522 -523 0.00206112861633301 0.0 0.0 0.0 523 -524 0.00215315818786621 0.0100000000000016 0.0100000000000016 0.0 524 -525 0.0020451545715332 0.0 0.0 0.0 525 -526 0.00207614898681641 0.0 0.0 0.0 526 -527 0.00208091735839844 0.0 0.0 0.0 527 -528 0.00208616256713867 0.0 0.0 0.0 528 -529 0.00211095809936523 0.00999999999999979 0.00999999999999979 0.0 529 -530 0.0298140048980713 0.0299999999999994 0.0299999999999994 0.0 530 -531 0.00220298767089844 0.0 0.0 0.0 531 -532 0.00216102600097656 0.0 0.0 0.0 532 -533 0.00211501121520996 0.0 0.0 0.0 533 -534 0.00208687782287598 0.00999999999999979 0.00999999999999979 0.0 534 -535 0.0021059513092041 0.0 0.0 0.0 535 -536 0.00210785865783691 0.0 0.0 0.0 536 -537 0.0020749568939209 0.0 0.0 0.0 537 -538 0.00207400321960449 0.0 0.0 0.0 538 -539 0.00206589698791504 0.00999999999999979 0.00999999999999979 0.0 539 -540 0.00211691856384277 0.0 0.0 0.0 540 -541 0.00208401679992676 0.0 0.0 0.0 541 -542 0.00206995010375977 0.0 0.0 0.0 542 -543 0.00206995010375977 0.0 0.0 0.0 543 -544 0.00207996368408203 0.00999999999999979 0.00999999999999979 0.0 544 -545 0.00206589698791504 0.0 0.0 0.0 545 -546 0.00207996368408203 0.0 0.0 0.0 546 -547 0.00207018852233887 0.0 0.0 0.0 547 -548 0.00206899642944336 0.0 0.0 0.0 548 -549 0.00207304954528809 0.0100000000000016 0.0100000000000016 0.0 549 -550 0.00206708908081055 0.0 0.0 0.0 550 -551 0.00209689140319824 0.0 0.0 0.0 551 -552 0.0020749568939209 0.0 0.0 0.0 552 -553 0.00207400321960449 0.00999999999999979 0.00999999999999979 0.0 553 -554 0.00207400321960449 0.0 0.0 0.0 554 -555 0.0020449161529541 0.0 0.0 0.0 555 -556 0.00207209587097168 0.0 0.0 0.0 556 -557 0.00205898284912109 0.0 0.0 0.0 557 -558 0.00214600563049316 0.00999999999999979 0.00999999999999979 0.0 558 -559 0.00205612182617188 0.0 0.0 0.0 559 -560 0.00207901000976562 0.0 0.0 0.0 560 -561 0.00205612182617188 0.0 0.0 0.0 561 -562 0.00205707550048828 0.0 0.0 0.0 562 -563 0.00205397605895996 0.00999999999999979 0.00999999999999979 0.0 563 -564 0.00207209587097168 0.0 0.0 0.0 564 -565 0.0020599365234375 0.0 0.0 0.0 565 -566 0.00208687782287598 0.0 0.0 0.0 566 -567 0.00206708908081055 0.00999999999999979 0.00999999999999979 0.0 567 -568 0.00205397605895996 0.0 0.0 0.0 568 -569 0.00206995010375977 0.0 0.0 0.0 569 -570 0.00204896926879883 0.0 0.0 0.0 570 -571 0.00208187103271484 0.0 0.0 0.0 571 -572 0.00207901000976562 0.00999999999999979 0.00999999999999979 0.0 572 -573 0.0231339931488037 0.0199999999999996 0.0199999999999996 0.0 573 -574 0.00312709808349609 0.0 0.0 0.0 574 -575 0.00215601921081543 0.0 0.0 0.0 575 -576 0.00213813781738281 0.0100000000000016 0.0100000000000016 0.0 576 -577 0.00209593772888184 0.0 0.0 0.0 577 -578 0.00209403038024902 0.0 0.0 0.0 578 -579 0.00207901000976562 0.0 0.0 0.0 579 -580 0.00208401679992676 0.0 0.0 0.0 580 -581 0.00207114219665527 0.0 0.0 0.0 581 -582 0.00207710266113281 0.0 0.0 0.0 582 -583 0.00206685066223145 0.0 0.0 0.0 583 -584 0.00206184387207031 0.0 0.0 0.0 584 -585 0.00205588340759277 0.00999999999999979 0.00999999999999979 0.0 585 -586 0.0020751953125 0.0 0.0 0.0 586 -587 0.00206303596496582 0.0 0.0 0.0 587 -588 0.00206303596496582 0.0 0.0 0.0 588 -589 0.00205612182617188 0.0 0.0 0.0 589 -590 0.00207281112670898 0.00999999999999979 0.00999999999999979 0.0 590 -591 0.00385499000549316 0.0 0.0 0.0 591 -592 0.00404191017150879 0.0 0.0 0.0 592 -593 0.00359702110290527 0.00999999999999979 0.00999999999999979 0.0 593 -594 0.0020909309387207 0.0 0.0 0.0 594 -595 0.00204992294311523 0.0 0.0 0.0 595 -596 0.0020909309387207 0.0 0.0 0.0 596 -597 0.0020749568939209 0.00999999999999979 0.00999999999999979 0.0 597 -598 0.00209784507751465 0.0 0.0 0.0 598 -599 0.00205683708190918 0.0 0.0 0.0 599 -600 0.00203394889831543 0.0 0.0 0.0 600 -601 0.00205302238464355 0.0 0.0 0.0 601 -602 0.00205016136169434 0.00999999999999979 0.00999999999999979 0.0 602 -603 0.0020599365234375 0.0 0.0 0.0 603 -604 0.00205111503601074 0.0 0.0 0.0 604 -605 0.00206780433654785 0.0 0.0 0.0 605 -606 0.00204992294311523 0.00999999999999979 0.00999999999999979 0.0 606 -607 0.00206804275512695 0.0 0.0 0.0 607 -608 0.0020439624786377 0.0 0.0 0.0 608 -609 0.00205683708190918 0.0 0.0 0.0 609 -610 0.00210785865783691 0.0 0.0 0.0 610 -611 0.00206685066223145 0.00999999999999979 0.00999999999999979 0.0 611 -612 0.00205206871032715 0.0 0.0 0.0 612 -613 0.00204706192016602 0.0 0.0 0.0 613 -614 0.00208616256713867 0.0 0.0 0.0 614 -615 0.00210213661193848 0.0 0.0 0.0 615 -616 0.0239150524139404 0.0300000000000011 0.0300000000000011 0.0 616 -617 0.00241804122924805 0.0 0.0 0.0 617 -618 0.00215888023376465 0.0 0.0 0.0 618 -619 0.00210809707641602 0.00999999999999979 0.00999999999999979 0.0 619 -620 0.00209403038024902 0.0 0.0 0.0 620 -621 0.00210905075073242 0.0 0.0 0.0 621 -622 0.00210404396057129 0.0 0.0 0.0 622 -623 0.00208401679992676 0.0 0.0 0.0 623 -624 0.00205111503601074 0.00999999999999979 0.00999999999999979 0.0 624 -625 0.00206303596496582 0.0 0.0 0.0 625 -626 0.0020599365234375 0.0 0.0 0.0 626 -627 0.00207400321960449 0.0 0.0 0.0 627 -628 0.0020759105682373 0.0 0.0 0.0 628 -629 0.00206995010375977 0.00999999999999979 0.00999999999999979 0.0 629 -630 0.0021660327911377 0.0 0.0 0.0 630 -631 0.00207710266113281 0.0 0.0 0.0 631 -632 0.00208401679992676 0.0 0.0 0.0 632 -633 0.00205492973327637 0.0 0.0 0.0 633 -634 0.00207018852233887 0.00999999999999979 0.00999999999999979 0.0 634 -635 0.00204586982727051 0.0 0.0 0.0 635 -636 0.00205898284912109 0.0 0.0 0.0 636 -637 0.0029301643371582 0.0 0.0 0.0 637 -638 0.00209999084472656 0.00999999999999979 0.00999999999999979 0.0 638 -639 0.00206685066223145 0.0 0.0 0.0 639 -640 0.00207400321960449 0.0 0.0 0.0 640 -641 0.00206184387207031 0.0 0.0 0.0 641 -642 0.00205183029174805 0.0 0.0 0.0 642 -643 0.0020592212677002 0.0100000000000016 0.0100000000000016 0.0 643 -644 0.00204300880432129 0.0 0.0 0.0 644 -645 0.00207090377807617 0.0 0.0 0.0 645 -646 0.00207710266113281 0.0 0.0 0.0 646 -647 0.00206089019775391 0.00999999999999979 0.00999999999999979 0.0 647 -648 0.00205516815185547 0.0 0.0 0.0 648 -649 0.0020599365234375 0.0 0.0 0.0 649 -650 0.00206398963928223 0.0 0.0 0.0 650 -651 0.00206279754638672 0.0 0.0 0.0 651 -652 0.00206804275512695 0.00999999999999979 0.00999999999999979 0.0 652 -653 0.00206804275512695 0.0 0.0 0.0 653 -654 0.00207209587097168 0.0 0.0 0.0 654 -655 0.00206518173217773 0.0 0.0 0.0 655 -656 0.00206589698791504 0.0 0.0 0.0 656 -657 0.00209808349609375 0.00999999999999979 0.00999999999999979 0.0 657 -658 0.00213718414306641 0.0 0.0 0.0 658 -659 0.00212907791137695 0.0 0.0 0.0 659 -660 0.0242199897766113 0.0199999999999996 0.0199999999999996 0.0 660 -661 0.00217413902282715 0.0 0.0 0.0 661 -662 0.00212502479553223 0.0 0.0 0.0 662 -663 0.0021059513092041 0.0 0.0 0.0 663 -664 0.0020909309387207 0.0 0.0 0.0 664 -665 0.00208711624145508 0.00999999999999979 0.00999999999999979 0.0 665 -666 0.00214982032775879 0.0 0.0 0.0 666 -667 0.00213503837585449 0.0 0.0 0.0 667 -668 0.00210404396057129 0.0 0.0 0.0 668 -669 0.00216293334960938 0.0 0.0 0.0 669 -670 0.00207996368408203 0.0100000000000016 0.0100000000000016 0.0 670 -671 0.00222396850585938 0.0 0.0 0.0 671 -672 0.00205898284912109 0.0 0.0 0.0 672 -673 0.00205397605895996 0.0 0.0 0.0 673 -674 0.00206708908081055 0.00999999999999979 0.00999999999999979 0.0 674 -675 0.00205898284912109 0.0 0.0 0.0 675 -676 0.00207400321960449 0.0 0.0 0.0 676 -677 0.0020599365234375 0.0 0.0 0.0 677 -678 0.00206208229064941 0.0 0.0 0.0 678 -679 0.00206589698791504 0.00999999999999979 0.00999999999999979 0.0 679 -680 0.00203895568847656 0.0 0.0 0.0 680 -681 0.00205302238464355 0.0 0.0 0.0 681 -682 0.00205397605895996 0.0 0.0 0.0 682 -683 0.0020599365234375 0.0 0.0 0.0 683 -684 0.00207614898681641 0.00999999999999979 0.00999999999999979 0.0 684 -685 0.00306200981140137 0.0 0.0 0.0 685 -686 0.00403904914855957 0.0 0.0 0.0 686 -687 0.00366306304931641 0.00999999999999979 0.00999999999999979 0.0 687 -688 0.00224184989929199 0.0 0.0 0.0 688 -689 0.00207114219665527 0.0 0.0 0.0 689 -690 0.00205707550048828 0.0 0.0 0.0 690 -691 0.00207996368408203 0.00999999999999979 0.00999999999999979 0.0 691 -692 0.00224709510803223 0.0 0.0 0.0 692 -693 0.00273489952087402 0.0 0.0 0.0 693 -694 0.00208401679992676 0.0 0.0 0.0 694 -695 0.00205206871032715 0.00999999999999979 0.00999999999999979 0.0 695 -696 0.00206899642944336 0.0 0.0 0.0 696 -697 0.00205492973327637 0.0 0.0 0.0 697 -698 0.00207281112670898 0.0 0.0 0.0 698 -699 0.00207114219665527 0.0 0.0 0.0 699 -700 0.00206804275512695 0.00999999999999979 0.00999999999999979 0.0 700 -701 0.00208711624145508 0.0 0.0 0.0 701 -702 0.0020899772644043 0.0 0.0 0.0 702 -703 0.0264170169830322 0.0300000000000011 0.0300000000000011 0.0 703 -704 0.00216817855834961 0.0 0.0 0.0 704 -705 0.00217700004577637 0.0 0.0 0.0 705 -706 0.00212311744689941 0.0 0.0 0.0 706 -707 0.0021059513092041 0.0 0.0 0.0 707 -708 0.00207686424255371 0.00999999999999979 0.00999999999999979 0.0 708 -709 0.00207686424255371 0.0 0.0 0.0 709 -710 0.00207209587097168 0.0 0.0 0.0 710 -711 0.00206804275512695 0.0 0.0 0.0 711 -712 0.00208497047424316 0.0 0.0 0.0 712 -713 0.00206303596496582 0.00999999999999979 0.00999999999999979 0.0 713 -714 0.00206899642944336 0.0 0.0 0.0 714 -715 0.00206398963928223 0.0 0.0 0.0 715 -716 0.00207996368408203 0.0 0.0 0.0 716 -717 0.00206804275512695 0.00999999999999979 0.00999999999999979 0.0 717 -718 0.00205397605895996 0.0 0.0 0.0 718 -719 0.00206899642944336 0.0 0.0 0.0 719 -720 0.00207686424255371 0.0 0.0 0.0 720 -721 0.00207400321960449 0.0 0.0 0.0 721 -722 0.00207614898681641 0.00999999999999979 0.00999999999999979 0.0 722 -723 0.00206184387207031 0.0 0.0 0.0 723 -724 0.00207996368408203 0.0 0.0 0.0 724 -725 0.00208902359008789 0.0 0.0 0.0 725 -726 0.00206303596496582 0.0 0.0 0.0 726 -727 0.00204992294311523 0.00999999999999979 0.00999999999999979 0.0 727 -728 0.00205898284912109 0.0 0.0 0.0 728 -729 0.00204992294311523 0.0 0.0 0.0 729 -730 0.00204205513000488 0.0 0.0 0.0 730 -731 0.00205898284912109 0.0 0.0 0.0 731 -732 0.00206422805786133 0.00999999999999979 0.00999999999999979 0.0 732 -733 0.00205898284912109 0.0 0.0 0.0 733 -734 0.00205111503601074 0.0 0.0 0.0 734 -735 0.00208902359008789 0.0 0.0 0.0 735 -736 0.00207805633544922 0.0100000000000016 0.0100000000000016 0.0 736 -737 0.00207400321960449 0.0 0.0 0.0 737 -738 0.00205492973327637 0.0 0.0 0.0 738 -739 0.0020751953125 0.0 0.0 0.0 739 -740 0.00207400321960449 0.0 0.0 0.0 740 -741 0.00206089019775391 0.00999999999999979 0.00999999999999979 0.0 741 -742 0.00254416465759277 0.0 0.0 0.0 742 -743 0.00206899642944336 0.0 0.0 0.0 743 -744 0.00208902359008789 0.0 0.0 0.0 744 -745 0.00208783149719238 0.0 0.0 0.0 745 -746 0.0239109992980957 0.0299999999999994 0.0299999999999994 0.0 746 -747 0.00231599807739258 0.0 0.0 0.0 747 -748 0.00217008590698242 0.0 0.0 0.0 748 -749 0.00211906433105469 0.0 0.0 0.0 749 -750 0.00209808349609375 0.00999999999999979 0.00999999999999979 0.0 750 -751 0.00207805633544922 0.0 0.0 0.0 751 -752 0.00208497047424316 0.0 0.0 0.0 752 -753 0.00206589698791504 0.0 0.0 0.0 753 -754 0.00207901000976562 0.00999999999999979 0.00999999999999979 0.0 754 -755 0.00206089019775391 0.0 0.0 0.0 755 -756 0.00207114219665527 0.0 0.0 0.0 756 -757 0.0020759105682373 0.0 0.0 0.0 757 -758 0.00206613540649414 0.0 0.0 0.0 758 -759 0.00204706192016602 0.00999999999999979 0.00999999999999979 0.0 759 -760 0.00205898284912109 0.0 0.0 0.0 760 -761 0.0020749568939209 0.0 0.0 0.0 761 -762 0.00206208229064941 0.0 0.0 0.0 762 -763 0.00206804275512695 0.0 0.0 0.0 763 -764 0.00213193893432617 0.0100000000000016 0.0100000000000016 0.0 764 -765 0.00206494331359863 0.0 0.0 0.0 765 -766 0.00205707550048828 0.0 0.0 0.0 766 -767 0.00206589698791504 0.0 0.0 0.0 767 -768 0.00207901000976562 0.00999999999999979 0.00999999999999979 0.0 768 -769 0.00204682350158691 0.0 0.0 0.0 769 -770 0.00206899642944336 0.0 0.0 0.0 770 -771 0.00208497047424316 0.0 0.0 0.0 771 -772 0.00206398963928223 0.0 0.0 0.0 772 -773 0.00205683708190918 0.00999999999999979 0.00999999999999979 0.0 773 -774 0.00205397605895996 0.0 0.0 0.0 774 -775 0.00206184387207031 0.0 0.0 0.0 775 -776 0.00205206871032715 0.0 0.0 0.0 776 -777 0.00205802917480469 0.0 0.0 0.0 777 -778 0.00281596183776855 0.00999999999999979 0.00999999999999979 0.0 778 -779 0.00403189659118652 0.0 0.0 0.0 779 -780 0.00367498397827148 0.0 0.0 0.0 780 -781 0.00383210182189941 0.00999999999999979 0.00999999999999979 0.0 781 -782 0.00206995010375977 0.0 0.0 0.0 782 -783 0.00206804275512695 0.0 0.0 0.0 783 -784 0.00208091735839844 0.00999999999999979 0.00999999999999979 0.0 784 -785 0.00210189819335938 0.0 0.0 0.0 785 -786 0.00206494331359863 0.0 0.0 0.0 786 -787 0.00209212303161621 0.0 0.0 0.0 787 -788 0.00208687782287598 0.0 0.0 0.0 788 -789 0.0249569416046143 0.0299999999999994 0.0299999999999994 0.0 789 -790 0.00217914581298828 0.0 0.0 0.0 790 -791 0.00213813781738281 0.0 0.0 0.0 791 -792 0.00213003158569336 0.0100000000000016 0.0100000000000016 0.0 792 -793 0.00212001800537109 0.0 0.0 0.0 793 -794 0.00209903717041016 0.0 0.0 0.0 794 -795 0.0021519660949707 0.0 0.0 0.0 795 -796 0.0020749568939209 0.0 0.0 0.0 796 -797 0.00205802917480469 0.00999999999999979 0.00999999999999979 0.0 797 -798 0.00208711624145508 0.0 0.0 0.0 798 -799 0.00205707550048828 0.0 0.0 0.0 799 -800 0.00207114219665527 0.0 0.0 0.0 800 -801 0.00207710266113281 0.0 0.0 0.0 801 -802 0.00207400321960449 0.00999999999999979 0.00999999999999979 0.0 802 -803 0.00207686424255371 0.0 0.0 0.0 803 -804 0.00207185745239258 0.0 0.0 0.0 804 -805 0.00206398963928223 0.0 0.0 0.0 805 -806 0.00205898284912109 0.0 0.0 0.0 806 -807 0.00205302238464355 0.00999999999999979 0.00999999999999979 0.0 807 -808 0.00205397605895996 0.0 0.0 0.0 808 -809 0.00205206871032715 0.0 0.0 0.0 809 -810 0.00205111503601074 0.0 0.0 0.0 810 -811 0.0020749568939209 0.00999999999999979 0.00999999999999979 0.0 811 -812 0.00206279754638672 0.0 0.0 0.0 812 -813 0.00205302238464355 0.0 0.0 0.0 813 -814 0.00204801559448242 0.0 0.0 0.0 814 -815 0.00205302238464355 0.0 0.0 0.0 815 -816 0.00206995010375977 0.00999999999999979 0.00999999999999979 0.0 816 -817 0.00208091735839844 0.0 0.0 0.0 817 -818 0.00214910507202148 0.0 0.0 0.0 818 -819 0.00205802917480469 0.0 0.0 0.0 819 -820 0.00217890739440918 0.0 0.0 0.0 820 -821 0.00206398963928223 0.00999999999999979 0.00999999999999979 0.0 821 -822 0.00204706192016602 0.0 0.0 0.0 822 -823 0.00205111503601074 0.0 0.0 0.0 823 -824 0.00206804275512695 0.0 0.0 0.0 824 -825 0.00206089019775391 0.00999999999999979 0.00999999999999979 0.0 825 -826 0.00207018852233887 0.0 0.0 0.0 826 -827 0.00208306312561035 0.0 0.0 0.0 827 -828 0.00205206871032715 0.0 0.0 0.0 828 -829 0.00206398963928223 0.0 0.0 0.0 829 -830 0.00209403038024902 0.0100000000000016 0.0100000000000016 0.0 830 -831 0.00208497047424316 0.0 0.0 0.0 831 -832 0.023939847946167 0.0199999999999996 0.0199999999999996 0.0 832 -833 0.00230288505554199 0.0 0.0 0.0 833 -834 0.0021669864654541 0.00999999999999979 0.00999999999999979 0.0 834 -835 0.00211286544799805 0.0 0.0 0.0 835 -836 0.0021059513092041 0.0 0.0 0.0 836 -837 0.00207304954528809 0.0 0.0 0.0 837 -838 0.0020749568939209 0.0 0.0 0.0 838 -839 0.00204682350158691 0.00999999999999979 0.00999999999999979 0.0 839 -840 0.00207400321960449 0.0 0.0 0.0 840 -841 0.0020592212677002 0.0 0.0 0.0 841 -842 0.00206589698791504 0.0 0.0 0.0 842 -843 0.00207114219665527 0.00999999999999979 0.00999999999999979 0.0 843 -844 0.00207304954528809 0.0 0.0 0.0 844 -845 0.00208091735839844 0.0 0.0 0.0 845 -846 0.00206303596496582 0.0 0.0 0.0 846 -847 0.00208115577697754 0.0 0.0 0.0 847 -848 0.00204992294311523 0.00999999999999979 0.00999999999999979 0.0 848 -849 0.00209403038024902 0.0 0.0 0.0 849 -850 0.00208497047424316 0.0 0.0 0.0 850 -851 0.00206804275512695 0.0 0.0 0.0 851 -852 0.00207209587097168 0.0 0.0 0.0 852 -853 0.0020599365234375 0.00999999999999979 0.00999999999999979 0.0 853 -854 0.0021519660949707 0.0 0.0 0.0 854 -855 0.00205707550048828 0.0 0.0 0.0 855 -856 0.00204801559448242 0.0 0.0 0.0 856 -857 0.00205111503601074 0.0100000000000016 0.0100000000000016 0.0 857 -858 0.00204992294311523 0.0 0.0 0.0 858 -859 0.00207304954528809 0.0 0.0 0.0 859 -860 0.00205898284912109 0.0 0.0 0.0 860 -861 0.00205802917480469 0.0 0.0 0.0 861 -862 0.00205397605895996 0.00999999999999979 0.00999999999999979 0.0 862 -863 0.00206089019775391 0.0 0.0 0.0 863 -864 0.00206780433654785 0.0 0.0 0.0 864 -865 0.00206708908081055 0.0 0.0 0.0 865 -866 0.00214815139770508 0.0 0.0 0.0 866 -867 0.00205397605895996 0.00999999999999979 0.00999999999999979 0.0 867 -868 0.00206112861633301 0.0 0.0 0.0 868 -869 0.00206589698791504 0.0 0.0 0.0 869 -870 0.00207686424255371 0.0 0.0 0.0 870 -871 0.00206613540649414 0.0 0.0 0.0 871 -872 0.00345492362976074 0.00999999999999979 0.00999999999999979 0.0 872 -873 0.00410318374633789 0.0 0.0 0.0 873 -874 0.00406002998352051 0.00999999999999979 0.00999999999999979 0.0 874 -875 0.0259261131286621 0.0199999999999996 0.0199999999999996 0.0 875 -876 0.00219607353210449 0.0 0.0 0.0 876 -877 0.00211405754089355 0.00999999999999979 0.00999999999999979 0.0 877 -878 0.00212407112121582 0.0 0.0 0.0 878 -879 0.00208306312561035 0.0 0.0 0.0 879 -880 0.00209808349609375 0.0 0.0 0.0 880 -881 0.00233793258666992 0.0 0.0 0.0 881 -882 0.00206804275512695 0.00999999999999979 0.00999999999999979 0.0 882 -883 0.0020759105682373 0.0 0.0 0.0 883 -884 0.00209188461303711 0.0 0.0 0.0 884 -885 0.00206899642944336 0.0 0.0 0.0 885 -886 0.00205397605895996 0.0100000000000016 0.0100000000000016 0.0 886 -887 0.00205588340759277 0.0 0.0 0.0 887 -888 0.00216484069824219 0.0 0.0 0.0 888 -889 0.00208091735839844 0.0 0.0 0.0 889 -890 0.0020751953125 0.0 0.0 0.0 890 -891 0.00336885452270508 0.00999999999999979 0.00999999999999979 0.0 891 -892 0.00415396690368652 0.0 0.0 0.0 892 -893 0.0037381649017334 0.00999999999999979 0.00999999999999979 0.0 893 -894 0.00412487983703613 0.0 0.0 0.0 894 -895 0.00375986099243164 0.0 0.0 0.0 895 -896 0.00278496742248535 0.00999999999999979 0.00999999999999979 0.0 896 -897 0.00209403038024902 0.0 0.0 0.0 897 -898 0.00205516815185547 0.0 0.0 0.0 898 -899 0.00205516815185547 0.0 0.0 0.0 899 -900 0.00203704833984375 0.0 0.0 0.0 900 -901 0.0020599365234375 0.00999999999999979 0.00999999999999979 0.0 901 -902 0.00205421447753906 0.0 0.0 0.0 902 -903 0.0020599365234375 0.0 0.0 0.0 903 -904 0.00206089019775391 0.0 0.0 0.0 904 -905 0.00207686424255371 0.00999999999999979 0.00999999999999979 0.0 905 -906 0.00207209587097168 0.0 0.0 0.0 906 -907 0.00205898284912109 0.0 0.0 0.0 907 -908 0.00206112861633301 0.0 0.0 0.0 908 -909 0.00209903717041016 0.0 0.0 0.0 909 -910 0.00206708908081055 0.00999999999999979 0.00999999999999979 0.0 910 -911 0.00206804275512695 0.0 0.0 0.0 911 -912 0.00206804275512695 0.0 0.0 0.0 912 -913 0.00207805633544922 0.0 0.0 0.0 913 -914 0.00206613540649414 0.0 0.0 0.0 914 -915 0.00205707550048828 0.00999999999999979 0.00999999999999979 0.0 915 -916 0.00208497047424316 0.0 0.0 0.0 916 -917 0.00207996368408203 0.0 0.0 0.0 917 -918 0.0248808860778809 0.0300000000000011 0.0300000000000011 0.0 918 -919 0.00217318534851074 0.0 0.0 0.0 919 -920 0.00228309631347656 0.0 0.0 0.0 920 -921 0.00214815139770508 0.0 0.0 0.0 921 -922 0.00209498405456543 0.0 0.0 0.0 922 -923 0.00209903717041016 0.00999999999999979 0.00999999999999979 0.0 923 -924 0.00206685066223145 0.0 0.0 0.0 924 -925 0.00208783149719238 0.0 0.0 0.0 925 -926 0.0020751953125 0.0 0.0 0.0 926 -927 0.0020599365234375 0.00999999999999979 0.00999999999999979 0.0 927 -928 0.00206398963928223 0.0 0.0 0.0 928 -929 0.00207400321960449 0.0 0.0 0.0 929 -930 0.00224184989929199 0.0 0.0 0.0 930 -931 0.00207209587097168 0.0 0.0 0.0 931 -932 0.00207114219665527 0.00999999999999979 0.00999999999999979 0.0 932 -933 0.00206995010375977 0.0 0.0 0.0 933 -934 0.00206613540649414 0.0 0.0 0.0 934 -935 0.00207114219665527 0.0 0.0 0.0 935 -936 0.00207901000976562 0.0 0.0 0.0 936 -937 0.00206494331359863 0.00999999999999979 0.00999999999999979 0.0 937 -938 0.0020751953125 0.0 0.0 0.0 938 -939 0.00211882591247559 0.0 0.0 0.0 939 -940 0.00212502479553223 0.0 0.0 0.0 940 -941 0.00206303596496582 0.0 0.0 0.0 941 -942 0.00205111503601074 0.00999999999999979 0.00999999999999979 0.0 942 -943 0.00204205513000488 0.0 0.0 0.0 943 -944 0.00206303596496582 0.0 0.0 0.0 944 -945 0.00205516815185547 0.0 0.0 0.0 945 -946 0.00206208229064941 0.0100000000000016 0.0100000000000016 0.0 946 -947 0.00205683708190918 0.0 0.0 0.0 947 -948 0.00204181671142578 0.0 0.0 0.0 948 -949 0.00206589698791504 0.0 0.0 0.0 949 -950 0.0020451545715332 0.0 0.0 0.0 950 -951 0.00209593772888184 0.00999999999999979 0.00999999999999979 0.0 951 -952 0.00205802917480469 0.0 0.0 0.0 952 -953 0.0020751953125 0.0 0.0 0.0 953 -954 0.00205492973327637 0.0 0.0 0.0 954 -955 0.00206303596496582 0.0 0.0 0.0 955 -956 0.00206112861633301 0.00999999999999979 0.00999999999999979 0.0 956 -957 0.00208592414855957 0.0 0.0 0.0 957 -958 0.00208497047424316 0.0 0.0 0.0 958 -959 0.00207114219665527 0.0 0.0 0.0 959 -960 0.0264370441436768 0.0299999999999994 0.0299999999999994 0.0 960 -961 0.00537300109863281 0.0 0.0 0.0 961 -962 0.00217485427856445 0.0 0.0 0.0 962 -963 0.00213003158569336 0.0 0.0 0.0 963 -964 0.00212383270263672 0.0 0.0 0.0 964 -965 0.0021059513092041 0.0 0.0 0.0 965 -966 0.0020909309387207 0.0 0.0 0.0 966 -967 0.00208091735839844 0.00999999999999979 0.00999999999999979 0.0 967 -968 0.00207018852233887 0.0 0.0 0.0 968 -969 0.00207185745239258 0.0 0.0 0.0 969 -970 0.00205111503601074 0.0 0.0 0.0 970 -971 0.00208306312561035 0.0 0.0 0.0 971 -972 0.00212502479553223 0.00999999999999979 0.00999999999999979 0.0 972 -973 0.00206995010375977 0.0 0.0 0.0 973 -974 0.0020749568939209 0.0 0.0 0.0 974 -975 0.0020749568939209 0.0 0.0 0.0 975 -976 0.00205898284912109 0.0 0.0 0.0 976 -977 0.00207304954528809 0.0100000000000016 0.0100000000000016 0.0 977 -978 0.00208806991577148 0.0 0.0 0.0 978 -979 0.00207090377807617 0.0 0.0 0.0 979 -980 0.00214314460754395 0.0 0.0 0.0 980 -981 0.00208497047424316 0.00999999999999979 0.00999999999999979 0.0 981 -982 0.00206112861633301 0.0 0.0 0.0 982 -983 0.00220704078674316 0.0 0.0 0.0 983 -984 0.00206184387207031 0.0 0.0 0.0 984 -985 0.00206589698791504 0.0 0.0 0.0 985 -986 0.00204014778137207 0.00999999999999979 0.00999999999999979 0.0 986 -987 0.00205302238464355 0.0 0.0 0.0 987 -988 0.00204801559448242 0.0 0.0 0.0 988 -989 0.0020439624786377 0.0 0.0 0.0 989 -990 0.00206494331359863 0.0 0.0 0.0 990 -991 0.00205516815185547 0.00999999999999979 0.00999999999999979 0.0 991 -992 0.0020599365234375 0.0 0.0 0.0 992 -993 0.00205802917480469 0.0 0.0 0.0 993 -994 0.0021820068359375 0.0 0.0 0.0 994 -995 0.00206708908081055 0.0 0.0 0.0 995 -996 0.00205802917480469 0.00999999999999979 0.00999999999999979 0.0 996 -997 0.00205183029174805 0.0 0.0 0.0 997 -998 0.00205588340759277 0.0 0.0 0.0 998 -999 0.00207781791687012 0.0 0.0 0.0 999 -1000 0.00205588340759277 0.0 0.0 0.0 1000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat deleted file mode 100644 index d7d9487..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat +++ /dev/null @@ -1,1000 +0,0 @@ -#lag autocorrelation -1 1.0 -2 -0.00528996763305527 -3 -0.0138044594871689 -4 -0.0208681851283985 -5 -0.0229957953064787 -6 -0.0234292596261009 -7 -0.0233334130282492 -8 -0.0241516165777752 -9 -0.0241644202341525 -10 -0.0231287425073633 -11 -0.0221175625393535 -12 -0.0186101437936229 -13 -0.0156353533961561 -14 -0.0188403159027361 -15 -0.0180504812480117 -16 -0.0217450273227108 -17 -0.0247063596763229 -18 -0.022001265884962 -19 -0.0178556473266542 -20 -0.0204164647356919 -21 -0.0182966079953989 -22 -0.0211862321337847 -23 -0.0194789850013599 -24 -0.0177742253841285 -25 -0.0092503749482194 -26 -0.00746819898929803 -27 -0.00487803332820888 -28 -0.00735913264216409 -29 -0.0094394794377043 -30 -0.0102366066065294 -31 -0.0111156180663134 -32 -0.0157818671782769 -33 -0.0168016431622766 -34 -0.0163332307175096 -35 -0.0175436530212509 -36 -0.0223712161905215 -37 -0.0219314894935517 -38 -0.0227830748204048 -39 -0.0193824105679253 -40 -0.0204213811978047 -41 -0.0174876805960081 -42 -0.0192426282967821 -43 -0.0191023286022659 -44 -0.024469189862908 -45 -0.0248594429598138 -46 -0.024075293188514 -47 -0.0231590035654209 -48 -0.0226253872291486 -49 -0.0224682138682447 -50 -0.0218129103220923 -51 -0.0192654328544414 -52 -0.0147320037081153 -53 0.272452233337269 -54 0.435015820040845 -55 0.200430320069216 -56 -0.017516322722285 -57 -0.0206134354119561 -58 -0.0216729701700104 -59 -0.0218336495632955 -60 -0.0220087456364863 -61 -0.0221961766164921 -62 -0.0220196148858699 -63 -0.0196199273707057 -64 -0.0175555144594074 -65 -0.0157115875281919 -66 -0.0178703168441715 -67 -0.020014167059419 -68 -0.0226085951821202 -69 -0.0214388900491651 -70 -0.0226874815779736 -71 -0.0209263363718717 -72 -0.0186668218529576 -73 -0.0190861172260196 -74 -0.0165844428487903 -75 -0.0183297192997319 -76 -0.0196886608427949 -77 -0.0172252505382256 -78 -0.0127282633379294 -79 -0.0118674197279215 -80 -0.00761080829361313 -81 -0.00745049886576533 -82 -0.00437801934505245 -83 -0.00530855529011354 -84 -0.00941286938636584 -85 -0.0107154791645881 -86 -0.015323870013456 -87 -0.012519266967711 -88 -0.0149736969801129 -89 -0.021651681277203 -90 -0.0230618749379273 -91 -0.0168683483705937 -92 -0.0192914563246245 -93 -0.0149596795587543 -94 -0.0156422337243361 -95 -0.0212673261015622 -96 -0.021939557403789 -97 -0.0201423837801739 -98 -0.0236606423193213 -99 -0.0214696557426392 -100 -0.0224265353446497 -101 -0.0214300874958868 -102 -0.0215321124434072 -103 -0.0196750526265947 -104 -0.0164815420539262 -105 0.153451795677057 -106 0.152304917983925 -107 0.269683604711283 -108 0.163866062031231 -109 0.0917700861184397 -110 -0.0154344686250538 -111 -0.0160009187714221 -112 -0.0181194294640359 -113 -0.0198996862071363 -114 -0.0210940088036923 -115 -0.0202294695724758 -116 -0.0201134577323488 -117 -0.0176142238854856 -118 -0.0179934480509661 -119 -0.0184941333999111 -120 -0.0209217833739569 -121 -0.0193706489699845 -122 -0.0212596356685163 -123 -0.0193402304952815 -124 -0.0168126115507807 -125 -0.0168285157052044 -126 -0.0178485073702407 -127 -0.0153236968353027 -128 -0.0172450763888923 -129 -0.0181958874426915 -130 -0.019599041433368 -131 -0.012097521583517 -132 -0.0144122698713183 -133 -0.0132513281935601 -134 -0.00875555666212923 -135 -0.00361627820509766 -136 -0.000259967785037514 -137 -0.00805847419201842 -138 -0.012649535174109 -139 -0.0145979054471083 -140 -0.0107561179136776 -141 -0.0136228025301689 -142 -0.0159619507661417 -143 -0.0191425909401178 -144 -0.0163101158814417 -145 -0.012129043859938 -146 -0.0151299875018323 -147 -0.0203386298647967 -148 -0.0209988316244983 -149 -0.0219068901698134 -150 -0.0224671072591489 -151 -0.0170418184704867 -152 -0.0201957214089058 -153 -0.0205846116271679 -154 -0.0199413534929481 -155 -0.0179691672443825 -156 -0.0150768539756268 -157 0.0995215742652554 -158 0.0981837663624077 -159 0.0931229461077249 -160 0.21175246910869 -161 0.105079528542058 -162 0.0913032756563397 -163 0.0339528356592639 -164 -0.0182805568898494 -165 -0.0193574268532822 -166 -0.019701338364763 -167 -0.0189643836934548 -168 -0.0188745629207454 -169 -0.0165737067851004 -170 -0.0158076140033874 -171 -0.0161004869746426 -172 -0.0195930716982896 -173 -0.0182623379689477 -174 -0.0200811074454518 -175 -0.0187342710910368 -176 -0.0166229225659487 -177 -0.0167237872378271 -178 -0.0201685104197428 -179 -0.0165324418353769 -180 -0.0129150606429465 -181 -0.0169169105724671 -182 -0.017078473759628 -183 -0.018127591763309 -184 -0.0112307423687399 -185 -0.0134591703948938 -186 -0.0122816446332828 -187 -0.0167129471183761 -188 -0.00633335732749837 -189 -0.00217094534395089 -190 -0.003176289001772 -191 -0.0057871656139901 -192 -0.0115873213117581 -193 -0.00896702930637471 -194 -0.0120418100687928 -195 -0.0123921707383441 -196 -0.0172084711453154 -197 -0.0152400714377606 -198 -0.0111285496578555 -199 -0.0142340919577057 -200 -0.0192937621671048 -201 -0.0197880163686053 -202 -0.020849567081396 -203 -0.0198406262700084 -204 -0.0194104738114594 -205 -0.0148131274163057 -206 -0.0192079248734278 -207 -0.0187094339560537 -208 -0.0190732730711229 -209 0.0361934269621865 -210 0.0870917883041551 -211 0.0444891209616575 -212 0.0955027397552937 -213 0.154654506121038 -214 0.102102013193298 -215 0.0494447139937405 -216 0.0904567636647291 -217 -0.0152749334062708 -218 -0.0146608967815647 -219 -0.0147668855748172 -220 -0.0156264119143688 -221 -0.0169494608304957 -222 -0.0174532100041555 -223 -0.0180837899501967 -224 -0.0182277488931129 -225 -0.0161001752368341 -226 -0.0184991832755056 -227 -0.016936119098065 -228 -0.0148320934940219 -229 -0.015273255697935 -230 -0.0182123818891898 -231 -0.0138871665097331 -232 -0.0127350570541541 -233 -0.011100664599431 -234 -0.0138609863092704 -235 -0.0175586417976635 -236 -0.0148120796895902 -237 -0.01123198970569 -238 -0.00918469713802285 -239 -0.0144957683440811 -240 -0.0150294602056943 -241 -0.00892087391044469 -242 -0.0074976007380235 -243 -0.00500305299854478 -244 -0.0041320746296184 -245 -0.00691667857012371 -246 -0.00750372968060234 -247 -0.0107390437617496 -248 -0.0107754591390794 -249 -0.0174172611999561 -250 -0.0074172610106474 -251 -0.0112726180927846 -252 -0.0128024469916435 -253 -0.0177232020585621 -254 -0.0182539224409683 -255 -0.0178084592664765 -256 -0.0179231847033095 -257 -0.0176658037985606 -258 -0.0130046634117232 -259 -0.0176477704146573 -260 -0.0172408298470646 -261 -0.0173835849314203 -262 0.0885923665459635 -263 0.0358142986092356 -264 0.0500197172082544 -265 0.0969438699174651 -266 0.0998188153355495 -267 0.100534469863311 -268 0.0434275152967989 -269 0.0463586746755651 -270 0.0357679483900484 -271 -0.0163390926804664 -272 -0.0166539709796274 -273 -0.0166872870497804 -274 -0.017774068427573 -275 -0.01744643501098 -276 -0.0170706050536218 -277 -0.0147966340538359 -278 -0.0178408200541161 -279 -0.0149580558209695 -280 -0.0131592631424661 -281 -0.0131550961874815 -282 -0.0170541425549732 -283 -0.0136965468472329 -284 -0.0127321644242889 -285 -0.013612710529614 -286 -0.0110213426857256 -287 -0.0173230618274653 -288 -0.0169456472401162 -289 -0.0137220306520902 -290 -0.00961119036236773 -291 -0.00803307600491271 -292 -0.0130753503992976 -293 -0.010061738788462 -294 -0.0128263508570457 -295 -0.00871944477256595 -296 -0.0110828266355735 -297 -0.00145913051022751 -298 -0.00503831545783849 -299 -0.00613255184823567 -300 -0.00317532255742617 -301 -0.0110344422659596 -302 -0.0133994629637518 -303 -0.00711499446473252 -304 -0.00989738058293298 -305 -0.011298222554831 -306 -0.0163568500491007 -307 -0.0172224634424476 -308 -0.016917507184404 -309 -0.0169070421736616 -310 -0.0163226499986189 -311 -0.016000223795697 -312 -0.0128559262318566 -313 -0.0163027746090817 -314 0.0367233579233198 -315 0.0342463768168967 -316 0.0392659770656562 -317 0.0503244855684373 -318 0.106836752186508 -319 0.0428611079691666 -320 0.0947673606581728 -321 0.0404266507177676 -322 0.0422539004134698 -323 0.046712070413077 -324 -0.01386005988438 -325 -0.0129602628678002 -326 -0.0128410216627282 -327 -0.013938492679744 -328 -0.0142137469756705 -329 -0.0135606375602427 -330 -0.0147616165618841 -331 -0.0152730174282578 -332 -0.0157757882742451 -333 -0.0159444484008054 -334 -0.0159291528868275 -335 -0.0125715321584254 -336 -0.0113945717528155 -337 -0.0126919884793404 -338 -0.0120634295155063 -339 -0.0132222456876789 -340 -0.0149011205134109 -341 -0.0112134307887339 -342 -0.00765611064427073 -343 -0.00812543527107914 -344 -0.0116729541542833 -345 -0.00968419876956315 -346 -0.0121532305148415 -347 -0.0128180241822045 -348 -0.0111731767567057 -349 -0.0110495088050017 -350 -0.00474012274853909 -351 -0.0037753856041303 -352 -0.00712557226243535 -353 -0.00254605671801213 -354 -0.00896555258188561 -355 -0.0111612047310962 -356 -0.00590533525415532 -357 -0.00840289962801529 -358 -0.0101831986911947 -359 -0.0147234273517197 -360 -0.0144572278847782 -361 -0.0153686584343928 -362 -0.0152089345642079 -363 -0.0151495230806089 -364 -0.0137849851202231 -365 -0.0104713526164238 -366 -0.0148077561021853 -367 0.0376152434167216 -368 0.0388904481596711 -369 0.0403627453868288 -370 0.0513758553433587 -371 0.107917898362666 -372 -0.00798200125691471 -373 0.093360263223118 -374 0.0414198673418266 -375 0.0393249984524126 -376 0.0385926575483875 -377 -0.0144476804559933 -378 -0.0139841878291661 -379 -0.0139656533470585 -380 -0.0141040067753594 -381 -0.014560155301369 -382 -0.0135420823152173 -383 -0.0145222675144676 -384 -0.014460155395546 -385 -0.0139959464489686 -386 -0.0138565068907983 -387 -0.0107326956886409 -388 -0.0110916304860035 -389 -0.0103687114713454 -390 -0.0109128112118145 -391 -0.0116952906973984 -392 -0.0135898535414944 -393 -0.0111540378855234 -394 -0.0103451114918221 -395 -0.00764288243223634 -396 -0.0111929653049535 -397 -0.00834039400762986 -398 -0.0122045257479647 -399 -0.00873973826972888 -400 -0.0110201500772717 -401 -0.00961579587076197 -402 -0.0131269667654366 -403 -0.00727683817981296 -404 -0.00189532678702501 -405 -0.0069679001311242 -406 -0.001107723493968 -407 -0.0032276027306313 -408 -0.00832965485216551 -409 -0.00619183401785534 -410 -0.00411170215472319 -411 -0.00737621873809235 -412 -0.0127249132834817 -413 -0.012360725256073 -414 -0.0139619534335789 -415 -0.0141106553759734 -416 -0.0133572727396227 -417 -0.0136325555164283 -418 -0.00934211074118071 -419 -0.0138978954665086 -420 0.0419144448041395 -421 0.0398516060966593 -422 0.0412341286880762 -423 0.0638570301312163 -424 0.0510869302001157 -425 0.0457777338184318 -426 0.0404413480661733 -427 0.03921924550858 -428 0.0407807393162245 -429 0.0390318225210268 -430 -0.0131869917758382 -431 -0.0131264891895899 -432 -0.0122572780353557 -433 -0.0113077056806523 -434 -0.00997101803890706 -435 -0.00912977714210345 -436 -0.0107250321456603 -437 -0.0114964596837888 -438 -0.0124446657069589 -439 -0.0132452844526251 -440 -0.0134871442198044 -441 -0.0134721722474661 -442 -0.0129760608103375 -443 -0.0135083529746117 -444 -0.00963739106708388 -445 -0.00960193173592791 -446 -0.00868490827989549 -447 -0.00562468586891634 -448 -0.00853085467733999 -449 -0.00565929471677666 -450 -0.011223863255388 -451 -0.00966138501976315 -452 -0.0090354154607024 -453 -0.00713189903764993 -454 -0.011915762088822 -455 -0.0119958054757221 -456 -0.00993992005512065 -457 -0.00969020982773293 -458 -0.00823692240018265 -459 -0.000762137019254547 -460 -0.0020574939054943 -461 -0.00301533448841631 -462 -0.0048914231194836 -463 -0.00351910868759082 -464 -0.00684827660431788 -465 -0.0116186865393049 -466 -0.011300766713872 -467 -0.0125877507082846 -468 -0.0122940688703853 -469 -0.0117006004743094 -470 -0.0120808872890787 -471 -0.0079558659705616 -472 -0.0121146783942612 -473 0.0430539568135278 -474 0.0413747171665245 -475 0.0523499660199948 -476 0.0583608476822571 -477 -0.00619124151362362 -478 0.100261603489863 -479 -0.0115737946916181 -480 0.0410488267232732 -481 0.0394584957178085 -482 0.0409791183648626 -483 -0.0114608582351028 -484 -0.0105762029046014 -485 -0.0107944072761537 -486 -0.0112852025771194 -487 -0.0117263968065824 -488 -0.0110523616082281 -489 -0.0119497692898177 -490 -0.0116197924803783 -491 -0.0118402671059512 -492 -0.011897810344265 -493 -0.0118894488668558 -494 -0.0119264743252911 -495 -0.0114690161171001 -496 -0.00731323308517564 -497 -0.00809920804780606 -498 -0.00742970488647833 -499 -0.00511857473147858 -500 -0.00847898987161735 -501 -0.00820255817878669 -502 -0.0114261236985163 -503 -0.0115203134210467 -504 -0.00860290050483073 -505 -0.00826598998994287 -506 -0.00724980855887389 -507 -0.0115572629089065 -508 -0.0102803597313671 -509 -0.00869596301166451 -510 -0.00845394207419729 -511 -0.0117046810178094 -512 -0.00179199508390725 -513 -0.00107544976391358 -514 3.80706993328397e-05 -515 -0.000596554636898724 -516 -0.00357817525748314 -517 -0.00275478226050938 -518 -0.00770597808246832 -519 -0.00966201636724091 -520 -0.0101235465897374 -521 -0.0101536171271843 -522 -0.011155833269644 -523 -0.0110476185961753 -524 -0.00669564292913809 -525 -0.0110511552401975 -526 0.0440369068608864 -527 0.0512502905452455 -528 0.0486364491522985 -529 -0.00947573738593063 -530 0.0556902385103537 -531 0.048793011831808 -532 0.0459173634094269 -533 -0.0106409633397968 -534 0.0407992456018877 -535 0.039174303444095 -536 -0.0108360842113073 -537 -0.0100788835149665 -538 -0.010254912645359 -539 -0.0100259263673741 -540 -0.00990611735032563 -541 -0.0094032789969041 -542 -0.00950843747839274 -543 -0.00845625372492551 -544 -0.00866941515320219 -545 -0.00846124322850009 -546 -0.00914497373023597 -547 -0.00993847480108134 -548 -0.0075404949330402 -549 -0.0105738813921492 -550 -0.00995220250924118 -551 -0.00737345302781976 -552 -0.00705109912188471 -553 -0.00701139365327054 -554 -0.0100844014809053 -555 -0.00967040948412226 -556 -0.00555743993134012 -557 -0.00567368083508669 -558 -0.00579497136824869 -559 -0.00863244150774459 -560 -0.00886461549077306 -561 -0.0071079244280313 -562 -0.00724638263714693 -563 -0.0106271670963377 -564 -0.011037491565844 -565 -0.00536963936657175 -566 -0.00611090090733861 -567 -0.0028887251775724 -568 -0.00191043898745117 -569 -0.00127008538342651 -570 -0.00355834410328823 -571 -0.00455486576193576 -572 -0.00787475936794373 -573 -0.00788070911313194 -574 -0.0095868651265576 -575 -0.00951475112345576 -576 -0.0093743009207885 -577 -0.00547534007201022 -578 -0.00937228540429001 -579 0.0550319460420979 -580 0.0480645516151382 -581 -0.00734599404058905 -582 0.0460830024666069 -583 0.0576848767980736 -584 -0.00479751472149516 -585 0.0476440575581396 -586 0.0440509543394544 -587 -0.0092326530313669 -588 0.0416175571960497 -589 -0.0085697744475703 -590 -0.00849597671001137 -591 -0.00868661526356155 -592 -0.00914985829952541 -593 -0.00899659236078795 -594 -0.00852948984142705 -595 -0.00914967236793954 -596 -0.00874291045968585 -597 -0.00901928709184545 -598 -0.00893752387862559 -599 -0.00891224538068911 -600 -0.00651845952670981 -601 -0.00883751161943683 -602 -0.0089038138028028 -603 -0.00557038586902196 -604 -0.00528015885880997 -605 -0.00549258943084052 -606 -0.00885043870546068 -607 -0.00888233763605627 -608 -0.00534145902438052 -609 -0.00549755365130086 -610 -0.00543696053556694 -611 -0.00822523019438649 -612 -0.00872078038906415 -613 -0.00768752566683437 -614 -0.00581778171379135 -615 -0.00582391899839174 -616 -0.00928453417405443 -617 -0.00967264668427969 -618 -0.00459002993915674 -619 -0.005950987566855 -620 -0.00566913223974097 -621 -0.00449639995945585 -622 0.000563029103117738 -623 -0.000478567451764753 -624 -0.00478545037303475 -625 -0.00138436078321331 -626 -0.00658049012770183 -627 -0.00727390808805458 -628 -0.00826948198171915 -629 -0.00802863304649895 -630 -0.00440359258641195 -631 -0.00781572985833776 -632 0.0467875647495199 -633 -0.0075634487605479 -634 0.0452825901031108 -635 0.047802503065829 -636 -0.00771441065516206 -637 0.0579827980967365 -638 -0.00344424350631554 -639 0.0474617155307238 -640 0.0443214745845027 -641 -0.00763674418359978 -642 -0.00783330048033026 -643 -0.00741506274953657 -644 -0.00766182032871294 -645 -0.00746333175586923 -646 -0.00774981281309243 -647 -0.00721405105565235 -648 -0.00748309956829258 -649 -0.00693846930808117 -650 -0.00687260605509018 -651 -0.00680305016519336 -652 -0.00392232393463165 -653 -0.00596409981793424 -654 -0.00637091532208361 -655 -0.0070021295658497 -656 -0.00745369558153276 -657 -0.00748127195784389 -658 -0.00764575146706985 -659 -0.00720638844475823 -660 -0.00404423858223977 -661 -0.00405994477085238 -662 -0.00403357383109679 -663 -0.00648614706767544 -664 -0.00685104080751668 -665 -0.0055280793955573 -666 -0.00315266716147567 -667 -0.00289308426512229 -668 -0.0072907609350431 -669 -0.00778772320057429 -670 -0.00488230712792173 -671 -0.00428235797819206 -672 -0.00192624881716949 -673 -0.00690255454554318 -674 -0.00713932385460058 -675 -0.00190412691550018 -676 -0.00393717929429579 -677 -0.00322818496016548 -678 -0.00243123536539799 -679 -0.00325588623994424 -680 -0.00538550295619236 -681 -0.00569794784977527 -682 -0.00289248819958694 -683 -0.00674738254274132 -684 -0.00654327601801023 -685 -0.00642602661328291 -686 0.0487750013526658 -687 0.047351094119514 -688 -0.00634438713740084 -689 0.0483969866326635 -690 -0.00631126189370909 -691 0.0575822184504765 -692 -0.00221791722280226 -693 0.0478438468160886 -694 -0.00601391341772256 -695 -0.0056575420242112 -696 -0.00594331685758806 -697 -0.00602482896673149 -698 -0.00605358459658212 -699 -0.00573917550488335 -700 -0.00612440997777024 -701 -0.00585399571222659 -702 -0.00621035443994097 -703 -0.00577194218906833 -704 -0.00613669297980652 -705 -0.00603898494035611 -706 -0.00619657263267714 -707 -0.00631266537086359 -708 -0.00624176954936451 -709 -0.006493542110829 -710 -0.00641811359085571 -711 -0.00580520415695734 -712 -0.00254464054715768 -713 -0.00229049693565925 -714 -0.00260111893418342 -715 -0.00527998866629625 -716 -0.00580492472038456 -717 -0.00465763013855649 -718 -0.00291794763769027 -719 -0.0026170818255646 -720 -0.00635539773199271 -721 -0.00671950951784405 -722 -0.00681695170475915 -723 -0.00342054050102763 -724 -0.00275560859414933 -725 -0.000438510861243582 -726 -0.00560480727876819 -727 -0.0041561152883926 -728 -0.00600365300527431 -729 -0.00265123271948093 -730 -0.00264290423293351 -731 -0.00282174940291308 -732 -0.00138157106781404 -733 -0.00215366901979637 -734 -0.00419250836135037 -735 -0.000767184920404968 -736 -0.00550222672199026 -737 -0.00539179599992564 -738 -0.00519932278664982 -739 0.0503886317719632 -740 -0.00520071436244274 -741 0.0475171927490064 -742 -0.0054330140398667 -743 0.047917953696494 -744 -0.00493698211328358 -745 0.0578078065249347 -746 -0.00102406638326662 -747 -0.00351464407443385 -748 -0.00471808955799036 -749 -0.00466085562121167 -750 -0.00504216853601972 -751 -0.00491478851728083 -752 -0.00511582115647942 -753 -0.00510690407002076 -754 -0.00467115492125063 -755 -0.00507292488280625 -756 -0.00469600377226158 -757 -0.00479060778969928 -758 -0.00466814567292629 -759 -0.00459391587926426 -760 -0.00459367283047094 -761 -0.00456390630082813 -762 -0.00455517712581946 -763 -0.00444580816383878 -764 -0.00414375346682848 -765 -0.00462598085672905 -766 -0.00499924843048424 -767 -0.00393636209693802 -768 -0.00456718162991524 -769 -0.00323237519329591 -770 -0.00148778939855011 -771 -0.00156596659778741 -772 -0.00512915993874979 -773 -0.00492227748379505 -774 -0.00510090567121982 -775 -0.00134085402411959 -776 -0.000327698557656855 -777 -8.39604799222434e-05 -778 -0.00353180377704261 -779 -0.000884661451432567 -780 -0.00538269466798041 -781 -0.00550165919535478 -782 -0.00474894345489591 -783 -0.00166595007800424 -784 -0.00164486517145988 -785 -0.0035315332501745 -786 -0.00381711953376717 -787 0.000511414240780713 -788 -0.00386876867596389 -789 -0.00388546637330086 -790 -0.00381782963314221 -791 -0.00381978862023741 -792 -0.00375421982535356 -793 0.0509990813856318 -794 -0.00381674314240938 -795 0.0477092429318382 -796 -0.00346493764501739 -797 0.0486187069130531 -798 -0.00339231221033292 -799 -0.00372220200580609 -800 -0.00287181937082116 -801 -0.00282120299186121 -802 -0.00303246455350132 -803 -0.00274260094361711 -804 -0.00310003295922211 -805 -0.00318965584106337 -806 -0.0031124174327327 -807 -0.00296156129101724 -808 -0.00261410724164222 -809 -0.00304904712449122 -810 -0.00281829350522029 -811 -0.00334413423907794 -812 -0.00324558699946082 -813 -0.00321794842161168 -814 -0.00321688033495476 -815 -0.00315375940221917 -816 -0.00336252254507409 -817 -0.00338748787969201 -818 -0.0034301958497396 -819 -0.00328180304356289 -820 -0.00258348401263859 -821 -0.00151860018638174 -822 0.000385489721472849 -823 0.000485212390458467 -824 -0.00320045213749609 -825 -0.00360387425612046 -826 -0.00368875452847038 -827 -0.000252971173092802 -828 0.000274558167106639 -829 0.000415225492461183 -830 -0.00244928117799424 -831 -0.00157932593327874 -832 -0.00367396988363851 -833 -0.00159554367802162 -834 -0.00368044170833197 -835 -0.00381051495784578 -836 -0.00324391585440044 -837 8.26736255865406e-05 -838 0.000153133563221676 -839 0.00199072719691019 -840 -0.00225648039461718 -841 -0.00274833553045294 -842 -0.0025524575347716 -843 -0.00266988934954553 -844 -0.00255016712114302 -845 -0.00249982952647676 -846 -0.00252451553899371 -847 0.0509521741597566 -848 -0.00203584084600686 -849 0.0482575025076935 -850 -0.00222502592695146 -851 -0.00243295457553993 -852 -0.00170644617880928 -853 -0.00187578228348824 -854 -0.00189936420623392 -855 -0.00181014970183154 -856 -0.0019587407113103 -857 -0.00203035618973669 -858 -0.00200647352201275 -859 -0.00193357132846691 -860 -0.00203929593752837 -861 -0.00206047244950508 -862 -0.00172974796194137 -863 -0.00222152628496213 -864 -0.00176469161067378 -865 -0.00214628615471073 -866 -0.00223274820098944 -867 -0.00192609654692526 -868 -0.00160052707734799 -869 -0.00117491475685682 -870 -0.00172104022111683 -871 -0.00197669922228011 -872 -0.00200394021725799 -873 -0.00221174196880852 -874 -0.00214414888155639 -875 -0.0022418657462635 -876 -0.00224815601970618 -877 -0.00217548907899938 -878 -0.00219023215478833 -879 0.00103657148517733 -880 0.00170021752346762 -881 0.00176856581251282 -882 -0.00119486637524174 -883 -0.000182189717262493 -884 -0.00231669994116794 -885 -0.00235562044940596 -886 -0.00240760288834928 -887 -0.000369271736430893 -888 -0.00246106212268728 -889 -0.00248445436295954 -890 -0.00240055220436233 -891 0.00124694319822849 -892 -0.00238841299541467 -893 -0.00120964260603448 -894 -0.00108173638550143 -895 -0.00126617766611188 -896 -0.00126735332683995 -897 -0.00132493094338301 -898 -0.00127297814761722 -899 -0.00107541591903143 -900 -0.00078859473755685 -901 0.0515056301543915 -902 -0.000768818460590909 -903 -0.00107659176705549 -904 -0.000363324073519261 -905 -0.000435897358878675 -906 -0.000440171834594805 -907 -0.000337150215603847 -908 -0.000521457828934685 -909 -0.000601509879478592 -910 -0.000562536656253432 -911 -0.000540431206158033 -912 -0.000585521045810499 -913 -0.000647443311740879 -914 -0.000652572655245648 -915 -0.000754504564741441 -916 -0.00026111034852018 -917 -0.000614503803880769 -918 -0.00028306248528981 -919 -0.00062103454712342 -920 -0.00080789702501966 -921 -0.000857347553194396 -922 -0.000973273096392423 -923 -0.00071891921707499 -924 -0.000852123727546584 -925 -0.000908061110978231 -926 -0.000897846447493529 -927 -0.00107192184892616 -928 -0.00103558075120389 -929 -0.000858383868863735 -930 -0.00100410240556484 -931 0.00217861450591949 -932 0.00284094109416015 -933 0.00290236058075264 -934 -4.67766974110993e-06 -935 -0.00115598145065964 -936 -0.00115889264986191 -937 -0.00120477520403814 -938 -0.0011160907820447 -939 -0.00122108572337335 -940 -0.00129438459340121 -941 -0.0012642472236683 -942 -0.00112755293175713 -943 0.00267094176933998 -944 -0.00127265229053917 -945 -0.00128120069665366 -946 -0.00125730796622217 -947 -0.000161188927728071 -948 -0.00018709473550969 -949 -0.000202988378879946 -950 -0.000298277929635308 -951 -0.000228270818099919 -952 -0.000234161898233589 -953 -0.00026231090883195 -954 -0.000188222581526064 -955 -3.12448503073219e-05 -956 0.000717016504105383 -957 0.000690863879115161 -958 0.000699560885968165 -959 0.000642085039518387 -960 0.000647697652791968 -961 0.000599074112689629 -962 0.000575154175297893 -963 0.000549298287923788 -964 0.000516895100767751 -965 0.000505782209635087 -966 0.000468256937777253 -967 0.000443201508212851 -968 0.000422857688527172 -969 0.000396172202507289 -970 0.000378968023322664 -971 0.000356781808907751 -972 0.000335281879557104 -973 0.000318039116828582 -974 0.00029453308441855 -975 0.000267951475057331 -976 0.000246035263474985 -977 0.000289581453389937 -978 0.000348007228990331 -979 0.00040460593179165 -980 0.000411143906352345 -981 0.000381827800477813 -982 0.000355749114743507 -983 0.000330472553418517 -984 0.000310675137741401 -985 0.000285966709056265 -986 0.000261731425090165 -987 0.000237012405074174 -988 0.000215826766435867 -989 0.000273446389041168 -990 0.000248883730962565 -991 0.000224615155659346 -992 0.000200129222402582 -993 0.000177275060030199 -994 0.00015277663830548 -995 0.000128527059295642 -996 0.000102904910816061 -997 8.05504321850845e-05 -998 5.85820006378074e-05 -999 3.63637004327478e-05 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat deleted file mode 100644 index 8844c14..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat +++ /dev/null @@ -1,1001 +0,0 @@ -#scatter real total user system repeat -1 0.00191903114318848 0.0 0.0 0.0 1 -2 0.00184082984924316 0.0 0.0 0.0 2 -3 0.00179791450500488 0.0 0.0 0.0 3 -4 0.00180506706237793 0.0100000000000016 0.0100000000000016 0.0 4 -5 0.00179386138916016 0.0 0.0 0.0 5 -6 0.00174307823181152 0.0 0.0 0.0 6 -7 0.00177001953125 0.0 0.0 0.0 7 -8 0.00175905227661133 0.0 0.0 0.0 8 -9 0.00177288055419922 0.00999999999999801 0.00999999999999801 0.0 9 -10 0.00176692008972168 0.0 0.0 0.0 10 -11 0.00176906585693359 0.0 0.0 0.0 11 -12 0.0017549991607666 0.0 0.0 0.0 12 -13 0.00345110893249512 0.0 0.0 0.0 13 -14 0.0018010139465332 0.0100000000000016 0.0100000000000016 0.0 14 -15 0.0017697811126709 0.0 0.0 0.0 15 -16 0.00174093246459961 0.0 0.0 0.0 16 -17 0.00175905227661133 0.0 0.0 0.0 17 -18 0.00176501274108887 0.0 0.0 0.0 18 -19 0.00176501274108887 0.0 0.0 0.0 19 -20 0.00175905227661133 0.00999999999999801 0.00999999999999801 0.0 20 -21 0.00173807144165039 0.0 0.0 0.0 21 -22 0.00222587585449219 0.0 0.0 0.0 22 -23 0.00347685813903809 0.0 0.0 0.0 23 -24 0.00342988967895508 0.0100000000000016 0.0100000000000016 0.0 24 -25 0.00312495231628418 0.0 0.0 0.0 25 -26 0.00174784660339355 0.0 0.0 0.0 26 -27 0.00174403190612793 0.0 0.0 0.0 27 -28 0.00174093246459961 0.0100000000000016 0.0100000000000016 0.0 28 -29 0.00173211097717285 0.0 0.0 0.0 29 -30 0.00176692008972168 0.0 0.0 0.0 30 -31 0.00176620483398438 0.0 0.0 0.0 31 -32 0.00179195404052734 0.0 0.0 0.0 32 -33 0.0017549991607666 0.0 0.0 0.0 33 -34 0.00172591209411621 0.0 0.0 0.0 34 -35 0.00174117088317871 0.0 0.0 0.0 35 -36 0.00173783302307129 0.0 0.0 0.0 36 -37 0.00174689292907715 0.0 0.0 0.0 37 -38 0.00173211097717285 0.0 0.0 0.0 38 -39 0.00174999237060547 0.0100000000000016 0.0100000000000016 0.0 39 -40 0.00176692008972168 0.0 0.0 0.0 40 -41 0.00172901153564453 0.0 0.0 0.0 41 -42 0.00174593925476074 0.0 0.0 0.0 42 -43 0.00175309181213379 0.0 0.0 0.0 43 -44 0.00175905227661133 0.0 0.0 0.0 44 -45 0.00176715850830078 0.00999999999999801 0.00999999999999801 0.0 45 -46 0.00174784660339355 0.0 0.0 0.0 46 -47 0.0017399787902832 0.0 0.0 0.0 47 -48 0.00174307823181152 0.0 0.0 0.0 48 -49 0.00180912017822266 0.0 0.0 0.0 49 -50 0.00175309181213379 0.0100000000000016 0.0100000000000016 0.0 50 -51 0.0017399787902832 0.0 0.0 0.0 51 -52 0.00176811218261719 0.0 0.0 0.0 52 -53 0.00176596641540527 0.0 0.0 0.0 53 -54 0.00189590454101562 0.0 0.0 0.0 54 -55 0.024507999420166 0.0299999999999976 0.0299999999999976 0.0 55 -56 0.00197005271911621 0.0 0.0 0.0 56 -57 0.00185298919677734 0.0 0.0 0.0 57 -58 0.00178289413452148 0.0 0.0 0.0 58 -59 0.00177383422851562 0.0 0.0 0.0 59 -60 0.00178122520446777 0.0100000000000016 0.0100000000000016 0.0 60 -61 0.00177597999572754 0.0 0.0 0.0 61 -62 0.00182914733886719 0.0 0.0 0.0 62 -63 0.00176692008972168 0.0 0.0 0.0 63 -64 0.00177502632141113 0.0 0.0 0.0 64 -65 0.00175118446350098 0.0100000000000016 0.0100000000000016 0.0 65 -66 0.00176286697387695 0.0 0.0 0.0 66 -67 0.00175809860229492 0.0 0.0 0.0 67 -68 0.00176095962524414 0.0 0.0 0.0 68 -69 0.0017540454864502 0.0 0.0 0.0 69 -70 0.00175094604492188 0.0 0.0 0.0 70 -71 0.00176000595092773 0.00999999999999801 0.00999999999999801 0.0 71 -72 0.00174784660339355 0.0 0.0 0.0 72 -73 0.00272703170776367 0.0 0.0 0.0 73 -74 0.00178098678588867 0.0 0.0 0.0 74 -75 0.0017540454864502 0.0 0.0 0.0 75 -76 0.00175595283508301 0.0100000000000016 0.0100000000000016 0.0 76 -77 0.00174784660339355 0.0 0.0 0.0 77 -78 0.00176095962524414 0.0 0.0 0.0 78 -79 0.00175094604492188 0.0 0.0 0.0 79 -80 0.00174617767333984 0.0 0.0 0.0 80 -81 0.00176286697387695 0.00999999999999801 0.00999999999999801 0.0 81 -82 0.00174784660339355 0.0 0.0 0.0 82 -83 0.0017402172088623 0.0 0.0 0.0 83 -84 0.00174093246459961 0.0 0.0 0.0 84 -85 0.00174880027770996 0.0 0.0 0.0 85 -86 0.00174283981323242 0.0 0.0 0.0 86 -87 0.0017549991607666 0.0100000000000016 0.0100000000000016 0.0 87 -88 0.00175690650939941 0.0 0.0 0.0 88 -89 0.0017390251159668 0.0 0.0 0.0 89 -90 0.0017399787902832 0.0 0.0 0.0 90 -91 0.00176286697387695 0.0 0.0 0.0 91 -92 0.00174093246459961 0.00999999999999801 0.00999999999999801 0.0 92 -93 0.00173306465148926 0.0 0.0 0.0 93 -94 0.00173091888427734 0.0 0.0 0.0 94 -95 0.00175118446350098 0.0 0.0 0.0 95 -96 0.00173187255859375 0.0 0.0 0.0 96 -97 0.00177407264709473 0.0 0.0 0.0 97 -98 0.00174498558044434 0.0100000000000016 0.0100000000000016 0.0 98 -99 0.00173783302307129 0.0 0.0 0.0 99 -100 0.00174283981323242 0.0 0.0 0.0 100 -101 0.0017549991607666 0.0 0.0 0.0 101 -102 0.00173020362854004 0.0 0.0 0.0 102 -103 0.00172805786132812 0.0 0.0 0.0 103 -104 0.00174784660339355 0.0 0.0 0.0 104 -105 0.00175786018371582 0.0 0.0 0.0 105 -106 0.00176501274108887 0.0 0.0 0.0 106 -107 0.00174784660339355 0.0 0.0 0.0 107 -108 0.00176095962524414 0.0 0.0 0.0 108 -109 0.0247871875762939 0.0299999999999976 0.0299999999999976 0.0 109 -110 0.0018157958984375 0.0 0.0 0.0 110 -111 0.00183296203613281 0.0 0.0 0.0 111 -112 0.00179004669189453 0.0 0.0 0.0 112 -113 0.00177502632141113 0.0100000000000016 0.0100000000000016 0.0 113 -114 0.00177502632141113 0.0 0.0 0.0 114 -115 0.00174498558044434 0.0 0.0 0.0 115 -116 0.00174808502197266 0.0 0.0 0.0 116 -117 0.00175595283508301 0.0 0.0 0.0 117 -118 0.00174808502197266 0.00999999999999801 0.00999999999999801 0.0 118 -119 0.00177216529846191 0.0 0.0 0.0 119 -120 0.0017540454864502 0.0 0.0 0.0 120 -121 0.00176286697387695 0.0 0.0 0.0 121 -122 0.00176787376403809 0.0 0.0 0.0 122 -123 0.00175905227661133 0.0 0.0 0.0 123 -124 0.0017549991607666 0.0100000000000016 0.0100000000000016 0.0 124 -125 0.00174403190612793 0.0 0.0 0.0 125 -126 0.00174903869628906 0.0 0.0 0.0 126 -127 0.00180387496948242 0.0 0.0 0.0 127 -128 0.00177502632141113 0.0 0.0 0.0 128 -129 0.00175595283508301 0.00999999999999801 0.00999999999999801 0.0 129 -130 0.00174903869628906 0.0 0.0 0.0 130 -131 0.00176501274108887 0.0 0.0 0.0 131 -132 0.00191903114318848 0.0 0.0 0.0 132 -133 0.0034480094909668 0.0 0.0 0.0 133 -134 0.00341916084289551 0.0100000000000016 0.0100000000000016 0.0 134 -135 0.00260114669799805 0.0 0.0 0.0 135 -136 0.00203084945678711 0.0 0.0 0.0 136 -137 0.00176596641540527 0.0 0.0 0.0 137 -138 0.00175189971923828 0.0100000000000016 0.0100000000000016 0.0 138 -139 0.00176119804382324 0.0 0.0 0.0 139 -140 0.00174784660339355 0.0 0.0 0.0 140 -141 0.00173783302307129 0.0 0.0 0.0 141 -142 0.00179481506347656 0.0 0.0 0.0 142 -143 0.00173401832580566 0.00999999999999801 0.00999999999999801 0.0 143 -144 0.00175189971923828 0.0 0.0 0.0 144 -145 0.00174188613891602 0.0 0.0 0.0 145 -146 0.0017549991607666 0.0 0.0 0.0 146 -147 0.00174808502197266 0.0 0.0 0.0 147 -148 0.00174498558044434 0.0 0.0 0.0 148 -149 0.00174307823181152 0.0100000000000016 0.0100000000000016 0.0 149 -150 0.00175595283508301 0.0 0.0 0.0 150 -151 0.0017549991607666 0.0 0.0 0.0 151 -152 0.00174403190612793 0.0 0.0 0.0 152 -153 0.00174808502197266 0.0 0.0 0.0 153 -154 0.00174403190612793 0.0 0.0 0.0 154 -155 0.00183796882629395 0.00999999999999801 0.00999999999999801 0.0 155 -156 0.00176095962524414 0.0 0.0 0.0 156 -157 0.0017399787902832 0.0 0.0 0.0 157 -158 0.00181007385253906 0.0 0.0 0.0 158 -159 0.00175905227661133 0.0 0.0 0.0 159 -160 0.00177717208862305 0.0100000000000016 0.0100000000000016 0.0 160 -161 0.00175380706787109 0.0 0.0 0.0 161 -162 0.00177097320556641 0.0 0.0 0.0 162 -163 0.0254480838775635 0.0199999999999996 0.0199999999999996 0.0 163 -164 0.00185108184814453 0.00999999999999801 0.00999999999999801 0.0 164 -165 0.00188708305358887 0.0 0.0 0.0 165 -166 0.00177788734436035 0.0 0.0 0.0 166 -167 0.00183510780334473 0.0 0.0 0.0 167 -168 0.00177812576293945 0.0 0.0 0.0 168 -169 0.00177502632141113 0.0100000000000016 0.0100000000000016 0.0 169 -170 0.00174593925476074 0.0 0.0 0.0 170 -171 0.00176692008972168 0.0 0.0 0.0 171 -172 0.00175786018371582 0.0 0.0 0.0 172 -173 0.00176501274108887 0.0 0.0 0.0 173 -174 0.0018000602722168 0.0100000000000016 0.0100000000000016 0.0 174 -175 0.00176095962524414 0.0 0.0 0.0 175 -176 0.00175714492797852 0.0 0.0 0.0 176 -177 0.00174999237060547 0.0 0.0 0.0 177 -178 0.00176191329956055 0.0 0.0 0.0 178 -179 0.00175786018371582 0.0 0.0 0.0 179 -180 0.00174117088317871 0.00999999999999801 0.00999999999999801 0.0 180 -181 0.00177001953125 0.0 0.0 0.0 181 -182 0.00176095962524414 0.0 0.0 0.0 182 -183 0.00174903869628906 0.0 0.0 0.0 183 -184 0.00174093246459961 0.0 0.0 0.0 184 -185 0.00174307823181152 0.0 0.0 0.0 185 -186 0.00175595283508301 0.0100000000000016 0.0100000000000016 0.0 186 -187 0.00175189971923828 0.0 0.0 0.0 187 -188 0.00173711776733398 0.0 0.0 0.0 188 -189 0.00221514701843262 0.0 0.0 0.0 189 -190 0.00177502632141113 0.0 0.0 0.0 190 -191 0.00176811218261719 0.00999999999999801 0.00999999999999801 0.0 191 -192 0.00185799598693848 0.0 0.0 0.0 192 -193 0.00174903869628906 0.0 0.0 0.0 193 -194 0.00174379348754883 0.0 0.0 0.0 194 -195 0.0017399787902832 0.0 0.0 0.0 195 -196 0.00173401832580566 0.0100000000000016 0.0100000000000016 0.0 196 -197 0.00172996520996094 0.0 0.0 0.0 197 -198 0.00173401832580566 0.0 0.0 0.0 198 -199 0.00182390213012695 0.0 0.0 0.0 199 -200 0.00174784660339355 0.0 0.0 0.0 200 -201 0.0017549991607666 0.0 0.0 0.0 201 -202 0.00174307823181152 0.00999999999999801 0.00999999999999801 0.0 202 -203 0.00172710418701172 0.0 0.0 0.0 203 -204 0.00174283981323242 0.0 0.0 0.0 204 -205 0.00174999237060547 0.0 0.0 0.0 205 -206 0.00174093246459961 0.0 0.0 0.0 206 -207 0.00173616409301758 0.0 0.0 0.0 207 -208 0.00174903869628906 0.0100000000000016 0.0100000000000016 0.0 208 -209 0.00177407264709473 0.0 0.0 0.0 209 -210 0.00176286697387695 0.0 0.0 0.0 210 -211 0.00174903869628906 0.0 0.0 0.0 211 -212 0.00173807144165039 0.0 0.0 0.0 212 -213 0.00173020362854004 0.0100000000000016 0.0100000000000016 0.0 213 -214 0.00177502632141113 0.0 0.0 0.0 214 -215 0.00175309181213379 0.0 0.0 0.0 215 -216 0.00175595283508301 0.0 0.0 0.0 216 -217 0.0257258415222168 0.0299999999999976 0.0299999999999976 0.0 217 -218 0.00183296203613281 0.0 0.0 0.0 218 -219 0.00183606147766113 0.0 0.0 0.0 219 -220 0.0017850399017334 0.0 0.0 0.0 220 -221 0.00177097320556641 0.0 0.0 0.0 221 -222 0.00177097320556641 0.0100000000000016 0.0100000000000016 0.0 222 -223 0.00174808502197266 0.0 0.0 0.0 223 -224 0.00177216529846191 0.0 0.0 0.0 224 -225 0.0017549991607666 0.0 0.0 0.0 225 -226 0.00176095962524414 0.0 0.0 0.0 226 -227 0.00178098678588867 0.00999999999999801 0.00999999999999801 0.0 227 -228 0.00174188613891602 0.0 0.0 0.0 228 -229 0.0017540454864502 0.0 0.0 0.0 229 -230 0.00176477432250977 0.0 0.0 0.0 230 -231 0.00176191329956055 0.0 0.0 0.0 231 -232 0.00174713134765625 0.0 0.0 0.0 232 -233 0.00176095962524414 0.0100000000000016 0.0100000000000016 0.0 233 -234 0.00174903869628906 0.0 0.0 0.0 234 -235 0.0017549991607666 0.0 0.0 0.0 235 -236 0.00177001953125 0.0 0.0 0.0 236 -237 0.00174093246459961 0.0 0.0 0.0 237 -238 0.00174379348754883 0.0 0.0 0.0 238 -239 0.0017390251159668 0.00999999999999801 0.00999999999999801 0.0 239 -240 0.00175213813781738 0.0 0.0 0.0 240 -241 0.00174117088317871 0.0 0.0 0.0 241 -242 0.00341701507568359 0.0 0.0 0.0 242 -243 0.00347495079040527 0.0100000000000016 0.0100000000000016 0.0 243 -244 0.00339508056640625 0.0 0.0 0.0 244 -245 0.00204801559448242 0.0 0.0 0.0 245 -246 0.00174903869628906 0.0 0.0 0.0 246 -247 0.00174903869628906 0.0100000000000016 0.0100000000000016 0.0 247 -248 0.00174283981323242 0.0 0.0 0.0 248 -249 0.00176382064819336 0.0 0.0 0.0 249 -250 0.00179600715637207 0.0 0.0 0.0 250 -251 0.00175380706787109 0.0 0.0 0.0 251 -252 0.00175976753234863 0.00999999999999801 0.00999999999999801 0.0 252 -253 0.00174188613891602 0.0 0.0 0.0 253 -254 0.00174808502197266 0.0 0.0 0.0 254 -255 0.00175690650939941 0.0 0.0 0.0 255 -256 0.00173091888427734 0.0 0.0 0.0 256 -257 0.00175213813781738 0.0 0.0 0.0 257 -258 0.00174498558044434 0.0100000000000016 0.0100000000000016 0.0 258 -259 0.00174999237060547 0.0 0.0 0.0 259 -260 0.00175094604492188 0.0 0.0 0.0 260 -261 0.00177097320556641 0.0 0.0 0.0 261 -262 0.00174283981323242 0.0 0.0 0.0 262 -263 0.00174999237060547 0.00999999999999801 0.00999999999999801 0.0 263 -264 0.00174713134765625 0.0 0.0 0.0 264 -265 0.00174212455749512 0.0 0.0 0.0 265 -266 0.00174498558044434 0.0 0.0 0.0 266 -267 0.00180602073669434 0.0 0.0 0.0 267 -268 0.00176906585693359 0.0 0.0 0.0 268 -269 0.00176382064819336 0.0100000000000016 0.0100000000000016 0.0 269 -270 0.0255179405212402 0.0199999999999996 0.0199999999999996 0.0 270 -271 0.00179314613342285 0.0 0.0 0.0 271 -272 0.00182604789733887 0.00999999999999801 0.00999999999999801 0.0 272 -273 0.00179910659790039 0.0 0.0 0.0 273 -274 0.00179505348205566 0.0 0.0 0.0 274 -275 0.00176811218261719 0.0 0.0 0.0 275 -276 0.00177192687988281 0.0 0.0 0.0 276 -277 0.00177478790283203 0.0 0.0 0.0 277 -278 0.00176596641540527 0.0100000000000016 0.0100000000000016 0.0 278 -279 0.0020899772644043 0.0 0.0 0.0 279 -280 0.00182890892028809 0.0 0.0 0.0 280 -281 0.00177597999572754 0.0 0.0 0.0 281 -282 0.0018761157989502 0.0 0.0 0.0 282 -283 0.00176405906677246 0.0100000000000016 0.0100000000000016 0.0 283 -284 0.00177693367004395 0.0 0.0 0.0 284 -285 0.00175094604492188 0.0 0.0 0.0 285 -286 0.00176000595092773 0.0 0.0 0.0 286 -287 0.00176095962524414 0.0 0.0 0.0 287 -288 0.00176715850830078 0.0 0.0 0.0 288 -289 0.0017549991607666 0.00999999999999801 0.00999999999999801 0.0 289 -290 0.00177216529846191 0.0 0.0 0.0 290 -291 0.00175881385803223 0.0 0.0 0.0 291 -292 0.00177502632141113 0.0 0.0 0.0 292 -293 0.00174999237060547 0.0 0.0 0.0 293 -294 0.00176000595092773 0.0100000000000016 0.0100000000000016 0.0 294 -295 0.00173807144165039 0.0 0.0 0.0 295 -296 0.00174999237060547 0.0 0.0 0.0 296 -297 0.00174212455749512 0.0 0.0 0.0 297 -298 0.0017549991607666 0.0 0.0 0.0 298 -299 0.00174713134765625 0.0 0.0 0.0 299 -300 0.00174784660339355 0.00999999999999801 0.00999999999999801 0.0 300 -301 0.00174403190612793 0.0 0.0 0.0 301 -302 0.00175905227661133 0.0 0.0 0.0 302 -303 0.00174713134765625 0.0 0.0 0.0 303 -304 0.00293898582458496 0.0 0.0 0.0 304 -305 0.00175619125366211 0.0100000000000016 0.0100000000000016 0.0 305 -306 0.00176787376403809 0.0 0.0 0.0 306 -307 0.00173401832580566 0.0 0.0 0.0 307 -308 0.00176095962524414 0.0 0.0 0.0 308 -309 0.00177383422851562 0.0 0.0 0.0 309 -310 0.00175189971923828 0.0 0.0 0.0 310 -311 0.00173211097717285 0.00999999999999801 0.00999999999999801 0.0 311 -312 0.00173211097717285 0.0 0.0 0.0 312 -313 0.00175786018371582 0.0 0.0 0.0 313 -314 0.0017549991607666 0.0 0.0 0.0 314 -315 0.00180292129516602 0.0 0.0 0.0 315 -316 0.00176787376403809 0.0100000000000016 0.0100000000000016 0.0 316 -317 0.00175714492797852 0.0 0.0 0.0 317 -318 0.00177097320556641 0.0 0.0 0.0 318 -319 0.00173711776733398 0.0 0.0 0.0 319 -320 0.00174307823181152 0.0 0.0 0.0 320 -321 0.00177502632141113 0.0 0.0 0.0 321 -322 0.00176501274108887 0.0100000000000016 0.0100000000000016 0.0 322 -323 0.00177407264709473 0.0 0.0 0.0 323 -324 0.0253810882568359 0.0199999999999996 0.0199999999999996 0.0 324 -325 0.00182509422302246 0.00999999999999801 0.00999999999999801 0.0 325 -326 0.00184917449951172 0.0 0.0 0.0 326 -327 0.0018160343170166 0.0 0.0 0.0 327 -328 0.00176692008972168 0.0 0.0 0.0 328 -329 0.00176501274108887 0.0 0.0 0.0 329 -330 0.00177097320556641 0.0 0.0 0.0 330 -331 0.00176906585693359 0.0100000000000016 0.0100000000000016 0.0 331 -332 0.00175690650939941 0.0 0.0 0.0 332 -333 0.00176906585693359 0.0 0.0 0.0 333 -334 0.00173497200012207 0.0 0.0 0.0 334 -335 0.00176095962524414 0.0 0.0 0.0 335 -336 0.00176286697387695 0.00999999999999801 0.00999999999999801 0.0 336 -337 0.00176382064819336 0.0 0.0 0.0 337 -338 0.00174379348754883 0.0 0.0 0.0 338 -339 0.00174808502197266 0.0 0.0 0.0 339 -340 0.00175595283508301 0.0 0.0 0.0 340 -341 0.0017540454864502 0.0 0.0 0.0 341 -342 0.00174903869628906 0.0100000000000016 0.0100000000000016 0.0 342 -343 0.00172686576843262 0.0 0.0 0.0 343 -344 0.00175786018371582 0.0 0.0 0.0 344 -345 0.00181317329406738 0.0 0.0 0.0 345 -346 0.00176692008972168 0.0 0.0 0.0 346 -347 0.00175213813781738 0.00999999999999801 0.00999999999999801 0.0 347 -348 0.00172591209411621 0.0 0.0 0.0 348 -349 0.00174093246459961 0.0 0.0 0.0 349 -350 0.00202202796936035 0.0 0.0 0.0 350 -351 0.00346088409423828 0.0 0.0 0.0 351 -352 0.00342106819152832 0.0100000000000016 0.0100000000000016 0.0 352 -353 0.0033118724822998 0.0 0.0 0.0 353 -354 0.00195193290710449 0.0 0.0 0.0 354 -355 0.00175690650939941 0.0100000000000016 0.0100000000000016 0.0 355 -356 0.00174379348754883 0.0 0.0 0.0 356 -357 0.00174283981323242 0.0 0.0 0.0 357 -358 0.00174880027770996 0.0 0.0 0.0 358 -359 0.00177788734436035 0.0 0.0 0.0 359 -360 0.00173401832580566 0.0 0.0 0.0 360 -361 0.00173687934875488 0.00999999999999801 0.00999999999999801 0.0 361 -362 0.00174403190612793 0.0 0.0 0.0 362 -363 0.00174999237060547 0.0 0.0 0.0 363 -364 0.00173592567443848 0.0 0.0 0.0 364 -365 0.00175094604492188 0.0 0.0 0.0 365 -366 0.00174188613891602 0.0 0.0 0.0 366 -367 0.00175118446350098 0.0100000000000016 0.0100000000000016 0.0 367 -368 0.00175595283508301 0.0 0.0 0.0 368 -369 0.00174403190612793 0.0 0.0 0.0 369 -370 0.0017387866973877 0.0 0.0 0.0 370 -371 0.00177192687988281 0.0 0.0 0.0 371 -372 0.00177907943725586 0.00999999999999801 0.00999999999999801 0.0 372 -373 0.00174903869628906 0.0 0.0 0.0 373 -374 0.00176215171813965 0.0 0.0 0.0 374 -375 0.0023951530456543 0.0 0.0 0.0 375 -376 0.00357913970947266 0.0100000000000016 0.0100000000000016 0.0 376 -377 0.0294489860534668 0.0199999999999996 0.0199999999999996 0.0 377 -378 0.00180578231811523 0.00999999999999801 0.00999999999999801 0.0 378 -379 0.00181698799133301 0.0 0.0 0.0 379 -380 0.00183391571044922 0.0 0.0 0.0 380 -381 0.00181293487548828 0.0 0.0 0.0 381 -382 0.00175809860229492 0.0 0.0 0.0 382 -383 0.00176405906677246 0.0100000000000016 0.0100000000000016 0.0 383 -384 0.00176000595092773 0.0 0.0 0.0 384 -385 0.00175809860229492 0.0 0.0 0.0 385 -386 0.00177288055419922 0.0 0.0 0.0 386 -387 0.00175285339355469 0.0 0.0 0.0 387 -388 0.00175595283508301 0.0 0.0 0.0 388 -389 0.00177502632141113 0.0100000000000016 0.0100000000000016 0.0 389 -390 0.00174903869628906 0.0 0.0 0.0 390 -391 0.00176215171813965 0.0 0.0 0.0 391 -392 0.00174903869628906 0.0 0.0 0.0 392 -393 0.00174307823181152 0.0 0.0 0.0 393 -394 0.00177812576293945 0.00999999999999801 0.00999999999999801 0.0 394 -395 0.00176596641540527 0.0 0.0 0.0 395 -396 0.00178003311157227 0.0 0.0 0.0 396 -397 0.0017390251159668 0.0 0.0 0.0 397 -398 0.00174999237060547 0.0 0.0 0.0 398 -399 0.00174307823181152 0.0 0.0 0.0 399 -400 0.00176191329956055 0.0100000000000016 0.0100000000000016 0.0 400 -401 0.0017549991607666 0.0 0.0 0.0 401 -402 0.00173592567443848 0.0 0.0 0.0 402 -403 0.00173401832580566 0.0 0.0 0.0 403 -404 0.00176095962524414 0.0 0.0 0.0 404 -405 0.00174689292907715 0.00999999999999801 0.00999999999999801 0.0 405 -406 0.00176000595092773 0.0 0.0 0.0 406 -407 0.00172615051269531 0.0 0.0 0.0 407 -408 0.00174188613891602 0.0 0.0 0.0 408 -409 0.00174283981323242 0.0 0.0 0.0 409 -410 0.0017540454864502 0.0 0.0 0.0 410 -411 0.00174403190612793 0.0100000000000016 0.0100000000000016 0.0 411 -412 0.00172901153564453 0.0 0.0 0.0 412 -413 0.00173282623291016 0.0 0.0 0.0 413 -414 0.00174880027770996 0.0 0.0 0.0 414 -415 0.0017549991607666 0.0 0.0 0.0 415 -416 0.00173091888427734 0.00999999999999801 0.00999999999999801 0.0 416 -417 0.00174999237060547 0.0 0.0 0.0 417 -418 0.00184798240661621 0.0 0.0 0.0 418 -419 0.00175118446350098 0.0 0.0 0.0 419 -420 0.00173497200012207 0.0 0.0 0.0 420 -421 0.00173807144165039 0.0 0.0 0.0 421 -422 0.00174903869628906 0.0100000000000016 0.0100000000000016 0.0 422 -423 0.00174093246459961 0.0 0.0 0.0 423 -424 0.00177288055419922 0.0 0.0 0.0 424 -425 0.00176000595092773 0.0 0.0 0.0 425 -426 0.00174880027770996 0.0 0.0 0.0 426 -427 0.00173187255859375 0.0 0.0 0.0 427 -428 0.00179195404052734 0.0100000000000016 0.0100000000000016 0.0 428 -429 0.00175309181213379 0.0 0.0 0.0 429 -430 0.0253579616546631 0.0199999999999996 0.0199999999999996 0.0 430 -431 0.0018010139465332 0.00999999999999801 0.00999999999999801 0.0 431 -432 0.00183796882629395 0.0 0.0 0.0 432 -433 0.00179314613342285 0.0 0.0 0.0 433 -434 0.00180387496948242 0.0 0.0 0.0 434 -435 0.00178289413452148 0.0 0.0 0.0 435 -436 0.00178003311157227 0.0100000000000016 0.0100000000000016 0.0 436 -437 0.00177001953125 0.0 0.0 0.0 437 -438 0.00175285339355469 0.0 0.0 0.0 438 -439 0.00176405906677246 0.0 0.0 0.0 439 -440 0.00176501274108887 0.0 0.0 0.0 440 -441 0.00173497200012207 0.0 0.0 0.0 441 -442 0.00176215171813965 0.00999999999999801 0.00999999999999801 0.0 442 -443 0.00176000595092773 0.0 0.0 0.0 443 -444 0.0017390251159668 0.0 0.0 0.0 444 -445 0.00175714492797852 0.0 0.0 0.0 445 -446 0.00178098678588867 0.0 0.0 0.0 446 -447 0.00176286697387695 0.0 0.0 0.0 447 -448 0.00175595283508301 0.0100000000000016 0.0100000000000016 0.0 448 -449 0.00177097320556641 0.0 0.0 0.0 449 -450 0.00175905227661133 0.0 0.0 0.0 450 -451 0.00175595283508301 0.0 0.0 0.0 451 -452 0.00177693367004395 0.0 0.0 0.0 452 -453 0.00174999237060547 0.00999999999999801 0.00999999999999801 0.0 453 -454 0.00175595283508301 0.0 0.0 0.0 454 -455 0.00176191329956055 0.0 0.0 0.0 455 -456 0.00175094604492188 0.0 0.0 0.0 456 -457 0.00329685211181641 0.0 0.0 0.0 457 -458 0.00347805023193359 0.0100000000000016 0.0100000000000016 0.0 458 -459 0.00338196754455566 0.0 0.0 0.0 459 -460 0.00222587585449219 0.0 0.0 0.0 460 -461 0.00174784660339355 0.0100000000000016 0.0100000000000016 0.0 461 -462 0.00176715850830078 0.0 0.0 0.0 462 -463 0.00176501274108887 0.0 0.0 0.0 463 -464 0.00172901153564453 0.0 0.0 0.0 464 -465 0.00177407264709473 0.0 0.0 0.0 465 -466 0.00175309181213379 0.0 0.0 0.0 466 -467 0.00176095962524414 0.00999999999999801 0.00999999999999801 0.0 467 -468 0.00174403190612793 0.0 0.0 0.0 468 -469 0.00172996520996094 0.0 0.0 0.0 469 -470 0.00175285339355469 0.0 0.0 0.0 470 -471 0.00176000595092773 0.0 0.0 0.0 471 -472 0.00176119804382324 0.0100000000000016 0.0100000000000016 0.0 472 -473 0.00173187255859375 0.0 0.0 0.0 473 -474 0.00172281265258789 0.0 0.0 0.0 474 -475 0.00175905227661133 0.0 0.0 0.0 475 -476 0.00175714492797852 0.0 0.0 0.0 476 -477 0.00174093246459961 0.0 0.0 0.0 477 -478 0.00176501274108887 0.00999999999999801 0.00999999999999801 0.0 478 -479 0.00173497200012207 0.0 0.0 0.0 479 -480 0.00174593925476074 0.0 0.0 0.0 480 -481 0.00177001953125 0.0 0.0 0.0 481 -482 0.00177097320556641 0.0 0.0 0.0 482 -483 0.0255038738250732 0.0300000000000011 0.0300000000000011 0.0 483 -484 0.00180983543395996 0.0 0.0 0.0 484 -485 0.00182580947875977 0.0 0.0 0.0 485 -486 0.00181293487548828 0.0 0.0 0.0 486 -487 0.00178980827331543 0.00999999999999801 0.00999999999999801 0.0 487 -488 0.00177001953125 0.0 0.0 0.0 488 -489 0.00174784660339355 0.0 0.0 0.0 489 -490 0.00177311897277832 0.0 0.0 0.0 490 -491 0.00178694725036621 0.0 0.0 0.0 491 -492 0.00176596641540527 0.0100000000000016 0.0100000000000016 0.0 492 -493 0.00175786018371582 0.0 0.0 0.0 493 -494 0.00176286697387695 0.0 0.0 0.0 494 -495 0.00174117088317871 0.0 0.0 0.0 495 -496 0.0017540454864502 0.0 0.0 0.0 496 -497 0.00176811218261719 0.0 0.0 0.0 497 -498 0.00176405906677246 0.0100000000000016 0.0100000000000016 0.0 498 -499 0.00175595283508301 0.0 0.0 0.0 499 -500 0.00183701515197754 0.0 0.0 0.0 500 -501 0.00176692008972168 0.0 0.0 0.0 501 -502 0.00178289413452148 0.0 0.0 0.0 502 -503 0.00176692008972168 0.00999999999999801 0.00999999999999801 0.0 503 -504 0.00175595283508301 0.0 0.0 0.0 504 -505 0.00173616409301758 0.0 0.0 0.0 505 -506 0.00208091735839844 0.0 0.0 0.0 506 -507 0.00292181968688965 0.0 0.0 0.0 507 -508 0.00174379348754883 0.0 0.0 0.0 508 -509 0.00174093246459961 0.0100000000000016 0.0100000000000016 0.0 509 -510 0.00175595283508301 0.0 0.0 0.0 510 -511 0.00174808502197266 0.0 0.0 0.0 511 -512 0.00172805786132812 0.0 0.0 0.0 512 -513 0.00174903869628906 0.0 0.0 0.0 513 -514 0.00177097320556641 0.00999999999999801 0.00999999999999801 0.0 514 -515 0.0017540454864502 0.0 0.0 0.0 515 -516 0.00173282623291016 0.0 0.0 0.0 516 -517 0.00174498558044434 0.0 0.0 0.0 517 -518 0.00174188613891602 0.0 0.0 0.0 518 -519 0.00176811218261719 0.0 0.0 0.0 519 -520 0.00173711776733398 0.0100000000000016 0.0100000000000016 0.0 520 -521 0.00175690650939941 0.0 0.0 0.0 521 -522 0.00173592567443848 0.0 0.0 0.0 522 -523 0.0017390251159668 0.0 0.0 0.0 523 -524 0.00174903869628906 0.0 0.0 0.0 524 -525 0.00175881385803223 0.00999999999999801 0.00999999999999801 0.0 525 -526 0.00173497200012207 0.0 0.0 0.0 526 -527 0.00173616409301758 0.0 0.0 0.0 527 -528 0.00175189971923828 0.0 0.0 0.0 528 -529 0.00174403190612793 0.0 0.0 0.0 529 -530 0.00174903869628906 0.0 0.0 0.0 530 -531 0.00175595283508301 0.0100000000000016 0.0100000000000016 0.0 531 -532 0.00174307823181152 0.0 0.0 0.0 532 -533 0.00174999237060547 0.0 0.0 0.0 533 -534 0.00178980827331543 0.0 0.0 0.0 534 -535 0.00175809860229492 0.0 0.0 0.0 535 -536 0.025597095489502 0.0300000000000011 0.0300000000000011 0.0 536 -537 0.00178790092468262 0.0 0.0 0.0 537 -538 0.00197505950927734 0.0 0.0 0.0 538 -539 0.00181388854980469 0.0 0.0 0.0 539 -540 0.00177693367004395 0.00999999999999801 0.00999999999999801 0.0 540 -541 0.00177311897277832 0.0 0.0 0.0 541 -542 0.00185203552246094 0.0 0.0 0.0 542 -543 0.00176501274108887 0.0 0.0 0.0 543 -544 0.00176501274108887 0.0 0.0 0.0 544 -545 0.00176405906677246 0.0100000000000016 0.0100000000000016 0.0 545 -546 0.00176405906677246 0.0 0.0 0.0 546 -547 0.00174093246459961 0.0 0.0 0.0 547 -548 0.00175905227661133 0.0 0.0 0.0 548 -549 0.00177407264709473 0.0 0.0 0.0 549 -550 0.00176215171813965 0.0 0.0 0.0 550 -551 0.00174903869628906 0.00999999999999801 0.00999999999999801 0.0 551 -552 0.00175595283508301 0.0 0.0 0.0 552 -553 0.00174593925476074 0.0 0.0 0.0 553 -554 0.00176787376403809 0.0 0.0 0.0 554 -555 0.00176000595092773 0.0 0.0 0.0 555 -556 0.00175380706787109 0.0100000000000016 0.0100000000000016 0.0 556 -557 0.00174593925476074 0.0 0.0 0.0 557 -558 0.00173807144165039 0.0 0.0 0.0 558 -559 0.00180602073669434 0.0 0.0 0.0 559 -560 0.00174808502197266 0.0 0.0 0.0 560 -561 0.00174093246459961 0.0 0.0 0.0 561 -562 0.00177311897277832 0.00999999999999801 0.00999999999999801 0.0 562 -563 0.00174212455749512 0.0 0.0 0.0 563 -564 0.00174498558044434 0.0 0.0 0.0 564 -565 0.00191402435302734 0.0 0.0 0.0 565 -566 0.00347208976745605 0.0100000000000016 0.0100000000000016 0.0 566 -567 0.00344085693359375 0.0 0.0 0.0 567 -568 0.00338578224182129 0.0 0.0 0.0 568 -569 0.00339102745056152 0.0100000000000016 0.0100000000000016 0.0 569 -570 0.00190401077270508 0.0 0.0 0.0 570 -571 0.00175905227661133 0.0 0.0 0.0 571 -572 0.00177097320556641 0.0 0.0 0.0 572 -573 0.00176215171813965 0.0 0.0 0.0 573 -574 0.0017249584197998 0.0 0.0 0.0 574 -575 0.00174903869628906 0.00999999999999801 0.00999999999999801 0.0 575 -576 0.00174593925476074 0.0 0.0 0.0 576 -577 0.0017399787902832 0.0 0.0 0.0 577 -578 0.00174498558044434 0.0 0.0 0.0 578 -579 0.00174689292907715 0.0 0.0 0.0 579 -580 0.00175118446350098 0.0100000000000016 0.0100000000000016 0.0 580 -581 0.00174307823181152 0.0 0.0 0.0 581 -582 0.00175380706787109 0.0 0.0 0.0 582 -583 0.00175690650939941 0.0 0.0 0.0 583 -584 0.00174403190612793 0.0 0.0 0.0 584 -585 0.00174903869628906 0.0 0.0 0.0 585 -586 0.00176000595092773 0.00999999999999801 0.00999999999999801 0.0 586 -587 0.00176596641540527 0.0 0.0 0.0 587 -588 0.00175595283508301 0.0 0.0 0.0 588 -589 0.0243070125579834 0.0199999999999996 0.0199999999999996 0.0 589 -590 0.00179505348205566 0.0100000000000016 0.0100000000000016 0.0 590 -591 0.00179696083068848 0.0 0.0 0.0 591 -592 0.0018000602722168 0.0 0.0 0.0 592 -593 0.00178909301757812 0.0 0.0 0.0 593 -594 0.00181698799133301 0.0 0.0 0.0 594 -595 0.00178003311157227 0.00999999999999801 0.00999999999999801 0.0 595 -596 0.00175619125366211 0.0 0.0 0.0 596 -597 0.0017540454864502 0.0 0.0 0.0 597 -598 0.00177407264709473 0.0 0.0 0.0 598 -599 0.00177502632141113 0.0 0.0 0.0 599 -600 0.00176692008972168 0.0 0.0 0.0 600 -601 0.00175690650939941 0.0100000000000016 0.0100000000000016 0.0 601 -602 0.00173401832580566 0.0 0.0 0.0 602 -603 0.00175213813781738 0.0 0.0 0.0 603 -604 0.00176692008972168 0.0 0.0 0.0 604 -605 0.00175189971923828 0.0 0.0 0.0 605 -606 0.00176692008972168 0.0100000000000016 0.0100000000000016 0.0 606 -607 0.00175595283508301 0.0 0.0 0.0 607 -608 0.00176811218261719 0.0 0.0 0.0 608 -609 0.00176787376403809 0.0 0.0 0.0 609 -610 0.00177121162414551 0.0 0.0 0.0 610 -611 0.00175094604492188 0.0 0.0 0.0 611 -612 0.00174713134765625 0.00999999999999801 0.00999999999999801 0.0 612 -613 0.00174403190612793 0.0 0.0 0.0 613 -614 0.00173211097717285 0.0 0.0 0.0 614 -615 0.0017859935760498 0.0 0.0 0.0 615 -616 0.00175309181213379 0.0 0.0 0.0 616 -617 0.00174784660339355 0.0 0.0 0.0 617 -618 0.00174903869628906 0.0 0.0 0.0 618 -619 0.00175714492797852 0.0 0.0 0.0 619 -620 0.0022280216217041 0.0 0.0 0.0 620 -621 0.00176501274108887 0.0 0.0 0.0 621 -622 0.00176191329956055 0.0 0.0 0.0 622 -623 0.00185799598693848 0.00999999999999801 0.00999999999999801 0.0 623 -624 0.00174689292907715 0.0 0.0 0.0 624 -625 0.00174689292907715 0.0 0.0 0.0 625 -626 0.0017249584197998 0.0 0.0 0.0 626 -627 0.00173401832580566 0.0 0.0 0.0 627 -628 0.00175118446350098 0.0100000000000016 0.0100000000000016 0.0 628 -629 0.00173401832580566 0.0 0.0 0.0 629 -630 0.00174593925476074 0.0 0.0 0.0 630 -631 0.00174593925476074 0.0 0.0 0.0 631 -632 0.00174689292907715 0.0 0.0 0.0 632 -633 0.00175905227661133 0.0 0.0 0.0 633 -634 0.00177001953125 0.00999999999999801 0.00999999999999801 0.0 634 -635 0.00174403190612793 0.0 0.0 0.0 635 -636 0.00185108184814453 0.0 0.0 0.0 636 -637 0.00174403190612793 0.0 0.0 0.0 637 -638 0.00175023078918457 0.0 0.0 0.0 638 -639 0.00177407264709473 0.0100000000000016 0.0100000000000016 0.0 639 -640 0.00174403190612793 0.0 0.0 0.0 640 -641 0.00175714492797852 0.0 0.0 0.0 641 -642 0.0244560241699219 0.0199999999999996 0.0199999999999996 0.0 642 -643 0.00182914733886719 0.0100000000000016 0.0100000000000016 0.0 643 -644 0.00178813934326172 0.0 0.0 0.0 644 -645 0.00177693367004395 0.0 0.0 0.0 645 -646 0.00177192687988281 0.0 0.0 0.0 646 -647 0.00177478790283203 0.0 0.0 0.0 647 -648 0.00176906585693359 0.0 0.0 0.0 648 -649 0.00176787376403809 0.00999999999999801 0.00999999999999801 0.0 649 -650 0.00174212455749512 0.0 0.0 0.0 650 -651 0.00175595283508301 0.0 0.0 0.0 651 -652 0.00176286697387695 0.0 0.0 0.0 652 -653 0.00176095962524414 0.0 0.0 0.0 653 -654 0.00177597999572754 0.0100000000000016 0.0100000000000016 0.0 654 -655 0.00177288055419922 0.0 0.0 0.0 655 -656 0.00175118446350098 0.0 0.0 0.0 656 -657 0.00175309181213379 0.0 0.0 0.0 657 -658 0.0017540454864502 0.0 0.0 0.0 658 -659 0.0017549991607666 0.0 0.0 0.0 659 -660 0.00176215171813965 0.00999999999999801 0.00999999999999801 0.0 660 -661 0.00176692008972168 0.0 0.0 0.0 661 -662 0.00175619125366211 0.0 0.0 0.0 662 -663 0.00177288055419922 0.0 0.0 0.0 663 -664 0.00176310539245605 0.0 0.0 0.0 664 -665 0.00175189971923828 0.0 0.0 0.0 665 -666 0.00175094604492188 0.0100000000000016 0.0100000000000016 0.0 666 -667 0.00175189971923828 0.0 0.0 0.0 667 -668 0.00175905227661133 0.0 0.0 0.0 668 -669 0.00175690650939941 0.0 0.0 0.0 669 -670 0.00174903869628906 0.0 0.0 0.0 670 -671 0.00176382064819336 0.00999999999999801 0.00999999999999801 0.0 671 -672 0.00174307823181152 0.0 0.0 0.0 672 -673 0.00174117088317871 0.0 0.0 0.0 673 -674 0.00176906585693359 0.0 0.0 0.0 674 -675 0.00325989723205566 0.0 0.0 0.0 675 -676 0.00345802307128906 0.0100000000000016 0.0100000000000016 0.0 676 -677 0.0026400089263916 0.0 0.0 0.0 677 -678 0.00176692008972168 0.0 0.0 0.0 678 -679 0.00268101692199707 0.0100000000000016 0.0100000000000016 0.0 679 -680 0.00180482864379883 0.0 0.0 0.0 680 -681 0.00174808502197266 0.0 0.0 0.0 681 -682 0.00174283981323242 0.0 0.0 0.0 682 -683 0.00176095962524414 0.0 0.0 0.0 683 -684 0.00176095962524414 0.0 0.0 0.0 684 -685 0.00175595283508301 0.00999999999999801 0.00999999999999801 0.0 685 -686 0.00175094604492188 0.0 0.0 0.0 686 -687 0.00176477432250977 0.0 0.0 0.0 687 -688 0.00176000595092773 0.0 0.0 0.0 688 -689 0.00176906585693359 0.0 0.0 0.0 689 -690 0.00177502632141113 0.0100000000000016 0.0100000000000016 0.0 690 -691 0.00174808502197266 0.0 0.0 0.0 691 -692 0.00178909301757812 0.0 0.0 0.0 692 -693 0.00177693367004395 0.0 0.0 0.0 693 -694 0.0252690315246582 0.0299999999999976 0.0299999999999976 0.0 694 -695 0.00181198120117188 0.0 0.0 0.0 695 -696 0.00185799598693848 0.0 0.0 0.0 696 -697 0.00180315971374512 0.0 0.0 0.0 697 -698 0.00178194046020508 0.0 0.0 0.0 698 -699 0.00178718566894531 0.0100000000000016 0.0100000000000016 0.0 699 -700 0.00174593925476074 0.0 0.0 0.0 700 -701 0.00177192687988281 0.0 0.0 0.0 701 -702 0.00177216529846191 0.0 0.0 0.0 702 -703 0.00174808502197266 0.0 0.0 0.0 703 -704 0.00176882743835449 0.0 0.0 0.0 704 -705 0.0017540454864502 0.00999999999999801 0.00999999999999801 0.0 705 -706 0.00174403190612793 0.0 0.0 0.0 706 -707 0.00177288055419922 0.0 0.0 0.0 707 -708 0.00177001953125 0.0 0.0 0.0 708 -709 0.00176310539245605 0.0 0.0 0.0 709 -710 0.00175690650939941 0.0 0.0 0.0 710 -711 0.00179791450500488 0.0100000000000016 0.0100000000000016 0.0 711 -712 0.00183296203613281 0.0 0.0 0.0 712 -713 0.00177001953125 0.0 0.0 0.0 713 -714 0.00175595283508301 0.0 0.0 0.0 714 -715 0.00175189971923828 0.0 0.0 0.0 715 -716 0.00174713134765625 0.0 0.0 0.0 716 -717 0.00175809860229492 0.0100000000000016 0.0100000000000016 0.0 717 -718 0.00182104110717773 0.0 0.0 0.0 718 -719 0.0017399787902832 0.0 0.0 0.0 719 -720 0.00173497200012207 0.0 0.0 0.0 720 -721 0.00173783302307129 0.0 0.0 0.0 721 -722 0.0017399787902832 0.00999999999999801 0.00999999999999801 0.0 722 -723 0.00175285339355469 0.0 0.0 0.0 723 -724 0.00173282623291016 0.0 0.0 0.0 724 -725 0.00175213813781738 0.0 0.0 0.0 725 -726 0.00174498558044434 0.0 0.0 0.0 726 -727 0.00174093246459961 0.0 0.0 0.0 727 -728 0.00177121162414551 0.0100000000000016 0.0100000000000016 0.0 728 -729 0.00174903869628906 0.0 0.0 0.0 729 -730 0.00175690650939941 0.0 0.0 0.0 730 -731 0.00173711776733398 0.0 0.0 0.0 731 -732 0.0017399787902832 0.0 0.0 0.0 732 -733 0.00176596641540527 0.00999999999999801 0.00999999999999801 0.0 733 -734 0.00175619125366211 0.0 0.0 0.0 734 -735 0.00173687934875488 0.0 0.0 0.0 735 -736 0.00176000595092773 0.0 0.0 0.0 736 -737 0.00175714492797852 0.0 0.0 0.0 737 -738 0.00174689292907715 0.0 0.0 0.0 738 -739 0.00174689292907715 0.0100000000000016 0.0100000000000016 0.0 739 -740 0.00175309181213379 0.0 0.0 0.0 740 -741 0.00175189971923828 0.0 0.0 0.0 741 -742 0.00175881385803223 0.0 0.0 0.0 742 -743 0.00175189971923828 0.0 0.0 0.0 743 -744 0.00178813934326172 0.00999999999999801 0.00999999999999801 0.0 744 -745 0.00172710418701172 0.0 0.0 0.0 745 -746 0.00175690650939941 0.0 0.0 0.0 746 -747 0.0253231525421143 0.0200000000000031 0.0200000000000031 0.0 747 -748 0.00182986259460449 0.00999999999999801 0.00999999999999801 0.0 748 -749 0.00179004669189453 0.0 0.0 0.0 749 -750 0.00179314613342285 0.0 0.0 0.0 750 -751 0.00178098678588867 0.0 0.0 0.0 751 -752 0.00178003311157227 0.0 0.0 0.0 752 -753 0.00176811218261719 0.0100000000000016 0.0100000000000016 0.0 753 -754 0.00174283981323242 0.0 0.0 0.0 754 -755 0.00176811218261719 0.0 0.0 0.0 755 -756 0.00175881385803223 0.0 0.0 0.0 756 -757 0.00174784660339355 0.0 0.0 0.0 757 -758 0.00175905227661133 0.0 0.0 0.0 758 -759 0.00177812576293945 0.00999999999999801 0.00999999999999801 0.0 759 -760 0.00174689292907715 0.0 0.0 0.0 760 -761 0.00183987617492676 0.0 0.0 0.0 761 -762 0.0017549991607666 0.0 0.0 0.0 762 -763 0.00175786018371582 0.0 0.0 0.0 763 -764 0.00175380706787109 0.0100000000000016 0.0100000000000016 0.0 764 -765 0.00176501274108887 0.0 0.0 0.0 765 -766 0.00175690650939941 0.0 0.0 0.0 766 -767 0.00174498558044434 0.0 0.0 0.0 767 -768 0.0017549991607666 0.0 0.0 0.0 768 -769 0.00175714492797852 0.0 0.0 0.0 769 -770 0.00176405906677246 0.00999999999999801 0.00999999999999801 0.0 770 -771 0.00174999237060547 0.0 0.0 0.0 771 -772 0.00174689292907715 0.0 0.0 0.0 772 -773 0.00174999237060547 0.0 0.0 0.0 773 -774 0.0017387866973877 0.0 0.0 0.0 774 -775 0.00175309181213379 0.0 0.0 0.0 775 -776 0.0017399787902832 0.0100000000000016 0.0100000000000016 0.0 776 -777 0.00179791450500488 0.0 0.0 0.0 777 -778 0.00174188613891602 0.0 0.0 0.0 778 -779 0.00172996520996094 0.0 0.0 0.0 779 -780 0.00173211097717285 0.0 0.0 0.0 780 -781 0.00176191329956055 0.00999999999999801 0.00999999999999801 0.0 781 -782 0.00174999237060547 0.0 0.0 0.0 782 -783 0.00173711776733398 0.0 0.0 0.0 783 -784 0.00174212455749512 0.0 0.0 0.0 784 -785 0.00317001342773438 0.0 0.0 0.0 785 -786 0.00347280502319336 0.0100000000000016 0.0100000000000016 0.0 786 -787 0.00329899787902832 0.0 0.0 0.0 787 -788 0.00238609313964844 0.0 0.0 0.0 788 -789 0.00221085548400879 0.0100000000000016 0.0100000000000016 0.0 789 -790 0.00175285339355469 0.0 0.0 0.0 790 -791 0.00175309181213379 0.0 0.0 0.0 791 -792 0.00172901153564453 0.0 0.0 0.0 792 -793 0.00179696083068848 0.0 0.0 0.0 793 -794 0.00175285339355469 0.0 0.0 0.0 794 -795 0.00173783302307129 0.00999999999999801 0.00999999999999801 0.0 795 -796 0.00177001953125 0.0 0.0 0.0 796 -797 0.00176811218261719 0.0 0.0 0.0 797 -798 0.00175595283508301 0.0 0.0 0.0 798 -799 0.0301520824432373 0.0300000000000011 0.0300000000000011 0.0 799 -800 0.00359296798706055 0.00999999999999801 0.00999999999999801 0.0 800 -801 0.00265407562255859 0.0 0.0 0.0 801 -802 0.00182509422302246 0.0 0.0 0.0 802 -803 0.00179409980773926 0.0 0.0 0.0 803 -804 0.00177407264709473 0.0 0.0 0.0 804 -805 0.00176787376403809 0.0100000000000016 0.0100000000000016 0.0 805 -806 0.00177907943725586 0.0 0.0 0.0 806 -807 0.00176310539245605 0.0 0.0 0.0 807 -808 0.00176811218261719 0.0 0.0 0.0 808 -809 0.00174808502197266 0.0 0.0 0.0 809 -810 0.00175714492797852 0.00999999999999801 0.00999999999999801 0.0 810 -811 0.00174784660339355 0.0 0.0 0.0 811 -812 0.00178885459899902 0.0 0.0 0.0 812 -813 0.00174999237060547 0.0 0.0 0.0 813 -814 0.00176811218261719 0.0 0.0 0.0 814 -815 0.00174999237060547 0.0 0.0 0.0 815 -816 0.00175595283508301 0.0100000000000016 0.0100000000000016 0.0 816 -817 0.00176000595092773 0.0 0.0 0.0 817 -818 0.00177288055419922 0.0 0.0 0.0 818 -819 0.00176095962524414 0.0 0.0 0.0 819 -820 0.0017390251159668 0.0 0.0 0.0 820 -821 0.00179696083068848 0.0 0.0 0.0 821 -822 0.00174283981323242 0.0100000000000016 0.0100000000000016 0.0 822 -823 0.00174713134765625 0.0 0.0 0.0 823 -824 0.00175189971923828 0.0 0.0 0.0 824 -825 0.00175094604492188 0.0 0.0 0.0 825 -826 0.00173616409301758 0.0 0.0 0.0 826 -827 0.00174093246459961 0.00999999999999801 0.00999999999999801 0.0 827 -828 0.00174617767333984 0.0 0.0 0.0 828 -829 0.00174188613891602 0.0 0.0 0.0 829 -830 0.00173592567443848 0.0 0.0 0.0 830 -831 0.0017240047454834 0.0 0.0 0.0 831 -832 0.00176095962524414 0.0 0.0 0.0 832 -833 0.00174713134765625 0.0100000000000016 0.0100000000000016 0.0 833 -834 0.00175094604492188 0.0 0.0 0.0 834 -835 0.00173807144165039 0.0 0.0 0.0 835 -836 0.00176715850830078 0.0 0.0 0.0 836 -837 0.00174093246459961 0.0 0.0 0.0 837 -838 0.00176000595092773 0.00999999999999801 0.00999999999999801 0.0 838 -839 0.00174498558044434 0.0 0.0 0.0 839 -840 0.00174689292907715 0.0 0.0 0.0 840 -841 0.00177502632141113 0.0 0.0 0.0 841 -842 0.00175309181213379 0.0 0.0 0.0 842 -843 0.00175213813781738 0.0 0.0 0.0 843 -844 0.00175905227661133 0.0100000000000016 0.0100000000000016 0.0 844 -845 0.0017249584197998 0.0 0.0 0.0 845 -846 0.00174999237060547 0.0 0.0 0.0 846 -847 0.00175309181213379 0.0 0.0 0.0 847 -848 0.00177311897277832 0.0 0.0 0.0 848 -849 0.00175309181213379 0.00999999999999801 0.00999999999999801 0.0 849 -850 0.00175595283508301 0.0 0.0 0.0 850 -851 0.0253610610961914 0.0200000000000031 0.0200000000000031 0.0 851 -852 0.0018308162689209 0.0 0.0 0.0 852 -853 0.00182509422302246 0.00999999999999801 0.00999999999999801 0.0 853 -854 0.00179100036621094 0.0 0.0 0.0 854 -855 0.0018000602722168 0.0 0.0 0.0 855 -856 0.00175809860229492 0.0 0.0 0.0 856 -857 0.00182390213012695 0.0 0.0 0.0 857 -858 0.00175285339355469 0.0100000000000016 0.0100000000000016 0.0 858 -859 0.00172996520996094 0.0 0.0 0.0 859 -860 0.00173521041870117 0.0 0.0 0.0 860 -861 0.00176787376403809 0.0 0.0 0.0 861 -862 0.00175380706787109 0.0 0.0 0.0 862 -863 0.00174999237060547 0.0 0.0 0.0 863 -864 0.00177502632141113 0.00999999999999801 0.00999999999999801 0.0 864 -865 0.0017549991607666 0.0 0.0 0.0 865 -866 0.00175905227661133 0.0 0.0 0.0 866 -867 0.00177693367004395 0.0 0.0 0.0 867 -868 0.00178217887878418 0.0 0.0 0.0 868 -869 0.00177478790283203 0.0100000000000016 0.0100000000000016 0.0 869 -870 0.00176405906677246 0.0 0.0 0.0 870 -871 0.00176191329956055 0.0 0.0 0.0 871 -872 0.00175213813781738 0.0 0.0 0.0 872 -873 0.00175690650939941 0.0 0.0 0.0 873 -874 0.00174093246459961 0.0 0.0 0.0 874 -875 0.0017399787902832 0.00999999999999801 0.00999999999999801 0.0 875 -876 0.00173616409301758 0.0 0.0 0.0 876 -877 0.00174808502197266 0.0 0.0 0.0 877 -878 0.0017390251159668 0.0 0.0 0.0 878 -879 0.00174403190612793 0.0 0.0 0.0 879 -880 0.00173091888427734 0.0 0.0 0.0 880 -881 0.00175786018371582 0.0100000000000016 0.0100000000000016 0.0 881 -882 0.00173306465148926 0.0 0.0 0.0 882 -883 0.0017399787902832 0.0 0.0 0.0 883 -884 0.00173783302307129 0.0 0.0 0.0 884 -885 0.00172281265258789 0.0 0.0 0.0 885 -886 0.00175690650939941 0.0 0.0 0.0 886 -887 0.00173497200012207 0.00999999999999801 0.00999999999999801 0.0 887 -888 0.00175094604492188 0.0 0.0 0.0 888 -889 0.00172090530395508 0.0 0.0 0.0 889 -890 0.00198698043823242 0.0 0.0 0.0 890 -891 0.00344991683959961 0.0100000000000016 0.0100000000000016 0.0 891 -892 0.00345301628112793 0.0 0.0 0.0 892 -893 0.00206422805786133 0.0 0.0 0.0 893 -894 0.00191783905029297 0.0 0.0 0.0 894 -895 0.00174188613891602 0.0 0.0 0.0 895 -896 0.00173401832580566 0.0100000000000016 0.0100000000000016 0.0 896 -897 0.00175094604492188 0.0 0.0 0.0 897 -898 0.00176310539245605 0.0 0.0 0.0 898 -899 0.00176095962524414 0.0 0.0 0.0 899 -900 0.00181198120117188 0.0 0.0 0.0 900 -901 0.00175094604492188 0.00999999999999801 0.00999999999999801 0.0 901 -902 0.00177597999572754 0.0 0.0 0.0 902 -903 0.0245981216430664 0.0199999999999996 0.0199999999999996 0.0 903 -904 0.00182318687438965 0.0 0.0 0.0 904 -905 0.00179600715637207 0.0100000000000016 0.0100000000000016 0.0 905 -906 0.00179409980773926 0.0 0.0 0.0 906 -907 0.00178408622741699 0.0 0.0 0.0 907 -908 0.00177407264709473 0.0 0.0 0.0 908 -909 0.00176501274108887 0.0 0.0 0.0 909 -910 0.00176596641540527 0.0 0.0 0.0 910 -911 0.00175595283508301 0.00999999999999801 0.00999999999999801 0.0 911 -912 0.00176596641540527 0.0 0.0 0.0 912 -913 0.00176501274108887 0.0 0.0 0.0 913 -914 0.00175809860229492 0.0 0.0 0.0 914 -915 0.00176405906677246 0.0 0.0 0.0 915 -916 0.00176191329956055 0.0100000000000016 0.0100000000000016 0.0 916 -917 0.00175619125366211 0.0 0.0 0.0 917 -918 0.00175690650939941 0.0 0.0 0.0 918 -919 0.00175189971923828 0.0 0.0 0.0 919 -920 0.0017540454864502 0.0 0.0 0.0 920 -921 0.0017540454864502 0.0 0.0 0.0 921 -922 0.00176119804382324 0.00999999999999801 0.00999999999999801 0.0 922 -923 0.00176095962524414 0.0 0.0 0.0 923 -924 0.00176215171813965 0.0 0.0 0.0 924 -925 0.00173592567443848 0.0 0.0 0.0 925 -926 0.00174307823181152 0.0 0.0 0.0 926 -927 0.00173401832580566 0.0100000000000016 0.0100000000000016 0.0 927 -928 0.00174999237060547 0.0 0.0 0.0 928 -929 0.0017399787902832 0.0 0.0 0.0 929 -930 0.0017399787902832 0.0 0.0 0.0 930 -931 0.00177502632141113 0.0 0.0 0.0 931 -932 0.00175309181213379 0.0 0.0 0.0 932 -933 0.00174713134765625 0.0100000000000016 0.0100000000000016 0.0 933 -934 0.00172519683837891 0.0 0.0 0.0 934 -935 0.00182008743286133 0.0 0.0 0.0 935 -936 0.00175094604492188 0.0 0.0 0.0 936 -937 0.00175213813781738 0.0 0.0 0.0 937 -938 0.0017549991607666 0.00999999999999801 0.00999999999999801 0.0 938 -939 0.00175881385803223 0.0 0.0 0.0 939 -940 0.00176215171813965 0.0 0.0 0.0 940 -941 0.00270485877990723 0.0 0.0 0.0 941 -942 0.00175213813781738 0.0 0.0 0.0 942 -943 0.0017399787902832 0.0100000000000016 0.0100000000000016 0.0 943 -944 0.00174307823181152 0.0 0.0 0.0 944 -945 0.00173497200012207 0.0 0.0 0.0 945 -946 0.00174999237060547 0.0 0.0 0.0 946 -947 0.00175690650939941 0.0 0.0 0.0 947 -948 0.00176095962524414 0.0 0.0 0.0 948 -949 0.00173807144165039 0.00999999999999801 0.00999999999999801 0.0 949 -950 0.00175690650939941 0.0 0.0 0.0 950 -951 0.0017390251159668 0.0 0.0 0.0 951 -952 0.00178313255310059 0.0 0.0 0.0 952 -953 0.00176692008972168 0.0 0.0 0.0 953 -954 0.00176501274108887 0.0 0.0 0.0 954 -955 0.0254151821136475 0.0199999999999996 0.0199999999999996 0.0 955 -956 0.0018460750579834 0.0 0.0 0.0 956 -957 0.00177717208862305 0.0 0.0 0.0 957 -958 0.00177192687988281 0.0100000000000016 0.0100000000000016 0.0 958 -959 0.00177407264709473 0.0 0.0 0.0 959 -960 0.00177311897277832 0.0 0.0 0.0 960 -961 0.00176906585693359 0.0 0.0 0.0 961 -962 0.00176501274108887 0.0 0.0 0.0 962 -963 0.00174212455749512 0.00999999999999801 0.00999999999999801 0.0 963 -964 0.00176310539245605 0.0 0.0 0.0 964 -965 0.00176095962524414 0.0 0.0 0.0 965 -966 0.00175905227661133 0.0 0.0 0.0 966 -967 0.00174999237060547 0.0 0.0 0.0 967 -968 0.00176811218261719 0.0 0.0 0.0 968 -969 0.00175189971923828 0.0100000000000016 0.0100000000000016 0.0 969 -970 0.00194287300109863 0.0 0.0 0.0 970 -971 0.0017540454864502 0.0 0.0 0.0 971 -972 0.0019228458404541 0.0 0.0 0.0 972 -973 0.00176405906677246 0.0 0.0 0.0 973 -974 0.0017549991607666 0.00999999999999801 0.00999999999999801 0.0 974 -975 0.00176310539245605 0.0 0.0 0.0 975 -976 0.00173807144165039 0.0 0.0 0.0 976 -977 0.00182604789733887 0.0 0.0 0.0 977 -978 0.0017399787902832 0.0 0.0 0.0 978 -979 0.0017540454864502 0.0 0.0 0.0 979 -980 0.0017697811126709 0.0100000000000016 0.0100000000000016 0.0 980 -981 0.0017390251159668 0.0 0.0 0.0 981 -982 0.00175285339355469 0.0 0.0 0.0 982 -983 0.00174880027770996 0.0 0.0 0.0 983 -984 0.00176095962524414 0.0 0.0 0.0 984 -985 0.00176501274108887 0.00999999999999801 0.00999999999999801 0.0 985 -986 0.00175094604492188 0.0 0.0 0.0 986 -987 0.0017390251159668 0.0 0.0 0.0 987 -988 0.00174808502197266 0.0 0.0 0.0 988 -989 0.0017540454864502 0.0 0.0 0.0 989 -990 0.00174307823181152 0.0 0.0 0.0 990 -991 0.00172710418701172 0.0100000000000016 0.0100000000000016 0.0 991 -992 0.00177597999572754 0.0 0.0 0.0 992 -993 0.00174903869628906 0.0 0.0 0.0 993 -994 0.0017402172088623 0.0 0.0 0.0 994 -995 0.00173187255859375 0.0 0.0 0.0 995 -996 0.00175690650939941 0.0 0.0 0.0 996 -997 0.00175213813781738 0.00999999999999801 0.00999999999999801 0.0 997 -998 0.0017549991607666 0.0 0.0 0.0 998 -999 0.00175094604492188 0.0 0.0 0.0 999 -1000 0.00175905227661133 0.0 0.0 0.0 1000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log deleted file mode 100644 index 47b0c7f..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log +++ /dev/null @@ -1,261 +0,0 @@ -========================== 2009-04-01T16:53:42 CEST =========================== -Benchmarking on ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]. -Running 'GeneratorBenchmarkExt' for 1000 iterations/method (compare_time=real) -=============================================================================== - -This first run is only for warmup. -GeneratorBenchmarkExt#generator_fast: - real total user system -sum 1.818191528 1.840000000 1.830000000 0.010000000 -min 0.001368999 0.000000000 0.000000000 0.000000000 -std- -0.000870656 -0.002702580 -0.002705600 -0.000306228 -mean 0.001818192 0.001840000 0.001830000 0.000010000 -std+ 0.004507039 0.006382580 0.006365600 0.000326228 -max 0.026389122 0.030000000 0.030000000 0.010000000 -std 0.002688848 0.004542580 0.004535600 0.000316228 -std% 147.885830391 246.879359662 247.847020509 3162.277660168 -harm 0.001475231 nan nan nan -geo 0.001529059 0.000000000 0.000000000 0.000000000 -q1 0.001397133 0.000000000 0.000000000 0.000000000 -med 0.001406908 0.000000000 0.000000000 0.000000000 -q3 0.001425028 0.000000000 0.000000000 0.000000000 - 1000 549.99706 0.001818192 - calls calls/sec secs/call - - 0.02514 -| - 0.02264 -|* - 0.02013 -| - 0.01763 -| - 0.01513 -| - 0.01263 -| - 0.01013 -| - 0.00762 -| - 0.00512 -| - 0.00262 -|************************************************** - -Outliers detected with box plot algo (median=0.00141, iqr=0.00003, factor=3.00): -high=63 very_high=132 - -Ljung-Box statistics: q=15.00353 (alpha=0.05, df=50). -0.00000 < 0.95000 => No autocorrelation was detected. - -GeneratorBenchmarkExt#generator_fast: - real total user system -sum 1.826970100 1.830000000 1.820000000 0.010000000 -min 0.001377106 0.000000000 0.000000000 0.000000000 -std- -0.000992693 -0.002749527 -0.002708588 -0.000306228 -mean 0.001826970 0.001830000 0.001820000 0.000010000 -std+ 0.004646633 0.006409527 0.006348588 0.000326228 -max 0.027617931 0.030000000 0.030000000 0.010000000 -std 0.002819663 0.004579527 0.004528588 0.000316228 -std% 154.335471491 250.247404066 248.823509412 3162.277660168 -harm 0.001469225 nan nan nan -geo 0.001522946 0.000000000 0.000000000 0.000000000 -q1 0.001402140 0.000000000 0.000000000 0.000000000 -med 0.001411915 0.000000000 0.000000000 0.000000000 -q3 0.001425982 0.000000000 0.000000000 0.000000000 - 1000 547.35433 0.001826970 - calls calls/sec secs/call - - 0.02631 -| - 0.02368 -|* - 0.02106 -| - 0.01843 -| - 0.01581 -| - 0.01319 -| - 0.01056 -| - 0.00794 -| - 0.00531 -| - 0.00269 -|************************************************** - -Outliers detected with box plot algo (median=0.00141, iqr=0.00002, factor=3.00): -high=84 very_high=91 - -Ljung-Box statistics: q=13.47105 (alpha=0.05, df=50). -0.00000 < 0.95000 => No autocorrelation was detected. - -No initial data truncated. - => System may have been in a steady state from the beginning. -------------------------------------------------------------------------------- - -This first run is only for warmup. -GeneratorBenchmarkExt#generator_pretty: - real total user system -sum 2.625656843 2.590000000 2.580000000 0.010000000 -min 0.002025127 0.000000000 0.000000000 0.000000000 -std- -0.000656844 -0.002684440 -0.002689855 -0.000306228 -mean 0.002625657 0.002590000 0.002580000 0.000010000 -std+ 0.005908158 0.007864440 0.007849855 0.000326228 -max 0.028638124 0.030000000 0.030000000 0.010000000 -std 0.003282501 0.005274440 0.005269855 0.000316228 -std% 125.016381076 203.646340853 204.257944451 3162.277660168 -harm 0.002154247 nan nan nan -geo 0.002239052 0.000000000 0.000000000 0.000000000 -q1 0.002051830 0.000000000 0.000000000 0.000000000 -med 0.002062082 0.000000000 0.000000000 0.000000000 -q3 0.002082050 0.000000000 0.000000000 0.000000000 - 1000 380.85708 0.002625657 - calls calls/sec secs/call - - 0.02731 -| - 0.02465 -|* - 0.02198 -| - 0.01932 -| - 0.01666 -| - 0.01400 -| - 0.01134 -| - 0.00868 -| - 0.00602 -| - 0.00336 -|************************************************** - -Outliers detected with box plot algo (median=0.00206, iqr=0.00003, factor=3.00): -high=98 very_high=107 - -Ljung-Box statistics: q=349.53704 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -GeneratorBenchmarkExt#generator_pretty: - real total user system -sum 2.399331093 2.360000000 2.360000000 0.000000000 -min 0.002033949 0.000000000 0.000000000 0.000000000 -std- -0.000767217 -0.002736080 -0.002736080 0.000000000 -mean 0.002665923 0.002622222 0.002622222 0.000000000 -std+ 0.006099064 0.007980525 0.007980525 0.000000000 -max 0.029814005 0.030000000 0.030000000 0.000000000 -std 0.003433140 0.005358303 0.005358303 0.000000000 -std% 128.778658745 204.342051806 204.342051806 nan -harm 0.002164550 nan nan nan -geo 0.002253865 0.000000000 0.000000000 0.000000000 -q1 0.002059937 0.000000000 0.000000000 0.000000000 -med 0.002071142 0.000000000 0.000000000 0.000000000 -q3 0.002090931 0.000000000 0.000000000 0.000000000 - 900 375.10455 0.002665923 - calls calls/sec secs/call - - 0.02843 -| - 0.02565 -|* - 0.02287 -| - 0.02009 -| - 0.01731 -| - 0.01453 -| - 0.01176 -| - 0.00898 -| - 0.00620 -| - 0.00342 -|************************************************** - -Outliers detected with box plot algo (median=0.00207, iqr=0.00003, factor=3.00): -high=89 very_high=86 - -Ljung-Box statistics: q=342.52637 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -Truncated initial 100 measurements: 1000 -> 900 (-10.00%). -------------------------------------------------------------------------------- - -This first run is only for warmup. -GeneratorBenchmarkExt#generator_safe: - real total user system -sum 2.218419790 2.210000000 2.210000000 0.000000000 -min 0.001708984 0.000000000 0.000000000 0.000000000 -std- -0.000607850 -0.002484458 -0.002484458 0.000000000 -mean 0.002218420 0.002210000 0.002210000 0.000000000 -std+ 0.005044690 0.006904458 0.006904458 0.000000000 -max 0.026993036 0.030000000 0.030000000 0.000000000 -std 0.002826270 0.004694458 0.004694458 0.000000000 -std% 127.400134370 212.418923782 212.418923782 nan -harm 0.001839661 nan nan nan -geo 0.001909029 0.000000000 0.000000000 0.000000000 -q1 0.001738071 0.000000000 0.000000000 0.000000000 -med 0.001749992 0.000000000 0.000000000 0.000000000 -q3 0.001769066 0.000000000 0.000000000 0.000000000 - 1000 450.77131 0.002218420 - calls calls/sec secs/call - - 0.02573 -| - 0.02320 -| - 0.02067 -| - 0.01814 -| - 0.01562 -| - 0.01309 -| - 0.01056 -| - 0.00803 -| - 0.00550 -| - 0.00297 -|************************************************** - -Outliers detected with box plot algo (median=0.00175, iqr=0.00003, factor=3.00): -high=58 very_high=129 - -Ljung-Box statistics: q=24.03262 (alpha=0.05, df=50). -0.00070 < 0.95000 => No autocorrelation was detected. - -GeneratorBenchmarkExt#generator_safe: - real total user system -sum 2.252413511 2.250000000 2.250000000 0.000000000 -min 0.001720905 0.000000000 0.000000000 0.000000000 -std- -0.000940042 -0.002634809 -0.002634809 0.000000000 -mean 0.002252414 0.002250000 0.002250000 0.000000000 -std+ 0.005444869 0.007134809 0.007134809 0.000000000 -max 0.030152082 0.030000000 0.030000000 0.000000000 -std 0.003192455 0.004884809 0.004884809 0.000000000 -std% 141.734856492 217.102633117 217.102633117 nan -harm 0.001827244 nan nan nan -geo 0.001895755 0.000000000 0.000000000 0.000000000 -q1 0.001747131 0.000000000 0.000000000 0.000000000 -med 0.001757145 0.000000000 0.000000000 0.000000000 -q3 0.001773119 0.000000000 0.000000000 0.000000000 - 1000 443.96821 0.002252414 - calls calls/sec secs/call - - 0.02873 -| - 0.02589 -|* - 0.02304 -| - 0.02020 -| - 0.01736 -| - 0.01451 -| - 0.01167 -| - 0.00883 -| - 0.00599 -| - 0.00314 -|************************************************** - -Outliers detected with box plot algo (median=0.00176, iqr=0.00003, factor=3.00): -high=92 very_high=86 - -Ljung-Box statistics: q=19.23732 (alpha=0.05, df=50). -0.00003 < 0.95000 => No autocorrelation was detected. - -No initial data truncated. - => System may have been in a steady state from the beginning. -========================== 2009-04-01T16:54:07 CEST =========================== - -Comparing times (call_time_mean): - 1 GeneratorBenchmarkExt#generator_fast 1000 repeats: - 547.354332608 ( real) -> 1.459x - 0.001826970 - 2 GeneratorBenchmarkExt#generator_safe 1000 repeats: - 443.968212317 ( real) -> 1.184x - 0.002252414 - 3 GeneratorBenchmarkExt#generator_pretty 900 repeats: - 375.104545883 ( real) -> 1.000x - 0.002665923 - calls/sec ( time) -> speed covers - secs/call - -Comparing times (call_time_median): - 1 GeneratorBenchmarkExt#generator_fast 1000 repeats: - 708.258020939 ( real) -> 1.467x - 0.001411915 - 2 GeneratorBenchmarkExt#generator_safe 1000 repeats: - 569.105020353 ( real) -> 1.179x - 0.001757145 - 3 GeneratorBenchmarkExt#generator_pretty 900 repeats: - 482.825371244 ( real) -> 1.000x - 0.002071142 - calls/sec ( time) -> speed covers - secs/call -=============================================================================== -Writing measurement data file '/data/scm/json/benchmarks/data/GeneratorBenchmarkExt#generator_fast.dat'. -Writing autocorrelation plot file '/data/scm/json/benchmarks/data/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat'. -Writing measurement data file '/data/scm/json/benchmarks/data/GeneratorBenchmarkExt#generator_pretty.dat'. -Writing autocorrelation plot file '/data/scm/json/benchmarks/data/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat'. -Writing measurement data file '/data/scm/json/benchmarks/data/GeneratorBenchmarkExt#generator_safe.dat'. -Writing autocorrelation plot file '/data/scm/json/benchmarks/data/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat'. diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat deleted file mode 100644 index 39516bc..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat +++ /dev/null @@ -1,1000 +0,0 @@ -#lag autocorrelation -1 1.0 -2 -0.170725652741942 -3 -0.173770301666704 -4 -0.172897166156851 -5 -0.168221269286136 -6 -0.177979259169647 -7 0.175910550703494 -8 0.631061265876843 -9 -0.174719948437131 -10 -0.177293593621048 -11 -0.162698942321747 -12 -0.171029777522503 -13 -0.170296229667321 -14 0.528563135577363 -15 0.275831998572987 -16 -0.174813658667011 -17 -0.172093562954041 -18 -0.168544068156987 -19 -0.166590813818547 -20 -0.0638221070309873 -21 0.650522478992019 -22 0.0331509662336747 -23 -0.168760953941647 -24 -0.16341752594627 -25 -0.170818893187341 -26 -0.164732529292879 -27 0.162214061245849 -28 0.522886471249678 -29 -0.0702164490631389 -30 -0.170342702198113 -31 -0.161403416617991 -32 -0.166099481459981 -33 -0.11599356123736 -34 0.35515929301799 -35 0.320772083044373 -36 -0.117685112181583 -37 -0.169070189028916 -38 -0.159958239256153 -39 -0.159435335479438 -40 0.0319527022003592 -41 0.371475859420178 -42 0.175271663512744 -43 -0.138959890894007 -44 -0.163896984335847 -45 -0.169727435298396 -46 -0.13197665874304 -47 0.187359182943715 -48 0.291819477747683 -49 0.0816643898170594 -50 -0.150240775423654 -51 -0.150195661024305 -52 -0.165928012119222 -53 -0.0320978556096035 -54 0.221655302405546 -55 0.235675757438344 -56 0.0104091592019151 -57 -0.167146434535141 -58 -0.155117513175394 -59 -0.149297587622335 -60 0.0872938227826692 -61 0.203748825546551 -62 0.168550083168428 -63 -0.0396707902562578 -64 -0.158563031820387 -65 -0.159836689037633 -66 -0.0768666234623447 -67 0.148975157851596 -68 0.145123374753783 -69 0.133851392533958 -70 -0.0813691125651875 -71 -0.161000844437348 -72 -0.154719980109192 -73 0.0319631482416382 -74 0.130803526405489 -75 0.134803263091346 -76 0.0725284180216342 -77 -0.105199055037918 -78 -0.156074876537289 -79 -0.107946871185683 -80 0.0836764513383004 -81 0.114802110172454 -82 0.120184125868115 -83 0.0219557508902663 -84 -0.126340081403489 -85 -0.161799956489859 -86 -0.0125672540754974 -87 0.0971048482927368 -88 0.0787545812186751 -89 0.0948238873807684 -90 0.000719292583179628 -91 -0.14238726433046 -92 -0.123547942883664 -93 0.045691368088177 -94 0.0816329437452033 -95 0.0514248553628602 -96 0.079680652824934 -97 -0.0425865734879474 -98 -0.149657706603128 -99 -0.0482568721456359 -100 0.0598246932377812 -101 0.0730073630022969 -102 0.0493194581087269 -103 0.0614638905886062 -104 -0.0747784996077696 -105 -0.134762851026629 -106 0.0150375208487961 -107 0.0471753592749379 -108 0.0292261702954045 -109 0.0584126489508255 -110 0.0274065618881429 -111 -0.0923629805791867 -112 -0.0808051188610178 -113 0.0376068323578018 -114 0.0442243395389739 -115 0.0126091810820727 -116 0.0555017080552345 -117 -0.00777360178104387 -118 -0.0945093162279043 -119 -0.022038518955775 -120 0.0281685224822615 -121 0.0360696788220002 -122 0.00713767841566683 -123 0.0421452289712879 -124 -0.0237791430411877 -125 -0.0742603410791366 -126 0.00647409977150723 -127 0.023633020622411 -128 0.0112812718354579 -129 0.0206308476010651 -130 0.0255893471032846 -131 -0.0412520741546623 -132 -0.0335271150442982 -133 0.0103042519486441 -134 0.0216752613460992 -135 -0.0178133510217017 -136 0.0272498700028734 -137 0.016136487618036 -138 -0.0397127191558659 -139 0.000486023489007977 -140 0.00602879598312952 -141 0.0137117482424303 -142 -0.0239000113030396 -143 0.0256815555012877 -144 -0.00060378060179975 -145 -0.00976477458386044 -146 -0.00471952290156136 -147 0.00287226670988194 -148 -0.00739404113874663 -149 -0.00811924231656889 -150 0.0201609109752059 -151 0.00972768702895235 -152 0.000848772862832347 -153 -0.00315419376588145 -154 0.00325411212387319 -155 -0.0317897669469223 -156 0.00942578451848677 -157 -0.00114487370622857 -158 0.0316193613529631 -159 -0.0029035071383654 -160 -0.00961310004099253 -161 -0.00376402041194372 -162 -0.0304203576913082 -163 0.0040586071587507 -164 0.0181183011617105 -165 0.0289277830257262 -166 -0.00204748582187099 -167 -0.00833532939960483 -168 -0.0179545373314343 -169 -0.0281067596140224 -170 0.00621739022305282 -171 0.020061720611003 -172 0.0441951153685219 -173 -0.016767863675634 -174 -0.00891142478547904 -175 -0.034295757242845 -176 -0.016919846890981 -177 0.00444867679830856 -178 0.057088732705068 -179 0.01772144393744 -180 -0.0115305384915719 -181 -0.0214068916539082 -182 -0.0361142387382199 -183 -0.013268832313842 -184 0.010553526981677 -185 0.0641530212355029 -186 0.00531141736458679 -187 -0.0129434128279975 -188 -0.0288767748585849 -189 -0.0325395473006688 -190 -0.013236712565576 -191 0.0408115115996002 -192 0.0564202212852658 -193 -0.00419580869937261 -194 -0.0240043584548271 -195 -0.0410661026884763 -196 -0.0308430649531645 -197 -0.00193671234656414 -198 0.0574028584211738 -199 0.0464705207875104 -200 0.00131591241415564 -201 -0.0376248928893234 -202 -0.03907610654102 -203 -0.0270477565328025 -204 0.0208038841462715 -205 0.0713903559954449 -206 0.0172971300646441 -207 -0.0158722320069745 -208 -0.0368888763339713 -209 -0.0453718730430625 -210 -0.0217822862730174 -211 0.0539702430257461 -212 0.0523602401531812 -213 0.0209143114178913 -214 -0.0355801431609542 -215 -0.0377942204568278 -216 -0.0425711559012913 -217 -0.00707645512821953 -218 0.0728667936636181 -219 0.0361207184120543 -220 0.0128571335027956 -221 -0.0500603421741668 -222 -0.0391402365626237 -223 -0.0338696993621202 -224 0.0225822360602949 -225 0.0582954334884232 -226 0.0343772287798159 -227 0.000189606884889642 -228 -0.0526391089870516 -229 -0.0433107479511685 -230 -0.0222872074614468 -231 0.0506022312295133 -232 0.0475294709603697 -233 0.033409950599465 -234 -0.0396552908405006 -235 -0.0416731652109144 -236 -0.0376644416284466 -237 -0.0120295884760736 -238 0.0667676774080548 -239 0.0397241548411963 -240 0.0242686882994478 -241 -0.0511926472771689 -242 -0.0406717091383664 -243 -0.0294526606762824 -244 0.0122100601151817 -245 0.0582087173478016 -246 0.0279608706883549 -247 0.00958023333135808 -248 -0.0607734282446654 -249 -0.0326785608605117 -250 -0.0170207233666544 -251 0.0461938078567918 -252 0.0336445218462931 -253 0.0452208779230127 -254 -0.0303944318761255 -255 -0.0494219498376225 -256 -0.0318543144076625 -257 -0.00927701052965794 -258 0.0537742147750351 -259 0.0349392754231259 -260 0.0230828975637977 -261 -0.0377907249695523 -262 -0.0429055961196646 -263 -0.017728080300272 -264 0.000424042692478759 -265 0.0472551057914617 -266 0.0405778077745205 -267 -0.00156836352007451 -268 -0.0419460412931724 -269 -0.0345431630170736 -270 -0.0143420878981143 -271 0.0187023906658354 -272 0.0418900285241672 -273 0.0405074017275708 -274 -0.0190108947516174 -275 -0.0546041853190452 -276 -0.0171268537791246 -277 -0.0128446606789693 -278 0.0395381045567008 -279 0.0310776255240069 -280 0.0407363391562478 -281 -0.033091514570131 -282 -0.0503175108683564 -283 -0.022772349202314 -284 0.00530849685544454 -285 0.0324464330192744 -286 0.0465351961365909 -287 -0.00328476076139341 -288 -0.0300758395541426 -289 -0.0371777756744481 -290 -0.00431509980873169 -291 0.00608435003025785 -292 0.037638330575397 -293 0.0407716145244858 -294 -0.0176308532927816 -295 -0.0455722533058368 -296 -0.0254868606225217 -297 -0.00176448336443634 -298 0.015401834338667 -299 0.0470736363973921 -300 0.0286385461989055 -301 -0.02407787658874 -302 -0.0462179062100874 -303 -0.00954285257082467 -304 0.00223496307580496 -305 0.019441609399508 -306 0.0376394897901893 -307 0.0152437430866642 -308 -0.0312285316173427 -309 -0.0450095093247238 -310 0.00405494429487151 -311 -0.000906366188112425 -312 0.0342390932524035 -313 0.0351096044622525 -314 -0.0067200598875223 -315 -0.0344931951944617 -316 -0.0250051604191116 -317 -0.0079099140627721 -318 0.0136877534761663 -319 0.0470111495216969 -320 0.004066298860697 -321 -0.0106091011767897 -322 -0.035535335618417 -323 -0.00900628798721377 -324 -0.00437923810369414 -325 0.0183021198298254 -326 0.031707051659253 -327 0.0156128127338416 -328 -0.0272783407707802 -329 -0.036001647799748 -330 0.00528671926612521 -331 -0.000290217242915226 -332 0.0353019065669182 -333 0.00464723527656522 -334 0.00460168685380347 -335 -0.0215595994261557 -336 -0.0299493415452654 -337 -0.0034698093249361 -338 0.0165266322772037 -339 0.0315139059204056 -340 0.00362648192318334 -341 -0.00491801854061831 -342 -0.0231228284017189 -343 -0.0113129015126025 -344 -0.00300665710172655 -345 0.0130130997144332 -346 0.0223950145161189 -347 0.00202583064367953 -348 -0.0102668124711821 -349 -0.0253546874115718 -350 0.00644442693633731 -351 0.000780453480952724 -352 0.0284887918984724 -353 -0.00595281685205509 -354 0.0120132555793013 -355 -0.0181922031950026 -356 -0.0248881070928514 -357 -0.00242385809089605 -358 0.0194092079332272 -359 0.0144215071404531 -360 0.00612726395169545 -361 -0.00573485213524349 -362 -0.0117678537517965 -363 -0.0132866019915077 -364 -0.00168434348341747 -365 0.0210258042234829 -366 0.00299710982573773 -367 7.02933284912932e-05 -368 -0.00141527364094497 -369 -0.0174837658027455 -370 -0.00530972905386562 -371 0.00289284688712308 -372 0.0269088067868297 -373 -0.00857711045394559 -374 0.000634286012527533 -375 -0.00732827217084004 -376 -0.0129999392900683 -377 -0.00620543176764517 -378 0.0219005305671357 -379 0.00951579849769713 -380 -0.00156577259219444 -381 0.00334210346592974 -382 -0.0168913201522477 -383 -0.0140750807027531 -384 0.0026387459171992 -385 0.0167243976144324 -386 0.000401824368635554 -387 0.00494540377378665 -388 -0.0079650110757071 -389 -0.000153543070488744 -390 -0.0157596554184165 -391 0.00960203655959764 -392 0.0194333180320067 -393 -0.00698081626697105 -394 -0.00616259455878436 -395 -0.00885431917148208 -396 -0.000823472402578178 -397 -0.014306329807885 -398 0.0323044170275812 -399 -0.00116363767533424 -400 -0.00613094977576676 -401 0.00681272285172057 -402 -0.0120741370386856 -403 -0.00393525989936848 -404 0.00143625779594446 -405 0.0112941876899105 -406 0.00621416024416119 -407 -0.00715834709108978 -408 0.00349330341606058 -409 -0.0134328785266322 -410 -0.00983212957457947 -411 0.0170214269071715 -412 0.00768534801684557 -413 -0.00433253762066253 -414 0.00328760101068126 -415 -0.011902725027492 -416 0.0037433377806999 -417 -0.016429583975757 -418 0.0253614932452271 -419 0.00105507602999118 -420 -0.00501259523808327 -421 -0.0068805657075317 -422 -0.00611319813056072 -423 0.00133925647011242 -424 0.000593265112355031 -425 0.00636014210120566 -426 0.0100866038838847 -427 -0.0104562933845484 -428 -0.000506041760930212 -429 -0.003202190801565 -430 -0.00228403340255738 -431 0.00854908376124406 -432 0.00387003653786829 -433 -0.00478285696403202 -434 -0.00768626474153872 -435 0.00703888513154693 -436 -0.00944179389034701 -437 -0.001876043961929 -438 0.0164444486588937 -439 0.00420632904477211 -440 -0.0113129379390227 -441 -0.00359559614450257 -442 -0.00109952765661056 -443 0.0151360003108556 -444 -0.0154475593718288 -445 0.00602211025479499 -446 -0.000307234590538632 -447 0.0046588142745641 -448 -0.0126455787204799 -449 0.0111520432278555 -450 0.00974700164306953 -451 -0.0123611400743472 -452 0.0108946760123822 -453 -0.00120669950156729 -454 -0.0150988572259806 -455 0.00502353890121031 -456 0.00408149023215052 -457 0.00586521360666165 -458 -0.0102923932626118 -459 0.00382025608487933 -460 0.00255550573549941 -461 -0.00783828310549662 -462 0.00508824500063238 -463 0.0084446428666135 -464 -0.00872612495616409 -465 -0.0010875359595666 -466 0.00346175022973811 -467 -0.00495327642022978 -468 0.00325169084183052 -469 -0.00463312556182376 -470 0.0118854909647327 -471 -0.0171003407134582 -472 0.0123260637207544 -473 -0.00447510748083252 -474 -0.00707845418496072 -475 0.00755386113965643 -476 -0.00100076346057804 -477 0.00860719536195919 -478 -0.0136737162109966 -479 0.00711613796353955 -480 0.00622875998269613 -481 -0.0117802696216559 -482 0.00817288034030646 -483 -0.00010669129241017 -484 -0.00352870547469094 -485 -0.0041443261121201 -486 -0.000910571304832122 -487 0.00615718849758809 -488 0.00143910833275321 -489 -0.00107559220444337 -490 0.00356082962826646 -491 -0.00897791292059391 -492 0.00527546492556289 -493 0.00302276031439837 -494 -0.0139577905696164 -495 0.0153490659756607 -496 -0.00912850078466119 -497 0.000879808460620783 -498 0.000984936175184538 -499 0.0024123778693579 -500 0.00264304134465302 -501 -0.0020232636751576 -502 0.00551353717784557 -503 -0.00415080354514971 -504 -0.00545916667181435 -505 -0.00274028317951399 -506 0.00692379605051298 -507 0.00616679327772537 -508 -0.0103279571217553 -509 0.00599342336739776 -510 -0.00152316676140798 -511 -0.00167286162288039 -512 -0.00131993101685522 -513 0.0025282491153862 -514 -0.0017542373384818 -515 0.0105600742581342 -516 -0.0132267654750864 -517 0.00283731663919629 -518 -0.00266741199361332 -519 0.00157444027950648 -520 0.00420858755299597 -521 -0.00658258017129261 -522 0.00508600113202915 -523 -0.00598002733029911 -524 -0.000368464512649264 -525 0.00317302663744126 -526 0.00115765014094958 -527 0.00267985546857361 -528 -5.46265185716715e-05 -529 -0.0020009411803283 -530 0.00486700543717424 -531 -0.00895876165620023 -532 -0.00299164146372051 -533 0.00312859041046786 -534 0.00209406747343818 -535 0.00673942768658441 -536 -0.0080409196789959 -537 0.00240456617470404 -538 -0.00873512083231826 -539 0.0131577627923678 -540 -0.00665539290143677 -541 0.00346454545303284 -542 0.0035973446316873 -543 -0.00868085967804022 -544 -0.00333236624454644 -545 -0.000196442609818114 -546 0.00024806978901623 -547 0.00902390850008458 -548 0.00455805912058593 -549 -0.0021927440377309 -550 -0.00266277815142354 -551 -0.00688313353751191 -552 0.00853131376210095 -553 -0.00393842096864295 -554 -0.00523274211550968 -555 0.0169329221829408 -556 -0.0127945093367028 -557 -0.00072480763790979 -558 -0.00747843149724429 -559 0.0098746166146274 -560 -0.00240342067223121 -561 0.00696610332249864 -562 -0.00223635183687814 -563 -0.00541969587447053 -564 0.000337137313027405 -565 -0.00633065126280832 -566 0.00910870585819199 -567 -0.00455095051161683 -568 0.0151312578540391 -569 -0.0138690307629985 -570 0.00185264574846404 -571 -0.00664259858046173 -572 -0.00312306915210339 -573 0.0115985176835154 -574 -0.00759201236341693 -575 0.0123033300962974 -576 -0.0116628565174072 -577 0.00192424927530433 -578 -0.00508184861795511 -579 0.00510239186439487 -580 0.0086553620645795 -581 -0.00172738282515301 -582 -0.0021965366527628 -583 -0.00611685505872929 -584 -0.00193581230608064 -585 -0.00107517411193112 -586 0.00446964598329358 -587 -0.000130069247618965 -588 0.0106723190798826 -589 -0.00893242845988889 -590 -0.00281814645132135 -591 -0.00320913741145263 -592 0.00122039092287541 -593 0.0131068648072679 -594 -0.0156363425833423 -595 0.0163402377490577 -596 -0.0178296060018707 -597 0.00292057772226031 -598 0.0026057160047535 -599 -0.0056620372273394 -600 0.0221246161887441 -601 -0.0124193991673087 -602 0.0116954284234103 -603 -0.0182733365810819 -604 0.00268681939875375 -605 0.000740456981363333 -606 0.00452604181556726 -607 0.00480547630796285 -608 -0.00481203219844089 -609 -0.00358228345456814 -610 0.00284875874479068 -611 -0.00700099168490112 -612 0.00572849008389633 -613 0.0009937821532389 -614 0.00731073451366145 -615 0.00170654591193711 -616 -0.0139804622453969 -617 -0.00443468421233479 -618 0.00531823173567082 -619 -0.00198161915266415 -620 0.0150254959665873 -621 -0.00831801965928389 -622 0.00172646514060601 -623 -0.00862060723221882 -624 -0.00433533060780036 -625 0.00756501714009114 -626 -0.00135836313194754 -627 0.00932877978173298 -628 0.00124802151466854 -629 -0.00395113636252646 -630 -0.00485990513214748 -631 -0.00663176926963557 -632 -0.0010820412567438 -633 0.0133592195871343 -634 -0.00141240259407419 -635 0.00139234037081884 -636 -0.00360777343366459 -637 -0.0045878817789227 -638 -0.00220204565644013 -639 0.00147686629423844 -640 0.00543470252168979 -641 0.0105896351713388 -642 -0.00973902671101576 -643 -0.00668023801257986 -644 -0.00936843265363968 -645 0.0089634651091583 -646 3.84562452729655e-05 -647 0.00384580055961138 -648 0.0229816090537144 -649 -0.0184332961015907 -650 -0.00529759065480934 -651 -0.0066870495503683 -652 0.00225769689469144 -653 0.0102460370689819 -654 0.00338482338024052 -655 0.00379747442016746 -656 -0.00712302572663179 -657 -0.0114322113895202 -658 -0.00273386445516078 -659 0.00553489607050495 -660 0.00837690540674999 -661 0.00940739102513669 -662 -0.0053486413343748 -663 -0.00315193594161813 -664 -0.0105647918156018 -665 -0.00691297631409873 -666 0.0142090509210798 -667 -0.000975698964492755 -668 0.0132255885174397 -669 -0.00325960303321359 -670 -0.006651275593499 -671 -0.0192763045572716 -672 0.00410496738893783 -673 0.00865425824492816 -674 0.0074519049626705 -675 0.00640440261542484 -676 -0.00248884860489984 -677 -0.0175933146891799 -678 -0.00288003343042402 -679 0.00834623453163345 -680 -0.00449041088509132 -681 0.0232105507895105 -682 -0.00534719486763679 -683 -0.00392566304421506 -684 -0.0192148623617993 -685 -0.00286039387718507 -686 0.0169363828012178 -687 -0.00383913263684977 -688 0.0147166901415108 -689 -0.00527685630258491 -690 -0.00534763716897078 -691 -0.013028036623984 -692 0.00109856360189917 -693 0.00429859241906058 -694 0.0110770507839361 -695 0.00389958466319795 -696 -0.00500164744078786 -697 -0.00580430434909617 -698 -0.0175348619428549 -699 0.018367710926664 -700 -0.00285520470226993 -701 0.0191604505372293 -702 -0.00572139870349262 -703 -0.00245556604337348 -704 -0.0107607119705179 -705 -0.00773541821274989 -706 0.00425886688313039 -707 0.00803784819561882 -708 0.0116278126911605 -709 -0.00361748710592387 -710 -0.0039055675458961 -711 -0.0187689003370071 -712 0.00721078757871366 -713 -0.00118844249034332 -714 0.0125434153334007 -715 0.0101599061260829 -716 -0.00351197692479239 -717 -0.0123155660331183 -718 -0.0108643040658882 -719 0.00554949017948381 -720 0.00257600141246878 -721 0.00621936965849692 -722 0.0147249169696155 -723 -0.0117208865566673 -724 -0.0123019859554356 -725 -0.00803010597732602 -726 0.00658862562929511 -727 0.00614064100015319 -728 0.008551217239909 -729 0.0136644617518446 -730 -0.015679112924688 -731 -0.0164762866576538 -732 -0.00450956642363176 -733 0.00672813330266014 -734 0.0163514096475234 -735 0.00144257368405246 -736 0.00632093496019618 -737 -0.0144540308342644 -738 -0.0116512949908104 -739 -0.00303930205795109 -740 0.00684139171029531 -741 0.0157237606456902 -742 0.00173826522952491 -743 0.00162052201072558 -744 -0.0225327170375728 -745 -0.00244349662721446 -746 -0.00369988442043602 -747 0.020606075524278 -748 0.00234950019819143 -749 0.00933962911886964 -750 -0.00497392363419004 -751 -0.0191622234756475 -752 0.00152935854260608 -753 -0.00746413948201927 -754 0.0210618579576008 -755 0.00337450745565617 -756 0.0116901903545899 -757 -0.0211051168455275 -758 -0.0116996994412557 -759 -0.00384503529844727 -760 0.0106920319592258 -761 0.00606434563857974 -762 0.0109288893744588 -763 0.0065913741548423 -764 -0.024843059360248 -765 -0.00145794491644285 -766 -0.015899201893062 -767 0.0293737522747255 -768 0.000429876419139015 -769 0.0117737352022464 -770 -0.011804032635419 -771 -0.0160558691300165 -772 -0.00680765187518244 -773 0.00115856328840688 -774 0.016936256215249 -775 0.00599154100809263 -776 0.00618605288716798 -777 -0.0133717924580297 -778 -0.00856753018227533 -779 -0.0122498868461665 -780 0.0184368989458328 -781 0.00826995605347898 -782 -0.00370110797731906 -783 0.00766740753297887 -784 -0.0106558949199266 -785 -0.0145918234070912 -786 0.00262754124009611 -787 0.00732095805793885 -788 0.0141175867672096 -789 0.000917093953717164 -790 -0.00610693085809193 -791 -0.00263724165375204 -792 -0.0223403739509282 -793 0.0155086188394132 -794 -0.000414907985012158 -795 0.00818366497095633 -796 0.00390922245137539 -797 0.000518897249907908 -798 -0.0114231682864646 -799 -0.0131434185021701 -800 0.0106325516600345 -801 0.00726206049320438 -802 0.011973193565835 -803 -0.0117164916752715 -804 0.00837431504618953 -805 -0.0176484202352301 -806 -0.00242926974706211 -807 0.00617275793654123 -808 0.00157428575173083 -809 0.0140869636480763 -810 -0.00799595335938592 -811 -0.00145797624072917 -812 -0.0163218480242698 -813 0.0102032846601359 -814 0.00334029936869413 -815 0.00596774673469088 -816 -0.00191679139866682 -817 0.00111982507739117 -818 -0.00466131055412295 -819 -0.009977558947507 -820 0.0070518233255565 -821 -0.00235106334091928 -822 0.0135818413020524 -823 -0.0124536640788948 -824 0.00961249011142124 -825 -0.012067111031695 -826 0.000746163532116685 -827 -0.000618612461237987 -828 0.00932264378392892 -829 -0.00138865174580641 -830 -0.0026558878506514 -831 0.0039382752792092 -832 -0.00629021025673958 -833 -0.00703454327061739 -834 0.000852556936383089 -835 0.0170439482297759 -836 -0.0100201779805253 -837 0.00412500179406067 -838 -0.00228249593639731 -839 0.00340179323986006 -840 -0.0152704223182198 -841 0.0106042546349877 -842 0.00124240796525085 -843 0.000187170197715872 -844 -0.00396092509138278 -845 0.00476886425336974 -846 -0.00278502915166355 -847 -0.0105600821274784 -848 0.0187548308543433 -849 -0.0101103834519274 -850 0.00609860589988799 -851 -0.00970023587707483 -852 0.0175534712886796 -853 -0.0150157009573689 -854 0.000240696590543887 -855 0.00334623999363693 -856 0.000756223924502869 -857 -0.0019111813337376 -858 -0.000465320516901212 -859 0.0102121697808577 -860 -0.0119235594699214 -861 -0.000513039517075994 -862 7.13470533304221e-05 -863 0.00602093194270405 -864 -0.00562228912014448 -865 0.00897532104113402 -866 0.00135722877208738 -867 -0.0107137791823794 -868 0.000349804975704247 -869 0.00196275441326171 -870 -0.00207881051818241 -871 -0.00504133443326138 -872 0.01798662824207 -873 -0.00512468690960391 -874 -0.00936398567940176 -875 -0.00350357584735409 -876 0.00844402907196902 -877 -0.00535212289603013 -878 0.00359477004645202 -879 0.0100259050577573 -880 -0.00448613112164086 -881 -0.00772718523343422 -882 -0.00407471844508272 -883 0.00258842651253074 -884 -0.00497542569393132 -885 0.0140374940981116 -886 0.00485938827108293 -887 -0.00522635448674892 -888 -0.00995747147865195 -889 0.00286884969081893 -890 -0.00263726932721365 -891 0.00281869362544293 -892 0.00413911124089107 -893 0.00641299274583358 -894 -0.00461483322781905 -895 -0.00973466510643417 -896 -0.00244121423716433 -897 -0.00187439261201581 -898 0.0167254251905489 -899 -0.00323557017026858 -900 0.0070698910566062 -901 -0.00984192453152891 -902 -0.00745285112891651 -903 -0.00156488511331396 -904 0.00648910969501878 -905 0.00778960101933796 -906 -0.00110773006555918 -907 0.00797123926504478 -908 -0.0172915924405978 -909 -0.00567453921434972 -910 -0.00093198227439079 -911 0.017699519362806 -912 -0.000318037037700945 -913 -0.000901743764017103 -914 0.00248888283323065 -915 -0.0142481225576747 -916 -0.00627435836721236 -917 0.00855187280647071 -918 0.0105572049962355 -919 0.000583931991033486 -920 -4.30556267490633e-05 -921 -0.0045108941062306 -922 -0.0133739157611831 -923 -0.00313115415898723 -924 0.0189188436677887 -925 0.00153514138422627 -926 0.00103320993409772 -927 0.00112288481924235 -928 -0.00928188326624581 -929 -0.0129274841698096 -930 0.00498882941992066 -931 0.0128685052672079 -932 0.00095422558746866 -933 0.00287762148255505 -934 -0.00475028532754077 -935 -0.00822865912701703 -936 -0.00757218985298937 -937 0.0125664162380766 -938 0.00270238634995215 -939 0.00302457671529668 -940 0.00428294440890637 -941 -0.00899111620928394 -942 -0.0110893993806093 -943 0.00141333596146868 -944 0.00563271971888788 -945 0.00411002278120649 -946 0.00615934836425166 -947 -0.00174830591696001 -948 -0.00690959640532146 -949 -0.00762102396102174 -950 0.00236971536529725 -951 0.00460497853674718 -952 0.00598101123225428 -953 0.00706347780702416 -954 -0.0072207235025214 -955 -0.00731160125486541 -956 -0.00624993042258776 -957 0.00302766462338833 -958 0.00586320595091301 -959 0.00757297545746186 -960 0.000503174678108187 -961 -0.00664203641468952 -962 -0.00405954777539984 -963 -0.00594873760338403 -964 0.00307617052361439 -965 0.00775330844648307 -966 0.00843784117689838 -967 -0.00583155486504129 -968 -0.00522157454280821 -969 -0.00285538010476946 -970 -0.00558783047918071 -971 0.00390712343424286 -972 0.00929413763014091 -973 0.00249794635456826 -974 -0.00403614631431915 -975 -0.00252223207691292 -976 -0.00372319999128239 -977 -0.00468425218841592 -978 0.00588461196845991 -979 0.0101947594770192 -980 -0.00382374940790093 -981 -0.00256280880770612 -982 -0.00238724745188651 -983 -0.00254031623097892 -984 -0.00349304284255843 -985 0.00656620792235621 -986 0.0047392335299334 -987 -0.00245644332451687 -988 -0.000949186258308068 -989 -0.00204517319399663 -990 -0.00117348041470723 -991 -0.00165335740901138 -992 0.00532507797594932 -993 -0.00112887412444135 -994 -0.00102507341491478 -995 -0.000239825549954329 -996 -0.000229034611702856 -997 -0.00048382116878178 -998 -0.000558954253318938 -999 0.000343539178586105 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat deleted file mode 100644 index 9c717bb..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat +++ /dev/null @@ -1,1001 +0,0 @@ -#scatter real total user system repeat -1 0.0163400173187256 0.00999999999999091 0.00999999999999091 0.0 1 -2 0.0159189701080322 0.00999999999999091 0.00999999999999091 0.0 2 -3 0.0164740085601807 0.0200000000000102 0.0200000000000102 0.0 3 -4 0.0157279968261719 0.00999999999999091 0.00999999999999091 0.0 4 -5 0.0157220363616943 0.0200000000000102 0.0200000000000102 0.0 5 -6 0.0156500339508057 0.00999999999999091 0.00999999999999091 0.0 6 -7 0.0407540798187256 0.0499999999999829 0.0499999999999829 0.0 7 -8 0.0177309513092041 0.0100000000000193 0.0100000000000193 0.0 8 -9 0.0160109996795654 0.0199999999999818 0.0199999999999818 0.0 9 -10 0.0159001350402832 0.0100000000000193 0.0100000000000193 0.0 10 -11 0.0192539691925049 0.0199999999999818 0.0199999999999818 0.0 11 -12 0.0170741081237793 0.0200000000000102 0.0200000000000102 0.0 12 -13 0.0155148506164551 0.0200000000000102 0.0200000000000102 0.0 13 -14 0.0416128635406494 0.039999999999992 0.039999999999992 0.0 14 -15 0.0161120891571045 0.00999999999999091 0.00999999999999091 0.0 15 -16 0.0159459114074707 0.0200000000000102 0.0200000000000102 0.0 16 -17 0.0158929824829102 0.0200000000000102 0.0200000000000102 0.0 17 -18 0.0158240795135498 0.00999999999999091 0.00999999999999091 0.0 18 -19 0.0156450271606445 0.0199999999999818 0.0199999999999818 0.0 19 -20 0.0159389972686768 0.0100000000000193 0.0100000000000193 0.0 20 -21 0.0409190654754639 0.039999999999992 0.039999999999992 0.0 21 -22 0.0160489082336426 0.0200000000000102 0.0200000000000102 0.0 22 -23 0.0169320106506348 0.0199999999999818 0.0199999999999818 0.0 23 -24 0.0198559761047363 0.0200000000000102 0.0200000000000102 0.0 24 -25 0.0158309936523438 0.00999999999999091 0.00999999999999091 0.0 25 -26 0.0156970024108887 0.0200000000000102 0.0200000000000102 0.0 26 -27 0.0156750679016113 0.0200000000000102 0.0200000000000102 0.0 27 -28 0.0406918525695801 0.039999999999992 0.039999999999992 0.0 28 -29 0.0161190032958984 0.00999999999999091 0.00999999999999091 0.0 29 -30 0.0162358283996582 0.0200000000000102 0.0200000000000102 0.0 30 -31 0.0158340930938721 0.00999999999999091 0.00999999999999091 0.0 31 -32 0.0157299041748047 0.0200000000000102 0.0200000000000102 0.0 32 -33 0.0156428813934326 0.0199999999999818 0.0199999999999818 0.0 33 -34 0.0156571865081787 0.0100000000000193 0.0100000000000193 0.0 34 -35 0.0409109592437744 0.039999999999992 0.039999999999992 0.0 35 -36 0.0192060470581055 0.0200000000000102 0.0200000000000102 0.0 36 -37 0.0160908699035645 0.0199999999999818 0.0199999999999818 0.0 37 -38 0.0158319473266602 0.0100000000000193 0.0100000000000193 0.0 38 -39 0.0157558917999268 0.0199999999999818 0.0199999999999818 0.0 39 -40 0.0158040523529053 0.0200000000000102 0.0200000000000102 0.0 40 -41 0.0156400203704834 0.00999999999999091 0.00999999999999091 0.0 41 -42 0.0408070087432861 0.0400000000000205 0.0400000000000205 0.0 42 -43 0.0159420967102051 0.0199999999999818 0.0199999999999818 0.0 43 -44 0.0159668922424316 0.00999999999999091 0.00999999999999091 0.0 44 -45 0.0213000774383545 0.0300000000000011 0.0300000000000011 0.0 45 -46 0.0170960426330566 0.0100000000000193 0.0100000000000193 0.0 46 -47 0.0160157680511475 0.0199999999999818 0.0199999999999818 0.0 47 -48 0.0156497955322266 0.0100000000000193 0.0100000000000193 0.0 48 -49 0.0446329116821289 0.0499999999999829 0.0499999999999829 0.0 49 -50 0.016150951385498 0.0200000000000102 0.0200000000000102 0.0 50 -51 0.0159158706665039 0.00999999999999091 0.00999999999999091 0.0 51 -52 0.0157129764556885 0.0200000000000102 0.0200000000000102 0.0 52 -53 0.0165328979492188 0.00999999999999091 0.00999999999999091 0.0 53 -54 0.0156497955322266 0.0200000000000102 0.0200000000000102 0.0 54 -55 0.0156981945037842 0.0200000000000102 0.0200000000000102 0.0 55 -56 0.0412800312042236 0.039999999999992 0.039999999999992 0.0 56 -57 0.0159571170806885 0.00999999999999091 0.00999999999999091 0.0 57 -58 0.015887975692749 0.0200000000000102 0.0200000000000102 0.0 58 -59 0.0158159732818604 0.00999999999999091 0.00999999999999091 0.0 59 -60 0.0156238079071045 0.0200000000000102 0.0200000000000102 0.0 60 -61 0.0156691074371338 0.0199999999999818 0.0199999999999818 0.0 61 -62 0.0447931289672852 0.0400000000000205 0.0400000000000205 0.0 62 -63 0.0160729885101318 0.0199999999999818 0.0199999999999818 0.0 63 -64 0.016963005065918 0.0100000000000193 0.0100000000000193 0.0 64 -65 0.015869140625 0.0199999999999818 0.0199999999999818 0.0 65 -66 0.0158119201660156 0.0200000000000102 0.0200000000000102 0.0 66 -67 0.0156521797180176 0.00999999999999091 0.00999999999999091 0.0 67 -68 0.0156309604644775 0.0200000000000102 0.0200000000000102 0.0 68 -69 0.0406920909881592 0.039999999999992 0.039999999999992 0.0 69 -70 0.0161399841308594 0.00999999999999091 0.00999999999999091 0.0 70 -71 0.0160379409790039 0.0200000000000102 0.0200000000000102 0.0 71 -72 0.0158870220184326 0.0200000000000102 0.0200000000000102 0.0 72 -73 0.0157949924468994 0.00999999999999091 0.00999999999999091 0.0 73 -74 0.019942045211792 0.0200000000000102 0.0200000000000102 0.0 74 -75 0.0156691074371338 0.0199999999999818 0.0199999999999818 0.0 75 -76 0.0406370162963867 0.0400000000000205 0.0400000000000205 0.0 76 -77 0.0160510540008545 0.00999999999999091 0.00999999999999091 0.0 77 -78 0.0159440040588379 0.0200000000000102 0.0200000000000102 0.0 78 -79 0.0159609317779541 0.0199999999999818 0.0199999999999818 0.0 79 -80 0.0160808563232422 0.0100000000000193 0.0100000000000193 0.0 80 -81 0.0156311988830566 0.0199999999999818 0.0199999999999818 0.0 81 -82 0.0157270431518555 0.00999999999999091 0.00999999999999091 0.0 82 -83 0.041240930557251 0.0500000000000114 0.0500000000000114 0.0 83 -84 0.0165321826934814 0.00999999999999091 0.00999999999999091 0.0 84 -85 0.0159039497375488 0.0200000000000102 0.0200000000000102 0.0 85 -86 0.0183000564575195 0.0200000000000102 0.0200000000000102 0.0 86 -87 0.0168759822845459 0.00999999999999091 0.00999999999999091 0.0 87 -88 0.0156400203704834 0.0200000000000102 0.0200000000000102 0.0 88 -89 0.0156240463256836 0.00999999999999091 0.00999999999999091 0.0 89 -90 0.0415260791778564 0.0500000000000114 0.0500000000000114 0.0 90 -91 0.0159800052642822 0.00999999999999091 0.00999999999999091 0.0 91 -92 0.0159440040588379 0.0200000000000102 0.0200000000000102 0.0 92 -93 0.0158178806304932 0.00999999999999091 0.00999999999999091 0.0 93 -94 0.0157041549682617 0.0199999999999818 0.0199999999999818 0.0 94 -95 0.0200591087341309 0.0200000000000102 0.0200000000000102 0.0 95 -96 0.018794059753418 0.0200000000000102 0.0200000000000102 0.0 96 -97 0.0408840179443359 0.039999999999992 0.039999999999992 0.0 97 -98 0.0196928977966309 0.0200000000000102 0.0200000000000102 0.0 98 -99 0.016610860824585 0.0199999999999818 0.0199999999999818 0.0 99 -100 0.0157420635223389 0.0100000000000193 0.0100000000000193 0.0 100 -101 0.015739917755127 0.0199999999999818 0.0199999999999818 0.0 101 -102 0.015592098236084 0.0100000000000193 0.0100000000000193 0.0 102 -103 0.0156228542327881 0.0199999999999818 0.0199999999999818 0.0 103 -104 0.0417301654815674 0.0400000000000205 0.0400000000000205 0.0 104 -105 0.015916109085083 0.0199999999999818 0.0199999999999818 0.0 105 -106 0.0158488750457764 0.00999999999999091 0.00999999999999091 0.0 106 -107 0.015733003616333 0.0200000000000102 0.0200000000000102 0.0 107 -108 0.0156040191650391 0.00999999999999091 0.00999999999999091 0.0 108 -109 0.0155818462371826 0.0200000000000102 0.0200000000000102 0.0 109 -110 0.041733980178833 0.039999999999992 0.039999999999992 0.0 110 -111 0.0190949440002441 0.0200000000000102 0.0200000000000102 0.0 111 -112 0.0159502029418945 0.0200000000000102 0.0200000000000102 0.0 112 -113 0.015855073928833 0.00999999999999091 0.00999999999999091 0.0 113 -114 0.0161051750183105 0.0200000000000102 0.0200000000000102 0.0 114 -115 0.0168948173522949 0.0199999999999818 0.0199999999999818 0.0 115 -116 0.0157649517059326 0.0100000000000193 0.0100000000000193 0.0 116 -117 0.0404441356658936 0.039999999999992 0.039999999999992 0.0 117 -118 0.0158331394195557 0.0199999999999818 0.0199999999999818 0.0 118 -119 0.0158309936523438 0.0100000000000193 0.0100000000000193 0.0 119 -120 0.0155770778656006 0.0199999999999818 0.0199999999999818 0.0 120 -121 0.0154340267181396 0.0100000000000193 0.0100000000000193 0.0 121 -122 0.0155458450317383 0.0199999999999818 0.0199999999999818 0.0 122 -123 0.0156569480895996 0.0200000000000102 0.0200000000000102 0.0 123 -124 0.0447821617126465 0.0499999999999829 0.039999999999992 0.01 124 -125 0.0162930488586426 0.0200000000000102 0.0200000000000102 0.0 125 -126 0.0159821510314941 0.00999999999999091 0.00999999999999091 0.0 126 -127 0.0158350467681885 0.0200000000000102 0.0200000000000102 0.0 127 -128 0.0157771110534668 0.00999999999999091 0.00999999999999091 0.0 128 -129 0.0155949592590332 0.0200000000000102 0.0200000000000102 0.0 129 -130 0.015751838684082 0.0200000000000102 0.0200000000000102 0.0 130 -131 0.0409200191497803 0.039999999999992 0.039999999999992 0.0 131 -132 0.0159509181976318 0.00999999999999091 0.00999999999999091 0.0 132 -133 0.0159890651702881 0.0200000000000102 0.0200000000000102 0.0 133 -134 0.015902042388916 0.00999999999999091 0.00999999999999091 0.0 134 -135 0.0158298015594482 0.0200000000000102 0.0200000000000102 0.0 135 -136 0.0156691074371338 0.0199999999999818 0.0199999999999818 0.0 136 -137 0.0194599628448486 0.0200000000000102 0.0200000000000102 0.0 137 -138 0.0408408641815186 0.039999999999992 0.039999999999992 0.0 138 -139 0.0161910057067871 0.0100000000000193 0.0100000000000193 0.0 139 -140 0.0158939361572266 0.0199999999999818 0.0199999999999818 0.0 140 -141 0.0157690048217773 0.0100000000000193 0.0100000000000193 0.0 141 -142 0.0156970024108887 0.0199999999999818 0.0199999999999818 0.0 142 -143 0.015625 0.0200000000000102 0.0200000000000102 0.0 143 -144 0.0156629085540771 0.00999999999999091 0.00999999999999091 0.0 144 -145 0.0474429130554199 0.0500000000000114 0.0500000000000114 0.0 145 -146 0.0159988403320312 0.0199999999999818 0.0199999999999818 0.0 146 -147 0.0159039497375488 0.0100000000000193 0.0100000000000193 0.0 147 -148 0.0157449245452881 0.0199999999999818 0.0199999999999818 0.0 148 -149 0.0188858509063721 0.0200000000000102 0.0200000000000102 0.0 149 -150 0.0156919956207275 0.00999999999999091 0.00999999999999091 0.0 150 -151 0.0404269695281982 0.0400000000000205 0.0400000000000205 0.0 151 -152 0.0160980224609375 0.0199999999999818 0.0199999999999818 0.0 152 -153 0.0167350769042969 0.0200000000000102 0.0200000000000102 0.0 153 -154 0.0159759521484375 0.00999999999999091 0.00999999999999091 0.0 154 -155 0.0158588886260986 0.0200000000000102 0.0200000000000102 0.0 155 -156 0.01568603515625 0.00999999999999091 0.00999999999999091 0.0 156 -157 0.0156669616699219 0.0200000000000102 0.0200000000000102 0.0 157 -158 0.0405089855194092 0.039999999999992 0.039999999999992 0.0 158 -159 0.0160729885101318 0.0200000000000102 0.0200000000000102 0.0 159 -160 0.0159640312194824 0.00999999999999091 0.00999999999999091 0.0 160 -161 0.0188910961151123 0.0200000000000102 0.0200000000000102 0.0 161 -162 0.0166840553283691 0.0199999999999818 0.0199999999999818 0.0 162 -163 0.0156660079956055 0.0100000000000193 0.0100000000000193 0.0 163 -164 0.0156950950622559 0.0199999999999818 0.0199999999999818 0.0 164 -165 0.0416688919067383 0.0400000000000205 0.0400000000000205 0.0 165 -166 0.0159718990325928 0.0199999999999818 0.0199999999999818 0.0 166 -167 0.0159449577331543 0.0100000000000193 0.0100000000000193 0.0 167 -168 0.0157949924468994 0.0199999999999818 0.0199999999999818 0.0 168 -169 0.0157520771026611 0.00999999999999091 0.00999999999999091 0.0 169 -170 0.0157308578491211 0.0200000000000102 0.0200000000000102 0.0 170 -171 0.0156319141387939 0.0200000000000102 0.0200000000000102 0.0 171 -172 0.0406780242919922 0.039999999999992 0.039999999999992 0.0 172 -173 0.0182578563690186 0.00999999999999091 0.00999999999999091 0.0 173 -174 0.0166499614715576 0.0200000000000102 0.0200000000000102 0.0 174 -175 0.0157749652862549 0.0200000000000102 0.0200000000000102 0.0 175 -176 0.0156049728393555 0.00999999999999091 0.00999999999999091 0.0 176 -177 0.0155508518218994 0.0200000000000102 0.0200000000000102 0.0 177 -178 0.0155460834503174 0.00999999999999091 0.00999999999999091 0.0 178 -179 0.0410678386688232 0.0500000000000114 0.0500000000000114 0.0 179 -180 0.0161750316619873 0.00999999999999091 0.00999999999999091 0.0 180 -181 0.0159769058227539 0.0199999999999818 0.0199999999999818 0.0 181 -182 0.0157239437103271 0.0100000000000193 0.0100000000000193 0.0 182 -183 0.0155858993530273 0.0199999999999818 0.0199999999999818 0.0 183 -184 0.0157029628753662 0.0100000000000193 0.0100000000000193 0.0 184 -185 0.0406639575958252 0.0499999999999829 0.0499999999999829 0.0 185 -186 0.020313024520874 0.0200000000000102 0.0200000000000102 0.0 186 -187 0.0159680843353271 0.00999999999999091 0.00999999999999091 0.0 187 -188 0.0159218311309814 0.0200000000000102 0.0200000000000102 0.0 188 -189 0.0158710479736328 0.00999999999999091 0.00999999999999091 0.0 189 -190 0.0158529281616211 0.0200000000000102 0.0200000000000102 0.0 190 -191 0.0155730247497559 0.0200000000000102 0.0200000000000102 0.0 191 -192 0.0405440330505371 0.039999999999992 0.039999999999992 0.0 192 -193 0.0161638259887695 0.00999999999999091 0.00999999999999091 0.0 193 -194 0.0165688991546631 0.0200000000000102 0.0200000000000102 0.0 194 -195 0.0231571197509766 0.0199999999999818 0.0199999999999818 0.0 195 -196 0.0159261226654053 0.0200000000000102 0.0200000000000102 0.0 196 -197 0.015887975692749 0.00999999999999091 0.00999999999999091 0.0 197 -198 0.0156550407409668 0.0200000000000102 0.0200000000000102 0.0 198 -199 0.0435981750488281 0.039999999999992 0.039999999999992 0.0 199 -200 0.0159139633178711 0.0200000000000102 0.0200000000000102 0.0 200 -201 0.0158441066741943 0.00999999999999091 0.00999999999999091 0.0 201 -202 0.0157480239868164 0.0200000000000102 0.0200000000000102 0.0 202 -203 0.0163719654083252 0.0200000000000102 0.0200000000000102 0.0 203 -204 0.0156970024108887 0.00999999999999091 0.00999999999999091 0.0 204 -205 0.01556396484375 0.0200000000000102 0.0200000000000102 0.0 205 -206 0.0408110618591309 0.039999999999992 0.039999999999992 0.0 206 -207 0.0159599781036377 0.0199999999999818 0.0199999999999818 0.0 207 -208 0.0159690380096436 0.0100000000000193 0.0100000000000193 0.0 208 -209 0.0159268379211426 0.0199999999999818 0.0199999999999818 0.0 209 -210 0.0157289505004883 0.0100000000000193 0.0100000000000193 0.0 210 -211 0.0156691074371338 0.0199999999999818 0.0199999999999818 0.0 211 -212 0.0189340114593506 0.0200000000000102 0.0200000000000102 0.0 212 -213 0.0407509803771973 0.039999999999992 0.039999999999992 0.0 213 -214 0.0168440341949463 0.0200000000000102 0.0200000000000102 0.0 214 -215 0.0158839225769043 0.00999999999999091 0.00999999999999091 0.0 215 -216 0.0157129764556885 0.0200000000000102 0.0200000000000102 0.0 216 -217 0.0155618190765381 0.00999999999999091 0.00999999999999091 0.0 217 -218 0.0155580043792725 0.0200000000000102 0.0200000000000102 0.0 218 -219 0.0405669212341309 0.039999999999992 0.039999999999992 0.0 219 -220 0.0161259174346924 0.0200000000000102 0.0200000000000102 0.0 220 -221 0.0161309242248535 0.00999999999999091 0.00999999999999091 0.0 221 -222 0.0159680843353271 0.0200000000000102 0.0200000000000102 0.0 222 -223 0.0159029960632324 0.00999999999999091 0.00999999999999091 0.0 223 -224 0.0187640190124512 0.0200000000000102 0.0200000000000102 0.0 224 -225 0.0158958435058594 0.0199999999999818 0.0199999999999818 0.0 225 -226 0.0405712127685547 0.0400000000000205 0.0400000000000205 0.0 226 -227 0.0160939693450928 0.0199999999999818 0.0199999999999818 0.0 227 -228 0.0159199237823486 0.0100000000000193 0.0100000000000193 0.0 228 -229 0.0160150527954102 0.0199999999999818 0.0199999999999818 0.0 229 -230 0.0161042213439941 0.0100000000000193 0.0100000000000193 0.0 230 -231 0.0156550407409668 0.0199999999999818 0.0199999999999818 0.0 231 -232 0.0155539512634277 0.00999999999999091 0.00999999999999091 0.0 232 -233 0.0406229496002197 0.0500000000000114 0.0500000000000114 0.0 233 -234 0.0177409648895264 0.00999999999999091 0.00999999999999091 0.0 234 -235 0.0160009860992432 0.0200000000000102 0.0200000000000102 0.0 235 -236 0.0169141292572021 0.00999999999999091 0.00999999999999091 0.0 236 -237 0.0185301303863525 0.0200000000000102 0.0200000000000102 0.0 237 -238 0.0156500339508057 0.0200000000000102 0.0200000000000102 0.0 238 -239 0.0157279968261719 0.00999999999999091 0.00999999999999091 0.0 239 -240 0.041100025177002 0.0500000000000114 0.0500000000000114 0.0 240 -241 0.0159239768981934 0.00999999999999091 0.00999999999999091 0.0 241 -242 0.0158870220184326 0.0200000000000102 0.0200000000000102 0.0 242 -243 0.0157818794250488 0.00999999999999091 0.00999999999999091 0.0 243 -244 0.0156459808349609 0.0199999999999818 0.0199999999999818 0.0 244 -245 0.0205349922180176 0.0200000000000102 0.0200000000000102 0.0 245 -246 0.0176489353179932 0.0200000000000102 0.0200000000000102 0.0 246 -247 0.0406951904296875 0.039999999999992 0.039999999999992 0.0 247 -248 0.0161759853363037 0.00999999999999091 0.00999999999999091 0.0 248 -249 0.0186100006103516 0.0200000000000102 0.0200000000000102 0.0 249 -250 0.0158610343933105 0.0200000000000102 0.0200000000000102 0.0 250 -251 0.0157759189605713 0.00999999999999091 0.00999999999999091 0.0 251 -252 0.0157499313354492 0.0200000000000102 0.0200000000000102 0.0 252 -253 0.0412969589233398 0.039999999999992 0.039999999999992 0.0 253 -254 0.0160319805145264 0.0200000000000102 0.0200000000000102 0.0 254 -255 0.0159080028533936 0.00999999999999091 0.00999999999999091 0.0 255 -256 0.01580810546875 0.0199999999999818 0.0199999999999818 0.0 256 -257 0.0157821178436279 0.0200000000000102 0.0200000000000102 0.0 257 -258 0.015578031539917 0.00999999999999091 0.00999999999999091 0.0 258 -259 0.0155758857727051 0.0200000000000102 0.0200000000000102 0.0 259 -260 0.0406520366668701 0.039999999999992 0.039999999999992 0.0 260 -261 0.0193078517913818 0.0200000000000102 0.0200000000000102 0.0 261 -262 0.0160150527954102 0.00999999999999091 0.00999999999999091 0.0 262 -263 0.015920877456665 0.0200000000000102 0.0200000000000102 0.0 263 -264 0.0161728858947754 0.0200000000000102 0.0200000000000102 0.0 264 -265 0.0163869857788086 0.00999999999999091 0.00999999999999091 0.0 265 -266 0.0156819820404053 0.0200000000000102 0.0200000000000102 0.0 266 -267 0.0407660007476807 0.039999999999992 0.039999999999992 0.0 267 -268 0.015861988067627 0.00999999999999091 0.00999999999999091 0.0 268 -269 0.015887975692749 0.0200000000000102 0.0200000000000102 0.0 269 -270 0.0157639980316162 0.0199999999999818 0.0199999999999818 0.0 270 -271 0.0156021118164062 0.0100000000000193 0.0100000000000193 0.0 271 -272 0.0162060260772705 0.0199999999999818 0.0199999999999818 0.0 272 -273 0.0156650543212891 0.0100000000000193 0.0100000000000193 0.0 273 -274 0.0440959930419922 0.0499999999999829 0.0499999999999829 0.0 274 -275 0.0158300399780273 0.0100000000000193 0.0100000000000193 0.0 275 -276 0.0157949924468994 0.0199999999999818 0.0199999999999818 0.0 276 -277 0.0157911777496338 0.0200000000000102 0.0200000000000102 0.0 277 -278 0.0155570507049561 0.00999999999999091 0.00999999999999091 0.0 278 -279 0.0156610012054443 0.0200000000000102 0.0200000000000102 0.0 279 -280 0.015800952911377 0.00999999999999091 0.00999999999999091 0.0 280 -281 0.041050910949707 0.039999999999992 0.039999999999992 0.0 281 -282 0.0158300399780273 0.0200000000000102 0.0200000000000102 0.0 282 -283 0.0173659324645996 0.0200000000000102 0.0200000000000102 0.0 283 -284 0.0157661437988281 0.00999999999999091 0.00999999999999091 0.0 284 -285 0.0156910419464111 0.0200000000000102 0.0200000000000102 0.0 285 -286 0.0156378746032715 0.00999999999999091 0.00999999999999091 0.0 286 -287 0.0446128845214844 0.0500000000000114 0.0500000000000114 0.0 287 -288 0.0160419940948486 0.00999999999999091 0.00999999999999091 0.0 288 -289 0.0161609649658203 0.0200000000000102 0.0200000000000102 0.0 289 -290 0.0157930850982666 0.00999999999999091 0.00999999999999091 0.0 290 -291 0.0157232284545898 0.0200000000000102 0.0200000000000102 0.0 291 -292 0.0155608654022217 0.0199999999999818 0.0199999999999818 0.0 292 -293 0.0156910419464111 0.0100000000000193 0.0100000000000193 0.0 293 -294 0.0463647842407227 0.0499999999999829 0.0499999999999829 0.0 294 -295 0.0179910659790039 0.0200000000000102 0.0200000000000102 0.0 295 -296 0.0158979892730713 0.00999999999999091 0.00999999999999091 0.0 296 -297 0.0157630443572998 0.0200000000000102 0.0200000000000102 0.0 297 -298 0.0156371593475342 0.00999999999999091 0.00999999999999091 0.0 298 -299 0.0191469192504883 0.0200000000000102 0.0200000000000102 0.0 299 -300 0.0167911052703857 0.0199999999999818 0.0199999999999818 0.0 300 -301 0.0407388210296631 0.0400000000000205 0.0400000000000205 0.0 301 -302 0.0159130096435547 0.0199999999999818 0.0199999999999818 0.0 302 -303 0.0166409015655518 0.0100000000000193 0.0100000000000193 0.0 303 -304 0.0158700942993164 0.0199999999999818 0.0199999999999818 0.0 304 -305 0.0156099796295166 0.0200000000000102 0.0200000000000102 0.0 305 -306 0.0155818462371826 0.00999999999999091 0.00999999999999091 0.0 306 -307 0.0156898498535156 0.0200000000000102 0.0200000000000102 0.0 307 -308 0.0406138896942139 0.039999999999992 0.039999999999992 0.0 308 -309 0.0159690380096436 0.00999999999999091 0.00999999999999091 0.0 309 -310 0.0157949924468994 0.0200000000000102 0.0200000000000102 0.0 310 -311 0.0166599750518799 0.00999999999999091 0.00999999999999091 0.0 311 -312 0.0184519290924072 0.0200000000000102 0.0200000000000102 0.0 312 -313 0.0156970024108887 0.0200000000000102 0.0200000000000102 0.0 313 -314 0.0414550304412842 0.039999999999992 0.039999999999992 0.0 314 -315 0.0159659385681152 0.0200000000000102 0.0200000000000102 0.0 315 -316 0.015855073928833 0.00999999999999091 0.00999999999999091 0.0 316 -317 0.0157890319824219 0.0200000000000102 0.0200000000000102 0.0 317 -318 0.0157499313354492 0.00999999999999091 0.00999999999999091 0.0 318 -319 0.0157718658447266 0.0199999999999818 0.0199999999999818 0.0 319 -320 0.0155758857727051 0.0200000000000102 0.0200000000000102 0.0 320 -321 0.0406579971313477 0.039999999999992 0.039999999999992 0.0 321 -322 0.0160129070281982 0.0100000000000193 0.0100000000000193 0.0 322 -323 0.0166339874267578 0.0199999999999818 0.0199999999999818 0.0 323 -324 0.020615816116333 0.0200000000000102 0.0200000000000102 0.0 324 -325 0.016042947769165 0.0200000000000102 0.0200000000000102 0.0 325 -326 0.0157880783081055 0.00999999999999091 0.00999999999999091 0.0 326 -327 0.0156471729278564 0.0200000000000102 0.0200000000000102 0.0 327 -328 0.0406618118286133 0.039999999999992 0.039999999999992 0.0 328 -329 0.0161919593811035 0.00999999999999091 0.00999999999999091 0.0 329 -330 0.0158429145812988 0.0200000000000102 0.0200000000000102 0.0 330 -331 0.0157439708709717 0.0199999999999818 0.0199999999999818 0.0 331 -332 0.0156080722808838 0.0100000000000193 0.0100000000000193 0.0 332 -333 0.0156378746032715 0.0199999999999818 0.0199999999999818 0.0 333 -334 0.015779972076416 0.0100000000000193 0.0100000000000193 0.0 334 -335 0.0407891273498535 0.039999999999992 0.039999999999992 0.0 335 -336 0.0195779800415039 0.0200000000000102 0.0200000000000102 0.0 336 -337 0.0160758495330811 0.0199999999999818 0.0199999999999818 0.0 337 -338 0.0156791210174561 0.0200000000000102 0.0200000000000102 0.0 338 -339 0.015733003616333 0.00999999999999091 0.00999999999999091 0.0 339 -340 0.0158100128173828 0.0200000000000102 0.0200000000000102 0.0 340 -341 0.0405211448669434 0.039999999999992 0.039999999999992 0.0 341 -342 0.0158991813659668 0.0100000000000193 0.0100000000000193 0.0 342 -343 0.0157461166381836 0.0199999999999818 0.0199999999999818 0.0 343 -344 0.0166110992431641 0.0200000000000102 0.0200000000000102 0.0 344 -345 0.0219199657440186 0.0199999999999818 0.0199999999999818 0.0 345 -346 0.0155389308929443 0.0100000000000193 0.0100000000000193 0.0 346 -347 0.0156941413879395 0.0199999999999818 0.0199999999999818 0.0 347 -348 0.0439140796661377 0.0400000000000205 0.0400000000000205 0.0 348 -349 0.016746997833252 0.0199999999999818 0.0199999999999818 0.0 349 -350 0.0159060955047607 0.0200000000000102 0.0200000000000102 0.0 350 -351 0.0158212184906006 0.00999999999999091 0.00999999999999091 0.0 351 -352 0.0157208442687988 0.0200000000000102 0.0200000000000102 0.0 352 -353 0.0156140327453613 0.00999999999999091 0.00999999999999091 0.0 353 -354 0.0168178081512451 0.0200000000000102 0.0200000000000102 0.0 354 -355 0.0407528877258301 0.039999999999992 0.039999999999992 0.0 355 -356 0.0157878398895264 0.0200000000000102 0.0200000000000102 0.0 356 -357 0.0157828330993652 0.00999999999999091 0.00999999999999091 0.0 357 -358 0.0156841278076172 0.0200000000000102 0.0200000000000102 0.0 358 -359 0.0156099796295166 0.00999999999999091 0.00999999999999091 0.0 359 -360 0.015535831451416 0.0200000000000102 0.0200000000000102 0.0 360 -361 0.0171799659729004 0.0199999999999818 0.0199999999999818 0.0 361 -362 0.044562816619873 0.0400000000000205 0.0400000000000205 0.0 362 -363 0.0159769058227539 0.0199999999999818 0.0199999999999818 0.0 363 -364 0.0167310237884521 0.0100000000000193 0.0100000000000193 0.0 364 -365 0.0156519412994385 0.0199999999999818 0.0199999999999818 0.0 365 -366 0.015625 0.0200000000000102 0.0200000000000102 0.0 366 -367 0.0161309242248535 0.00999999999999091 0.00999999999999091 0.0 367 -368 0.0406661033630371 0.039999999999992 0.039999999999992 0.0 368 -369 0.016185998916626 0.0200000000000102 0.0200000000000102 0.0 369 -370 0.0159850120544434 0.00999999999999091 0.00999999999999091 0.0 370 -371 0.0159509181976318 0.0200000000000102 0.0200000000000102 0.0 371 -372 0.015861988067627 0.0200000000000102 0.0200000000000102 0.0 372 -373 0.0157780647277832 0.00999999999999091 0.00999999999999091 0.0 373 -374 0.019244909286499 0.0200000000000102 0.0200000000000102 0.0 374 -375 0.0423779487609863 0.039999999999992 0.039999999999992 0.0 375 -376 0.0160589218139648 0.0200000000000102 0.0200000000000102 0.0 376 -377 0.0159640312194824 0.0199999999999818 0.0199999999999818 0.0 377 -378 0.0158970355987549 0.0100000000000193 0.0100000000000193 0.0 378 -379 0.0158810615539551 0.0199999999999818 0.0199999999999818 0.0 379 -380 0.0159378051757812 0.0100000000000193 0.0100000000000193 0.0 380 -381 0.0156619548797607 0.0199999999999818 0.0199999999999818 0.0 381 -382 0.0407819747924805 0.039999999999992 0.039999999999992 0.0 382 -383 0.0159389972686768 0.0200000000000102 0.0200000000000102 0.0 383 -384 0.0160889625549316 0.00999999999999091 0.00999999999999091 0.0 384 -385 0.0158150196075439 0.0200000000000102 0.0200000000000102 0.0 385 -386 0.0164110660552979 0.0200000000000102 0.0200000000000102 0.0 386 -387 0.0180950164794922 0.00999999999999091 0.00999999999999091 0.0 387 -388 0.0157089233398438 0.0200000000000102 0.0200000000000102 0.0 388 -389 0.0411288738250732 0.039999999999992 0.039999999999992 0.0 389 -390 0.0159080028533936 0.0200000000000102 0.0200000000000102 0.0 390 -391 0.0158810615539551 0.00999999999999091 0.00999999999999091 0.0 391 -392 0.0157151222229004 0.0200000000000102 0.0200000000000102 0.0 392 -393 0.0156629085540771 0.00999999999999091 0.00999999999999091 0.0 393 -394 0.0157067775726318 0.0199999999999818 0.0199999999999818 0.0 394 -395 0.0479769706726074 0.0500000000000114 0.0500000000000114 0.0 395 -396 0.01609206199646 0.00999999999999091 0.00999999999999091 0.0 396 -397 0.0158951282501221 0.0200000000000102 0.0200000000000102 0.0 397 -398 0.0161418914794922 0.00999999999999091 0.00999999999999091 0.0 398 -399 0.0201709270477295 0.0200000000000102 0.0200000000000102 0.0 399 -400 0.0157439708709717 0.0100000000000193 0.0100000000000193 0.0 400 -401 0.0157320499420166 0.0199999999999818 0.0199999999999818 0.0 401 -402 0.0412960052490234 0.0400000000000205 0.0400000000000205 0.0 402 -403 0.0162639617919922 0.00999999999999091 0.00999999999999091 0.0 403 -404 0.0161092281341553 0.0200000000000102 0.0200000000000102 0.0 404 -405 0.0159099102020264 0.0199999999999818 0.0199999999999818 0.0 405 -406 0.0157670974731445 0.00999999999999091 0.00999999999999091 0.0 406 -407 0.0156850814819336 0.0200000000000102 0.0200000000000102 0.0 407 -408 0.0156769752502441 0.00999999999999091 0.00999999999999091 0.0 408 -409 0.0408320426940918 0.0400000000000205 0.0400000000000205 0.0 409 -410 0.0158789157867432 0.0199999999999818 0.0199999999999818 0.0 410 -411 0.0202319622039795 0.0200000000000102 0.0200000000000102 0.0 411 -412 0.0158510208129883 0.0200000000000102 0.0200000000000102 0.0 412 -413 0.0156679153442383 0.00999999999999091 0.00999999999999091 0.0 413 -414 0.0159661769866943 0.0200000000000102 0.0200000000000102 0.0 414 -415 0.0161230564117432 0.00999999999999091 0.00999999999999091 0.0 415 -416 0.0410380363464355 0.0500000000000114 0.0500000000000114 0.0 416 -417 0.0158960819244385 0.00999999999999091 0.00999999999999091 0.0 417 -418 0.0158650875091553 0.0199999999999818 0.0199999999999818 0.0 418 -419 0.0157840251922607 0.0100000000000193 0.0100000000000193 0.0 419 -420 0.0155539512634277 0.0199999999999818 0.0199999999999818 0.0 420 -421 0.0157678127288818 0.0100000000000193 0.0100000000000193 0.0 421 -422 0.0412240028381348 0.0499999999999829 0.0499999999999829 0.0 422 -423 0.0191640853881836 0.0100000000000193 0.0100000000000193 0.0 423 -424 0.0165059566497803 0.0199999999999818 0.0199999999999818 0.0 424 -425 0.0159070491790771 0.0200000000000102 0.0200000000000102 0.0 425 -426 0.0158569812774658 0.00999999999999091 0.00999999999999091 0.0 426 -427 0.0156240463256836 0.0200000000000102 0.0200000000000102 0.0 427 -428 0.0156888961791992 0.00999999999999091 0.00999999999999091 0.0 428 -429 0.0410318374633789 0.0500000000000114 0.0500000000000114 0.0 429 -430 0.0159420967102051 0.00999999999999091 0.00999999999999091 0.0 430 -431 0.0159289836883545 0.0200000000000102 0.0200000000000102 0.0 431 -432 0.0157718658447266 0.00999999999999091 0.00999999999999091 0.0 432 -433 0.0156440734863281 0.0200000000000102 0.0200000000000102 0.0 433 -434 0.0156459808349609 0.00999999999999091 0.00999999999999091 0.0 434 -435 0.0156629085540771 0.0200000000000102 0.0200000000000102 0.0 435 -436 0.043510913848877 0.039999999999992 0.039999999999992 0.0 436 -437 0.0160140991210938 0.0200000000000102 0.0200000000000102 0.0 437 -438 0.015984058380127 0.0199999999999818 0.0199999999999818 0.0 438 -439 0.0160889625549316 0.0100000000000193 0.0100000000000193 0.0 439 -440 0.0160849094390869 0.0199999999999818 0.0199999999999818 0.0 440 -441 0.015700101852417 0.0100000000000193 0.0100000000000193 0.0 441 -442 0.0157110691070557 0.0199999999999818 0.0199999999999818 0.0 442 -443 0.0212619304656982 0.0199999999999818 0.0199999999999818 0.0 443 -444 0.0226690769195557 0.0200000000000102 0.0200000000000102 0.0 444 -445 0.0157680511474609 0.0200000000000102 0.0200000000000102 0.0 445 -446 0.015690803527832 0.00999999999999091 0.00999999999999091 0.0 446 -447 0.015653133392334 0.0200000000000102 0.0200000000000102 0.0 447 -448 0.0156688690185547 0.0199999999999818 0.0199999999999818 0.0 448 -449 0.0439548492431641 0.0400000000000205 0.0400000000000205 0.0 449 -450 0.0160410404205322 0.0199999999999818 0.0199999999999818 0.0 450 -451 0.0159320831298828 0.0100000000000193 0.0100000000000193 0.0 451 -452 0.0157608985900879 0.0199999999999818 0.0199999999999818 0.0 452 -453 0.0166118144989014 0.0100000000000193 0.0100000000000193 0.0 453 -454 0.0155959129333496 0.0199999999999818 0.0199999999999818 0.0 454 -455 0.0157961845397949 0.0200000000000102 0.0200000000000102 0.0 455 -456 0.0407929420471191 0.039999999999992 0.039999999999992 0.0 456 -457 0.0160069465637207 0.00999999999999091 0.00999999999999091 0.0 457 -458 0.015955924987793 0.0200000000000102 0.0200000000000102 0.0 458 -459 0.015923023223877 0.0200000000000102 0.0200000000000102 0.0 459 -460 0.0157721042633057 0.00999999999999091 0.00999999999999091 0.0 460 -461 0.0170860290527344 0.0200000000000102 0.0200000000000102 0.0 461 -462 0.0182251930236816 0.0199999999999818 0.0199999999999818 0.0 462 -463 0.0413410663604736 0.0400000000000205 0.0400000000000205 0.0 463 -464 0.0165669918060303 0.00999999999999091 0.00999999999999091 0.0 464 -465 0.0159049034118652 0.0200000000000102 0.0200000000000102 0.0 465 -466 0.0158209800720215 0.0199999999999818 0.0199999999999818 0.0 466 -467 0.0156691074371338 0.0100000000000193 0.0100000000000193 0.0 467 -468 0.0155670642852783 0.0199999999999818 0.0199999999999818 0.0 468 -469 0.0407600402832031 0.039999999999992 0.039999999999992 0.0 469 -470 0.0160460472106934 0.0100000000000193 0.0100000000000193 0.0 470 -471 0.0159029960632324 0.0199999999999818 0.0199999999999818 0.0 471 -472 0.0159380435943604 0.0200000000000102 0.0200000000000102 0.0 472 -473 0.0165109634399414 0.00999999999999091 0.00999999999999091 0.0 473 -474 0.0189468860626221 0.0200000000000102 0.0200000000000102 0.0 474 -475 0.0156781673431396 0.0200000000000102 0.0200000000000102 0.0 475 -476 0.0406448841094971 0.039999999999992 0.039999999999992 0.0 476 -477 0.0160341262817383 0.00999999999999091 0.00999999999999091 0.0 477 -478 0.0160388946533203 0.0200000000000102 0.0200000000000102 0.0 478 -479 0.0163199901580811 0.0200000000000102 0.0200000000000102 0.0 479 -480 0.0158259868621826 0.00999999999999091 0.00999999999999091 0.0 480 -481 0.0156810283660889 0.0199999999999818 0.0199999999999818 0.0 481 -482 0.0157148838043213 0.0100000000000193 0.0100000000000193 0.0 482 -483 0.0412290096282959 0.039999999999992 0.039999999999992 0.0 483 -484 0.0160889625549316 0.0200000000000102 0.0200000000000102 0.0 484 -485 0.0160059928894043 0.0199999999999818 0.0199999999999818 0.0 485 -486 0.0181820392608643 0.0200000000000102 0.0200000000000102 0.0 486 -487 0.0166311264038086 0.00999999999999091 0.00999999999999091 0.0 487 -488 0.0156669616699219 0.0200000000000102 0.0200000000000102 0.0 488 -489 0.0157821178436279 0.00999999999999091 0.00999999999999091 0.0 489 -490 0.0410869121551514 0.0400000000000205 0.0400000000000205 0.0 490 -491 0.0159239768981934 0.0199999999999818 0.0199999999999818 0.0 491 -492 0.0158579349517822 0.0200000000000102 0.0200000000000102 0.0 492 -493 0.0157217979431152 0.00999999999999091 0.00999999999999091 0.0 493 -494 0.021359920501709 0.0200000000000102 0.0200000000000102 0.0 494 -495 0.0177481174468994 0.0199999999999818 0.0199999999999818 0.0 495 -496 0.0405080318450928 0.0400000000000205 0.0400000000000205 0.0 496 -497 0.0161361694335938 0.0199999999999818 0.0199999999999818 0.0 497 -498 0.0198690891265869 0.0200000000000102 0.0200000000000102 0.0 498 -499 0.0160260200500488 0.00999999999999091 0.00999999999999091 0.0 499 -500 0.0157639980316162 0.0200000000000102 0.0200000000000102 0.0 500 -501 0.0156447887420654 0.0200000000000102 0.0200000000000102 0.0 501 -502 0.0156769752502441 0.00999999999999091 0.00999999999999091 0.0 502 -503 0.0437228679656982 0.039999999999992 0.039999999999992 0.0 503 -504 0.0161030292510986 0.0200000000000102 0.0200000000000102 0.0 504 -505 0.016016960144043 0.0199999999999818 0.0199999999999818 0.0 505 -506 0.0158760547637939 0.0100000000000193 0.0100000000000193 0.0 506 -507 0.01578688621521 0.0199999999999818 0.0199999999999818 0.0 507 -508 0.0156271457672119 0.0100000000000193 0.0100000000000193 0.0 508 -509 0.0157058238983154 0.0199999999999818 0.0199999999999818 0.0 509 -510 0.0442900657653809 0.0400000000000205 0.0400000000000205 0.0 510 -511 0.017132043838501 0.0199999999999818 0.0199999999999818 0.0 511 -512 0.0159881114959717 0.0200000000000102 0.0200000000000102 0.0 512 -513 0.0160439014434814 0.00999999999999091 0.00999999999999091 0.0 513 -514 0.0164890289306641 0.0200000000000102 0.0200000000000102 0.0 514 -515 0.0156888961791992 0.0200000000000102 0.0200000000000102 0.0 515 -516 0.040363073348999 0.039999999999992 0.039999999999992 0.0 516 -517 0.0161979198455811 0.00999999999999091 0.00999999999999091 0.0 517 -518 0.0159780979156494 0.0200000000000102 0.0200000000000102 0.0 518 -519 0.0159690380096436 0.00999999999999091 0.00999999999999091 0.0 519 -520 0.015887975692749 0.0200000000000102 0.0200000000000102 0.0 520 -521 0.0156509876251221 0.0199999999999818 0.0199999999999818 0.0 521 -522 0.0156340599060059 0.0100000000000193 0.0100000000000193 0.0 522 -523 0.0451259613037109 0.0499999999999829 0.0499999999999829 0.0 523 -524 0.0159039497375488 0.0100000000000193 0.0100000000000193 0.0 524 -525 0.0158360004425049 0.0199999999999818 0.0199999999999818 0.0 525 -526 0.0157630443572998 0.0100000000000193 0.0100000000000193 0.0 526 -527 0.0156168937683105 0.0199999999999818 0.0199999999999818 0.0 527 -528 0.0156149864196777 0.0200000000000102 0.0200000000000102 0.0 528 -529 0.015984058380127 0.00999999999999091 0.00999999999999091 0.0 529 -530 0.040830135345459 0.039999999999992 0.039999999999992 0.0 530 -531 0.0160219669342041 0.0200000000000102 0.0200000000000102 0.0 531 -532 0.015923023223877 0.0200000000000102 0.0200000000000102 0.0 532 -533 0.0159180164337158 0.00999999999999091 0.00999999999999091 0.0 533 -534 0.0157890319824219 0.0200000000000102 0.0200000000000102 0.0 534 -535 0.0156989097595215 0.00999999999999091 0.00999999999999091 0.0 535 -536 0.043813943862915 0.0500000000000114 0.0500000000000114 0.0 536 -537 0.0161550045013428 0.00999999999999091 0.00999999999999091 0.0 537 -538 0.0161418914794922 0.0200000000000102 0.0200000000000102 0.0 538 -539 0.016010046005249 0.00999999999999091 0.00999999999999091 0.0 539 -540 0.015833854675293 0.0100000000000193 0.0100000000000193 0.0 540 -541 0.0156919956207275 0.0199999999999818 0.0199999999999818 0.0 541 -542 0.0156600475311279 0.0100000000000193 0.0100000000000193 0.0 542 -543 0.0471100807189941 0.0499999999999829 0.0499999999999829 0.0 543 -544 0.0160348415374756 0.0200000000000102 0.0200000000000102 0.0 544 -545 0.0160539150238037 0.00999999999999091 0.00999999999999091 0.0 545 -546 0.0158519744873047 0.0200000000000102 0.0200000000000102 0.0 546 -547 0.0158119201660156 0.00999999999999091 0.00999999999999091 0.0 547 -548 0.0178709030151367 0.0200000000000102 0.0200000000000102 0.0 548 -549 0.0169069766998291 0.0199999999999818 0.0199999999999818 0.0 549 -550 0.0407388210296631 0.0400000000000205 0.0400000000000205 0.0 550 -551 0.0159931182861328 0.0199999999999818 0.0199999999999818 0.0 551 -552 0.0167689323425293 0.0100000000000193 0.0100000000000193 0.0 552 -553 0.015841007232666 0.0199999999999818 0.0199999999999818 0.0 553 -554 0.0158300399780273 0.0100000000000193 0.0100000000000193 0.0 554 -555 0.0156581401824951 0.0199999999999818 0.0199999999999818 0.0 555 -556 0.0406780242919922 0.039999999999992 0.039999999999992 0.0 556 -557 0.0162060260772705 0.0200000000000102 0.0200000000000102 0.0 557 -558 0.0160999298095703 0.00999999999999091 0.00999999999999091 0.0 558 -559 0.0159580707550049 0.0200000000000102 0.0200000000000102 0.0 559 -560 0.0159261226654053 0.00999999999999091 0.00999999999999091 0.0 560 -561 0.0199720859527588 0.0200000000000102 0.0200000000000102 0.0 561 -562 0.0157170295715332 0.0200000000000102 0.0200000000000102 0.0 562 -563 0.041780948638916 0.039999999999992 0.039999999999992 0.0 563 -564 0.0160281658172607 0.0200000000000102 0.0200000000000102 0.0 564 -565 0.0160350799560547 0.00999999999999091 0.00999999999999091 0.0 565 -566 0.0158600807189941 0.0200000000000102 0.0200000000000102 0.0 566 -567 0.0157890319824219 0.0199999999999818 0.0199999999999818 0.0 567 -568 0.01568603515625 0.00999999999999091 0.00999999999999091 0.0 568 -569 0.0157349109649658 0.0200000000000102 0.0200000000000102 0.0 569 -570 0.0407240390777588 0.039999999999992 0.039999999999992 0.0 570 -571 0.0159690380096436 0.0100000000000193 0.0100000000000193 0.0 571 -572 0.0166740417480469 0.0199999999999818 0.0199999999999818 0.0 572 -573 0.0183789730072021 0.0200000000000102 0.0200000000000102 0.0 573 -574 0.0158569812774658 0.0200000000000102 0.0200000000000102 0.0 574 -575 0.0156340599060059 0.00999999999999091 0.00999999999999091 0.0 575 -576 0.0408451557159424 0.039999999999992 0.039999999999992 0.0 576 -577 0.0160448551177979 0.0200000000000102 0.0200000000000102 0.0 577 -578 0.0162789821624756 0.00999999999999091 0.00999999999999091 0.0 578 -579 0.0159311294555664 0.0200000000000102 0.0200000000000102 0.0 579 -580 0.0158848762512207 0.0199999999999818 0.0199999999999818 0.0 580 -581 0.0157999992370605 0.0100000000000193 0.0100000000000193 0.0 581 -582 0.0156741142272949 0.0199999999999818 0.0199999999999818 0.0 582 -583 0.0409140586853027 0.0400000000000205 0.0400000000000205 0.0 583 -584 0.0159211158752441 0.0199999999999818 0.0199999999999818 0.0 584 -585 0.0184950828552246 0.0100000000000193 0.0100000000000193 0.0 585 -586 0.0168490409851074 0.0199999999999818 0.0199999999999818 0.0 586 -587 0.0156459808349609 0.0200000000000102 0.0200000000000102 0.0 587 -588 0.0156338214874268 0.00999999999999091 0.00999999999999091 0.0 588 -589 0.0159139633178711 0.0200000000000102 0.0200000000000102 0.0 589 -590 0.0407509803771973 0.039999999999992 0.039999999999992 0.0 590 -591 0.0159850120544434 0.0100000000000193 0.0100000000000193 0.0 591 -592 0.0159389972686768 0.0199999999999818 0.0199999999999818 0.0 592 -593 0.0213720798492432 0.0200000000000102 0.0200000000000102 0.0 593 -594 0.0177850723266602 0.0199999999999818 0.0199999999999818 0.0 594 -595 0.0157310962677002 0.0200000000000102 0.0200000000000102 0.0 595 -596 0.0403420925140381 0.039999999999992 0.039999999999992 0.0 596 -597 0.0190529823303223 0.0200000000000102 0.0200000000000102 0.0 597 -598 0.0169448852539062 0.00999999999999091 0.00999999999999091 0.0 598 -599 0.0159680843353271 0.0200000000000102 0.0200000000000102 0.0 599 -600 0.0158801078796387 0.00999999999999091 0.00999999999999091 0.0 600 -601 0.0156979560852051 0.0200000000000102 0.0200000000000102 0.0 601 -602 0.0156271457672119 0.0200000000000102 0.0200000000000102 0.0 602 -603 0.0415568351745605 0.039999999999992 0.039999999999992 0.0 603 -604 0.0159718990325928 0.00999999999999091 0.00999999999999091 0.0 604 -605 0.0159180164337158 0.0200000000000102 0.0200000000000102 0.0 605 -606 0.0158648490905762 0.0199999999999818 0.0199999999999818 0.0 606 -607 0.0156810283660889 0.0100000000000193 0.0100000000000193 0.0 607 -608 0.0156228542327881 0.0199999999999818 0.0199999999999818 0.0 608 -609 0.0157201290130615 0.0100000000000193 0.0100000000000193 0.0 609 -610 0.0439960956573486 0.0499999999999829 0.0499999999999829 0.0 610 -611 0.0160610675811768 0.0100000000000193 0.0100000000000193 0.0 611 -612 0.0161979198455811 0.0199999999999818 0.0199999999999818 0.0 612 -613 0.0165619850158691 0.0200000000000102 0.0200000000000102 0.0 613 -614 0.0157890319824219 0.00999999999999091 0.00999999999999091 0.0 614 -615 0.0156469345092773 0.0200000000000102 0.0200000000000102 0.0 615 -616 0.0402541160583496 0.039999999999992 0.039999999999992 0.0 616 -617 0.0161638259887695 0.00999999999999091 0.00999999999999091 0.0 617 -618 0.0160119533538818 0.0200000000000102 0.0200000000000102 0.0 618 -619 0.0159289836883545 0.0200000000000102 0.0200000000000102 0.0 619 -620 0.0159239768981934 0.00999999999999091 0.00999999999999091 0.0 620 -621 0.0156819820404053 0.0200000000000102 0.0200000000000102 0.0 621 -622 0.0163209438323975 0.00999999999999091 0.00999999999999091 0.0 622 -623 0.0430841445922852 0.0500000000000114 0.0500000000000114 0.0 623 -624 0.0160331726074219 0.00999999999999091 0.00999999999999091 0.0 624 -625 0.0159151554107666 0.0200000000000102 0.0200000000000102 0.0 625 -626 0.0158572196960449 0.00999999999999091 0.00999999999999091 0.0 626 -627 0.0157380104064941 0.0100000000000193 0.0100000000000193 0.0 627 -628 0.015657901763916 0.0199999999999818 0.0199999999999818 0.0 628 -629 0.016016960144043 0.0100000000000193 0.0100000000000193 0.0 629 -630 0.0407459735870361 0.039999999999992 0.039999999999992 0.0 630 -631 0.0159480571746826 0.0199999999999818 0.0199999999999818 0.0 631 -632 0.0159869194030762 0.0200000000000102 0.0200000000000102 0.0 632 -633 0.0159099102020264 0.00999999999999091 0.00999999999999091 0.0 633 -634 0.0157899856567383 0.0200000000000102 0.0200000000000102 0.0 634 -635 0.0156879425048828 0.00999999999999091 0.00999999999999091 0.0 635 -636 0.0428619384765625 0.0500000000000114 0.0500000000000114 0.0 636 -637 0.0161869525909424 0.00999999999999091 0.00999999999999091 0.0 637 -638 0.0162138938903809 0.0200000000000102 0.0200000000000102 0.0 638 -639 0.0158801078796387 0.00999999999999091 0.00999999999999091 0.0 639 -640 0.0158560276031494 0.0200000000000102 0.0200000000000102 0.0 640 -641 0.0156440734863281 0.00999999999999091 0.00999999999999091 0.0 641 -642 0.0156350135803223 0.0200000000000102 0.0200000000000102 0.0 642 -643 0.047083854675293 0.0499999999999829 0.0499999999999829 0.0 643 -644 0.0159060955047607 0.0100000000000193 0.0100000000000193 0.0 644 -645 0.0158288478851318 0.0199999999999818 0.0199999999999818 0.0 645 -646 0.0157370567321777 0.0200000000000102 0.0200000000000102 0.0 646 -647 0.0155889987945557 0.00999999999999091 0.00999999999999091 0.0 647 -648 0.0187828540802002 0.0200000000000102 0.0200000000000102 0.0 648 -649 0.0158119201660156 0.0200000000000102 0.0200000000000102 0.0 649 -650 0.0408198833465576 0.039999999999992 0.039999999999992 0.0 650 -651 0.0160138607025146 0.00999999999999091 0.00999999999999091 0.0 651 -652 0.0169661045074463 0.0200000000000102 0.0200000000000102 0.0 652 -653 0.0158448219299316 0.0200000000000102 0.0200000000000102 0.0 653 -654 0.0157639980316162 0.00999999999999091 0.00999999999999091 0.0 654 -655 0.0156838893890381 0.0199999999999818 0.0199999999999818 0.0 655 -656 0.0403389930725098 0.0400000000000205 0.0400000000000205 0.0 656 -657 0.0161681175231934 0.00999999999999091 0.00999999999999091 0.0 657 -658 0.015963077545166 0.0200000000000102 0.0200000000000102 0.0 658 -659 0.0159058570861816 0.0199999999999818 0.0199999999999818 0.0 659 -660 0.0177428722381592 0.0100000000000193 0.0100000000000193 0.0 660 -661 0.0171470642089844 0.0199999999999818 0.0199999999999818 0.0 661 -662 0.015761137008667 0.0200000000000102 0.0200000000000102 0.0 662 -663 0.0421710014343262 0.039999999999992 0.039999999999992 0.0 663 -664 0.0159869194030762 0.0100000000000193 0.0100000000000193 0.0 664 -665 0.0158960819244385 0.0199999999999818 0.0199999999999818 0.0 665 -666 0.0158309936523438 0.0200000000000102 0.0200000000000102 0.0 666 -667 0.0156588554382324 0.00999999999999091 0.00999999999999091 0.0 667 -668 0.0155930519104004 0.0200000000000102 0.0200000000000102 0.0 668 -669 0.0157339572906494 0.00999999999999091 0.00999999999999091 0.0 669 -670 0.0408949851989746 0.039999999999992 0.039999999999992 0.0 670 -671 0.0166690349578857 0.0200000000000102 0.0200000000000102 0.0 671 -672 0.015967845916748 0.0200000000000102 0.0200000000000102 0.0 672 -673 0.0183408260345459 0.0199999999999818 0.0199999999999818 0.0 673 -674 0.0157818794250488 0.0100000000000193 0.0100000000000193 0.0 674 -675 0.0156641006469727 0.0199999999999818 0.0199999999999818 0.0 675 -676 0.0403289794921875 0.0400000000000205 0.0400000000000205 0.0 676 -677 0.0160641670227051 0.00999999999999091 0.00999999999999091 0.0 677 -678 0.0162630081176758 0.0200000000000102 0.0200000000000102 0.0 678 -679 0.0158939361572266 0.0199999999999818 0.0199999999999818 0.0 679 -680 0.0158121585845947 0.00999999999999091 0.00999999999999091 0.0 680 -681 0.0155899524688721 0.0200000000000102 0.0200000000000102 0.0 681 -682 0.0156369209289551 0.00999999999999091 0.00999999999999091 0.0 682 -683 0.0411529541015625 0.0400000000000205 0.0400000000000205 0.0 683 -684 0.0160119533538818 0.0199999999999818 0.0199999999999818 0.0 684 -685 0.0188088417053223 0.0200000000000102 0.0200000000000102 0.0 685 -686 0.0159080028533936 0.0200000000000102 0.0200000000000102 0.0 686 -687 0.0157148838043213 0.00999999999999091 0.00999999999999091 0.0 687 -688 0.0155959129333496 0.0200000000000102 0.0200000000000102 0.0 688 -689 0.0412189960479736 0.039999999999992 0.039999999999992 0.0 689 -690 0.015995979309082 0.00999999999999091 0.00999999999999091 0.0 690 -691 0.0159540176391602 0.0200000000000102 0.0200000000000102 0.0 691 -692 0.015949010848999 0.0199999999999818 0.0199999999999818 0.0 692 -693 0.0234458446502686 0.0200000000000102 0.0200000000000102 0.0 693 -694 0.0157320499420166 0.0200000000000102 0.0200000000000102 0.0 694 -695 0.0157339572906494 0.00999999999999091 0.00999999999999091 0.0 695 -696 0.0404260158538818 0.039999999999992 0.039999999999992 0.0 696 -697 0.0190789699554443 0.0200000000000102 0.0200000000000102 0.0 697 -698 0.0159289836883545 0.0200000000000102 0.0200000000000102 0.0 698 -699 0.0157830715179443 0.00999999999999091 0.00999999999999091 0.0 699 -700 0.0156319141387939 0.0200000000000102 0.0200000000000102 0.0 700 -701 0.01556396484375 0.00999999999999091 0.00999999999999091 0.0 701 -702 0.0156660079956055 0.0200000000000102 0.0200000000000102 0.0 702 -703 0.0413651466369629 0.039999999999992 0.039999999999992 0.0 703 -704 0.0159580707550049 0.0199999999999818 0.0199999999999818 0.0 704 -705 0.0158989429473877 0.0100000000000193 0.0100000000000193 0.0 705 -706 0.0158150196075439 0.0199999999999818 0.0199999999999818 0.0 706 -707 0.0156781673431396 0.0100000000000193 0.0100000000000193 0.0 707 -708 0.0156269073486328 0.0199999999999818 0.0199999999999818 0.0 708 -709 0.041424036026001 0.0400000000000205 0.0400000000000205 0.0 709 -710 0.0184199810028076 0.0199999999999818 0.0199999999999818 0.0 710 -711 0.0159978866577148 0.0200000000000102 0.0200000000000102 0.0 711 -712 0.0160419940948486 0.00999999999999091 0.00999999999999091 0.0 712 -713 0.016589879989624 0.0200000000000102 0.0200000000000102 0.0 713 -714 0.0156559944152832 0.0200000000000102 0.0200000000000102 0.0 714 -715 0.0157039165496826 0.00999999999999091 0.00999999999999091 0.0 715 -716 0.0408508777618408 0.039999999999992 0.039999999999992 0.0 716 -717 0.0159609317779541 0.0200000000000102 0.0200000000000102 0.0 717 -718 0.0159869194030762 0.00999999999999091 0.00999999999999091 0.0 718 -719 0.0159101486206055 0.0200000000000102 0.0200000000000102 0.0 719 -720 0.0156970024108887 0.0199999999999818 0.0199999999999818 0.0 720 -721 0.0155429840087891 0.0100000000000193 0.0100000000000193 0.0 721 -722 0.0163400173187256 0.0199999999999818 0.0199999999999818 0.0 722 -723 0.0429699420928955 0.0400000000000205 0.0400000000000205 0.0 723 -724 0.0160400867462158 0.0199999999999818 0.0199999999999818 0.0 724 -725 0.0159778594970703 0.0100000000000193 0.0100000000000193 0.0 725 -726 0.015826940536499 0.0199999999999818 0.0199999999999818 0.0 726 -727 0.0156888961791992 0.0100000000000193 0.0100000000000193 0.0 727 -728 0.0159649848937988 0.0199999999999818 0.0199999999999818 0.0 728 -729 0.0405631065368652 0.039999999999992 0.039999999999992 0.0 729 -730 0.0161111354827881 0.0200000000000102 0.0200000000000102 0.0 730 -731 0.0158760547637939 0.00999999999999091 0.00999999999999091 0.0 731 -732 0.0159549713134766 0.0200000000000102 0.0200000000000102 0.0 732 -733 0.0157599449157715 0.00999999999999091 0.00999999999999091 0.0 733 -734 0.0157549381256104 0.0200000000000102 0.0200000000000102 0.0 734 -735 0.0156841278076172 0.0200000000000102 0.0200000000000102 0.0 735 -736 0.0429198741912842 0.039999999999992 0.039999999999992 0.0 736 -737 0.0159552097320557 0.0200000000000102 0.0200000000000102 0.0 737 -738 0.016150951385498 0.00999999999999091 0.00999999999999091 0.0 738 -739 0.0157721042633057 0.0200000000000102 0.0200000000000102 0.0 739 -740 0.0156459808349609 0.00999999999999091 0.00999999999999091 0.0 740 -741 0.0156309604644775 0.0200000000000102 0.0200000000000102 0.0 741 -742 0.0458109378814697 0.039999999999992 0.039999999999992 0.0 742 -743 0.0170071125030518 0.0199999999999818 0.0199999999999818 0.0 743 -744 0.0160090923309326 0.0200000000000102 0.0200000000000102 0.0 744 -745 0.0158901214599609 0.00999999999999091 0.00999999999999091 0.0 745 -746 0.0158569812774658 0.0200000000000102 0.0200000000000102 0.0 746 -747 0.0156040191650391 0.0200000000000102 0.0200000000000102 0.0 747 -748 0.0188460350036621 0.00999999999999091 0.00999999999999091 0.0 748 -749 0.0407531261444092 0.0500000000000114 0.0500000000000114 0.0 749 -750 0.0160620212554932 0.00999999999999091 0.00999999999999091 0.0 750 -751 0.0160109996795654 0.0200000000000102 0.0200000000000102 0.0 751 -752 0.0167930126190186 0.00999999999999091 0.00999999999999091 0.0 752 -753 0.0158519744873047 0.0200000000000102 0.0200000000000102 0.0 753 -754 0.0157589912414551 0.0199999999999818 0.0199999999999818 0.0 754 -755 0.0156669616699219 0.00999999999999091 0.00999999999999091 0.0 755 -756 0.0408079624176025 0.0400000000000205 0.0400000000000205 0.0 756 -757 0.0160200595855713 0.0199999999999818 0.0199999999999818 0.0 757 -758 0.015981912612915 0.0100000000000193 0.0100000000000193 0.0 758 -759 0.0158510208129883 0.0199999999999818 0.0199999999999818 0.0 759 -760 0.0184319019317627 0.0200000000000102 0.0200000000000102 0.0 760 -761 0.0160219669342041 0.0200000000000102 0.0200000000000102 0.0 761 -762 0.0413029193878174 0.039999999999992 0.039999999999992 0.0 762 -763 0.0162460803985596 0.00999999999999091 0.00999999999999091 0.0 763 -764 0.0159189701080322 0.0200000000000102 0.0200000000000102 0.0 764 -765 0.0158321857452393 0.00999999999999091 0.00999999999999091 0.0 765 -766 0.0157649517059326 0.0200000000000102 0.0200000000000102 0.0 766 -767 0.0156459808349609 0.0199999999999818 0.0199999999999818 0.0 767 -768 0.0156371593475342 0.0100000000000193 0.0100000000000193 0.0 768 -769 0.042356014251709 0.039999999999992 0.039999999999992 0.0 769 -770 0.0159518718719482 0.0200000000000102 0.0200000000000102 0.0 770 -771 0.0165510177612305 0.0199999999999818 0.0199999999999818 0.0 771 -772 0.0166161060333252 0.0100000000000193 0.0100000000000193 0.0 772 -773 0.0192360877990723 0.0199999999999818 0.0199999999999818 0.0 773 -774 0.0156729221343994 0.0200000000000102 0.0200000000000102 0.0 774 -775 0.0404140949249268 0.039999999999992 0.039999999999992 0.0 775 -776 0.0159680843353271 0.0100000000000193 0.0100000000000193 0.0 776 -777 0.0160880088806152 0.0199999999999818 0.0199999999999818 0.0 777 -778 0.0158729553222656 0.0200000000000102 0.0200000000000102 0.0 778 -779 0.0157761573791504 0.00999999999999091 0.00999999999999091 0.0 779 -780 0.0156121253967285 0.0200000000000102 0.0200000000000102 0.0 780 -781 0.0156919956207275 0.00999999999999091 0.00999999999999091 0.0 781 -782 0.0405950546264648 0.039999999999992 0.039999999999992 0.0 782 -783 0.0157918930053711 0.0200000000000102 0.0200000000000102 0.0 783 -784 0.0157120227813721 0.0200000000000102 0.0200000000000102 0.0 784 -785 0.018751859664917 0.00999999999999091 0.00999999999999091 0.0 785 -786 0.0155041217803955 0.0200000000000102 0.0200000000000102 0.0 786 -787 0.0158028602600098 0.0199999999999818 0.0199999999999818 0.0 787 -788 0.0158569812774658 0.0100000000000193 0.0100000000000193 0.0 788 -789 0.0412540435791016 0.039999999999992 0.039999999999992 0.0 789 -790 0.0160260200500488 0.0200000000000102 0.0200000000000102 0.0 790 -791 0.0159499645233154 0.0199999999999818 0.0199999999999818 0.0 791 -792 0.019320011138916 0.00999999999999091 0.00999999999999091 0.0 792 -793 0.0201430320739746 0.0200000000000102 0.0200000000000102 0.0 793 -794 0.0157289505004883 0.0200000000000102 0.0200000000000102 0.0 794 -795 0.0402889251708984 0.039999999999992 0.039999999999992 0.0 795 -796 0.0161571502685547 0.0200000000000102 0.0200000000000102 0.0 796 -797 0.0203540325164795 0.0199999999999818 0.0199999999999818 0.0 797 -798 0.0160300731658936 0.0100000000000193 0.0100000000000193 0.0 798 -799 0.0157592296600342 0.0199999999999818 0.0199999999999818 0.0 799 -800 0.0156340599060059 0.0200000000000102 0.0200000000000102 0.0 800 -801 0.0156660079956055 0.00999999999999091 0.00999999999999091 0.0 801 -802 0.0413990020751953 0.0400000000000205 0.0400000000000205 0.0 802 -803 0.0160489082336426 0.0199999999999818 0.0199999999999818 0.0 803 -804 0.0158998966217041 0.00999999999999091 0.00999999999999091 0.0 804 -805 0.0157411098480225 0.0200000000000102 0.0200000000000102 0.0 805 -806 0.01564621925354 0.0200000000000102 0.0200000000000102 0.0 806 -807 0.0156128406524658 0.00999999999999091 0.00999999999999091 0.0 807 -808 0.0405199527740479 0.039999999999992 0.039999999999992 0.0 808 -809 0.0189261436462402 0.0200000000000102 0.0200000000000102 0.0 809 -810 0.0164599418640137 0.0200000000000102 0.0200000000000102 0.0 810 -811 0.0159981250762939 0.00999999999999091 0.00999999999999091 0.0 811 -812 0.0159931182861328 0.0200000000000102 0.0200000000000102 0.0 812 -813 0.0164968967437744 0.0199999999999818 0.0199999999999818 0.0 813 -814 0.0156979560852051 0.0100000000000193 0.0100000000000193 0.0 814 -815 0.0407021045684814 0.039999999999992 0.039999999999992 0.0 815 -816 0.0162220001220703 0.0199999999999818 0.0199999999999818 0.0 816 -817 0.0161950588226318 0.0200000000000102 0.0200000000000102 0.0 817 -818 0.016150951385498 0.00999999999999091 0.00999999999999091 0.0 818 -819 0.0162560939788818 0.0200000000000102 0.0200000000000102 0.0 819 -820 0.0156610012054443 0.00999999999999091 0.00999999999999091 0.0 820 -821 0.0164270401000977 0.0200000000000102 0.0200000000000102 0.0 821 -822 0.0451018810272217 0.0500000000000114 0.0500000000000114 0.0 822 -823 0.0159950256347656 0.00999999999999091 0.00999999999999091 0.0 823 -824 0.015963077545166 0.0200000000000102 0.0200000000000102 0.0 824 -825 0.0158100128173828 0.00999999999999091 0.00999999999999091 0.0 825 -826 0.0157589912414551 0.0200000000000102 0.0200000000000102 0.0 826 -827 0.0156979560852051 0.00999999999999091 0.00999999999999091 0.0 827 -828 0.0408341884613037 0.0499999999999829 0.0499999999999829 0.0 828 -829 0.0160629749298096 0.0100000000000193 0.0100000000000193 0.0 829 -830 0.015963077545166 0.0199999999999818 0.0199999999999818 0.0 830 -831 0.0164670944213867 0.0100000000000193 0.0100000000000193 0.0 831 -832 0.0157999992370605 0.0199999999999818 0.0199999999999818 0.0 832 -833 0.0158040523529053 0.0200000000000102 0.0200000000000102 0.0 833 -834 0.0157339572906494 0.00999999999999091 0.00999999999999091 0.0 834 -835 0.0431559085845947 0.0400000000000205 0.0400000000000205 0.0 835 -836 0.0160439014434814 0.00999999999999091 0.00999999999999091 0.0 836 -837 0.0160748958587646 0.0200000000000102 0.0200000000000102 0.0 837 -838 0.015887975692749 0.00999999999999091 0.00999999999999091 0.0 838 -839 0.0156698226928711 0.0200000000000102 0.0200000000000102 0.0 839 -840 0.01568603515625 0.00999999999999091 0.00999999999999091 0.0 840 -841 0.044741153717041 0.0500000000000114 0.0500000000000114 0.0 841 -842 0.018258810043335 0.0199999999999818 0.0199999999999818 0.0 842 -843 0.0159640312194824 0.0100000000000193 0.0100000000000193 0.0 843 -844 0.0158689022064209 0.0199999999999818 0.0199999999999818 0.0 844 -845 0.0158030986785889 0.0200000000000102 0.0200000000000102 0.0 845 -846 0.0156970024108887 0.00999999999999091 0.00999999999999091 0.0 846 -847 0.0167360305786133 0.0200000000000102 0.0200000000000102 0.0 847 -848 0.0449869632720947 0.039999999999992 0.039999999999992 0.0 848 -849 0.0159621238708496 0.0200000000000102 0.0200000000000102 0.0 849 -850 0.0158789157867432 0.0200000000000102 0.0200000000000102 0.0 850 -851 0.0166089534759521 0.00999999999999091 0.00999999999999091 0.0 851 -852 0.0156459808349609 0.0200000000000102 0.0200000000000102 0.0 852 -853 0.0158588886260986 0.00999999999999091 0.00999999999999091 0.0 853 -854 0.0406129360198975 0.039999999999992 0.039999999999992 0.0 854 -855 0.0159440040588379 0.0200000000000102 0.0200000000000102 0.0 855 -856 0.0158100128173828 0.0199999999999818 0.0199999999999818 0.0 856 -857 0.0157890319824219 0.0100000000000193 0.0100000000000193 0.0 857 -858 0.015923023223877 0.0199999999999818 0.0199999999999818 0.0 858 -859 0.0155861377716064 0.0100000000000193 0.0100000000000193 0.0 859 -860 0.0188548564910889 0.0199999999999818 0.0199999999999818 0.0 860 -861 0.0412931442260742 0.0400000000000205 0.0400000000000205 0.0 861 -862 0.0165369510650635 0.0199999999999818 0.0199999999999818 0.0 862 -863 0.0160419940948486 0.0200000000000102 0.0200000000000102 0.0 863 -864 0.0164439678192139 0.00999999999999091 0.00999999999999091 0.0 864 -865 0.0157101154327393 0.0200000000000102 0.0200000000000102 0.0 865 -866 0.0156807899475098 0.00999999999999091 0.00999999999999091 0.0 866 -867 0.0156638622283936 0.0200000000000102 0.0200000000000102 0.0 867 -868 0.040902853012085 0.039999999999992 0.039999999999992 0.0 868 -869 0.0159800052642822 0.0200000000000102 0.0200000000000102 0.0 869 -870 0.0166110992431641 0.00999999999999091 0.00999999999999091 0.0 870 -871 0.017413854598999 0.0200000000000102 0.0200000000000102 0.0 871 -872 0.0192930698394775 0.0199999999999818 0.0199999999999818 0.0 872 -873 0.0160510540008545 0.0100000000000193 0.0100000000000193 0.0 873 -874 0.0406858921051025 0.0499999999999829 0.0499999999999829 0.0 874 -875 0.0160770416259766 0.0100000000000193 0.0100000000000193 0.0 875 -876 0.0161919593811035 0.0199999999999818 0.0199999999999818 0.0 876 -877 0.015955924987793 0.0100000000000193 0.0100000000000193 0.0 877 -878 0.0158419609069824 0.0199999999999818 0.0199999999999818 0.0 878 -879 0.0157468318939209 0.0200000000000102 0.0200000000000102 0.0 879 -880 0.0157167911529541 0.00999999999999091 0.00999999999999091 0.0 880 -881 0.040755033493042 0.039999999999992 0.039999999999992 0.0 881 -882 0.0160150527954102 0.0200000000000102 0.0200000000000102 0.0 882 -883 0.0159170627593994 0.00999999999999091 0.00999999999999091 0.0 883 -884 0.0180459022521973 0.0200000000000102 0.0200000000000102 0.0 884 -885 0.01603102684021 0.0200000000000102 0.0200000000000102 0.0 885 -886 0.0156559944152832 0.00999999999999091 0.00999999999999091 0.0 886 -887 0.040722131729126 0.039999999999992 0.039999999999992 0.0 887 -888 0.0161468982696533 0.0200000000000102 0.0200000000000102 0.0 888 -889 0.0159561634063721 0.0200000000000102 0.0200000000000102 0.0 889 -890 0.0158951282501221 0.00999999999999091 0.00999999999999091 0.0 890 -891 0.0195560455322266 0.0199999999999818 0.0199999999999818 0.0 891 -892 0.0194118022918701 0.0200000000000102 0.0200000000000102 0.0 892 -893 0.0158801078796387 0.0200000000000102 0.0200000000000102 0.0 893 -894 0.0406708717346191 0.039999999999992 0.039999999999992 0.0 894 -895 0.0159239768981934 0.00999999999999091 0.00999999999999091 0.0 895 -896 0.0185558795928955 0.0200000000000102 0.0200000000000102 0.0 896 -897 0.0165250301361084 0.0200000000000102 0.0200000000000102 0.0 897 -898 0.0156872272491455 0.00999999999999091 0.00999999999999091 0.0 898 -899 0.0156629085540771 0.0200000000000102 0.0200000000000102 0.0 899 -900 0.0411269664764404 0.039999999999992 0.039999999999992 0.0 900 -901 0.0161049365997314 0.0200000000000102 0.0200000000000102 0.0 901 -902 0.0159130096435547 0.00999999999999091 0.00999999999999091 0.0 902 -903 0.0158100128173828 0.0199999999999818 0.0199999999999818 0.0 903 -904 0.0157549381256104 0.0200000000000102 0.0200000000000102 0.0 904 -905 0.0155808925628662 0.00999999999999091 0.00999999999999091 0.0 905 -906 0.0157089233398438 0.0200000000000102 0.0200000000000102 0.0 906 -907 0.040733814239502 0.039999999999992 0.039999999999992 0.0 907 -908 0.0157508850097656 0.0100000000000193 0.0100000000000193 0.0 908 -909 0.0190198421478271 0.0199999999999818 0.0199999999999818 0.0 909 -910 0.0157220363616943 0.0200000000000102 0.0200000000000102 0.0 910 -911 0.0156431198120117 0.00999999999999091 0.00999999999999091 0.0 911 -912 0.0163240432739258 0.0200000000000102 0.0200000000000102 0.0 912 -913 0.0405840873718262 0.039999999999992 0.039999999999992 0.0 913 -914 0.0158839225769043 0.0200000000000102 0.0200000000000102 0.0 914 -915 0.0158710479736328 0.00999999999999091 0.00999999999999091 0.0 915 -916 0.0157589912414551 0.0200000000000102 0.0200000000000102 0.0 916 -917 0.0157959461212158 0.00999999999999091 0.00999999999999091 0.0 917 -918 0.0156550407409668 0.0200000000000102 0.0200000000000102 0.0 918 -919 0.0157132148742676 0.0199999999999818 0.0199999999999818 0.0 919 -920 0.0412201881408691 0.0400000000000205 0.0400000000000205 0.0 920 -921 0.0189180374145508 0.0199999999999818 0.0199999999999818 0.0 921 -922 0.0160009860992432 0.0100000000000193 0.0100000000000193 0.0 922 -923 0.0156481266021729 0.0199999999999818 0.0199999999999818 0.0 923 -924 0.0155301094055176 0.0100000000000193 0.0100000000000193 0.0 924 -925 0.015531063079834 0.0199999999999818 0.0199999999999818 0.0 925 -926 0.0156428813934326 0.0200000000000102 0.0200000000000102 0.0 926 -927 0.0410211086273193 0.039999999999992 0.039999999999992 0.0 927 -928 0.0159690380096436 0.00999999999999091 0.00999999999999091 0.0 928 -929 0.0158920288085938 0.0200000000000102 0.0200000000000102 0.0 929 -930 0.0157539844512939 0.00999999999999091 0.00999999999999091 0.0 930 -931 0.0157601833343506 0.0200000000000102 0.0200000000000102 0.0 931 -932 0.0157170295715332 0.0200000000000102 0.0200000000000102 0.0 932 -933 0.041064977645874 0.039999999999992 0.039999999999992 0.0 933 -934 0.0186421871185303 0.0200000000000102 0.0200000000000102 0.0 934 -935 0.0160388946533203 0.00999999999999091 0.00999999999999091 0.0 935 -936 0.0158660411834717 0.0200000000000102 0.0200000000000102 0.0 936 -937 0.0163609981536865 0.00999999999999091 0.00999999999999091 0.0 937 -938 0.0156807899475098 0.0200000000000102 0.0200000000000102 0.0 938 -939 0.0157260894775391 0.0199999999999818 0.0199999999999818 0.0 939 -940 0.0416240692138672 0.039999999999992 0.039999999999992 0.0 940 -941 0.0218920707702637 0.0200000000000102 0.0200000000000102 0.0 941 -942 0.015984058380127 0.0200000000000102 0.0200000000000102 0.0 942 -943 0.0157361030578613 0.00999999999999091 0.00999999999999091 0.0 943 -944 0.015678882598877 0.0200000000000102 0.0200000000000102 0.0 944 -945 0.0157279968261719 0.00999999999999091 0.00999999999999091 0.0 945 -946 0.0436809062957764 0.0500000000000114 0.0500000000000114 0.0 946 -947 0.016185998916626 0.00999999999999091 0.00999999999999091 0.0 947 -948 0.0159549713134766 0.0200000000000102 0.0200000000000102 0.0 948 -949 0.015841007232666 0.00999999999999091 0.00999999999999091 0.0 949 -950 0.0157299041748047 0.0200000000000102 0.0200000000000102 0.0 950 -951 0.0167520046234131 0.0199999999999818 0.0199999999999818 0.0 951 -952 0.0157999992370605 0.0100000000000193 0.0100000000000193 0.0 952 -953 0.0407941341400146 0.039999999999992 0.039999999999992 0.0 953 -954 0.0159251689910889 0.0199999999999818 0.0199999999999818 0.0 954 -955 0.0158488750457764 0.0100000000000193 0.0100000000000193 0.0 955 -956 0.0157351493835449 0.0199999999999818 0.0199999999999818 0.0 956 -957 0.0157461166381836 0.0100000000000193 0.0100000000000193 0.0 957 -958 0.0157830715179443 0.00999999999999091 0.00999999999999091 0.0 958 -959 0.0440328121185303 0.0400000000000205 0.0400000000000205 0.0 959 -960 0.0163891315460205 0.0199999999999818 0.0199999999999818 0.0 960 -961 0.0172231197357178 0.0200000000000102 0.0200000000000102 0.0 961 -962 0.0159628391265869 0.00999999999999091 0.00999999999999091 0.0 962 -963 0.0158162117004395 0.0200000000000102 0.0200000000000102 0.0 963 -964 0.0156660079956055 0.0200000000000102 0.0200000000000102 0.0 964 -965 0.0156989097595215 0.00999999999999091 0.00999999999999091 0.0 965 -966 0.0409789085388184 0.039999999999992 0.039999999999992 0.0 966 -967 0.0159859657287598 0.0200000000000102 0.0200000000000102 0.0 967 -968 0.0158331394195557 0.00999999999999091 0.00999999999999091 0.0 968 -969 0.0157871246337891 0.0200000000000102 0.0200000000000102 0.0 969 -970 0.0163278579711914 0.0199999999999818 0.0199999999999818 0.0 970 -971 0.0156929492950439 0.0100000000000193 0.0100000000000193 0.0 971 -972 0.0429351329803467 0.039999999999992 0.039999999999992 0.0 972 -973 0.0161349773406982 0.0100000000000193 0.0100000000000193 0.0 973 -974 0.0159289836883545 0.0199999999999818 0.0199999999999818 0.0 974 -975 0.0159060955047607 0.0100000000000193 0.0100000000000193 0.0 975 -976 0.0160870552062988 0.0199999999999818 0.0199999999999818 0.0 976 -977 0.0157091617584229 0.0100000000000193 0.0100000000000193 0.0 977 -978 0.0156669616699219 0.00999999999999091 0.00999999999999091 0.0 978 -979 0.0407209396362305 0.039999999999992 0.039999999999992 0.0 979 -980 0.0159940719604492 0.0200000000000102 0.0200000000000102 0.0 980 -981 0.0158989429473877 0.00999999999999091 0.00999999999999091 0.0 981 -982 0.0158960819244385 0.0200000000000102 0.0200000000000102 0.0 982 -983 0.0157449245452881 0.0200000000000102 0.0200000000000102 0.0 983 -984 0.0183939933776855 0.00999999999999091 0.00999999999999091 0.0 984 -985 0.0408549308776855 0.039999999999992 0.039999999999992 0.0 985 -986 0.016895055770874 0.0200000000000102 0.0200000000000102 0.0 986 -987 0.0159039497375488 0.0200000000000102 0.0200000000000102 0.0 987 -988 0.0158200263977051 0.00999999999999091 0.00999999999999091 0.0 988 -989 0.0157120227813721 0.0200000000000102 0.0200000000000102 0.0 989 -990 0.0156378746032715 0.00999999999999091 0.00999999999999091 0.0 990 -991 0.0228080749511719 0.0300000000000011 0.0300000000000011 0.0 991 -992 0.0409870147705078 0.039999999999992 0.039999999999992 0.0 992 -993 0.0157871246337891 0.00999999999999091 0.00999999999999091 0.0 993 -994 0.0158090591430664 0.0200000000000102 0.0200000000000102 0.0 994 -995 0.0157351493835449 0.0200000000000102 0.0200000000000102 0.0 995 -996 0.0185980796813965 0.00999999999999091 0.00999999999999091 0.0 996 -997 0.0160398483276367 0.0100000000000193 0.0100000000000193 0.0 997 -998 0.0404281616210938 0.039999999999992 0.039999999999992 0.0 998 -999 0.0159862041473389 0.0200000000000102 0.0200000000000102 0.0 999 -1000 0.0166270732879639 0.00999999999999091 0.00999999999999091 0.0 1000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat deleted file mode 100644 index 465df20..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat +++ /dev/null @@ -1,1000 +0,0 @@ -#lag autocorrelation -1 1.0 -2 -0.157087197207005 -3 -0.179374358706398 -4 -0.172816500237501 -5 -0.172100634304929 -6 -0.18168246758723 -7 0.131584075287582 -8 0.679752237368679 -9 -0.163860297278845 -10 -0.170882707294366 -11 -0.166375603226363 -12 -0.174254444639597 -13 -0.173888868337232 -14 0.433940412821542 -15 0.373069309028039 -16 -0.171649802572127 -17 -0.169200630892492 -18 -0.166138159457362 -19 -0.1739364332791 -20 -0.127425006116119 -21 0.638263694934923 -22 0.12818251876092 -23 -0.175688598458062 -24 -0.170582005696374 -25 -0.165295475640757 -26 -0.177492415685482 -27 0.0465831397893705 -28 0.599451138773896 -29 -0.00135765066794861 -30 -0.177033357980592 -31 -0.16635596602023 -32 -0.166602977483835 -33 -0.178673562542768 -34 0.266392442433904 -35 0.432387768599705 -36 -0.0637700252002599 -37 -0.158118264958072 -38 -0.154561138423435 -39 -0.168429948675986 -40 -0.0994325786160257 -41 0.367997918823535 -42 0.290384046265292 -43 -0.11116281208171 -44 -0.175373024280893 -45 -0.160272110090895 -46 -0.164805593524448 -47 0.0550278238782237 -48 0.351023276202299 -49 0.189193346917991 -50 -0.138321616409331 -51 -0.174504050225761 -52 -0.161113173550488 -53 -0.152964238493074 -54 0.191038921821061 -55 0.288997249517505 -56 0.112554121399719 -57 -0.149706886466374 -58 -0.170685450581499 -59 -0.160759706621769 -60 -0.0696049681599959 -61 0.233811635314305 -62 0.22571473291272 -63 0.0469231721057327 -64 -0.157850957680934 -65 -0.16305911351091 -66 -0.156231122634058 -67 0.0491468744009525 -68 0.211267819802324 -69 0.187107177066929 -70 -0.0139870239184726 -71 -0.170483645145253 -72 -0.155686290284564 -73 -0.103000811390189 -74 0.138570030181668 -75 0.173843340323656 -76 0.143423232074103 -77 -0.0485241530965123 -78 -0.17395256767516 -79 -0.152395667614926 -80 -0.0364997518056447 -81 0.131378028895852 -82 0.157204475464315 -83 0.107865380703487 -84 -0.0772032951733248 -85 -0.168140171271818 -86 -0.144858575319744 -87 0.0510940822285813 -88 0.124231830951662 -89 0.116480579259527 -90 0.0733005231661278 -91 -0.103673077903456 -92 -0.163789078187485 -93 -0.0843697533408863 -94 0.0927359518979788 -95 0.0900559027837676 -96 0.104664222340361 -97 0.0382789156324802 -98 -0.128374408331222 -99 -0.15642261126302 -100 -0.00667308165088894 -101 0.0851277709144437 -102 0.0836018530451663 -103 0.0884188000954497 -104 0.00709279611310642 -105 -0.144660181300486 -106 -0.138143070220052 -107 0.0562816525685598 -108 0.0595077406929604 -109 0.0867173037785974 -110 0.0826832811453164 -111 -0.0160964251569884 -112 -0.155747087099804 -113 -0.0673832956811193 -114 0.0555412723389198 -115 0.0535188804439087 -116 0.0598230946420233 -117 0.0535276678974355 -118 -0.0458652924354906 -119 -0.153114302912901 -120 0.00982696548054891 -121 0.046672474075762 -122 0.0376959986943637 -123 0.0573772097995026 -124 0.0291609863119664 -125 -0.0720491385088587 -126 -0.119574247127328 -127 0.0398229760968292 -128 0.0368708833970769 -129 0.0378810523621832 -130 0.0440552599869543 -131 0.0168785446700554 -132 -0.100876176445281 -133 -0.0522667691021854 -134 0.036471105657028 -135 0.0215593152266718 -136 0.0332088835541183 -137 0.0406116641053865 -138 -0.000575792803151212 -139 -0.110182879489659 -140 0.0119148280486452 -141 0.0103606549224577 -142 0.0174203821210768 -143 0.0264660206850527 -144 0.0279556175958258 -145 -0.0101677743859891 -146 -0.0714378616054869 -147 0.0268904165103586 -148 0.0197546838971675 -149 0.0020125342918206 -150 0.0208048892753844 -151 0.0177433252225432 -152 -0.0412629401386729 -153 -0.0331295172833144 -154 0.0185158552578208 -155 0.0109488606569471 -156 0.00829546562841099 -157 0.0193950108790453 -158 0.00363009909349868 -159 -0.0424508741873948 -160 0.00483444603011959 -161 0.00251257763944739 -162 -0.0027291007330315 -163 0.00583978101322954 -164 0.0119526210929789 -165 0.00202945630944433 -166 -0.0133120914217794 -167 -0.0012297645717332 -168 0.00270288118433543 -169 -0.00541306317192281 -170 0.00344801669308451 -171 -7.06221686644991e-05 -172 -0.0128411948649165 -173 0.0258140753965777 -174 -0.00838152285590955 -175 0.00457554209144489 -176 -0.0212504244136124 -177 0.00405744330785776 -178 0.00109889713027893 -179 -0.00653340121943499 -180 0.0251074943438506 -181 0.00390303260107667 -182 -0.00701005779107689 -183 -0.0065141088117886 -184 -0.00279230972823837 -185 -0.00416383972424965 -186 0.0262707341683331 -187 0.00819057184579269 -188 -0.00340288166837825 -189 -0.0143930625406389 -190 -0.0253314001312743 -191 -0.00185836549539233 -192 0.00104764466063349 -193 0.0539677516048275 -194 -0.0100541189143094 -195 -0.00921746463253617 -196 -0.0149462313841975 -197 -0.0188238663657463 -198 -0.0175064441267539 -199 0.020760922122737 -200 0.0554307275152524 -201 -0.0148112905353319 -202 -0.0127466158713358 -203 -0.0243021923478065 -204 -0.0209159713475539 -205 -0.0114124320328544 -206 0.0397229436097326 -207 0.0456075315085741 -208 -0.0215007018820454 -209 -0.0144624346486559 -210 -0.0322330130568126 -211 -0.00825272885493334 -212 -0.0149224222346792 -213 0.0682032593962929 -214 0.0121011513942831 -215 -0.0169882789240117 -216 -0.0149704075424761 -217 -0.0387466974669077 -218 -0.00399663244288092 -219 0.017199112436661 -220 0.0760951670626158 -221 0.000771488467078772 -222 -0.0299297731350407 -223 -0.00961973831748005 -224 -0.0472117112712389 -225 -0.0172398450528946 -226 0.0399982487996819 -227 0.0668906972411487 -228 -0.0195152172068293 -229 -0.0118748121155119 -230 -0.0328125031882784 -231 -0.0308080129381723 -232 -0.0122390206650683 -233 0.0689451191829333 -234 0.029994234380722 -235 -0.0160522469025481 -236 -0.0138652708623251 -237 -0.0507286056559315 -238 -0.0108444844897431 -239 -0.000749122945858211 -240 0.0707991870940562 -241 0.0267001298657314 -242 -0.0303467049269583 -243 -0.0132703522046187 -244 -0.0519324123908225 -245 -0.020827887860283 -246 0.035011894574258 -247 0.071041404155295 -248 0.00264333590518284 -249 -0.0324109538103439 -250 -0.0173917664974712 -251 -0.0488496793294092 -252 -0.0141041170429656 -253 0.0508320887854303 -254 0.0750173132102245 -255 -0.0141435331710239 -256 -0.0149919228080718 -257 -0.0363809443035875 -258 -0.044180318575384 -259 0.0137303280992071 -260 0.0453890157170559 -261 0.0499450703384104 -262 -0.0214405609870375 -263 -0.0171265875233509 -264 -0.0483467081512779 -265 -0.0238039375745267 -266 0.0297704275693148 -267 0.0477795017107822 -268 0.0306806785398672 -269 -0.0241732516868213 -270 -0.0232177034439842 -271 -0.0561919945895127 -272 -0.0121383708530614 -273 0.0383380316167486 -274 0.0692068597048456 -275 -0.0037308740073283 -276 -0.0238823990824962 -277 -0.0233175869444128 -278 -0.0466628437090312 -279 0.00124369697752989 -280 0.033635887914297 -281 0.0595585462605596 -282 -0.00471883892563787 -283 -0.022010928895564 -284 -0.0396393069529268 -285 -0.047610976414541 -286 0.0330006232948636 -287 0.0280762592215935 -288 0.0546372734557523 -289 -0.0127989574716365 -290 -0.0191221337324256 -291 -0.0441318227203198 -292 -0.0234180780296535 -293 0.0323850514195515 -294 0.0485470915014664 -295 0.0233514564784711 -296 -0.014986868171212 -297 -0.0303748609767652 -298 -0.0492165541971281 -299 -0.000385604501460381 -300 0.0269531666988284 -301 0.0565609923395246 -302 0.00593180901393307 -303 -0.0139487837507826 -304 -0.0382587858091347 -305 -0.0491851369445174 -306 0.0160807177510981 -307 0.0361087651605283 -308 0.0389978157300904 -309 0.00502802264445259 -310 -0.0214508646037847 -311 -0.0382274859105765 -312 -0.0406626513624875 -313 0.0280699039368022 -314 0.0389617980418346 -315 0.0271371634582089 -316 0.00383396360577986 -317 -0.0368406522772554 -318 -0.0386138394670918 -319 -0.0144256141856596 -320 0.0269236337036347 -321 0.0378611438537414 -322 0.0209886410948846 -323 -0.000452113297036075 -324 -0.0449001716863398 -325 -0.0362164044779451 -326 -0.00595679435360415 -327 0.0506843309155259 -328 0.0326573572134026 -329 0.0107949518760053 -330 -0.00524263889747431 -331 -0.045061910257765 -332 -0.0336081125622954 -333 0.0142902742395516 -334 0.0327621408145429 -335 0.0232224714127171 -336 0.0111851134672308 -337 -0.0168616046652318 -338 -0.0421660588992697 -339 -0.0304729350756775 -340 0.0315110873281277 -341 0.0393883283265487 -342 0.00688623370858959 -343 0.0155748729948725 -344 -0.0396114220680361 -345 -0.036903793556725 -346 -0.0106964102495091 -347 0.0321472442987069 -348 0.0291161569873515 -349 0.0127286036167739 -350 0.0131191581487462 -351 -0.0510684340547118 -352 -0.037342914226626 -353 0.00800616948303765 -354 0.0353286314592821 -355 0.0224843093277485 -356 0.00483640438097458 -357 0.00270936967225743 -358 -0.050958398888098 -359 -0.03181357197987 -360 0.0263165400282428 -361 0.0337466198913848 -362 0.0138214636037434 -363 0.0161643781357266 -364 -0.0166975714811741 -365 -0.0379548808112395 -366 -0.0107191330666086 -367 0.0151768728627536 -368 0.0330707869037677 -369 0.00862332944835417 -370 0.0126881690782585 -371 -0.035143571537685 -372 -0.0379591383040581 -373 0.0034903385393575 -374 0.0262443107228041 -375 0.0239169076988401 -376 0.0117645257098411 -377 0.00667620811923268 -378 -0.0487466537790665 -379 -0.0248323076320059 -380 0.00853369884513661 -381 0.0254571493249656 -382 0.0158332997765884 -383 0.0152150967683835 -384 -0.00560022391839541 -385 -0.0468960628871472 -386 -0.0122137430122784 -387 0.0195354222281915 -388 0.0205785620197055 -389 0.00640951181213936 -390 0.0192254336021024 -391 -0.0213684050918215 -392 -0.0390677938838948 -393 -0.00851270390379209 -394 0.0198814929031009 -395 0.0221284736508306 -396 0.0144170779179485 -397 0.00761346746337475 -398 -0.0341642702201187 -399 -0.0182072192904153 -400 -0.000917427430821407 -401 0.0240923988301287 -402 0.0149702208233445 -403 0.0254338021686953 -404 -0.0114315718167618 -405 -0.0367784109383449 -406 -0.0203107293220967 -407 0.0207711450646343 -408 0.00769317821995912 -409 0.0155113277213562 -410 0.0188010420230405 -411 -0.00588271186449876 -412 -0.0453215571077292 -413 -0.0023477078738424 -414 0.0045635114773767 -415 0.0193832767222524 -416 0.0126157524584856 -417 0.0125919924992071 -418 -0.022128831828596 -419 -0.0316624813090816 -420 0.00848651912597777 -421 0.00365846968970242 -422 0.0167934861719605 -423 0.0258369213405359 -424 -0.0110386479254365 -425 -0.0221266194130739 -426 -0.0342359305340173 -427 0.0198173965590731 -428 0.0113340288154053 -429 0.0117321942610559 -430 0.0199069545235314 -431 -0.00972019619126481 -432 -0.0334368587948193 -433 -0.00818672582858474 -434 0.00847403279906724 -435 0.0151410616338098 -436 0.0210571960796968 -437 0.0106767873737501 -438 -0.013923260538601 -439 -0.0295951598444345 -440 -0.00213381404969862 -441 0.00202904020725609 -442 0.0229482306295094 -443 0.0184877779142267 -444 -0.00967213617656215 -445 -0.00921421284518073 -446 -0.0235983767065866 -447 -0.00275565709687977 -448 0.00850528936282641 -449 0.021653187958436 -450 0.0175868623090648 -451 -0.0158567287280081 -452 -0.0197244183098808 -453 -0.0181122740176874 -454 0.0114885559203587 -455 0.00821969307220109 -456 0.0172333504264287 -457 0.0166219780995992 -458 -0.0218887409079099 -459 -0.0166096810167506 -460 -0.0175255182955902 -461 0.0155549717347949 -462 0.0109524688624427 -463 0.0108083192821273 -464 0.0109544410525194 -465 -0.012075150479233 -466 -0.0316229939529222 -467 -0.00616925120907086 -468 0.0132996349281117 -469 0.0194985827103642 -470 0.0118786255995167 -471 -0.00394060339988717 -472 -0.0074504553199804 -473 -0.0216171208389261 -474 0.00601096062326295 -475 0.00225300714016349 -476 0.0328870249803732 -477 -0.00143854393918084 -478 -0.0125765646700796 -479 -0.00518610856295871 -480 -0.0286671364514193 -481 0.0114893086586308 -482 0.0101767599569462 -483 0.0215358355330199 -484 0.0100013983093797 -485 -0.0189420875106819 -486 -0.0170156842542937 -487 -0.0181219245592761 -488 0.0134350210494302 -489 0.0157200832610872 -490 0.00820671869127948 -491 0.00609605427848417 -492 -0.00964792789764855 -493 -0.0280629491471991 -494 -0.00119096663786943 -495 0.0059816978766158 -496 0.0319195128927636 -497 -0.00616844922211785 -498 -0.00300183927697173 -499 -0.00255830020653143 -500 -0.0326795727885289 -501 0.00737460740372866 -502 0.0101738406924715 -503 0.0166480802410528 -504 0.0101781028011199 -505 -0.0148697505539931 -506 -0.00932908806811421 -507 -0.0228291650465262 -508 0.016317603272819 -509 0.0251213315783841 -510 0.00429219423365217 -511 0.00509519846591672 -512 -0.0118288041004493 -513 -0.0182276341829169 -514 -0.0136524793951616 -515 0.0125652837072878 -516 0.0237831170063298 -517 0.000525824158270796 -518 0.000861207866418543 -519 -0.000309524320918211 -520 -0.0319611866775823 -521 0.00377002226899237 -522 0.00366677706502651 -523 0.0238709877277231 -524 -0.00194721509431841 -525 -0.00532831903040821 -526 -0.0035954903575234 -527 -0.0265125935766282 -528 0.00819935557807736 -529 0.0187116031801041 -530 0.00335323640794092 -531 0.0093979106751416 -532 -0.00717619909651022 -533 -0.0222889570534225 -534 -0.0159873555724934 -535 0.0155232558898349 -536 0.0188575547550394 -537 0.00257632001432395 -538 0.0109600141670179 -539 -0.0136168353942696 -540 -0.0286265327239912 -541 -0.00493532024944744 -542 0.0131483720919412 -543 0.0207593713409036 -544 0.00752548764010655 -545 0.0101794683902496 -546 -0.00944756530014968 -547 -0.0361193792524987 -548 0.00900784799603882 -549 0.00814620931366632 -550 0.0118963349468229 -551 0.00869181440821501 -552 0.00553664631914035 -553 -0.0235896662674149 -554 -0.0213031930671748 -555 0.0144191547013866 -556 0.00985740627307818 -557 0.0146461357237841 -558 -0.00329509825327045 -559 0.00861808586430692 -560 -0.0382908781734418 -561 -0.00810416928099721 -562 0.0152325822988648 -563 0.0108896546286742 -564 0.0197283233093635 -565 -0.00597279642964848 -566 0.00549346286324277 -567 -0.0441402987586487 -568 0.00442694223265451 -569 0.00895528979634627 -570 0.00314478664849838 -571 0.0275939863464633 -572 -0.000211275077900297 -573 -0.0157780481890476 -574 -0.0348847108726074 -575 0.0178433894654182 -576 0.00358880348184893 -577 0.00325401416563326 -578 0.0168304732698679 -579 0.00759458115231633 -580 -0.0249153562132231 -581 -0.0148180695954744 -582 0.0108144203245513 -583 0.0147457973792171 -584 0.00442055500088463 -585 0.0113147505801929 -586 0.00208502530934012 -587 -0.0369024921021571 -588 -0.00738632772951817 -589 0.00992698216785421 -590 0.00762460161308267 -591 0.0264602045744605 -592 0.00179884430710083 -593 -0.0065858667702633 -594 -0.0400946265552496 -595 0.00586629198250832 -596 0.00638016879591378 -597 -0.00334997345122169 -598 0.0378696957160481 -599 -0.00291662872883922 -600 -0.0150181756899771 -601 -0.0308267314085245 -602 0.00545487745877096 -603 0.0145056871276495 -604 -0.00111862002362357 -605 0.0274345659047568 -606 -0.00545886365985009 -607 -0.02134718500889 -608 -0.0168792261598091 -609 0.00235047714564286 -610 0.0115358557818356 -611 0.00892944549777402 -612 0.0175837325671957 -613 -0.00241533013968592 -614 -0.0397066859486968 -615 -0.000775410212127817 -616 0.010404414311518 -617 0.00622818135682105 -618 0.0256159561966313 -619 0.0100572818761881 -620 -0.00997184439752021 -621 -0.0370357127908402 -622 -0.009493683122773 -623 0.019991811173322 -624 0.00616915844764652 -625 0.0226334480172136 -626 -0.00170152998435823 -627 -0.00527269037631295 -628 -0.0310245966733844 -629 -0.00334664758487885 -630 0.0108099133488301 -631 0.0162472542900972 -632 0.0107638392138735 -633 -9.28636881484359e-05 -634 -0.0251735775995027 -635 -0.0175915903660944 -636 0.0064154965729608 -637 0.00918775959735482 -638 0.025607471670139 -639 0.00415316421623987 -640 -0.00555481869685676 -641 -0.0243730502242372 -642 -0.0236765581404991 -643 0.0132551374194837 -644 0.0159204978713982 -645 0.0182545204715289 -646 -0.00177344669143713 -647 -0.00410362457456551 -648 -0.0217821833150809 -649 -0.0187567646143839 -650 0.0108473001511633 -651 0.024234409213132 -652 0.0103373343092404 -653 0.0053494854974728 -654 -0.0116971189957597 -655 -0.025622749432742 -656 -0.00703489184924496 -657 0.0127306317732122 -658 0.0264660231555335 -659 0.00441275817266093 -660 -0.000498144331723384 -661 -0.0170193444138239 -662 -0.035755915518656 -663 0.0153452894744309 -664 0.0184392623502257 -665 0.0179210598556496 -666 0.00323237671435628 -667 -0.0143732162504404 -668 -0.0059072260888979 -669 -0.0424395347705013 -670 0.0182802454123028 -671 0.028027312899014 -672 0.0105955795585643 -673 0.00873541917286547 -674 -0.0180699323851307 -675 -0.0157035416270782 -676 -0.0243544633968205 -677 0.0122599065615016 -678 0.0293159679608981 -679 -0.0023542771968947 -680 0.0173160434772516 -681 -0.0192740489190438 -682 -0.0267558924656808 -683 -0.00512931356799544 -684 0.0160575949541419 -685 0.0188852073807438 -686 0.00138912191794047 -687 -0.00115067732885235 -688 -0.0058938945939148 -689 -0.0270293884074899 -690 0.000894104439656761 -691 0.0254384890333336 -692 0.0135759887351247 -693 0.00706307551413458 -694 -0.00983098745115802 -695 -0.0182029532724777 -696 -0.0188844337318011 -697 -0.000620495183408782 -698 0.031569666060583 -699 0.00247939842897875 -700 0.0175967326065924 -701 -0.0140127620939771 -702 -0.0204023919721389 -703 -0.0265270099155168 -704 0.0189279709581055 -705 0.0230696877886033 -706 0.00221980643869467 -707 0.00877474738492577 -708 -0.0162154001263846 -709 -0.0131109560281679 -710 -0.0175675796745332 -711 0.0223801164921319 -712 0.00577037578768595 -713 0.015016209026733 -714 0.000700464791035295 -715 -0.0265570398797467 -716 -0.00328487594267362 -717 -0.0125180962593854 -718 0.0282899511684865 -719 0.00190078369585563 -720 0.00988422939784888 -721 -0.00206231662877586 -722 -0.0260676646786268 -723 -0.00911966903113347 -724 -0.00349690376176947 -725 0.0311131205663657 -726 0.00982115201693743 -727 0.00380892869332063 -728 -0.0110636013291228 -729 -0.0147589149221332 -730 -0.0142665446241887 -731 0.0082820839740987 -732 0.0115944492459724 -733 0.0193205726321855 -734 -0.00599937049345255 -735 -0.0124413644991841 -736 -0.00567111710885452 -737 -0.0172490266022523 -738 0.0208711936714456 -739 0.0049112245490164 -740 0.0119338001717033 -741 -0.00382254745169823 -742 -0.0168037126507566 -743 -0.0106727427496242 -744 -0.0015896316832005 -745 0.00986670286392471 -746 0.0187708614601626 -747 0.00280713985351326 -748 -0.0103005824233574 -749 -0.00698856527705199 -750 -0.0148829004327279 -751 0.00737864042801781 -752 0.00378825958027056 -753 0.0169762573619787 -754 0.0022171253424174 -755 -0.00880275220702398 -756 -0.0113861610535219 -757 -0.00866954185078337 -758 -0.00102625777568937 -759 0.0153621406801242 -760 0.0175483371870747 -761 -0.0117316284519376 -762 0.00201727719536751 -763 -0.0135695524051989 -764 -0.00236628739393315 -765 -0.00558540481434592 -766 0.0269770620065138 -767 0.00572732432254425 -768 -0.0206632040359575 -769 0.00669734976955735 -770 -0.0177594319318436 -771 0.00610794003109065 -772 0.000941524893761258 -773 0.0184249836070844 -774 0.00603564044659765 -775 -0.0194800088175 -776 0.00211956864190904 -777 -0.010814553078384 -778 -0.00345880879440837 -779 0.00784989092108616 -780 0.0219931715670487 -781 -0.00850728907326284 -782 -0.00818020013943201 -783 -0.000161877820177968 -784 -0.00713626483576915 -785 -0.00189547729017052 -786 0.00606277375629014 -787 0.0175714822376805 -788 -0.0163318892122437 -789 0.00355096379727685 -790 -0.00561323769976105 -791 -0.00173115162828963 -792 0.00285124323851199 -793 0.00626988628820364 -794 0.00217746014515121 -795 -0.00760875508840939 -796 -0.000158305774946426 -797 0.000505966683014493 -798 -0.00693871262526605 -799 0.00898933345030533 -800 0.014710588776899 -801 -0.0127611881730304 -802 0.00195021147362958 -803 -0.00619101895130629 -804 0.0026189336260538 -805 -0.0119751993107655 -806 0.00863989985124942 -807 0.0162582664631878 -808 -0.00961705217558156 -809 -0.00291393696249613 -810 0.00183243185138599 -811 -0.00460631909363343 -812 -0.0119632672766042 -813 0.0208966630422238 -814 -0.00308347876710094 -815 -0.000388668719911606 -816 -0.00886871268574757 -817 0.0104410151238245 -818 -0.00971881568327177 -819 -0.00556079139249464 -820 0.0192762976108135 -821 -0.0107849691388102 -822 0.00749648811680043 -823 -0.0133743112470617 -824 0.0148954204098446 -825 -0.012870734248631 -826 0.00297854342027238 -827 0.00400991287076845 -828 -0.000776475806225986 -829 0.000157063854584776 -830 -0.00648190853333762 -831 0.00841895039070195 -832 -0.0106394491215173 -833 0.0131617346674597 -834 -0.0110557177073731 -835 0.0104656591658511 -836 -0.00271631743019652 -837 0.00120199415841236 -838 0.003706954798763 -839 -0.00947603640270401 -840 0.00137362489293886 -841 -0.00412100522419038 -842 0.00440555479849327 -843 -0.00101257629784826 -844 0.011630938869848 -845 -0.00348460872671806 -846 -0.00490788919767545 -847 -0.00767305606978742 -848 0.00641850027996645 -849 -0.0047270157313243 -850 0.006561877154592 -851 0.00346504126665878 -852 0.000325934762370315 -853 -0.00691243590442494 -854 -0.0122397831712401 -855 0.0155142896041314 -856 -0.00649940375329406 -857 0.0115764362511307 -858 -0.00166218348252304 -859 0.00329024056556213 -860 -0.0168163842675434 -861 -0.0018300046237477 -862 0.00782622924665259 -863 0.00184144237820109 -864 0.00564522536281571 -865 0.00166897889337862 -866 0.000762761808421144 -867 -0.0247108710871775 -868 0.0102945871423903 -869 0.00176524231160526 -870 0.0100435696701272 -871 -0.000881447853453438 -872 0.0077251769247763 -873 -0.00856838315554851 -874 -0.0147878775532851 -875 0.0032203221928359 -876 0.00271820057534821 -877 0.0150200342356852 -878 -0.00679910502968767 -879 0.00803734684491422 -880 -0.0129685352671973 -881 -0.00468207467932367 -882 -0.0040001560959317 -883 0.0127784032727213 -884 0.00689584536184243 -885 -0.00348378029753978 -886 0.00583835064957876 -887 -0.018431993579404 -888 -0.00543151914104362 -889 0.000930192838208099 -890 0.0189669669181415 -891 0.00197455166108111 -892 0.000291983829886991 -893 -0.00151890218051029 -894 -0.018758927675871 -895 -0.00427007831617855 -896 0.00873163971817387 -897 0.0116921446719301 -898 0.00493448763764004 -899 0.000812558628478896 -900 -0.00829685479660704 -901 -0.016774476024156 -902 -0.00284574091222063 -903 0.0166712115089998 -904 0.00393567866715527 -905 0.00970634578920477 -906 -0.0013135499413494 -907 -0.0151419078767085 -908 -0.014262642806324 -909 0.000679710286692927 -910 0.023632237447571 -911 -0.000293075867552849 -912 0.00963897961846078 -913 -0.00892745437111743 -914 -0.0141610280914154 -915 -0.0143929747783252 -916 0.0126331813801288 -917 0.0140072140155889 -918 0.0038464358463258 -919 0.00872792856356974 -920 -0.0142893223780218 -921 -0.0144626608008151 -922 -0.0106633311842541 -923 0.0182487172273735 -924 0.00789811928832441 -925 0.00674770411457765 -926 0.00151185223543001 -927 -0.0131662643971208 -928 -0.0130299725001482 -929 -0.000421100875615765 -930 0.0101012876932665 -931 0.0109771581904619 -932 0.00600630873622808 -933 -0.00610768057521272 -934 -0.0113069105169847 -935 -0.0108646539420972 -936 0.00681782689120027 -937 0.00453863835411057 -938 0.0128033807887734 -939 0.00558460964303299 -940 -0.0111413786231144 -941 -0.010741707945974 -942 -0.0073905294023225 -943 0.00509539616333849 -944 0.00789664081858827 -945 0.0156023411643847 -946 -0.00196863307695851 -947 -0.00929990689658537 -948 -0.0100501558671196 -949 -0.00713963769082725 -950 0.00529444925980778 -951 0.00907288818013118 -952 0.0159396165239691 -953 -0.0070169105795629 -954 -0.00871200515303164 -955 -0.00623272113762449 -956 -0.00859043676592199 -957 0.00750758667776515 -958 0.0114715494246097 -959 0.00783845600054901 -960 -0.00640762499905148 -961 -0.00791318713998704 -962 -0.00388200155080539 -963 -0.00821887932833072 -964 0.00969710527680486 -965 0.0132324446252105 -966 0.000588150241816455 -967 -0.00459312775024423 -968 -0.00661504524014442 -969 -0.00488536336284523 -970 -0.00665739535025808 -971 0.0119120087088002 -972 0.0129080825261635 -973 -0.00502738233144332 -974 -0.00424651006131981 -975 -0.00529584314204073 -976 -0.00401797749822628 -977 -0.00398629771407627 -978 0.0145696891837213 -979 0.00312400996929776 -980 -0.0024620797714283 -981 -0.0029972609662243 -982 -0.00374070711004024 -983 -0.00324300553128461 -984 -0.00266784725010517 -985 0.0142342444009173 -986 -0.00291146863667702 -987 -0.00123170535641386 -988 -0.00195500360676893 -989 -0.0018623417265137 -990 -0.0010940028343966 -991 -0.00012714389035354 -992 0.00601935720393536 -993 -0.00153575128302119 -994 -0.000790525971546018 -995 -0.000953092463346404 -996 -0.000631437937788914 -997 -5.86631399396442e-05 -998 0.000839644378016313 -999 -0.000137648586440022 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat deleted file mode 100644 index 1290916..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat +++ /dev/null @@ -1,1001 +0,0 @@ -#scatter real total user system repeat -1 0.0308499336242676 0.0300000000000011 0.0300000000000011 0.0 1 -2 0.027501106262207 0.0299999999999976 0.0299999999999976 0.0 2 -3 0.0248689651489258 0.0200000000000031 0.0200000000000031 0.0 3 -4 0.0230190753936768 0.0199999999999996 0.0199999999999996 0.0 4 -5 0.0231549739837646 0.0299999999999976 0.0299999999999976 0.0 5 -6 0.0229060649871826 0.0200000000000031 0.0200000000000031 0.0 6 -7 0.0479171276092529 0.0499999999999972 0.0499999999999972 0.0 7 -8 0.0237171649932861 0.0199999999999996 0.0199999999999996 0.0 8 -9 0.0234429836273193 0.0200000000000031 0.0200000000000031 0.0 9 -10 0.0232129096984863 0.0299999999999976 0.0299999999999976 0.0 10 -11 0.0243880748748779 0.0199999999999996 0.0199999999999996 0.0 11 -12 0.0262730121612549 0.0300000000000011 0.0300000000000011 0.0 12 -13 0.022907018661499 0.0199999999999996 0.0199999999999996 0.0 13 -14 0.0502560138702393 0.0500000000000007 0.0500000000000007 0.0 14 -15 0.0239529609680176 0.0199999999999996 0.0199999999999996 0.0 15 -16 0.0233089923858643 0.0300000000000011 0.0300000000000011 0.0 16 -17 0.0230889320373535 0.0199999999999996 0.0199999999999996 0.0 17 -18 0.0229461193084717 0.0199999999999996 0.0199999999999996 0.0 18 -19 0.0228281021118164 0.0300000000000011 0.0300000000000011 0.0 19 -20 0.0227499008178711 0.0199999999999996 0.0199999999999996 0.0 20 -21 0.0519850254058838 0.0500000000000007 0.0500000000000007 0.0 21 -22 0.0238831043243408 0.0299999999999976 0.0299999999999976 0.0 22 -23 0.0233030319213867 0.0199999999999996 0.0199999999999996 0.0 23 -24 0.0230920314788818 0.0200000000000031 0.0200000000000031 0.0 24 -25 0.0230100154876709 0.0199999999999996 0.0199999999999996 0.0 25 -26 0.0230438709259033 0.0199999999999996 0.0199999999999996 0.0 26 -27 0.0233631134033203 0.0199999999999996 0.0199999999999996 0.0 27 -28 0.0499250888824463 0.0500000000000007 0.0500000000000007 0.0 28 -29 0.0236561298370361 0.0300000000000011 0.0300000000000011 0.0 29 -30 0.0273551940917969 0.0199999999999996 0.0199999999999996 0.0 30 -31 0.0231010913848877 0.0300000000000011 0.0300000000000011 0.0 31 -32 0.0228641033172607 0.0199999999999996 0.0199999999999996 0.0 32 -33 0.0227639675140381 0.0199999999999996 0.0199999999999996 0.0 33 -34 0.0227780342102051 0.0199999999999996 0.0199999999999996 0.0 34 -35 0.0491790771484375 0.0500000000000007 0.0500000000000007 0.0 35 -36 0.0235280990600586 0.0300000000000011 0.0300000000000011 0.0 36 -37 0.0303738117218018 0.0299999999999976 0.0299999999999976 0.0 37 -38 0.0235600471496582 0.0199999999999996 0.0199999999999996 0.0 38 -39 0.0272340774536133 0.0300000000000011 0.0300000000000011 0.0 39 -40 0.0229921340942383 0.0199999999999996 0.0199999999999996 0.0 40 -41 0.0230140686035156 0.0199999999999996 0.0199999999999996 0.0 41 -42 0.0487380027770996 0.0500000000000007 0.0500000000000007 0.0 42 -43 0.0233781337738037 0.0300000000000011 0.0300000000000011 0.0 43 -44 0.0232539176940918 0.0199999999999996 0.0199999999999996 0.0 44 -45 0.0231471061706543 0.0199999999999996 0.0199999999999996 0.0 45 -46 0.0229659080505371 0.0300000000000011 0.0300000000000011 0.0 46 -47 0.0236260890960693 0.0199999999999996 0.0199999999999996 0.0 47 -48 0.0249731540679932 0.0299999999999976 0.0299999999999976 0.0 48 -49 0.0491600036621094 0.0400000000000027 0.0400000000000027 0.0 49 -50 0.0233979225158691 0.0299999999999976 0.0299999999999976 0.0 50 -51 0.0233068466186523 0.0200000000000031 0.0200000000000031 0.0 51 -52 0.0230197906494141 0.0199999999999996 0.0199999999999996 0.0 52 -53 0.023003101348877 0.0299999999999976 0.0299999999999976 0.0 53 -54 0.0229551792144775 0.0199999999999996 0.0199999999999996 0.0 54 -55 0.0227420330047607 0.0200000000000031 0.0200000000000031 0.0 55 -56 0.0490391254425049 0.0499999999999972 0.0499999999999972 0.0 56 -57 0.0280921459197998 0.0300000000000011 0.0300000000000011 0.0 57 -58 0.0237009525299072 0.0199999999999996 0.0199999999999996 0.0 58 -59 0.0233352184295654 0.0300000000000011 0.0300000000000011 0.0 59 -60 0.0229549407958984 0.0199999999999996 0.0199999999999996 0.0 60 -61 0.0229389667510986 0.0199999999999996 0.0199999999999996 0.0 61 -62 0.022536039352417 0.0300000000000011 0.0300000000000011 0.0 62 -63 0.0481998920440674 0.0399999999999991 0.0399999999999991 0.0 63 -64 0.0232841968536377 0.0300000000000011 0.0300000000000011 0.0 64 -65 0.0232529640197754 0.0199999999999996 0.0199999999999996 0.0 65 -66 0.026047945022583 0.0299999999999976 0.0299999999999976 0.0 66 -67 0.0240390300750732 0.0200000000000031 0.0200000000000031 0.0 67 -68 0.0229721069335938 0.0199999999999996 0.0199999999999996 0.0 68 -69 0.0479068756103516 0.0500000000000007 0.0500000000000007 0.0 69 -70 0.023643970489502 0.0199999999999996 0.0199999999999996 0.0 70 -71 0.0241210460662842 0.0199999999999996 0.0199999999999996 0.0 71 -72 0.0232229232788086 0.0199999999999996 0.0199999999999996 0.0 72 -73 0.0230081081390381 0.0300000000000011 0.0300000000000011 0.0 73 -74 0.0300300121307373 0.0300000000000011 0.0300000000000011 0.0 74 -75 0.0227279663085938 0.0199999999999996 0.0199999999999996 0.0 75 -76 0.0513601303100586 0.0500000000000007 0.0500000000000007 0.0 76 -77 0.0237360000610352 0.0199999999999996 0.0199999999999996 0.0 77 -78 0.0233068466186523 0.0300000000000011 0.0300000000000011 0.0 78 -79 0.0231139659881592 0.0199999999999996 0.0199999999999996 0.0 79 -80 0.0230059623718262 0.0199999999999996 0.0199999999999996 0.0 80 -81 0.022935152053833 0.0299999999999976 0.0299999999999976 0.0 81 -82 0.0229039192199707 0.0200000000000031 0.0200000000000031 0.0 82 -83 0.0487849712371826 0.0499999999999972 0.0499999999999972 0.0 83 -84 0.0268459320068359 0.0199999999999996 0.0199999999999996 0.0 84 -85 0.0233829021453857 0.0300000000000011 0.0300000000000011 0.0 85 -86 0.0231680870056152 0.0199999999999996 0.0199999999999996 0.0 86 -87 0.0230309963226318 0.0199999999999996 0.0199999999999996 0.0 87 -88 0.0234689712524414 0.0300000000000011 0.0300000000000011 0.0 88 -89 0.0231020450592041 0.0199999999999996 0.0199999999999996 0.0 89 -90 0.0486099720001221 0.0500000000000007 0.0500000000000007 0.0 90 -91 0.0234777927398682 0.0200000000000031 0.0200000000000031 0.0 91 -92 0.0232808589935303 0.029999999999994 0.029999999999994 0.0 92 -93 0.0230159759521484 0.0200000000000031 0.0200000000000031 0.0 93 -94 0.0258738994598389 0.0300000000000011 0.0300000000000011 0.0 94 -95 0.0232770442962646 0.019999999999996 0.019999999999996 0.0 95 -96 0.022737979888916 0.0200000000000031 0.0200000000000031 0.0 96 -97 0.0484600067138672 0.0499999999999972 0.0499999999999972 0.0 97 -98 0.023435115814209 0.0200000000000031 0.0200000000000031 0.0 98 -99 0.0234768390655518 0.0300000000000011 0.0300000000000011 0.0 99 -100 0.0230209827423096 0.019999999999996 0.019999999999996 0.0 100 -101 0.0230460166931152 0.0200000000000031 0.0200000000000031 0.0 101 -102 0.0232481956481934 0.0300000000000011 0.0300000000000011 0.0 102 -103 0.0264010429382324 0.019999999999996 0.019999999999996 0.0 103 -104 0.0486769676208496 0.0500000000000043 0.0500000000000043 0.0 104 -105 0.0233399868011475 0.019999999999996 0.019999999999996 0.0 105 -106 0.0231819152832031 0.0300000000000011 0.0300000000000011 0.0 106 -107 0.0230488777160645 0.0200000000000031 0.0200000000000031 0.0 107 -108 0.0238149166107178 0.019999999999996 0.019999999999996 0.0 108 -109 0.0230348110198975 0.0300000000000011 0.0300000000000011 0.0 109 -110 0.0254418849945068 0.0200000000000031 0.0200000000000031 0.0 110 -111 0.0559201240539551 0.0599999999999952 0.0599999999999952 0.0 111 -112 0.0237429141998291 0.0200000000000031 0.0200000000000031 0.0 112 -113 0.0230910778045654 0.0300000000000011 0.0300000000000011 0.0 113 -114 0.0230679512023926 0.019999999999996 0.019999999999996 0.0 114 -115 0.022960901260376 0.0200000000000031 0.0200000000000031 0.0 115 -116 0.0229921340942383 0.019999999999996 0.019999999999996 0.0 116 -117 0.0226120948791504 0.0300000000000011 0.0300000000000011 0.0 117 -118 0.0491540431976318 0.0500000000000043 0.0500000000000043 0.0 118 -119 0.0233540534973145 0.019999999999996 0.019999999999996 0.0 119 -120 0.023921012878418 0.0200000000000031 0.0200000000000031 0.0 120 -121 0.02628493309021 0.0300000000000011 0.0300000000000011 0.0 121 -122 0.0231039524078369 0.019999999999996 0.019999999999996 0.0 122 -123 0.0229899883270264 0.0300000000000011 0.0300000000000011 0.0 123 -124 0.0484068393707275 0.0399999999999991 0.0399999999999991 0.0 124 -125 0.0236389636993408 0.0300000000000011 0.0300000000000011 0.0 125 -126 0.0232870578765869 0.019999999999996 0.019999999999996 0.0 126 -127 0.0232260227203369 0.0200000000000031 0.0200000000000031 0.0 127 -128 0.0229640007019043 0.0300000000000011 0.0300000000000011 0.0 128 -129 0.02298903465271 0.019999999999996 0.019999999999996 0.0 129 -130 0.0251820087432861 0.0300000000000011 0.0300000000000011 0.0 130 -131 0.0493929386138916 0.0399999999999991 0.0399999999999991 0.0 131 -132 0.0237491130828857 0.019999999999996 0.019999999999996 0.0 132 -133 0.0233249664306641 0.0200000000000031 0.0200000000000031 0.0 133 -134 0.0232069492340088 0.0300000000000011 0.0300000000000011 0.0 134 -135 0.0229921340942383 0.019999999999996 0.019999999999996 0.0 135 -136 0.0232110023498535 0.0200000000000031 0.0200000000000031 0.0 136 -137 0.0227601528167725 0.019999999999996 0.019999999999996 0.0 137 -138 0.0484609603881836 0.0500000000000043 0.0500000000000043 0.0 138 -139 0.0269899368286133 0.0300000000000011 0.0300000000000011 0.0 139 -140 0.0233750343322754 0.019999999999996 0.019999999999996 0.0 140 -141 0.023090124130249 0.0300000000000011 0.0300000000000011 0.0 141 -142 0.0229980945587158 0.019999999999996 0.019999999999996 0.0 142 -143 0.0231709480285645 0.0200000000000031 0.0200000000000031 0.0 143 -144 0.0230460166931152 0.0300000000000011 0.0300000000000011 0.0 144 -145 0.0494990348815918 0.0499999999999972 0.0499999999999972 0.0 145 -146 0.0304419994354248 0.0300000000000011 0.0300000000000011 0.0 146 -147 0.0233581066131592 0.0200000000000031 0.0200000000000031 0.0 147 -148 0.0262119770050049 0.0300000000000011 0.0300000000000011 0.0 148 -149 0.0228428840637207 0.019999999999996 0.019999999999996 0.0 149 -150 0.0228331089019775 0.0200000000000031 0.0200000000000031 0.0 150 -151 0.0226950645446777 0.019999999999996 0.019999999999996 0.0 151 -152 0.0486769676208496 0.0500000000000043 0.0500000000000043 0.0 152 -153 0.0234050750732422 0.029999999999994 0.029999999999994 0.0 153 -154 0.0234100818634033 0.0200000000000031 0.0200000000000031 0.0 154 -155 0.023036003112793 0.0200000000000031 0.0200000000000031 0.0 155 -156 0.0237429141998291 0.029999999999994 0.029999999999994 0.0 156 -157 0.0230100154876709 0.0200000000000031 0.0200000000000031 0.0 157 -158 0.0260419845581055 0.0300000000000011 0.0300000000000011 0.0 158 -159 0.0487880706787109 0.0399999999999991 0.0399999999999991 0.0 159 -160 0.0236630439758301 0.0200000000000031 0.0200000000000031 0.0 160 -161 0.0232570171356201 0.019999999999996 0.019999999999996 0.0 161 -162 0.0230000019073486 0.0300000000000011 0.0300000000000011 0.0 162 -163 0.0229759216308594 0.0200000000000031 0.0200000000000031 0.0 163 -164 0.0229389667510986 0.019999999999996 0.019999999999996 0.0 164 -165 0.0226230621337891 0.0200000000000031 0.0200000000000031 0.0 165 -166 0.052177906036377 0.0600000000000023 0.0600000000000023 0.0 166 -167 0.0238969326019287 0.019999999999996 0.019999999999996 0.0 167 -168 0.0231490135192871 0.0200000000000031 0.0200000000000031 0.0 168 -169 0.0229499340057373 0.029999999999994 0.029999999999994 0.0 169 -170 0.0229768753051758 0.0200000000000031 0.0200000000000031 0.0 170 -171 0.0229849815368652 0.0200000000000031 0.0200000000000031 0.0 171 -172 0.0481510162353516 0.0499999999999972 0.0499999999999972 0.0 172 -173 0.0235779285430908 0.0200000000000031 0.0200000000000031 0.0 173 -174 0.0235681533813477 0.029999999999994 0.029999999999994 0.0 174 -175 0.0232248306274414 0.0200000000000031 0.0200000000000031 0.0 175 -176 0.0256550312042236 0.0300000000000011 0.0300000000000011 0.0 176 -177 0.023108959197998 0.019999999999996 0.019999999999996 0.0 177 -178 0.0228090286254883 0.0200000000000031 0.0200000000000031 0.0 178 -179 0.0490450859069824 0.0499999999999972 0.0499999999999972 0.0 179 -180 0.0244641304016113 0.0300000000000011 0.0300000000000011 0.0 180 -181 0.0233809947967529 0.0200000000000031 0.0200000000000031 0.0 181 -182 0.0231349468231201 0.019999999999996 0.019999999999996 0.0 182 -183 0.0308740139007568 0.0300000000000011 0.0300000000000011 0.0 183 -184 0.0236179828643799 0.0300000000000011 0.0300000000000011 0.0 184 -185 0.0272319316864014 0.0200000000000031 0.0200000000000031 0.0 185 -186 0.0488860607147217 0.0399999999999991 0.0399999999999991 0.0 186 -187 0.0235450267791748 0.0300000000000011 0.0300000000000011 0.0 187 -188 0.0232491493225098 0.019999999999996 0.019999999999996 0.0 188 -189 0.0231590270996094 0.0200000000000031 0.0200000000000031 0.0 189 -190 0.0231139659881592 0.0300000000000011 0.0300000000000011 0.0 190 -191 0.0231552124023438 0.019999999999996 0.019999999999996 0.0 191 -192 0.022982120513916 0.0200000000000031 0.0200000000000031 0.0 192 -193 0.0529110431671143 0.0600000000000023 0.0600000000000023 0.0 193 -194 0.0235891342163086 0.019999999999996 0.019999999999996 0.0 194 -195 0.0234260559082031 0.0200000000000031 0.0200000000000031 0.0 195 -196 0.0230891704559326 0.029999999999994 0.029999999999994 0.0 196 -197 0.0230920314788818 0.0200000000000031 0.0200000000000031 0.0 197 -198 0.0229229927062988 0.0200000000000031 0.0200000000000031 0.0 198 -199 0.0226840972900391 0.029999999999994 0.029999999999994 0.0 199 -200 0.048753023147583 0.0400000000000063 0.0400000000000063 0.0 200 -201 0.0234558582305908 0.029999999999994 0.029999999999994 0.0 201 -202 0.0232200622558594 0.0200000000000031 0.0200000000000031 0.0 202 -203 0.0268151760101318 0.0300000000000011 0.0300000000000011 0.0 203 -204 0.0231211185455322 0.019999999999996 0.019999999999996 0.0 204 -205 0.0231039524078369 0.0200000000000031 0.0200000000000031 0.0 205 -206 0.0227501392364502 0.0300000000000011 0.0300000000000011 0.0 206 -207 0.0488438606262207 0.0499999999999972 0.0499999999999972 0.0 207 -208 0.023730993270874 0.0200000000000031 0.0200000000000031 0.0 208 -209 0.0231349468231201 0.019999999999996 0.019999999999996 0.0 209 -210 0.0231950283050537 0.0300000000000011 0.0300000000000011 0.0 210 -211 0.0232861042022705 0.0200000000000031 0.0200000000000031 0.0 211 -212 0.0260870456695557 0.0300000000000011 0.0300000000000011 0.0 212 -213 0.0480821132659912 0.0399999999999991 0.0399999999999991 0.0 213 -214 0.0236039161682129 0.029999999999994 0.029999999999994 0.0 214 -215 0.0233402252197266 0.0200000000000031 0.0200000000000031 0.0 215 -216 0.0233190059661865 0.0200000000000031 0.0200000000000031 0.0 216 -217 0.0242919921875 0.029999999999994 0.029999999999994 0.0 217 -218 0.0228087902069092 0.0200000000000031 0.0200000000000031 0.0 218 -219 0.0274980068206787 0.0300000000000011 0.0300000000000011 0.0 219 -220 0.0521900653839111 0.0499999999999972 0.0499999999999972 0.0 220 -221 0.0259828567504883 0.0300000000000011 0.0300000000000011 0.0 221 -222 0.0233159065246582 0.0200000000000031 0.0200000000000031 0.0 222 -223 0.0232350826263428 0.019999999999996 0.019999999999996 0.0 223 -224 0.023000955581665 0.0300000000000011 0.0300000000000011 0.0 224 -225 0.0230231285095215 0.0200000000000031 0.0200000000000031 0.0 225 -226 0.022864818572998 0.019999999999996 0.019999999999996 0.0 226 -227 0.0486090183258057 0.0500000000000043 0.0500000000000043 0.0 227 -228 0.0247719287872314 0.029999999999994 0.029999999999994 0.0 228 -229 0.0233240127563477 0.0200000000000031 0.0200000000000031 0.0 229 -230 0.0263748168945312 0.0300000000000011 0.0300000000000011 0.0 230 -231 0.0231301784515381 0.019999999999996 0.019999999999996 0.0 231 -232 0.0229740142822266 0.0200000000000031 0.0200000000000031 0.0 232 -233 0.0233769416809082 0.0300000000000011 0.0300000000000011 0.0 233 -234 0.0495500564575195 0.0499999999999972 0.0499999999999972 0.0 234 -235 0.0234000682830811 0.0200000000000031 0.0200000000000031 0.0 235 -236 0.0231790542602539 0.019999999999996 0.019999999999996 0.0 236 -237 0.0230810642242432 0.0300000000000011 0.0300000000000011 0.0 237 -238 0.0229249000549316 0.0200000000000031 0.0200000000000031 0.0 238 -239 0.0257270336151123 0.019999999999996 0.019999999999996 0.0 239 -240 0.0246570110321045 0.0300000000000011 0.0300000000000011 0.0 240 -241 0.049109935760498 0.0499999999999972 0.0499999999999972 0.0 241 -242 0.0233631134033203 0.0200000000000031 0.0200000000000031 0.0 242 -243 0.0232560634613037 0.0300000000000011 0.0300000000000011 0.0 243 -244 0.0232639312744141 0.019999999999996 0.019999999999996 0.0 244 -245 0.0231678485870361 0.0200000000000031 0.0200000000000031 0.0 245 -246 0.0229339599609375 0.0200000000000031 0.0200000000000031 0.0 246 -247 0.0234620571136475 0.029999999999994 0.029999999999994 0.0 247 -248 0.0517890453338623 0.0500000000000043 0.0500000000000043 0.0 248 -249 0.0233941078186035 0.019999999999996 0.019999999999996 0.0 249 -250 0.0230710506439209 0.0300000000000011 0.0300000000000011 0.0 250 -251 0.0229940414428711 0.0200000000000031 0.0200000000000031 0.0 251 -252 0.0231740474700928 0.019999999999996 0.019999999999996 0.0 252 -253 0.0238161087036133 0.0300000000000011 0.0300000000000011 0.0 253 -254 0.0480771064758301 0.0399999999999991 0.0399999999999991 0.0 254 -255 0.0314779281616211 0.0399999999999991 0.0399999999999991 0.0 255 -256 0.0233800411224365 0.0200000000000031 0.0200000000000031 0.0 256 -257 0.0274808406829834 0.0300000000000011 0.0300000000000011 0.0 257 -258 0.0230331420898438 0.019999999999996 0.019999999999996 0.0 258 -259 0.0229949951171875 0.0200000000000031 0.0200000000000031 0.0 259 -260 0.0227811336517334 0.0300000000000011 0.0300000000000011 0.0 260 -261 0.048346996307373 0.0399999999999991 0.0399999999999991 0.0 261 -262 0.0237669944763184 0.0300000000000011 0.0300000000000011 0.0 262 -263 0.0234119892120361 0.019999999999996 0.019999999999996 0.0 263 -264 0.0230929851531982 0.0300000000000011 0.0300000000000011 0.0 264 -265 0.0237300395965576 0.0200000000000031 0.0200000000000031 0.0 265 -266 0.0250859260559082 0.019999999999996 0.019999999999996 0.0 266 -267 0.0239300727844238 0.0300000000000011 0.0300000000000011 0.0 267 -268 0.048508882522583 0.0499999999999972 0.0499999999999972 0.0 268 -269 0.0236718654632568 0.0200000000000031 0.0200000000000031 0.0 269 -270 0.0233798027038574 0.0200000000000031 0.0200000000000031 0.0 270 -271 0.0230140686035156 0.029999999999994 0.029999999999994 0.0 271 -272 0.023123025894165 0.0200000000000031 0.0200000000000031 0.0 272 -273 0.0230128765106201 0.0200000000000031 0.0200000000000031 0.0 273 -274 0.0230889320373535 0.029999999999994 0.029999999999994 0.0 274 -275 0.0541810989379883 0.0500000000000043 0.0500000000000043 0.0 275 -276 0.0234689712524414 0.019999999999996 0.019999999999996 0.0 276 -277 0.0232949256896973 0.0300000000000011 0.0300000000000011 0.0 277 -278 0.0229971408843994 0.0200000000000031 0.0200000000000031 0.0 278 -279 0.023047924041748 0.019999999999996 0.019999999999996 0.0 279 -280 0.0229649543762207 0.0300000000000011 0.0300000000000011 0.0 280 -281 0.0231289863586426 0.0200000000000031 0.0200000000000031 0.0 281 -282 0.0487880706787109 0.0499999999999972 0.0499999999999972 0.0 282 -283 0.0234870910644531 0.0200000000000031 0.0200000000000031 0.0 283 -284 0.0263619422912598 0.0300000000000011 0.0300000000000011 0.0 284 -285 0.0238580703735352 0.019999999999996 0.019999999999996 0.0 285 -286 0.0231029987335205 0.0300000000000011 0.0300000000000011 0.0 286 -287 0.0230438709259033 0.019999999999996 0.019999999999996 0.0 287 -288 0.0477249622344971 0.0500000000000043 0.0500000000000043 0.0 288 -289 0.024465799331665 0.019999999999996 0.019999999999996 0.0 289 -290 0.023345947265625 0.0200000000000031 0.0200000000000031 0.0 290 -291 0.0297031402587891 0.0300000000000011 0.0300000000000011 0.0 291 -292 0.0236890316009521 0.0300000000000011 0.0300000000000011 0.0 292 -293 0.0227231979370117 0.019999999999996 0.019999999999996 0.0 293 -294 0.0271649360656738 0.0300000000000011 0.0300000000000011 0.0 294 -295 0.0483009815216064 0.0499999999999972 0.0499999999999972 0.0 295 -296 0.0236551761627197 0.0200000000000031 0.0200000000000031 0.0 296 -297 0.0233678817749023 0.0200000000000031 0.0200000000000031 0.0 297 -298 0.0230870246887207 0.029999999999994 0.029999999999994 0.0 298 -299 0.0232620239257812 0.0200000000000031 0.0200000000000031 0.0 299 -300 0.0231177806854248 0.0200000000000031 0.0200000000000031 0.0 300 -301 0.0231750011444092 0.029999999999994 0.029999999999994 0.0 301 -302 0.0530638694763184 0.0500000000000043 0.0500000000000043 0.0 302 -303 0.0237231254577637 0.019999999999996 0.019999999999996 0.0 303 -304 0.0232911109924316 0.0300000000000011 0.0300000000000011 0.0 304 -305 0.0233948230743408 0.0200000000000031 0.0200000000000031 0.0 305 -306 0.0232441425323486 0.019999999999996 0.019999999999996 0.0 306 -307 0.0230438709259033 0.0300000000000011 0.0300000000000011 0.0 307 -308 0.0230541229248047 0.0200000000000031 0.0200000000000031 0.0 308 -309 0.0487320423126221 0.0499999999999972 0.0499999999999972 0.0 309 -310 0.0232770442962646 0.0200000000000031 0.0200000000000031 0.0 310 -311 0.0253291130065918 0.0300000000000011 0.0300000000000011 0.0 311 -312 0.0244429111480713 0.019999999999996 0.019999999999996 0.0 312 -313 0.0229580402374268 0.0200000000000031 0.0200000000000031 0.0 313 -314 0.0229830741882324 0.029999999999994 0.029999999999994 0.0 314 -315 0.022658109664917 0.0200000000000031 0.0200000000000031 0.0 315 -316 0.0462629795074463 0.0499999999999972 0.0499999999999972 0.0 316 -317 0.023582935333252 0.0200000000000031 0.0200000000000031 0.0 317 -318 0.0232110023498535 0.0200000000000031 0.0200000000000031 0.0 318 -319 0.0232689380645752 0.029999999999994 0.029999999999994 0.0 319 -320 0.0231220722198486 0.0200000000000031 0.0200000000000031 0.0 320 -321 0.0256280899047852 0.0300000000000011 0.0300000000000011 0.0 321 -322 0.0481250286102295 0.0399999999999991 0.0399999999999991 0.0 322 -323 0.0235259532928467 0.0300000000000011 0.0300000000000011 0.0 323 -324 0.0235180854797363 0.019999999999996 0.019999999999996 0.0 324 -325 0.0231471061706543 0.0200000000000031 0.0200000000000031 0.0 325 -326 0.0238540172576904 0.0300000000000011 0.0300000000000011 0.0 326 -327 0.02276611328125 0.019999999999996 0.019999999999996 0.0 327 -328 0.0304388999938965 0.0399999999999991 0.0300000000000011 0.01 328 -329 0.0523970127105713 0.0500000000000043 0.0500000000000043 0.0 329 -330 0.023996114730835 0.029999999999994 0.029999999999994 0.0 330 -331 0.0234379768371582 0.0200000000000031 0.0200000000000031 0.0 331 -332 0.0230920314788818 0.019999999999996 0.019999999999996 0.0 332 -333 0.02305006980896 0.0300000000000011 0.0300000000000011 0.0 333 -334 0.0229852199554443 0.0200000000000031 0.0200000000000031 0.0 334 -335 0.0228848457336426 0.019999999999996 0.019999999999996 0.0 335 -336 0.0461750030517578 0.0500000000000043 0.0500000000000043 0.0 336 -337 0.0242049694061279 0.019999999999996 0.019999999999996 0.0 337 -338 0.0232689380645752 0.0300000000000011 0.0300000000000011 0.0 338 -339 0.027277946472168 0.0200000000000031 0.0200000000000031 0.0 339 -340 0.0230321884155273 0.0300000000000011 0.0300000000000011 0.0 340 -341 0.0230269432067871 0.019999999999996 0.019999999999996 0.0 341 -342 0.0231468677520752 0.0200000000000031 0.0200000000000031 0.0 342 -343 0.0488090515136719 0.0499999999999972 0.0499999999999972 0.0 343 -344 0.0232529640197754 0.0300000000000011 0.0300000000000011 0.0 344 -345 0.0230770111083984 0.0200000000000031 0.0200000000000031 0.0 345 -346 0.0230259895324707 0.019999999999996 0.019999999999996 0.0 346 -347 0.0230309963226318 0.0200000000000031 0.0200000000000031 0.0 347 -348 0.026080846786499 0.0300000000000011 0.0300000000000011 0.0 348 -349 0.023392915725708 0.019999999999996 0.019999999999996 0.0 349 -350 0.0461099147796631 0.0499999999999972 0.0499999999999972 0.0 350 -351 0.0233287811279297 0.0200000000000031 0.0200000000000031 0.0 351 -352 0.023190975189209 0.0300000000000011 0.0300000000000011 0.0 352 -353 0.0231750011444092 0.019999999999996 0.019999999999996 0.0 353 -354 0.0230758190155029 0.0200000000000031 0.0200000000000031 0.0 354 -355 0.0229721069335938 0.0300000000000011 0.0300000000000011 0.0 355 -356 0.0483551025390625 0.0499999999999972 0.0499999999999972 0.0 356 -357 0.0269951820373535 0.0200000000000031 0.0200000000000031 0.0 357 -358 0.0235021114349365 0.0300000000000011 0.0300000000000011 0.0 358 -359 0.0231399536132812 0.019999999999996 0.019999999999996 0.0 359 -360 0.0230071544647217 0.0200000000000031 0.0200000000000031 0.0 360 -361 0.0228490829467773 0.019999999999996 0.019999999999996 0.0 361 -362 0.0229380130767822 0.0300000000000011 0.0300000000000011 0.0 362 -363 0.0501840114593506 0.0500000000000043 0.0500000000000043 0.0 363 -364 0.029426097869873 0.029999999999994 0.029999999999994 0.0 364 -365 0.023777961730957 0.0200000000000031 0.0200000000000031 0.0 365 -366 0.0276000499725342 0.0300000000000011 0.0300000000000011 0.0 366 -367 0.0230789184570312 0.019999999999996 0.019999999999996 0.0 367 -368 0.0233089923858643 0.0200000000000031 0.0200000000000031 0.0 368 -369 0.0229260921478271 0.0300000000000011 0.0300000000000011 0.0 369 -370 0.0456759929656982 0.0399999999999991 0.0399999999999991 0.0 370 -371 0.0234260559082031 0.0300000000000011 0.0300000000000011 0.0 371 -372 0.0235531330108643 0.019999999999996 0.019999999999996 0.0 372 -373 0.0229899883270264 0.0200000000000031 0.0200000000000031 0.0 373 -374 0.0239078998565674 0.0300000000000011 0.0300000000000011 0.0 374 -375 0.0229928493499756 0.019999999999996 0.019999999999996 0.0 375 -376 0.0269260406494141 0.0300000000000011 0.0300000000000011 0.0 376 -377 0.0490090847015381 0.0499999999999972 0.0499999999999972 0.0 377 -378 0.0235331058502197 0.0200000000000031 0.0200000000000031 0.0 378 -379 0.0232670307159424 0.0200000000000031 0.0200000000000031 0.0 379 -380 0.0229969024658203 0.029999999999994 0.029999999999994 0.0 380 -381 0.0230321884155273 0.0200000000000031 0.0200000000000031 0.0 381 -382 0.0229909420013428 0.0200000000000031 0.0200000000000031 0.0 382 -383 0.022780179977417 0.029999999999994 0.029999999999994 0.0 383 -384 0.0519418716430664 0.0500000000000043 0.0500000000000043 0.0 384 -385 0.0233969688415527 0.019999999999996 0.019999999999996 0.0 385 -386 0.0231471061706543 0.0200000000000031 0.0200000000000031 0.0 386 -387 0.0230250358581543 0.0300000000000011 0.0300000000000011 0.0 387 -388 0.0229988098144531 0.019999999999996 0.019999999999996 0.0 388 -389 0.0229358673095703 0.0200000000000031 0.0200000000000031 0.0 389 -390 0.0482490062713623 0.0499999999999972 0.0499999999999972 0.0 390 -391 0.0239629745483398 0.0200000000000031 0.0200000000000031 0.0 391 -392 0.0235099792480469 0.0300000000000011 0.0300000000000011 0.0 392 -393 0.0232250690460205 0.019999999999996 0.019999999999996 0.0 393 -394 0.0269668102264404 0.0300000000000011 0.0300000000000011 0.0 394 -395 0.0230469703674316 0.0200000000000031 0.0200000000000031 0.0 395 -396 0.0230209827423096 0.019999999999996 0.019999999999996 0.0 396 -397 0.0488598346710205 0.0500000000000043 0.0500000000000043 0.0 397 -398 0.0243711471557617 0.029999999999994 0.029999999999994 0.0 398 -399 0.023435115814209 0.0200000000000031 0.0200000000000031 0.0 399 -400 0.0307729244232178 0.0300000000000011 0.0300000000000011 0.0 400 -401 0.0231430530548096 0.0300000000000011 0.0300000000000011 0.0 401 -402 0.0228579044342041 0.019999999999996 0.019999999999996 0.0 402 -403 0.0268239974975586 0.0300000000000011 0.0300000000000011 0.0 403 -404 0.0487518310546875 0.0399999999999991 0.0399999999999991 0.0 404 -405 0.0233860015869141 0.0300000000000011 0.0300000000000011 0.0 405 -406 0.0233309268951416 0.0200000000000031 0.0200000000000031 0.0 406 -407 0.0230538845062256 0.019999999999996 0.019999999999996 0.0 407 -408 0.0232100486755371 0.0300000000000011 0.0300000000000011 0.0 408 -409 0.0231878757476807 0.0200000000000031 0.0200000000000031 0.0 409 -410 0.0229208469390869 0.019999999999996 0.019999999999996 0.0 410 -411 0.0527458190917969 0.0600000000000023 0.0600000000000023 0.0 411 -412 0.0235259532928467 0.019999999999996 0.019999999999996 0.0 412 -413 0.0231070518493652 0.0200000000000031 0.0200000000000031 0.0 413 -414 0.0231637954711914 0.0300000000000011 0.0300000000000011 0.0 414 -415 0.0231881141662598 0.019999999999996 0.019999999999996 0.0 415 -416 0.0229959487915039 0.0200000000000031 0.0200000000000031 0.0 416 -417 0.0480611324310303 0.0499999999999972 0.0499999999999972 0.0 417 -418 0.0235860347747803 0.0200000000000031 0.0200000000000031 0.0 418 -419 0.0235400199890137 0.0300000000000011 0.0300000000000011 0.0 419 -420 0.0231409072875977 0.019999999999996 0.019999999999996 0.0 420 -421 0.0267078876495361 0.0300000000000011 0.0300000000000011 0.0 421 -422 0.0230278968811035 0.0200000000000031 0.0200000000000031 0.0 422 -423 0.0228691101074219 0.019999999999996 0.019999999999996 0.0 423 -424 0.0483551025390625 0.0500000000000043 0.0500000000000043 0.0 424 -425 0.0237739086151123 0.029999999999994 0.029999999999994 0.0 425 -426 0.0233981609344482 0.0200000000000031 0.0200000000000031 0.0 426 -427 0.0230469703674316 0.0200000000000031 0.0200000000000031 0.0 427 -428 0.0233399868011475 0.029999999999994 0.029999999999994 0.0 428 -429 0.0231611728668213 0.0200000000000031 0.0200000000000031 0.0 429 -430 0.0267009735107422 0.0300000000000011 0.0300000000000011 0.0 430 -431 0.0472571849822998 0.0399999999999991 0.0399999999999991 0.0 431 -432 0.0234270095825195 0.0300000000000011 0.0300000000000011 0.0 432 -433 0.0233609676361084 0.019999999999996 0.019999999999996 0.0 433 -434 0.0230159759521484 0.0200000000000031 0.0200000000000031 0.0 434 -435 0.0242648124694824 0.0300000000000011 0.0300000000000011 0.0 435 -436 0.0230550765991211 0.019999999999996 0.019999999999996 0.0 436 -437 0.0298559665679932 0.0300000000000011 0.0300000000000011 0.0 437 -438 0.0506420135498047 0.0500000000000043 0.0500000000000043 0.0 438 -439 0.0245800018310547 0.029999999999994 0.029999999999994 0.0 439 -440 0.0232729911804199 0.0200000000000031 0.0200000000000031 0.0 440 -441 0.023047924041748 0.019999999999996 0.019999999999996 0.0 441 -442 0.0230588912963867 0.0300000000000011 0.0300000000000011 0.0 442 -443 0.0230181217193604 0.0200000000000031 0.0200000000000031 0.0 443 -444 0.0474259853363037 0.0499999999999972 0.0499999999999972 0.0 444 -445 0.0234999656677246 0.0200000000000031 0.0200000000000031 0.0 445 -446 0.0245218276977539 0.019999999999996 0.019999999999996 0.0 446 -447 0.0232257843017578 0.0300000000000011 0.0300000000000011 0.0 447 -448 0.0262331962585449 0.0200000000000031 0.0200000000000031 0.0 448 -449 0.0228760242462158 0.0300000000000011 0.0300000000000011 0.0 449 -450 0.0228469371795654 0.019999999999996 0.019999999999996 0.0 450 -451 0.0489568710327148 0.0500000000000043 0.0500000000000043 0.0 451 -452 0.0236458778381348 0.019999999999996 0.019999999999996 0.0 452 -453 0.0232670307159424 0.0300000000000011 0.0300000000000011 0.0 453 -454 0.0231130123138428 0.0200000000000031 0.0200000000000031 0.0 454 -455 0.0231020450592041 0.019999999999996 0.019999999999996 0.0 455 -456 0.0229918956756592 0.0300000000000011 0.0300000000000011 0.0 456 -457 0.0239298343658447 0.0200000000000031 0.0200000000000031 0.0 457 -458 0.0493390560150146 0.0499999999999972 0.0499999999999972 0.0 458 -459 0.0235741138458252 0.019999999999996 0.019999999999996 0.0 459 -460 0.0232348442077637 0.0300000000000011 0.0300000000000011 0.0 460 -461 0.023144006729126 0.0200000000000031 0.0200000000000031 0.0 461 -462 0.0232930183410645 0.019999999999996 0.019999999999996 0.0 462 -463 0.0231001377105713 0.0300000000000011 0.0300000000000011 0.0 463 -464 0.022939920425415 0.0200000000000031 0.0200000000000031 0.0 464 -465 0.0494201183319092 0.0499999999999972 0.0499999999999972 0.0 465 -466 0.0259408950805664 0.0200000000000031 0.0200000000000031 0.0 466 -467 0.0232219696044922 0.0300000000000011 0.0300000000000011 0.0 467 -468 0.0229430198669434 0.019999999999996 0.019999999999996 0.0 468 -469 0.0229699611663818 0.0200000000000031 0.0200000000000031 0.0 469 -470 0.023082971572876 0.0300000000000011 0.0300000000000011 0.0 470 -471 0.0460779666900635 0.0399999999999991 0.0399999999999991 0.0 471 -472 0.0259521007537842 0.0300000000000011 0.0300000000000011 0.0 472 -473 0.0284790992736816 0.029999999999994 0.029999999999994 0.0 473 -474 0.0231249332427979 0.0200000000000031 0.0200000000000031 0.0 474 -475 0.0256848335266113 0.0300000000000011 0.0300000000000011 0.0 475 -476 0.0245170593261719 0.019999999999996 0.019999999999996 0.0 476 -477 0.0228760242462158 0.0200000000000031 0.0200000000000031 0.0 477 -478 0.0482878684997559 0.0499999999999972 0.0499999999999972 0.0 478 -479 0.0235881805419922 0.0300000000000011 0.0300000000000011 0.0 479 -480 0.0232489109039307 0.0200000000000031 0.0200000000000031 0.0 480 -481 0.0233352184295654 0.019999999999996 0.019999999999996 0.0 481 -482 0.0229990482330322 0.0300000000000011 0.0300000000000011 0.0 482 -483 0.0238139629364014 0.0200000000000031 0.0200000000000031 0.0 483 -484 0.0229029655456543 0.019999999999996 0.019999999999996 0.0 484 -485 0.0516219139099121 0.0500000000000043 0.0500000000000043 0.0 485 -486 0.023360013961792 0.029999999999994 0.029999999999994 0.0 486 -487 0.0233120918273926 0.0200000000000031 0.0200000000000031 0.0 487 -488 0.0231151580810547 0.0200000000000031 0.0200000000000031 0.0 488 -489 0.0229690074920654 0.029999999999994 0.029999999999994 0.0 489 -490 0.0230300426483154 0.0200000000000031 0.0200000000000031 0.0 490 -491 0.0228698253631592 0.0200000000000031 0.0200000000000031 0.0 491 -492 0.0457451343536377 0.0499999999999972 0.0499999999999972 0.0 492 -493 0.0249300003051758 0.0200000000000031 0.0200000000000031 0.0 493 -494 0.0259578227996826 0.029999999999994 0.029999999999994 0.0 494 -495 0.0231161117553711 0.0200000000000031 0.0200000000000031 0.0 495 -496 0.0229859352111816 0.0300000000000011 0.0300000000000011 0.0 496 -497 0.0230338573455811 0.019999999999996 0.019999999999996 0.0 497 -498 0.0484039783477783 0.0500000000000043 0.0500000000000043 0.0 498 -499 0.0237560272216797 0.019999999999996 0.019999999999996 0.0 499 -500 0.0233612060546875 0.0200000000000031 0.0200000000000031 0.0 500 -501 0.0233550071716309 0.0300000000000011 0.0300000000000011 0.0 501 -502 0.0231049060821533 0.019999999999996 0.019999999999996 0.0 502 -503 0.026008129119873 0.0300000000000011 0.0300000000000011 0.0 503 -504 0.0228710174560547 0.0200000000000031 0.0200000000000031 0.0 504 -505 0.0483829975128174 0.0499999999999972 0.0499999999999972 0.0 505 -506 0.0237247943878174 0.0200000000000031 0.0200000000000031 0.0 506 -507 0.02410888671875 0.029999999999994 0.029999999999994 0.0 507 -508 0.0231809616088867 0.0200000000000031 0.0200000000000031 0.0 508 -509 0.0286002159118652 0.0300000000000011 0.0300000000000011 0.0 509 -510 0.0245559215545654 0.019999999999996 0.019999999999996 0.0 510 -511 0.0228598117828369 0.0300000000000011 0.0300000000000011 0.0 511 -512 0.0508739948272705 0.0500000000000043 0.0500000000000043 0.0 512 -513 0.0235428810119629 0.019999999999996 0.019999999999996 0.0 513 -514 0.0231621265411377 0.0200000000000031 0.0200000000000031 0.0 514 -515 0.0231170654296875 0.0300000000000011 0.0300000000000011 0.0 515 -516 0.023061990737915 0.019999999999996 0.019999999999996 0.0 516 -517 0.0231702327728271 0.0200000000000031 0.0200000000000031 0.0 517 -518 0.0230000019073486 0.0300000000000011 0.0300000000000011 0.0 518 -519 0.0464069843292236 0.0399999999999991 0.0399999999999991 0.0 519 -520 0.0233228206634521 0.0300000000000011 0.0300000000000011 0.0 520 -521 0.0263099670410156 0.019999999999996 0.019999999999996 0.0 521 -522 0.0230581760406494 0.0300000000000011 0.0300000000000011 0.0 522 -523 0.0230810642242432 0.019999999999996 0.019999999999996 0.0 523 -524 0.0231571197509766 0.0200000000000031 0.0200000000000031 0.0 524 -525 0.0479769706726074 0.0499999999999972 0.0499999999999972 0.0 525 -526 0.0237100124359131 0.0200000000000031 0.0200000000000031 0.0 526 -527 0.0232999324798584 0.0300000000000011 0.0300000000000011 0.0 527 -528 0.0232400894165039 0.019999999999996 0.019999999999996 0.0 528 -529 0.0229151248931885 0.0200000000000031 0.0200000000000031 0.0 529 -530 0.0261499881744385 0.0300000000000011 0.0300000000000011 0.0 530 -531 0.0231139659881592 0.019999999999996 0.019999999999996 0.0 531 -532 0.0486347675323486 0.0500000000000043 0.0500000000000043 0.0 532 -533 0.023561954498291 0.0300000000000011 0.0300000000000011 0.0 533 -534 0.0232679843902588 0.019999999999996 0.019999999999996 0.0 534 -535 0.023292064666748 0.0200000000000031 0.0200000000000031 0.0 535 -536 0.0231978893280029 0.0300000000000011 0.0300000000000011 0.0 536 -537 0.0229289531707764 0.019999999999996 0.019999999999996 0.0 537 -538 0.0231430530548096 0.0200000000000031 0.0200000000000031 0.0 538 -539 0.0520761013031006 0.0499999999999972 0.0499999999999972 0.0 539 -540 0.0233478546142578 0.0300000000000011 0.0300000000000011 0.0 540 -541 0.0231640338897705 0.019999999999996 0.019999999999996 0.0 541 -542 0.0230228900909424 0.0200000000000031 0.0200000000000031 0.0 542 -543 0.0231611728668213 0.0300000000000011 0.0300000000000011 0.0 543 -544 0.0238080024719238 0.019999999999996 0.019999999999996 0.0 544 -545 0.0228090286254883 0.0200000000000031 0.0200000000000031 0.0 545 -546 0.0527040958404541 0.0600000000000023 0.0600000000000023 0.0 546 -547 0.0233268737792969 0.019999999999996 0.019999999999996 0.0 547 -548 0.0268959999084473 0.0300000000000011 0.0300000000000011 0.0 548 -549 0.02323317527771 0.0200000000000031 0.0200000000000031 0.0 549 -550 0.0231490135192871 0.019999999999996 0.019999999999996 0.0 550 -551 0.0229969024658203 0.0300000000000011 0.0300000000000011 0.0 551 -552 0.0478971004486084 0.0399999999999991 0.0399999999999991 0.0 552 -553 0.0237979888916016 0.0300000000000011 0.0300000000000011 0.0 553 -554 0.0234241485595703 0.0200000000000031 0.0200000000000031 0.0 554 -555 0.023115873336792 0.019999999999996 0.019999999999996 0.0 555 -556 0.0237019062042236 0.0300000000000011 0.0300000000000011 0.0 556 -557 0.0229599475860596 0.0200000000000031 0.0200000000000031 0.0 557 -558 0.0263819694519043 0.029999999999994 0.029999999999994 0.0 558 -559 0.0488171577453613 0.0500000000000043 0.0500000000000043 0.0 559 -560 0.023486852645874 0.019999999999996 0.019999999999996 0.0 560 -561 0.0233681201934814 0.0200000000000031 0.0200000000000031 0.0 561 -562 0.0230288505554199 0.0300000000000011 0.0300000000000011 0.0 562 -563 0.022907018661499 0.019999999999996 0.019999999999996 0.0 563 -564 0.0227639675140381 0.0200000000000031 0.0200000000000031 0.0 564 -565 0.0228629112243652 0.019999999999996 0.019999999999996 0.0 565 -566 0.0502970218658447 0.0499999999999972 0.0499999999999972 0.0 566 -567 0.0234780311584473 0.0200000000000031 0.0200000000000031 0.0 567 -568 0.0246810913085938 0.019999999999996 0.019999999999996 0.0 568 -569 0.0233399868011475 0.0300000000000011 0.0300000000000011 0.0 569 -570 0.0233209133148193 0.0200000000000031 0.0200000000000031 0.0 570 -571 0.0233681201934814 0.019999999999996 0.019999999999996 0.0 571 -572 0.0485889911651611 0.0500000000000043 0.0500000000000043 0.0 572 -573 0.0244321823120117 0.029999999999994 0.029999999999994 0.0 573 -574 0.0241711139678955 0.0200000000000031 0.0200000000000031 0.0 574 -575 0.0249710083007812 0.0300000000000011 0.0300000000000011 0.0 575 -576 0.0267090797424316 0.019999999999996 0.019999999999996 0.0 576 -577 0.0232799053192139 0.0300000000000011 0.0300000000000011 0.0 577 -578 0.0231969356536865 0.0200000000000031 0.0200000000000031 0.0 578 -579 0.0491700172424316 0.0499999999999972 0.0499999999999972 0.0 579 -580 0.025277853012085 0.0200000000000031 0.0200000000000031 0.0 580 -581 0.0265741348266602 0.0300000000000011 0.0300000000000011 0.0 581 -582 0.0273458957672119 0.029999999999994 0.029999999999994 0.0 582 -583 0.0252799987792969 0.0200000000000031 0.0200000000000031 0.0 583 -584 0.0245480537414551 0.0300000000000011 0.0300000000000011 0.0 584 -585 0.0260021686553955 0.019999999999996 0.019999999999996 0.0 585 -586 0.0474262237548828 0.0500000000000043 0.0500000000000043 0.0 586 -587 0.0234909057617188 0.0300000000000011 0.0300000000000011 0.0 587 -588 0.023231029510498 0.019999999999996 0.019999999999996 0.0 588 -589 0.0231058597564697 0.0200000000000031 0.0200000000000031 0.0 589 -590 0.0234060287475586 0.0300000000000011 0.0300000000000011 0.0 590 -591 0.0230560302734375 0.019999999999996 0.019999999999996 0.0 591 -592 0.0236189365386963 0.0200000000000031 0.0200000000000031 0.0 592 -593 0.0531678199768066 0.0599999999999952 0.0599999999999952 0.0 593 -594 0.0234320163726807 0.0200000000000031 0.0200000000000031 0.0 594 -595 0.0234501361846924 0.019999999999996 0.019999999999996 0.0 595 -596 0.023097038269043 0.0300000000000011 0.0300000000000011 0.0 596 -597 0.0239620208740234 0.0200000000000031 0.0200000000000031 0.0 597 -598 0.023064136505127 0.019999999999996 0.019999999999996 0.0 598 -599 0.0469310283660889 0.0500000000000043 0.0500000000000043 0.0 599 -600 0.0238142013549805 0.019999999999996 0.019999999999996 0.0 600 -601 0.0232729911804199 0.0200000000000031 0.0200000000000031 0.0 601 -602 0.0264449119567871 0.0300000000000011 0.0300000000000011 0.0 602 -603 0.0250101089477539 0.0300000000000011 0.0300000000000011 0.0 603 -604 0.022953987121582 0.019999999999996 0.019999999999996 0.0 604 -605 0.0227360725402832 0.0200000000000031 0.0200000000000031 0.0 605 -606 0.0484528541564941 0.0499999999999972 0.0499999999999972 0.0 606 -607 0.0238401889801025 0.0200000000000031 0.0200000000000031 0.0 607 -608 0.023205041885376 0.0300000000000011 0.0300000000000011 0.0 608 -609 0.0230309963226318 0.019999999999996 0.019999999999996 0.0 609 -610 0.0233237743377686 0.0200000000000031 0.0200000000000031 0.0 610 -611 0.0229151248931885 0.0300000000000011 0.0300000000000011 0.0 611 -612 0.0266458988189697 0.019999999999996 0.019999999999996 0.0 612 -613 0.0459887981414795 0.0499999999999972 0.0499999999999972 0.0 613 -614 0.0233139991760254 0.0200000000000031 0.0200000000000031 0.0 614 -615 0.0232000350952148 0.0300000000000011 0.0300000000000011 0.0 615 -616 0.0238010883331299 0.019999999999996 0.019999999999996 0.0 616 -617 0.0231029987335205 0.0200000000000031 0.0200000000000031 0.0 617 -618 0.031013011932373 0.0300000000000011 0.0300000000000011 0.0 618 -619 0.0480711460113525 0.0499999999999972 0.0499999999999972 0.0 619 -620 0.0269320011138916 0.0300000000000011 0.0300000000000011 0.0 620 -621 0.0233550071716309 0.0200000000000031 0.0200000000000031 0.0 621 -622 0.0232939720153809 0.029999999999994 0.029999999999994 0.0 622 -623 0.0229189395904541 0.0200000000000031 0.0200000000000031 0.0 623 -624 0.022881031036377 0.0200000000000031 0.0200000000000031 0.0 624 -625 0.0228018760681152 0.029999999999994 0.029999999999994 0.0 625 -626 0.0487551689147949 0.0400000000000063 0.0400000000000063 0.0 626 -627 0.0234999656677246 0.029999999999994 0.029999999999994 0.0 627 -628 0.023996114730835 0.0200000000000031 0.0200000000000031 0.0 628 -629 0.0232369899749756 0.0300000000000011 0.0300000000000011 0.0 629 -630 0.0269510746002197 0.019999999999996 0.019999999999996 0.0 630 -631 0.024583101272583 0.0300000000000011 0.0300000000000011 0.0 631 -632 0.0230491161346436 0.0200000000000031 0.0200000000000031 0.0 632 -633 0.0473129749298096 0.0499999999999972 0.0499999999999972 0.0 633 -634 0.0233309268951416 0.0200000000000031 0.0200000000000031 0.0 634 -635 0.0232229232788086 0.019999999999996 0.019999999999996 0.0 635 -636 0.0229809284210205 0.0300000000000011 0.0300000000000011 0.0 636 -637 0.0231940746307373 0.0200000000000031 0.0200000000000031 0.0 637 -638 0.0231130123138428 0.019999999999996 0.019999999999996 0.0 638 -639 0.0522749423980713 0.0500000000000043 0.0500000000000043 0.0 639 -640 0.0235979557037354 0.029999999999994 0.029999999999994 0.0 640 -641 0.0233168601989746 0.0200000000000031 0.0200000000000031 0.0 641 -642 0.0231528282165527 0.0300000000000011 0.0300000000000011 0.0 642 -643 0.0232172012329102 0.019999999999996 0.019999999999996 0.0 643 -644 0.0227980613708496 0.0200000000000031 0.0200000000000031 0.0 644 -645 0.0227620601654053 0.0200000000000031 0.0200000000000031 0.0 645 -646 0.0490891933441162 0.0499999999999972 0.0499999999999972 0.0 646 -647 0.0240461826324463 0.0300000000000011 0.0300000000000011 0.0 647 -648 0.0267610549926758 0.019999999999996 0.019999999999996 0.0 648 -649 0.0232100486755371 0.0300000000000011 0.0300000000000011 0.0 649 -650 0.0230560302734375 0.0200000000000031 0.0200000000000031 0.0 650 -651 0.023500919342041 0.019999999999996 0.019999999999996 0.0 651 -652 0.0230460166931152 0.0300000000000011 0.0300000000000011 0.0 652 -653 0.0512759685516357 0.0500000000000043 0.0500000000000043 0.0 653 -654 0.0272390842437744 0.019999999999996 0.019999999999996 0.0 654 -655 0.0247349739074707 0.0300000000000011 0.0300000000000011 0.0 655 -656 0.0230178833007812 0.0200000000000031 0.0200000000000031 0.0 656 -657 0.0271899700164795 0.029999999999994 0.029999999999994 0.0 657 -658 0.0229711532592773 0.0200000000000031 0.0200000000000031 0.0 658 -659 0.0228548049926758 0.019999999999996 0.019999999999996 0.0 659 -660 0.0488860607147217 0.0500000000000043 0.0500000000000043 0.0 660 -661 0.0232799053192139 0.0300000000000011 0.0300000000000011 0.0 661 -662 0.0232510566711426 0.019999999999996 0.019999999999996 0.0 662 -663 0.0229790210723877 0.0200000000000031 0.0200000000000031 0.0 663 -664 0.0242810249328613 0.0300000000000011 0.0300000000000011 0.0 664 -665 0.0230100154876709 0.019999999999996 0.019999999999996 0.0 665 -666 0.0498199462890625 0.0500000000000043 0.0500000000000043 0.0 666 -667 0.0237331390380859 0.019999999999996 0.019999999999996 0.0 667 -668 0.0234551429748535 0.0300000000000011 0.0300000000000011 0.0 668 -669 0.0231800079345703 0.0200000000000031 0.0200000000000031 0.0 669 -670 0.0229709148406982 0.019999999999996 0.019999999999996 0.0 670 -671 0.023015022277832 0.0300000000000011 0.0300000000000011 0.0 671 -672 0.0230131149291992 0.0200000000000031 0.0200000000000031 0.0 672 -673 0.0487980842590332 0.0499999999999972 0.0499999999999972 0.0 673 -674 0.0240719318389893 0.0200000000000031 0.0200000000000031 0.0 674 -675 0.0269160270690918 0.029999999999994 0.029999999999994 0.0 675 -676 0.0230348110198975 0.0200000000000031 0.0200000000000031 0.0 676 -677 0.0227870941162109 0.0300000000000011 0.0300000000000011 0.0 677 -678 0.0228049755096436 0.019999999999996 0.019999999999996 0.0 678 -679 0.0226888656616211 0.0200000000000031 0.0200000000000031 0.0 679 -680 0.0477821826934814 0.0499999999999972 0.0499999999999972 0.0 680 -681 0.0232739448547363 0.0200000000000031 0.0200000000000031 0.0 681 -682 0.023953914642334 0.0300000000000011 0.0300000000000011 0.0 682 -683 0.0229859352111816 0.019999999999996 0.019999999999996 0.0 683 -684 0.0254220962524414 0.0200000000000031 0.0200000000000031 0.0 684 -685 0.0239348411560059 0.0300000000000011 0.0300000000000011 0.0 685 -686 0.0478279590606689 0.0499999999999972 0.0499999999999972 0.0 686 -687 0.023798942565918 0.0200000000000031 0.0200000000000031 0.0 687 -688 0.0233008861541748 0.019999999999996 0.019999999999996 0.0 688 -689 0.0240800380706787 0.0300000000000011 0.0300000000000011 0.0 689 -690 0.0304360389709473 0.0300000000000011 0.0300000000000011 0.0 690 -691 0.022982120513916 0.019999999999996 0.019999999999996 0.0 691 -692 0.0228438377380371 0.0200000000000031 0.0200000000000031 0.0 692 -693 0.0521981716156006 0.0600000000000023 0.0600000000000023 0.0 693 -694 0.0234532356262207 0.019999999999996 0.019999999999996 0.0 694 -695 0.0232119560241699 0.0200000000000031 0.0200000000000031 0.0 695 -696 0.0229840278625488 0.0300000000000011 0.0300000000000011 0.0 696 -697 0.0229799747467041 0.019999999999996 0.019999999999996 0.0 697 -698 0.0229427814483643 0.0200000000000031 0.0200000000000031 0.0 698 -699 0.0228908061981201 0.0300000000000011 0.0300000000000011 0.0 699 -700 0.0482070446014404 0.0399999999999991 0.0399999999999991 0.0 700 -701 0.023360013961792 0.0300000000000011 0.0300000000000011 0.0 701 -702 0.027055025100708 0.019999999999996 0.019999999999996 0.0 702 -703 0.0230090618133545 0.0300000000000011 0.0300000000000011 0.0 703 -704 0.02317214012146 0.019999999999996 0.019999999999996 0.0 704 -705 0.022986888885498 0.0200000000000031 0.0200000000000031 0.0 705 -706 0.0481140613555908 0.0499999999999972 0.0499999999999972 0.0 706 -707 0.0237739086151123 0.0300000000000011 0.0300000000000011 0.0 707 -708 0.0233809947967529 0.0200000000000031 0.0200000000000031 0.0 708 -709 0.0233211517333984 0.019999999999996 0.019999999999996 0.0 709 -710 0.0229690074920654 0.0300000000000011 0.0300000000000011 0.0 710 -711 0.0244121551513672 0.0200000000000031 0.0200000000000031 0.0 711 -712 0.0250389575958252 0.019999999999996 0.019999999999996 0.0 712 -713 0.0485482215881348 0.0399999999999991 0.0399999999999991 0.0 713 -714 0.0234758853912354 0.0300000000000011 0.0300000000000011 0.0 714 -715 0.023453950881958 0.019999999999996 0.019999999999996 0.0 715 -716 0.0230729579925537 0.0200000000000031 0.0200000000000031 0.0 716 -717 0.0230581760406494 0.0300000000000011 0.0300000000000011 0.0 717 -718 0.0230929851531982 0.019999999999996 0.019999999999996 0.0 718 -719 0.0229818820953369 0.0200000000000031 0.0200000000000031 0.0 719 -720 0.0512728691101074 0.0499999999999972 0.0499999999999972 0.0 720 -721 0.0234599113464355 0.0300000000000011 0.0300000000000011 0.0 721 -722 0.023129940032959 0.019999999999996 0.019999999999996 0.0 722 -723 0.0229649543762207 0.0200000000000031 0.0200000000000031 0.0 723 -724 0.0230588912963867 0.0300000000000011 0.0300000000000011 0.0 724 -725 0.0236339569091797 0.019999999999996 0.019999999999996 0.0 725 -726 0.0562300682067871 0.0600000000000023 0.0600000000000023 0.0 726 -727 0.0310180187225342 0.0300000000000011 0.0300000000000011 0.0 727 -728 0.0244710445404053 0.0200000000000031 0.0200000000000031 0.0 728 -729 0.0285270214080811 0.029999999999994 0.029999999999994 0.0 729 -730 0.0235979557037354 0.0300000000000011 0.0300000000000011 0.0 730 -731 0.0233108997344971 0.0200000000000031 0.0200000000000031 0.0 731 -732 0.0233650207519531 0.019999999999996 0.019999999999996 0.0 732 -733 0.0499210357666016 0.0500000000000043 0.0500000000000043 0.0 733 -734 0.0240199565887451 0.0300000000000011 0.0300000000000011 0.0 734 -735 0.0234189033508301 0.019999999999996 0.019999999999996 0.0 735 -736 0.0239479541778564 0.0200000000000031 0.0200000000000031 0.0 736 -737 0.0234498977661133 0.0300000000000011 0.0300000000000011 0.0 737 -738 0.027393102645874 0.019999999999996 0.019999999999996 0.0 738 -739 0.0233581066131592 0.0300000000000011 0.0300000000000011 0.0 739 -740 0.0494859218597412 0.0499999999999972 0.0499999999999972 0.0 740 -741 0.023939847946167 0.0200000000000031 0.0200000000000031 0.0 741 -742 0.0237078666687012 0.0300000000000011 0.0300000000000011 0.0 742 -743 0.023622989654541 0.019999999999996 0.019999999999996 0.0 743 -744 0.0235440731048584 0.0200000000000031 0.0200000000000031 0.0 744 -745 0.0236668586730957 0.0300000000000011 0.0300000000000011 0.0 745 -746 0.0538251399993896 0.0499999999999972 0.0499999999999972 0.0 746 -747 0.0246829986572266 0.0300000000000011 0.0300000000000011 0.0 747 -748 0.0239181518554688 0.019999999999996 0.019999999999996 0.0 748 -749 0.02370285987854 0.0200000000000031 0.0200000000000031 0.0 749 -750 0.0234520435333252 0.0300000000000011 0.0300000000000011 0.0 750 -751 0.0234749317169189 0.019999999999996 0.019999999999996 0.0 751 -752 0.0232760906219482 0.0200000000000031 0.0200000000000031 0.0 752 -753 0.050915002822876 0.0499999999999972 0.0499999999999972 0.0 753 -754 0.0237371921539307 0.0300000000000011 0.0300000000000011 0.0 754 -755 0.0239219665527344 0.0200000000000031 0.0200000000000031 0.0 755 -756 0.0273880958557129 0.0300000000000011 0.0300000000000011 0.0 756 -757 0.0232698917388916 0.019999999999996 0.019999999999996 0.0 757 -758 0.0235319137573242 0.0300000000000011 0.0300000000000011 0.0 758 -759 0.0232620239257812 0.0200000000000031 0.0200000000000031 0.0 759 -760 0.0498092174530029 0.0499999999999972 0.0499999999999972 0.0 760 -761 0.0315971374511719 0.0300000000000011 0.0300000000000011 0.0 761 -762 0.0236649513244629 0.019999999999996 0.019999999999996 0.0 762 -763 0.0233211517333984 0.0300000000000011 0.0300000000000011 0.0 763 -764 0.0230920314788818 0.0200000000000031 0.0200000000000031 0.0 764 -765 0.0270240306854248 0.0300000000000011 0.0300000000000011 0.0 765 -766 0.0479528903961182 0.0499999999999972 0.0499999999999972 0.0 766 -767 0.025413990020752 0.0200000000000031 0.0200000000000031 0.0 767 -768 0.0233969688415527 0.019999999999996 0.019999999999996 0.0 768 -769 0.0232100486755371 0.0300000000000011 0.0300000000000011 0.0 769 -770 0.0230209827423096 0.0200000000000031 0.0200000000000031 0.0 770 -771 0.0228300094604492 0.019999999999996 0.019999999999996 0.0 771 -772 0.0236411094665527 0.0300000000000011 0.0300000000000011 0.0 772 -773 0.0529980659484863 0.0499999999999972 0.0499999999999972 0.0 773 -774 0.0234870910644531 0.0200000000000031 0.0200000000000031 0.0 774 -775 0.0233190059661865 0.0300000000000011 0.0300000000000011 0.0 775 -776 0.0230171680450439 0.019999999999996 0.019999999999996 0.0 776 -777 0.0230998992919922 0.0200000000000031 0.0200000000000031 0.0 777 -778 0.0230000019073486 0.0300000000000011 0.0300000000000011 0.0 778 -779 0.0227389335632324 0.019999999999996 0.019999999999996 0.0 779 -780 0.0475330352783203 0.0500000000000043 0.0500000000000043 0.0 780 -781 0.0235450267791748 0.019999999999996 0.019999999999996 0.0 781 -782 0.024838924407959 0.0200000000000031 0.0200000000000031 0.0 782 -783 0.0251529216766357 0.0300000000000011 0.0300000000000011 0.0 783 -784 0.0230610370635986 0.019999999999996 0.019999999999996 0.0 784 -785 0.0230369567871094 0.0300000000000011 0.0300000000000011 0.0 785 -786 0.0483219623565674 0.0399999999999991 0.0399999999999991 0.0 786 -787 0.023716926574707 0.0300000000000011 0.0300000000000011 0.0 787 -788 0.0233070850372314 0.0200000000000031 0.0200000000000031 0.0 788 -789 0.0230929851531982 0.019999999999996 0.019999999999996 0.0 789 -790 0.0231740474700928 0.0300000000000011 0.0300000000000011 0.0 790 -791 0.0228431224822998 0.0200000000000031 0.0200000000000031 0.0 791 -792 0.0254631042480469 0.029999999999994 0.029999999999994 0.0 792 -793 0.0485448837280273 0.0399999999999991 0.0399999999999991 0.0 793 -794 0.0234110355377197 0.0300000000000011 0.0300000000000011 0.0 794 -795 0.023223876953125 0.0200000000000031 0.0200000000000031 0.0 795 -796 0.0238728523254395 0.0300000000000011 0.0300000000000011 0.0 796 -797 0.0251760482788086 0.019999999999996 0.019999999999996 0.0 797 -798 0.0276870727539062 0.0300000000000011 0.0300000000000011 0.0 798 -799 0.0227670669555664 0.0200000000000031 0.0200000000000031 0.0 799 -800 0.0514481067657471 0.0499999999999972 0.0499999999999972 0.0 800 -801 0.023374080657959 0.0300000000000011 0.0300000000000011 0.0 801 -802 0.0230941772460938 0.019999999999996 0.019999999999996 0.0 802 -803 0.0230350494384766 0.0200000000000031 0.0200000000000031 0.0 803 -804 0.0229940414428711 0.0300000000000011 0.0300000000000011 0.0 804 -805 0.0229909420013428 0.019999999999996 0.019999999999996 0.0 805 -806 0.0481908321380615 0.0500000000000043 0.0500000000000043 0.0 806 -807 0.0239169597625732 0.019999999999996 0.019999999999996 0.0 807 -808 0.0238561630249023 0.0200000000000031 0.0200000000000031 0.0 808 -809 0.0231790542602539 0.0300000000000011 0.0300000000000011 0.0 809 -810 0.0275747776031494 0.0300000000000011 0.0300000000000011 0.0 810 -811 0.0230591297149658 0.019999999999996 0.019999999999996 0.0 811 -812 0.0231878757476807 0.0200000000000031 0.0200000000000031 0.0 812 -813 0.048914909362793 0.0499999999999972 0.0499999999999972 0.0 813 -814 0.0234620571136475 0.0200000000000031 0.0200000000000031 0.0 814 -815 0.0232930183410645 0.0300000000000011 0.0300000000000011 0.0 815 -816 0.022986888885498 0.019999999999996 0.019999999999996 0.0 816 -817 0.0229377746582031 0.0200000000000031 0.0200000000000031 0.0 817 -818 0.0235490798950195 0.0300000000000011 0.0300000000000011 0.0 818 -819 0.0506079196929932 0.0499999999999972 0.0499999999999972 0.0 819 -820 0.023629903793335 0.019999999999996 0.019999999999996 0.0 820 -821 0.0234060287475586 0.0300000000000011 0.0300000000000011 0.0 821 -822 0.0231649875640869 0.0200000000000031 0.0200000000000031 0.0 822 -823 0.0232610702514648 0.019999999999996 0.019999999999996 0.0 823 -824 0.0246009826660156 0.0300000000000011 0.0300000000000011 0.0 824 -825 0.0229051113128662 0.0200000000000031 0.0200000000000031 0.0 825 -826 0.0487561225891113 0.0499999999999972 0.0499999999999972 0.0 826 -827 0.0235860347747803 0.0200000000000031 0.0200000000000031 0.0 827 -828 0.0275599956512451 0.0300000000000011 0.0300000000000011 0.0 828 -829 0.0231928825378418 0.019999999999996 0.019999999999996 0.0 829 -830 0.0227789878845215 0.0200000000000031 0.0200000000000031 0.0 830 -831 0.022838830947876 0.0300000000000011 0.0300000000000011 0.0 831 -832 0.0226640701293945 0.019999999999996 0.019999999999996 0.0 832 -833 0.0558691024780273 0.0600000000000023 0.0600000000000023 0.0 833 -834 0.0235500335693359 0.019999999999996 0.019999999999996 0.0 834 -835 0.0233221054077148 0.0200000000000031 0.0200000000000031 0.0 835 -836 0.0230560302734375 0.0300000000000011 0.0300000000000011 0.0 836 -837 0.026296854019165 0.019999999999996 0.019999999999996 0.0 837 -838 0.0231189727783203 0.0200000000000031 0.0200000000000031 0.0 838 -839 0.0479569435119629 0.0399999999999991 0.0399999999999991 0.0 839 -840 0.0236861705780029 0.0300000000000011 0.0300000000000011 0.0 840 -841 0.0233621597290039 0.0200000000000031 0.0200000000000031 0.0 841 -842 0.0233719348907471 0.019999999999996 0.019999999999996 0.0 842 -843 0.022942066192627 0.0300000000000011 0.0300000000000011 0.0 843 -844 0.0234341621398926 0.0200000000000031 0.0200000000000031 0.0 844 -845 0.0227351188659668 0.019999999999996 0.019999999999996 0.0 845 -846 0.0519671440124512 0.0500000000000043 0.0500000000000043 0.0 846 -847 0.0236749649047852 0.029999999999994 0.029999999999994 0.0 847 -848 0.0233500003814697 0.0200000000000031 0.0200000000000031 0.0 848 -849 0.0230710506439209 0.0300000000000011 0.0300000000000011 0.0 849 -850 0.0229990482330322 0.019999999999996 0.019999999999996 0.0 850 -851 0.0230109691619873 0.0200000000000031 0.0200000000000031 0.0 851 -852 0.0227420330047607 0.0200000000000031 0.0200000000000031 0.0 852 -853 0.0477049350738525 0.0499999999999972 0.0499999999999972 0.0 853 -854 0.0240600109100342 0.0300000000000011 0.0300000000000011 0.0 854 -855 0.026954174041748 0.019999999999996 0.019999999999996 0.0 855 -856 0.0229690074920654 0.0300000000000011 0.0300000000000011 0.0 856 -857 0.0230190753936768 0.0200000000000031 0.0200000000000031 0.0 857 -858 0.0229530334472656 0.019999999999996 0.019999999999996 0.0 858 -859 0.0483298301696777 0.0500000000000043 0.0500000000000043 0.0 859 -860 0.0237421989440918 0.019999999999996 0.019999999999996 0.0 860 -861 0.0233712196350098 0.0300000000000011 0.0300000000000011 0.0 861 -862 0.0233938694000244 0.0200000000000031 0.0200000000000031 0.0 862 -863 0.0228838920593262 0.019999999999996 0.019999999999996 0.0 863 -864 0.0237820148468018 0.0300000000000011 0.0300000000000011 0.0 864 -865 0.0258240699768066 0.0200000000000031 0.0200000000000031 0.0 865 -866 0.0487151145935059 0.0499999999999972 0.0499999999999972 0.0 866 -867 0.023514986038208 0.0300000000000011 0.0300000000000011 0.0 867 -868 0.023252010345459 0.019999999999996 0.019999999999996 0.0 868 -869 0.0243101119995117 0.0200000000000031 0.0200000000000031 0.0 869 -870 0.0295658111572266 0.0300000000000011 0.0300000000000011 0.0 870 -871 0.0230669975280762 0.0300000000000011 0.0300000000000011 0.0 871 -872 0.0470709800720215 0.0399999999999991 0.0399999999999991 0.0 872 -873 0.0276908874511719 0.0300000000000011 0.0300000000000011 0.0 873 -874 0.0235562324523926 0.029999999999994 0.029999999999994 0.0 874 -875 0.0232779979705811 0.0200000000000031 0.0200000000000031 0.0 875 -876 0.0230128765106201 0.0200000000000031 0.0200000000000031 0.0 876 -877 0.0227088928222656 0.019999999999996 0.019999999999996 0.0 877 -878 0.0227501392364502 0.0300000000000011 0.0300000000000011 0.0 878 -879 0.048612117767334 0.0499999999999972 0.0499999999999972 0.0 879 -880 0.0247840881347656 0.0200000000000031 0.0200000000000031 0.0 880 -881 0.0233609676361084 0.0200000000000031 0.0200000000000031 0.0 881 -882 0.0263519287109375 0.029999999999994 0.029999999999994 0.0 882 -883 0.0231118202209473 0.0200000000000031 0.0200000000000031 0.0 883 -884 0.0230841636657715 0.0300000000000011 0.0300000000000011 0.0 884 -885 0.022723913192749 0.019999999999996 0.019999999999996 0.0 885 -886 0.0473191738128662 0.0500000000000043 0.0500000000000043 0.0 886 -887 0.0233719348907471 0.019999999999996 0.019999999999996 0.0 887 -888 0.0231339931488037 0.0200000000000031 0.0200000000000031 0.0 888 -889 0.0230438709259033 0.0300000000000011 0.0300000000000011 0.0 889 -890 0.0230700969696045 0.019999999999996 0.019999999999996 0.0 890 -891 0.0235311985015869 0.0200000000000031 0.0200000000000031 0.0 891 -892 0.0513098239898682 0.0499999999999972 0.0499999999999972 0.0 892 -893 0.0237538814544678 0.0300000000000011 0.0300000000000011 0.0 893 -894 0.0234150886535645 0.0200000000000031 0.0200000000000031 0.0 894 -895 0.0234220027923584 0.029999999999994 0.029999999999994 0.0 895 -896 0.0229578018188477 0.0200000000000031 0.0200000000000031 0.0 896 -897 0.0227642059326172 0.0200000000000031 0.0200000000000031 0.0 897 -898 0.0227861404418945 0.019999999999996 0.019999999999996 0.0 898 -899 0.0495121479034424 0.0500000000000043 0.0500000000000043 0.0 899 -900 0.0261099338531494 0.029999999999994 0.029999999999994 0.0 900 -901 0.0232861042022705 0.0200000000000031 0.0200000000000031 0.0 901 -902 0.0230598449707031 0.0300000000000011 0.0300000000000011 0.0 902 -903 0.0229661464691162 0.019999999999996 0.019999999999996 0.0 903 -904 0.0229828357696533 0.0200000000000031 0.0200000000000031 0.0 904 -905 0.0227420330047607 0.0300000000000011 0.0300000000000011 0.0 905 -906 0.0554108619689941 0.0499999999999972 0.0499999999999972 0.0 906 -907 0.0234618186950684 0.0200000000000031 0.0200000000000031 0.0 907 -908 0.023097038269043 0.0300000000000011 0.0300000000000011 0.0 908 -909 0.0240907669067383 0.019999999999996 0.019999999999996 0.0 909 -910 0.0250539779663086 0.0300000000000011 0.0300000000000011 0.0 910 -911 0.0229489803314209 0.019999999999996 0.019999999999996 0.0 911 -912 0.0479700565338135 0.0500000000000043 0.0500000000000043 0.0 912 -913 0.023643970489502 0.019999999999996 0.019999999999996 0.0 913 -914 0.0235710144042969 0.0200000000000031 0.0200000000000031 0.0 914 -915 0.0231690406799316 0.0300000000000011 0.0300000000000011 0.0 915 -916 0.0229480266571045 0.019999999999996 0.019999999999996 0.0 916 -917 0.0235409736633301 0.0200000000000031 0.0200000000000031 0.0 917 -918 0.0229229927062988 0.0300000000000011 0.0300000000000011 0.0 918 -919 0.0514621734619141 0.0499999999999972 0.0499999999999972 0.0 919 -920 0.023529052734375 0.0200000000000031 0.0200000000000031 0.0 920 -921 0.0231509208679199 0.0300000000000011 0.0300000000000011 0.0 921 -922 0.0229501724243164 0.019999999999996 0.019999999999996 0.0 922 -923 0.0228419303894043 0.0200000000000031 0.0200000000000031 0.0 923 -924 0.0227689743041992 0.019999999999996 0.019999999999996 0.0 924 -925 0.047015905380249 0.0500000000000043 0.0500000000000043 0.0 925 -926 0.0242269039154053 0.0300000000000011 0.0300000000000011 0.0 926 -927 0.0240240097045898 0.019999999999996 0.019999999999996 0.0 927 -928 0.0257468223571777 0.0300000000000011 0.0300000000000011 0.0 928 -929 0.0229909420013428 0.019999999999996 0.019999999999996 0.0 929 -930 0.0228919982910156 0.0200000000000031 0.0200000000000031 0.0 930 -931 0.0228021144866943 0.0200000000000031 0.0200000000000031 0.0 931 -932 0.0487589836120605 0.0499999999999972 0.0499999999999972 0.0 932 -933 0.023705005645752 0.0300000000000011 0.0300000000000011 0.0 933 -934 0.0232529640197754 0.019999999999996 0.019999999999996 0.0 934 -935 0.0233039855957031 0.0200000000000031 0.0200000000000031 0.0 935 -936 0.0228619575500488 0.0300000000000011 0.0300000000000011 0.0 936 -937 0.0260879993438721 0.019999999999996 0.019999999999996 0.0 937 -938 0.022723913192749 0.0300000000000011 0.0300000000000011 0.0 938 -939 0.0474221706390381 0.0399999999999991 0.0399999999999991 0.0 939 -940 0.0233960151672363 0.0300000000000011 0.0300000000000011 0.0 940 -941 0.0239980220794678 0.0200000000000031 0.0200000000000031 0.0 941 -942 0.0292730331420898 0.0300000000000011 0.0300000000000011 0.0 942 -943 0.0237081050872803 0.019999999999996 0.019999999999996 0.0 943 -944 0.0230300426483154 0.0300000000000011 0.0300000000000011 0.0 944 -945 0.050105094909668 0.0499999999999972 0.0499999999999972 0.0 945 -946 0.0247271060943604 0.0200000000000031 0.0200000000000031 0.0 946 -947 0.0233941078186035 0.019999999999996 0.019999999999996 0.0 947 -948 0.0232498645782471 0.0300000000000011 0.0300000000000011 0.0 948 -949 0.0229218006134033 0.0200000000000031 0.0200000000000031 0.0 949 -950 0.0228300094604492 0.019999999999996 0.019999999999996 0.0 950 -951 0.023029088973999 0.0300000000000011 0.0300000000000011 0.0 951 -952 0.0492429733276367 0.0500000000000043 0.0500000000000043 0.0 952 -953 0.0234079360961914 0.019999999999996 0.019999999999996 0.0 953 -954 0.0232601165771484 0.0200000000000031 0.0200000000000031 0.0 954 -955 0.026918888092041 0.0300000000000011 0.0300000000000011 0.0 955 -956 0.0231409072875977 0.019999999999996 0.019999999999996 0.0 956 -957 0.0228209495544434 0.0300000000000011 0.0300000000000011 0.0 957 -958 0.0463271141052246 0.0399999999999991 0.0399999999999991 0.0 958 -959 0.0237219333648682 0.0300000000000011 0.0300000000000011 0.0 959 -960 0.0233180522918701 0.0200000000000031 0.0200000000000031 0.0 960 -961 0.0231690406799316 0.019999999999996 0.019999999999996 0.0 961 -962 0.0229840278625488 0.0300000000000011 0.0300000000000011 0.0 962 -963 0.0235729217529297 0.0200000000000031 0.0200000000000031 0.0 963 -964 0.0238869190216064 0.019999999999996 0.019999999999996 0.0 964 -965 0.0521998405456543 0.0600000000000023 0.0600000000000023 0.0 965 -966 0.0235168933868408 0.019999999999996 0.019999999999996 0.0 966 -967 0.0235238075256348 0.0200000000000031 0.0200000000000031 0.0 967 -968 0.0230309963226318 0.0300000000000011 0.0300000000000011 0.0 968 -969 0.0229330062866211 0.019999999999996 0.019999999999996 0.0 969 -970 0.0227758884429932 0.0200000000000031 0.0200000000000031 0.0 970 -971 0.0229518413543701 0.019999999999996 0.019999999999996 0.0 971 -972 0.0476210117340088 0.0500000000000043 0.0500000000000043 0.0 972 -973 0.0264060497283936 0.0300000000000011 0.0300000000000011 0.0 973 -974 0.023115873336792 0.019999999999996 0.019999999999996 0.0 974 -975 0.0229768753051758 0.0300000000000011 0.0300000000000011 0.0 975 -976 0.0229260921478271 0.0200000000000031 0.0200000000000031 0.0 976 -977 0.0229401588439941 0.019999999999996 0.019999999999996 0.0 977 -978 0.0558409690856934 0.0600000000000023 0.0600000000000023 0.0 978 -979 0.0236589908599854 0.019999999999996 0.019999999999996 0.0 979 -980 0.0233588218688965 0.0200000000000031 0.0200000000000031 0.0 980 -981 0.0231630802154541 0.0300000000000011 0.0300000000000011 0.0 981 -982 0.0260651111602783 0.019999999999996 0.019999999999996 0.0 982 -983 0.0229349136352539 0.0300000000000011 0.0300000000000011 0.0 983 -984 0.0229189395904541 0.0200000000000031 0.0200000000000031 0.0 984 -985 0.0485391616821289 0.0499999999999972 0.0499999999999972 0.0 985 -986 0.0233860015869141 0.0200000000000031 0.0200000000000031 0.0 986 -987 0.0233519077301025 0.0300000000000011 0.0300000000000011 0.0 987 -988 0.0228800773620605 0.019999999999996 0.019999999999996 0.0 988 -989 0.0234830379486084 0.0200000000000031 0.0200000000000031 0.0 989 -990 0.022752046585083 0.019999999999996 0.019999999999996 0.0 990 -991 0.0511069297790527 0.0600000000000023 0.0600000000000023 0.0 991 -992 0.0240139961242676 0.019999999999996 0.019999999999996 0.0 992 -993 0.0233669281005859 0.0200000000000031 0.0200000000000031 0.0 993 -994 0.0232489109039307 0.0300000000000011 0.0300000000000011 0.0 994 -995 0.0230247974395752 0.019999999999996 0.019999999999996 0.0 995 -996 0.023061990737915 0.0200000000000031 0.0200000000000031 0.0 996 -997 0.0229039192199707 0.0300000000000011 0.0300000000000011 0.0 997 -998 0.0489161014556885 0.0399999999999991 0.0399999999999991 0.0 998 -999 0.0239861011505127 0.0300000000000011 0.0300000000000011 0.0 999 -1000 0.0271100997924805 0.0300000000000011 0.0300000000000011 0.0 1000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat deleted file mode 100644 index 28b7930..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat +++ /dev/null @@ -1,1000 +0,0 @@ -#lag autocorrelation -1 1.0 -2 -0.168711551610797 -3 -0.185075424775395 -4 -0.186405168470362 -5 -0.192236450287278 -6 -0.173995040669983 -7 0.497673430722803 -8 0.29654339644635 -9 -0.172542664486347 -10 -0.185316639646188 -11 -0.182116040823686 -12 -0.185415710620437 -13 0.0523528472158225 -14 0.71970177208368 -15 -0.151810164721185 -16 -0.187290279760093 -17 -0.182362754850871 -18 -0.182718737242755 -19 -0.129108594864474 -20 0.622082118720718 -21 0.130782387755957 -22 -0.170447345640965 -23 -0.196652105821247 -24 -0.173569338036787 -25 -0.182188355492763 -26 0.265071206382968 -27 0.484886522656777 -28 -0.140444543213911 -29 -0.174312335218403 -30 -0.183335022511814 -31 -0.179674296765045 -32 0.0232199842046602 -33 0.496114733715927 -34 0.0822638752997461 -35 -0.171572446908724 -36 -0.192551986206074 -37 -0.162051421499677 -38 -0.0895919384941433 -39 0.335786620502553 -40 0.327644243263212 -41 -0.129948612855453 -42 -0.184370502365683 -43 -0.177204007654948 -44 -0.162157037082618 -45 0.17271845923701 -46 0.351796103861273 -47 0.0642274162111852 -48 -0.170959443773073 -49 -0.190856323754992 -50 -0.163714827336534 -51 0.0228314931445091 -52 0.26381977073053 -53 0.247803374234943 -54 -0.117037193906021 -55 -0.183830227189461 -56 -0.164640226854526 -57 -0.079276117022691 -58 0.20723348437059 -59 0.239706931399691 -60 0.0489172113214087 -61 -0.172021951272623 -62 -0.182860808512729 -63 -0.127358224108573 -64 0.107845579472678 -65 0.188933656016848 -66 0.194757142044723 -67 -0.112205833758773 -68 -0.179001063269936 -69 -0.16311828493705 -70 0.0324344108778214 -71 0.15051955620332 -72 0.163810160363991 -73 0.0519448596312306 -74 -0.163602345245488 -75 -0.158418891887294 -76 -0.0560272711908581 -77 0.13272666880305 -78 0.128776651967307 -79 0.137508369826638 -80 -0.106468759380143 -81 -0.175112389279141 -82 -0.110600151424024 -83 0.0829713181187441 -84 0.116400027198787 -85 0.108590070864495 -86 0.0380032448395754 -87 -0.15928371193835 -88 -0.16128905172696 -89 0.0331094309593576 -90 0.0781776964153065 -91 0.102945304233414 -92 0.10106965637548 -93 -0.0872290949923226 -94 -0.169705593008044 -95 -0.0419012011984929 -96 0.0915477326766184 -97 0.0704199456915236 -98 0.0728740009744583 -99 0.0218543030675779 -100 -0.151415427637779 -101 -0.0978287647318857 -102 0.0561931235819149 -103 0.0505423398983019 -104 0.0727678785780604 -105 0.0722492445655898 -106 -0.0862525883888437 -107 -0.137087142443964 -108 0.00615618677612293 -109 0.05394162080397 -110 0.0553896795215559 -111 0.055562843944084 -112 0.0276994577739776 -113 -0.137189947176271 -114 -0.0377239416628224 -115 0.0514504295405741 -116 0.0313293831130493 -117 0.0301709278444951 -118 0.0568085567458709 -119 -0.0804133515562644 -120 -0.0795840579043476 -121 0.0330117984081293 -122 0.0164579873951377 -123 0.0433446545769141 -124 0.0255953757755855 -125 0.00173682042832781 -126 -0.103165860768009 -127 0.00232696284173702 -128 0.0312423522135313 -129 0.0149616490484137 -130 0.0184417493516088 -131 0.0447441958949695 -132 -0.0641393958061555 -133 -0.0383352332350825 -134 0.0245347192219029 -135 0.00652236926605711 -136 0.0171622535457413 -137 0.009279213035149 -138 0.00278884493235273 -139 -0.0536703342115355 -140 0.0241669190880944 -141 -0.00326726756980508 -142 0.0162345932059117 -143 -0.0128230828071517 -144 0.0286239253928854 -145 -0.0327123591597955 -146 -0.00540598964166124 -147 -0.000332512936572612 -148 0.0148948411721159 -149 0.0166966907990605 -150 -0.00567074642628022 -151 0.0228823388615856 -152 -0.0308965208330592 -153 0.0180444981742879 -154 -0.0206921039064052 -155 0.00595894351847688 -156 -0.0208220594875718 -157 0.0310092938713835 -158 0.00078836634941453 -159 0.0106191475130608 -160 -0.0238938431356785 -161 -0.00188312143245682 -162 -0.0172204115325742 -163 -0.0112282005708165 -164 0.045034914010554 -165 0.00699215558040877 -166 -0.00331533192179088 -167 -0.0190245860603562 -168 -0.00800260302384398 -169 -0.0268417229599795 -170 0.0337926174874967 -171 0.0299901254990817 -172 0.00546001840883143 -173 -0.0331114785270307 -174 -0.0100509196512551 -175 -0.0360797776791535 -176 0.00148731167321117 -177 0.0706998590798648 -178 0.0165067725132839 -179 -0.0253495351545265 -180 -0.0357212534091994 -181 -0.0113101599791917 -182 -0.0363761390533369 -183 0.0469745163800697 -184 0.0610771540099002 -185 0.00552862518083574 -186 -0.0369332414763318 -187 -0.0111795223609534 -188 -0.0432626099842255 -189 0.00749428956560664 -190 0.087771964947633 -191 0.00185581109295404 -192 -0.0313699827844243 -193 -0.0255394152605449 -194 -0.0313242476969615 -195 -0.0215433414073359 -196 0.0618252922061284 -197 0.0646027183854095 -198 -0.0273965032147501 -199 -0.0496517862033294 -200 -0.018433346375674 -201 -0.0411702579107107 -202 0.0253673387035334 -203 0.104691703014017 -204 -0.00185448989075414 -205 -0.0446682471573042 -206 -0.0238238321649752 -207 -0.0467619043304021 -208 -0.00360887459827125 -209 0.0793757654561071 -210 0.0429129421022387 -211 -0.0276583402343142 -212 -0.0541678923378372 -213 -0.0179592917752469 -214 -0.0355547481831798 -215 0.0461320988573292 -216 0.0913448308641226 -217 -0.01834847095298 -218 -0.0468350861575364 -219 -0.0339767892231334 -220 -0.0440298850183693 -221 0.0223578500867496 -222 0.0933434497060592 -223 0.0463337814726783 -224 -0.0425574347432942 -225 -0.0466890286886253 -226 -0.0399961538339586 -227 -0.0182587945265267 -228 0.0632222098042003 -229 0.0694906023247877 -230 -0.0142049617016301 -231 -0.0455291466080565 -232 -0.0361070791379545 -233 -0.0452564134883136 -234 0.0510580833723044 -235 0.0480780453494914 -236 0.0446139327527731 -237 -0.0522801405363582 -238 -0.0378004800445766 -239 -0.0470589177024096 -240 0.0108569075440268 -241 0.066938577476477 -242 0.0581800021039197 -243 -0.0194507150560373 -244 -0.0543671997964238 -245 -0.0401308556434312 -246 -0.0256000479147573 -247 0.0620205622045612 -248 0.030523271212025 -249 0.038296942239191 -250 -0.0449036287763184 -251 -0.0420966487827338 -252 -0.0465461175034265 -253 0.0377597573585246 -254 0.0350560493012657 -255 0.056093186329707 -256 -0.0275815952046349 -257 -0.04750423935097 -258 -0.0432832585148503 -259 0.0125157284398116 -260 0.064931228957816 -261 0.019604040715554 -262 0.0373596111888757 -263 -0.0636676558497218 -264 -0.0375272240403982 -265 -0.0361149121701811 -266 0.0465388746567212 -267 0.036241311622391 -268 0.0487539350868976 -269 -0.0287234748216925 -270 -0.0539239644524711 -271 -0.0436583063696183 -272 0.0205146377795573 -273 0.040230997344665 -274 0.0315213860739265 -275 0.0228897348670507 -276 -0.0572183200160057 -277 -0.0431270221897599 -278 -0.00833297422506617 -279 0.0473219005528863 -280 0.0251629586411652 -281 0.038915273454895 -282 -0.0354353137808485 -283 -0.0508161370460544 -284 -0.036047127999377 -285 0.0337334539194076 -286 0.0275614274110637 -287 0.0440004318004696 -288 0.00961414206729694 -289 -0.0613316463073689 -290 -0.0452152575735171 -291 0.00249641925695087 -292 0.0493185930315809 -293 0.011444255885649 -294 0.0316360674883416 -295 -0.0319106139816597 -296 -0.0295989018040149 -297 -0.0190441524352952 -298 0.0282870892585827 -299 0.0265353254552707 -300 0.032273319444618 -301 -0.000468750771499013 -302 -0.0611876583947586 -303 -0.0309474581592694 -304 0.0186631754625234 -305 0.0371821091242854 -306 0.0145022818476083 -307 0.0232617470286048 -308 -0.0395688677229205 -309 -0.0476060515379838 -310 -0.00769044117333217 -311 0.0353693458390462 -312 0.0240002604802843 -313 0.0245536637430618 -314 -0.004415413915098 -315 -0.0528044137604404 -316 -0.0234265814208568 -317 0.022470064568286 -318 0.028915521370024 -319 0.0211638004156281 -320 0.0054168896988135 -321 -0.042590350753945 -322 -0.0284283118181943 -323 -0.00664062749496557 -324 0.0411480242046925 -325 0.0128417754264411 -326 0.0305223344547661 -327 -0.0236579754952802 -328 -0.0540845927671526 -329 -0.015455893522093 -330 0.025833520023463 -331 0.0278005598102001 -332 0.023042186646012 -333 0.0188728568852482 -334 -0.0493662121878053 -335 -0.0261050936436941 -336 0.0147707465979224 -337 0.0180860444200187 -338 0.0126826785496685 -339 0.0298891954148176 -340 -0.0284892193567594 -341 -0.0442930583208295 -342 -0.00465824613683129 -343 0.0264974198001827 -344 0.0160287131470608 -345 0.0245897525651692 -346 -0.00575496663872669 -347 -0.0478041333821144 -348 -0.0171938958596392 -349 0.0121633028274292 -350 0.0339339464445481 -351 -0.00053023814088501 -352 0.0326742285343647 -353 -0.0341060707006212 -354 -0.039748874098284 -355 -8.49024655445998e-06 -356 0.0279658431303204 -357 0.00720050291043204 -358 0.0259853074034904 -359 -0.00689945021869653 -360 -0.0564417535195406 -361 0.00615675252612387 -362 0.012211786338546 -363 0.0210382695674554 -364 0.00854911585033297 -365 0.00730196086776967 -366 -0.0376558839307909 -367 -0.0205399505507927 -368 0.00730027899569551 -369 0.032246213402309 -370 0.0091169179182096 -371 0.0250196684542896 -372 -0.0111591997251681 -373 -0.0422136335522998 -374 -0.0128579601772781 -375 0.028053399466731 -376 0.00354103697855516 -377 0.0279174938103032 -378 -0.00904722473650234 -379 -0.028946301515676 -380 -0.0139786293136349 -381 0.00545851365358498 -382 0.0190227282430585 -383 -0.000179476269715586 -384 0.0207231566698558 -385 -0.0170447136957343 -386 -0.0310486179199879 -387 0.00187196784210256 -388 0.0224041083616037 -389 9.55672559842024e-06 -390 0.028063228403911 -391 -0.00629505686670561 -392 -0.0353987330853413 -393 -0.0136692381584725 -394 0.0175671180486305 -395 0.0138013069088845 -396 -0.00620615793014542 -397 0.0246579116616293 -398 -0.0183401258366494 -399 -0.032731274379925 -400 0.0140881514888206 -401 0.00766293328904026 -402 -0.00602692518274087 -403 0.0260538721783923 -404 -0.00584187577452444 -405 -0.0272022140360092 -406 -0.00245620949388524 -407 0.0238765788649767 -408 0.00803221790371331 -409 0.00486019379696553 -410 0.0128952371994524 -411 -0.0296483100976332 -412 -0.0169390703239796 -413 0.0100660026536031 -414 0.0116526840405598 -415 -0.00552490658166841 -416 0.0277013713253159 -417 -0.01262493213524 -418 -0.0279080581956591 -419 -0.00184485071740047 -420 0.0083680688534008 -421 0.00626000399151215 -422 0.0179881429190266 -423 -0.00447721272724791 -424 -0.0184829817994694 -425 -0.0111404841683833 -426 0.0129221736981228 -427 0.0117611123486844 -428 -0.00973900750863823 -429 0.0225145858300765 -430 -0.0109220115294983 -431 -0.0295910058303649 -432 0.00368789876917004 -433 0.00930110386233805 -434 0.00564395086046309 -435 0.0212026111611703 -436 -0.0130378739710715 -437 -0.0151643278007831 -438 -0.0180440351274524 -439 0.0151595776800046 -440 0.00929213226473587 -441 0.0003415659091603 -442 0.0139565319476247 -443 -0.00910162712841926 -444 -0.0047413122985865 -445 -0.00499428051231756 -446 0.0128999469215125 -447 -0.00928272901740709 -448 0.0272064223470049 -449 -0.0183788344655416 -450 -0.0118496040154817 -451 -0.0107494202754318 -452 0.0182399903606553 -453 0.00622660737187097 -454 0.00745915020514592 -455 -0.00127190501056035 -456 -0.0166547143603286 -457 -0.0103667163700212 -458 0.00400520855528189 -459 0.0147115427131264 -460 -0.0160615357972689 -461 0.0246609774312651 -462 -0.0029333920472466 -463 -0.0181346871754782 -464 -0.00953567256874797 -465 0.021178583971421 -466 -0.012606366153552 -467 0.0272533088449177 -468 -0.0210280900703455 -469 -0.00280319780800235 -470 -0.0170463672712959 -471 0.0183373667562639 -472 0.0107583671313877 -473 -0.0078936794893897 -474 0.00778649649424241 -475 -0.0155345265869157 -476 -0.00613257574212038 -477 -0.00504286887531768 -478 0.0210772277332088 -479 -0.0128524940267954 -480 0.0341276652831629 -481 -0.0170650621790446 -482 -0.00345617548803839 -483 -0.0129517082898899 -484 0.0173373606064477 -485 -0.00523973359223807 -486 0.00844247199289556 -487 -0.000388501685715539 -488 -0.00941832803307521 -489 -0.00657732323629541 -490 0.00367271132008509 -491 0.0104986289066865 -492 -0.012121254212176 -493 0.0144869605589711 -494 -0.00864941651177608 -495 -0.01112718777137 -496 -0.00334819620816524 -497 0.0185220421918073 -498 -0.00800250333583432 -499 0.0161430412671399 -500 -0.00811904696073173 -501 -0.0131958246871404 -502 0.00283288244567032 -503 0.00400534218369864 -504 0.00517285959530552 -505 -0.0113016945649371 -506 0.0133257896160407 -507 -0.0100249708015443 -508 -0.00256099015771646 -509 0.000136766223360138 -510 0.00855194730142931 -511 -0.00531138706017324 -512 0.00204161899934194 -513 -0.00420598958751402 -514 -0.00547421378316814 -515 -0.00769199850530263 -516 0.0216892032285094 -517 0.00908736119849349 -518 -0.00700354150287694 -519 0.00385030902693081 -520 -0.0123494297246387 -521 0.000934704276073887 -522 0.00705709592844499 -523 -0.00114787001008378 -524 -0.00210811799844287 -525 0.00379518996660863 -526 -0.00476039992301502 -527 0.00251331815987456 -528 -0.00826728020183847 -529 0.00902402695322199 -530 0.000870562551920878 -531 -0.00348481579363119 -532 -0.00125547085943994 -533 -0.00457730270844353 -534 0.000670589363068931 -535 0.00203788465196431 -536 0.00608567369144255 -537 2.19715778381094e-05 -538 -0.0039030628395208 -539 0.00512758275114747 -540 -0.0144646664397469 -541 0.0094686570477374 -542 0.00274671581906305 -543 -0.00678173613063177 -544 -0.00229002671014199 -545 0.00592727900087354 -546 -0.00816015486873931 -547 0.00907388451433627 -548 0.0018377578149579 -549 -0.0127399753897002 -550 0.0103068975915084 -551 -0.0106787121790095 -552 0.00570246495524106 -553 -0.00038055365375568 -554 0.0105773030205816 -555 0.00595131841957403 -556 -0.00509875005695669 -557 -0.00822359585740647 -558 0.00452689845139232 -559 -0.00293270803490497 -560 0.00105079194795726 -561 0.0109353635798441 -562 -0.0197506449586046 -563 0.0218239959802497 -564 -0.0146510772378776 -565 -0.0031545366575823 -566 0.00360976923040136 -567 0.00133537648121434 -568 -0.00289782413008785 -569 0.00758892970442103 -570 -0.0141005351769624 -571 0.00987824122870196 -572 -0.00255558849302304 -573 0.000744149940492195 -574 0.0106602498970704 -575 -0.0142431009887286 -576 0.00996314897224239 -577 -0.0104990007985002 -578 0.00109353754269881 -579 -0.00275371958433224 -580 0.0113885636424959 -581 -0.0150512253599863 -582 0.022337619882076 -583 -0.0216778389670573 -584 0.00863828810448533 -585 -0.00918952923772199 -586 0.00354541072669278 -587 0.00186796377320277 -588 -0.00419542916327283 -589 0.00975603734830963 -590 -0.00452668353073013 -591 0.00310061328497863 -592 0.00522892318692988 -593 0.000452603861773268 -594 -0.00392697607921247 -595 0.00863249154941176 -596 -0.00832078201242865 -597 -0.00394497658086084 -598 -0.00605451952414724 -599 0.0162191796757364 -600 -0.0110909733185336 -601 0.00720572232121751 -602 0.00218507796543462 -603 -0.00965401693454912 -604 -0.0108892449738329 -605 0.0182573291106095 -606 -0.0101848710757151 -607 0.00753912620319138 -608 0.00552590397878413 -609 -0.00699240285933447 -610 -0.00592445874426432 -611 0.00181675318258215 -612 0.00596213285085161 -613 -0.00175858286015883 -614 0.00407450191848153 -615 -0.00135060667016455 -616 -0.0132703466359575 -617 0.00119500154487564 -618 0.0104207042421722 -619 -0.0101546955527216 -620 0.0151923635732439 -621 -0.00273197735893913 -622 -0.00716289238336821 -623 -0.0171181101464724 -624 0.0167209884450157 -625 -0.00638456270553197 -626 0.0115244846746483 -627 0.00412387285497462 -628 0.00522037750437085 -629 -0.0207335154052575 -630 0.0107397344182975 -631 0.000446658250956307 -632 -0.00502788594559083 -633 0.0186557262987464 -634 -0.00802823332161929 -635 -0.0113496131760766 -636 -0.00301246620601798 -637 0.00960017707242071 -638 -0.0101983443096708 -639 0.0185874661412788 -640 -0.00796700063418294 -641 0.000800373366255129 -642 -0.0142259171933031 -643 0.00675256815377976 -644 -0.00261054615159158 -645 0.00391449782418117 -646 0.0139874531474154 -647 0.00530840019489214 -648 -0.0271260591182079 -649 0.00229999324419244 -650 0.0012589433396212 -651 0.000592814947107167 -652 0.0201903818074188 -653 -0.0109069610093694 -654 0.000612907033154517 -655 -0.0168429348765485 -656 0.00867757131382127 -657 -0.00734945498589961 -658 0.0116794460570149 -659 0.00508627131689495 -660 0.00338584069635359 -661 -0.0248824043490218 -662 0.00165251679722703 -663 0.00150493225276704 -664 0.0136218056659362 -665 0.0185790451050334 -666 -0.00254472668221909 -667 -0.012289308557362 -668 -0.0144954370766794 -669 0.00122172858017179 -670 0.0025962904924925 -671 0.0163382999614507 -672 0.00111261978891954 -673 0.0032877612305335 -674 -0.0260369810192395 -675 0.00159666131197362 -676 -0.00532940173394529 -677 0.0172320321775677 -678 0.00869668235164475 -679 0.00291575973127735 -680 -0.015462218778181 -681 -0.0118608792720508 -682 -0.00220903962177873 -683 0.0120179152403506 -684 0.0136302482537954 -685 0.00904529400779457 -686 -0.00689602667015569 -687 -0.0285633522016709 -688 -0.00218285494634568 -689 0.00546702558234338 -690 0.0209141673516685 -691 0.00370465573465944 -692 0.00302297586155796 -693 -0.016485314433266 -694 -0.0140010121985048 -695 -0.00666402217308437 -696 0.0185309777178555 -697 0.00524546360988583 -698 0.0136885255750835 -699 -0.0104440356403008 -700 -0.0241256457948681 -701 -0.000785820295910417 -702 0.0158790422192167 -703 0.0148074455993449 -704 0.0148524900638902 -705 -0.0115456319714617 -706 -0.0170567215815039 -707 -0.0158838823574548 -708 0.00366739139639638 -709 0.0229702948653725 -710 0.00020925945941642 -711 0.016393506286626 -712 -0.0146752015343459 -713 -0.0266439752231523 -714 -0.0106049447476659 -715 0.0200857710496951 -716 0.0159019417251445 -717 0.014477526739592 -718 -0.0114112270538866 -719 -0.0170568864212781 -720 -0.0198060133943224 -721 0.0141195633193631 -722 0.0169697876976791 -723 0.0111601506150928 -724 0.000736029778776562 -725 -0.0138823704910304 -726 -0.0297759947577568 -727 0.000877318422704956 -728 0.0245870344818203 -729 0.00991534185785315 -730 0.0167371008710776 -731 -0.01846756355292 -732 -0.0143120279886695 -733 -0.0275565546549941 -734 0.0192359115781678 -735 0.0161720734394042 -736 0.0126768844333159 -737 0.00181190220867761 -738 -0.0108467971335452 -739 -0.0304794501225128 -740 0.00782220949913542 -741 0.0209517859747924 -742 0.0159210578956611 -743 0.00507627421897103 -744 -0.0185977878326676 -745 -0.0172160801840428 -746 -0.0154503291175863 -747 0.0240468087097962 -748 0.00881259580601295 -749 0.0159692498562702 -750 -0.00910054705411617 -751 -0.0182022490122094 -752 -0.0240881360450285 -753 0.0120777690684819 -754 0.018009925362029 -755 0.0180902063329173 -756 0.000256136047852365 -757 -0.013362593701584 -758 -0.0228122214255098 -759 -0.00694060235600491 -760 0.0215395702278941 -761 0.0146271311142691 -762 0.0042224855013385 -763 -0.00912079764567066 -764 -0.0192977028904618 -765 -0.0141955473974918 -766 0.0183439845354601 -767 0.00930105732395573 -768 0.0184551584403917 -769 -0.00463309866829429 -770 -0.0226061978674481 -771 -0.0126560635461022 -772 -0.00415731908001533 -773 0.0187754008269273 -774 0.0180023436241415 -775 0.00200677790387502 -776 -0.00390091363657905 -777 -0.0259097935663753 -778 -0.00352849460582893 -779 0.0114869717500844 -780 0.0181590467496427 -781 0.00541354714803118 -782 -0.00341446349188591 -783 -0.0224873784300854 -784 -0.00419373295829652 -785 0.00151844686046239 -786 0.0113650109976602 -787 0.0158002722634896 -788 -0.00669123138348563 -789 -0.00944030297158121 -790 -0.0128471454926811 -791 -0.00195425126313221 -792 0.0074970279200069 -793 0.0181288263041054 -794 0.00373580246921938 -795 -0.00738898492727174 -796 -0.0131007631291169 -797 -0.000982016348095141 -798 -0.0077218774351863 -799 0.0213289345403391 -800 0.00354948225668615 -801 -0.00464603451943496 -802 -0.0112940265794087 -803 -0.00402400060757488 -804 0.00328202388625696 -805 -0.00289756468799923 -806 0.0217143167615233 -807 -0.00723480130387542 -808 -0.0106385305584251 -809 -0.000880622168562012 -810 0.00236278291649433 -811 -0.0102116844250211 -812 0.0231430095296313 -813 0.000498636796683443 -814 -0.00822238911567211 -815 -0.000690473274202945 -816 -0.0041688749017029 -817 -0.00252158403219581 -818 0.00607821741975229 -819 0.00777977338604755 -820 -0.00207050788971321 -821 -0.0140240864712808 -822 0.00947155215423528 -823 -0.00138467437610252 -824 -0.00770142306481203 -825 0.0154602942265093 -826 -0.00445857492028323 -827 -0.0101772151931684 -828 0.0100179562755017 -829 -0.00101796933766295 -830 -0.0119434679802116 -831 0.0102774737624907 -832 0.00478068349303803 -833 -0.00664556216054719 -834 -0.00197743246531773 -835 0.00543784524388563 -836 -0.0052886241893568 -837 0.0026439850351734 -838 0.0030919842085538 -839 -0.00804500518577692 -840 -0.0010416922039517 -841 0.0108884645351451 -842 -0.00566073610826143 -843 -0.00188898403884589 -844 -0.000623624431978478 -845 0.00428626298895372 -846 -0.0114117004140406 -847 0.0070058534073635 -848 0.01316321553763 -849 -0.0134743452627623 -850 0.00646873802741608 -851 -0.000711439355883821 -852 -0.0120290310079327 -853 0.00776340536975608 -854 0.0121426740397341 -855 -0.0112997696592519 -856 0.00101867582065373 -857 -0.00437667036049063 -858 0.000320275817054275 -859 -0.000142126707409615 -860 0.00721775365468403 -861 0.00498981583349973 -862 -0.00501663994971829 -863 -0.00749187478362105 -864 -0.00349429603220739 -865 0.00096737598977786 -866 0.00699694065608912 -867 0.00691803448626803 -868 -0.000449901074230268 -869 -0.00445988048738086 -870 -0.00905628623058306 -871 -0.00235661129997502 -872 0.00676090763319871 -873 0.00895030192113989 -874 4.49454384220283e-05 -875 -0.00263532947240222 -876 -0.010297542142376 -877 -0.010415543599356 -878 0.0128496698052284 -879 0.00696638356949457 -880 0.00214959987087146 -881 0.00604766744508239 -882 -0.0149547634792813 -883 -0.0133886474253249 -884 0.00661648124666426 -885 0.010135062194657 -886 0.0058559958108212 -887 0.00957431092209329 -888 -0.0090398903790597 -889 -0.0199467380548428 -890 -0.000587629934548291 -891 0.0110510611921795 -892 0.0128725674330994 -893 -0.00402188300253153 -894 0.00737831485228642 -895 -0.0184423803339027 -896 -0.0110288361296573 -897 0.00890220929064295 -898 0.0094403783725091 -899 -0.000809138837552774 -900 0.0116542051582576 -901 -0.0107875510009573 -902 -0.0180296809250011 -903 0.00306299530457164 -904 0.0106046718313357 -905 0.0100756629359416 -906 0.00402229149764495 -907 -0.00423755437734391 -908 -0.0147679502849595 -909 -0.00876645613183849 -910 0.00937383395424556 -911 0.00762135328148195 -912 0.00589312291049009 -913 0.00527632712012485 -914 -0.0150771941451772 -915 -0.0126209222242841 -916 0.00209594315460717 -917 0.0150533771997464 -918 -0.000323609234544641 -919 0.00910288654678051 -920 -0.00768699605697063 -921 -0.0131267840299683 -922 -0.00394519352651183 -923 0.0112577773951416 -924 0.00193303552341244 -925 0.0155473373100893 -926 -0.0059851304642569 -927 -0.0127129091731764 -928 -0.010012705310311 -929 0.00314209573634191 -930 0.0111473003309339 -931 0.00788913702307995 -932 0.00305911972139761 -933 -0.00846335727494071 -934 -0.0122811720479955 -935 -0.0061049349645249 -936 0.00712178796175147 -937 0.0109366030876719 -938 0.010847685977904 -939 -0.00884829082408408 -940 -0.00833721747749976 -941 -0.0119098033912994 -942 0.00740468154428091 -943 0.0055679748392607 -944 0.0108164694058525 -945 0.000125955287551805 -946 -0.00747241615545713 -947 -0.00869573388304389 -948 -0.00354302687064023 -949 0.00160999946217594 -950 0.0205396965281884 -951 -0.00211607394891862 -952 -0.00622739874288181 -953 -0.00653488891371642 -954 -0.00979554730684349 -955 0.000613100471788197 -956 0.0166711334404957 -957 0.00616769987888474 -958 -0.00491976982344559 -959 -0.00424317633763101 -960 -0.00827918671212606 -961 -0.00604128020653073 -962 0.00958577837280408 -963 0.0149354906693512 -964 -0.00421686394063702 -965 -0.00316215046844813 -966 -0.0064530371820805 -967 -0.00662231958613653 -968 0.00112156121486116 -969 0.0109421973075187 -970 0.00437305640139855 -971 -0.00455774256532607 -972 -0.00437412532272711 -973 -0.00518337545866395 -974 -0.00400100467146524 -975 0.0127573808612559 -976 0.00366553037525621 -977 -0.00238554249362654 -978 -0.00329057674587693 -979 -0.00396527990664183 -980 -0.00266571430247101 -981 0.00338581958247141 -982 0.00669480510272971 -983 -0.000520566185644882 -984 -0.00202730064400516 -985 -0.00225103555436894 -986 -0.00175391520986938 -987 -0.0030237079249996 -988 0.00556348089902938 -989 0.00016537124990895 -990 0.000366191847904269 -991 -0.000403568297995977 -992 -0.000980716337890804 -993 -0.00107150539540352 -994 -0.00116888364602599 -995 0.00111545140635789 -996 0.000974863549210892 -997 0.000888586420263992 -998 0.0007092258397136 -999 0.000470368356747198 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat deleted file mode 100644 index feedffb..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat +++ /dev/null @@ -1,1001 +0,0 @@ -#scatter real total user system repeat -1 0.023082971572876 0.019999999999996 0.019999999999996 0.0 1 -2 0.0226471424102783 0.0300000000000011 0.0300000000000011 0.0 2 -3 0.0225150585174561 0.0200000000000102 0.0200000000000102 0.0 3 -4 0.0226900577545166 0.019999999999996 0.019999999999996 0.0 4 -5 0.0225200653076172 0.019999999999996 0.019999999999996 0.0 5 -6 0.0237810611724854 0.0300000000000011 0.0300000000000011 0.0 6 -7 0.0472888946533203 0.0400000000000063 0.0400000000000063 0.0 7 -8 0.022852897644043 0.0300000000000011 0.0300000000000011 0.0 8 -9 0.0266950130462646 0.019999999999996 0.019999999999996 0.0 9 -10 0.0224850177764893 0.0300000000000011 0.0300000000000011 0.0 10 -11 0.0223457813262939 0.019999999999996 0.019999999999996 0.0 11 -12 0.0224599838256836 0.019999999999996 0.019999999999996 0.0 12 -13 0.0224049091339111 0.0200000000000102 0.0200000000000102 0.0 13 -14 0.0482068061828613 0.0499999999999972 0.0499999999999972 0.0 14 -15 0.0226612091064453 0.019999999999996 0.019999999999996 0.0 15 -16 0.0224330425262451 0.019999999999996 0.019999999999996 0.0 16 -17 0.0224549770355225 0.019999999999996 0.019999999999996 0.0 17 -18 0.0225000381469727 0.0200000000000102 0.0200000000000102 0.0 18 -19 0.0258901119232178 0.0300000000000011 0.0300000000000011 0.0 19 -20 0.0469810962677002 0.0499999999999972 0.0499999999999972 0.0 20 -21 0.0228328704833984 0.019999999999996 0.019999999999996 0.0 21 -22 0.0226919651031494 0.019999999999996 0.019999999999996 0.0 22 -23 0.022468090057373 0.0200000000000102 0.0200000000000102 0.0 23 -24 0.0230059623718262 0.0299999999999869 0.0299999999999869 0.0 24 -25 0.0221710205078125 0.0200000000000102 0.0200000000000102 0.0 25 -26 0.0221641063690186 0.019999999999996 0.019999999999996 0.0 26 -27 0.0475480556488037 0.0499999999999972 0.0499999999999972 0.0 27 -28 0.025291919708252 0.0200000000000102 0.0200000000000102 0.0 28 -29 0.0225188732147217 0.0299999999999869 0.0299999999999869 0.0 29 -30 0.0293300151824951 0.0300000000000011 0.0300000000000011 0.0 30 -31 0.0234100818634033 0.0200000000000102 0.0200000000000102 0.0 31 -32 0.0224781036376953 0.019999999999996 0.019999999999996 0.0 32 -33 0.0478579998016357 0.0499999999999972 0.0499999999999972 0.0 33 -34 0.0229699611663818 0.019999999999996 0.019999999999996 0.0 34 -35 0.0227549076080322 0.0300000000000011 0.0300000000000011 0.0 35 -36 0.0226318836212158 0.0200000000000102 0.0200000000000102 0.0 36 -37 0.0262620449066162 0.019999999999996 0.019999999999996 0.0 37 -38 0.0223979949951172 0.0300000000000011 0.0300000000000011 0.0 38 -39 0.0222330093383789 0.019999999999996 0.019999999999996 0.0 39 -40 0.0477039813995361 0.0499999999999972 0.0499999999999972 0.0 40 -41 0.0228910446166992 0.0200000000000102 0.0200000000000102 0.0 41 -42 0.0233700275421143 0.019999999999996 0.019999999999996 0.0 42 -43 0.0224530696868896 0.0300000000000011 0.0300000000000011 0.0 43 -44 0.0225670337677002 0.019999999999996 0.019999999999996 0.0 44 -45 0.0227048397064209 0.019999999999996 0.019999999999996 0.0 45 -46 0.0222969055175781 0.0200000000000102 0.0200000000000102 0.0 46 -47 0.050562858581543 0.0499999999999972 0.0499999999999972 0.0 47 -48 0.0228369235992432 0.0300000000000011 0.0300000000000011 0.0 48 -49 0.0225470066070557 0.019999999999996 0.019999999999996 0.0 49 -50 0.02256178855896 0.019999999999996 0.019999999999996 0.0 50 -51 0.0225701332092285 0.0300000000000011 0.0300000000000011 0.0 51 -52 0.0230269432067871 0.019999999999996 0.019999999999996 0.0 52 -53 0.0470359325408936 0.0500000000000114 0.0500000000000114 0.0 53 -54 0.0227799415588379 0.019999999999996 0.019999999999996 0.0 54 -55 0.0225660800933838 0.019999999999996 0.019999999999996 0.0 55 -56 0.025252103805542 0.0300000000000011 0.0300000000000011 0.0 56 -57 0.0222170352935791 0.019999999999996 0.019999999999996 0.0 57 -58 0.0221600532531738 0.0200000000000102 0.0200000000000102 0.0 58 -59 0.0222020149230957 0.019999999999996 0.019999999999996 0.0 59 -60 0.0476398468017578 0.0499999999999972 0.0499999999999972 0.0 60 -61 0.022913932800293 0.019999999999996 0.019999999999996 0.0 61 -62 0.0225539207458496 0.0300000000000011 0.0300000000000011 0.0 62 -63 0.0225050449371338 0.0200000000000102 0.0200000000000102 0.0 63 -64 0.022601842880249 0.019999999999996 0.019999999999996 0.0 64 -65 0.0236048698425293 0.0300000000000011 0.0300000000000011 0.0 65 -66 0.0489590167999268 0.039999999999992 0.039999999999992 0.0 66 -67 0.0297541618347168 0.0300000000000011 0.0300000000000011 0.0 67 -68 0.0229940414428711 0.0300000000000011 0.0300000000000011 0.0 68 -69 0.0228681564331055 0.0200000000000102 0.0200000000000102 0.0 69 -70 0.0228149890899658 0.019999999999996 0.019999999999996 0.0 70 -71 0.0225210189819336 0.0300000000000011 0.0300000000000011 0.0 71 -72 0.022305965423584 0.019999999999996 0.019999999999996 0.0 72 -73 0.0474321842193604 0.0499999999999972 0.0499999999999972 0.0 73 -74 0.0265100002288818 0.0200000000000102 0.0200000000000102 0.0 74 -75 0.0226712226867676 0.019999999999996 0.019999999999996 0.0 75 -76 0.022493839263916 0.0300000000000011 0.0300000000000011 0.0 76 -77 0.0225288867950439 0.019999999999996 0.019999999999996 0.0 77 -78 0.0226340293884277 0.019999999999996 0.019999999999996 0.0 78 -79 0.0476889610290527 0.0499999999999972 0.0499999999999972 0.0 79 -80 0.0229480266571045 0.0200000000000102 0.0200000000000102 0.0 80 -81 0.0228819847106934 0.0300000000000011 0.0300000000000011 0.0 81 -82 0.0227799415588379 0.019999999999996 0.019999999999996 0.0 82 -83 0.0224130153656006 0.019999999999996 0.019999999999996 0.0 83 -84 0.0260109901428223 0.0300000000000011 0.0300000000000011 0.0 84 -85 0.0223500728607178 0.019999999999996 0.019999999999996 0.0 85 -86 0.0476620197296143 0.0500000000000114 0.0500000000000114 0.0 86 -87 0.022737979888916 0.019999999999996 0.019999999999996 0.0 87 -88 0.0233170986175537 0.019999999999996 0.019999999999996 0.0 88 -89 0.0224459171295166 0.0300000000000011 0.0300000000000011 0.0 89 -90 0.0226268768310547 0.019999999999996 0.019999999999996 0.0 90 -91 0.0225470066070557 0.0200000000000102 0.0200000000000102 0.0 91 -92 0.0492300987243652 0.0499999999999972 0.0499999999999972 0.0 92 -93 0.0236849784851074 0.019999999999996 0.019999999999996 0.0 93 -94 0.0227689743041992 0.0300000000000011 0.0300000000000011 0.0 94 -95 0.022672176361084 0.019999999999996 0.019999999999996 0.0 95 -96 0.022651195526123 0.0200000000000102 0.0200000000000102 0.0 96 -97 0.0225498676300049 0.0300000000000011 0.0300000000000011 0.0 97 -98 0.0222620964050293 0.019999999999996 0.019999999999996 0.0 98 -99 0.0475699901580811 0.0499999999999972 0.0499999999999972 0.0 99 -100 0.0227551460266113 0.019999999999996 0.019999999999996 0.0 100 -101 0.0227038860321045 0.0200000000000102 0.0200000000000102 0.0 101 -102 0.0256071090698242 0.0300000000000011 0.0300000000000011 0.0 102 -103 0.0226211547851562 0.019999999999996 0.019999999999996 0.0 103 -104 0.0256171226501465 0.0300000000000011 0.0300000000000011 0.0 104 -105 0.051800012588501 0.0499999999999972 0.0499999999999972 0.0 105 -106 0.023643970489502 0.019999999999996 0.019999999999996 0.0 106 -107 0.0227420330047607 0.019999999999996 0.019999999999996 0.0 107 -108 0.0226438045501709 0.0300000000000011 0.0300000000000011 0.0 108 -109 0.022442102432251 0.0200000000000102 0.0200000000000102 0.0 109 -110 0.0223290920257568 0.019999999999996 0.019999999999996 0.0 110 -111 0.0222249031066895 0.019999999999996 0.019999999999996 0.0 111 -112 0.0505638122558594 0.0499999999999972 0.0499999999999972 0.0 112 -113 0.0227949619293213 0.0300000000000011 0.0300000000000011 0.0 113 -114 0.0227949619293213 0.0200000000000102 0.0200000000000102 0.0 114 -115 0.0225298404693604 0.019999999999996 0.019999999999996 0.0 115 -116 0.0225038528442383 0.019999999999996 0.019999999999996 0.0 116 -117 0.0231928825378418 0.0300000000000011 0.0300000000000011 0.0 117 -118 0.0223879814147949 0.019999999999996 0.019999999999996 0.0 118 -119 0.0476298332214355 0.0500000000000114 0.0500000000000114 0.0 119 -120 0.0247969627380371 0.019999999999996 0.019999999999996 0.0 120 -121 0.0240130424499512 0.0300000000000011 0.0300000000000011 0.0 121 -122 0.0225648880004883 0.019999999999996 0.019999999999996 0.0 122 -123 0.0225870609283447 0.019999999999996 0.019999999999996 0.0 123 -124 0.0225720405578613 0.0300000000000011 0.0300000000000011 0.0 124 -125 0.0477638244628906 0.0400000000000063 0.0400000000000063 0.0 125 -126 0.0232040882110596 0.0300000000000011 0.0300000000000011 0.0 126 -127 0.0227577686309814 0.019999999999996 0.019999999999996 0.0 127 -128 0.0225858688354492 0.019999999999996 0.019999999999996 0.0 128 -129 0.0224049091339111 0.0200000000000102 0.0200000000000102 0.0 129 -130 0.0251419544219971 0.0300000000000011 0.0300000000000011 0.0 130 -131 0.0224969387054443 0.019999999999996 0.019999999999996 0.0 131 -132 0.0474879741668701 0.0499999999999972 0.0499999999999972 0.0 132 -133 0.0228550434112549 0.019999999999996 0.019999999999996 0.0 133 -134 0.0226738452911377 0.0300000000000011 0.0300000000000011 0.0 134 -135 0.0226309299468994 0.019999999999996 0.019999999999996 0.0 135 -136 0.0224778652191162 0.0200000000000102 0.0200000000000102 0.0 136 -137 0.0225551128387451 0.019999999999996 0.019999999999996 0.0 137 -138 0.0470321178436279 0.0499999999999972 0.0499999999999972 0.0 138 -139 0.0260279178619385 0.0300000000000011 0.0300000000000011 0.0 139 -140 0.0227389335632324 0.019999999999996 0.019999999999996 0.0 140 -141 0.029339075088501 0.0300000000000011 0.0300000000000011 0.0 141 -142 0.0226800441741943 0.0200000000000102 0.0200000000000102 0.0 142 -143 0.0223538875579834 0.019999999999996 0.019999999999996 0.0 143 -144 0.0231339931488037 0.0300000000000011 0.0300000000000011 0.0 144 -145 0.0474388599395752 0.039999999999992 0.039999999999992 0.0 145 -146 0.0227169990539551 0.0300000000000011 0.0300000000000011 0.0 146 -147 0.0225269794464111 0.0200000000000102 0.0200000000000102 0.0 147 -148 0.0240280628204346 0.019999999999996 0.019999999999996 0.0 148 -149 0.0242280960083008 0.0300000000000011 0.0300000000000011 0.0 149 -150 0.0225520133972168 0.019999999999996 0.019999999999996 0.0 150 -151 0.0471599102020264 0.0499999999999972 0.0499999999999972 0.0 151 -152 0.0230400562286377 0.0200000000000102 0.0200000000000102 0.0 152 -153 0.0234670639038086 0.019999999999996 0.019999999999996 0.0 153 -154 0.0225429534912109 0.0300000000000011 0.0300000000000011 0.0 154 -155 0.0225739479064941 0.019999999999996 0.019999999999996 0.0 155 -156 0.0225040912628174 0.019999999999996 0.019999999999996 0.0 156 -157 0.0224270820617676 0.0200000000000102 0.0200000000000102 0.0 157 -158 0.050184965133667 0.0499999999999972 0.0499999999999972 0.0 158 -159 0.0228159427642822 0.0300000000000011 0.0300000000000011 0.0 159 -160 0.0225830078125 0.019999999999996 0.019999999999996 0.0 160 -161 0.0224440097808838 0.019999999999996 0.019999999999996 0.0 161 -162 0.0228800773620605 0.0200000000000102 0.0200000000000102 0.0 162 -163 0.0230019092559814 0.0299999999999869 0.0299999999999869 0.0 163 -164 0.0468800067901611 0.0400000000000063 0.0400000000000063 0.0 164 -165 0.0230178833007812 0.019999999999996 0.019999999999996 0.0 165 -166 0.0227179527282715 0.0300000000000011 0.0300000000000011 0.0 166 -167 0.0280098915100098 0.0200000000000102 0.0200000000000102 0.0 167 -168 0.0224480628967285 0.0299999999999869 0.0299999999999869 0.0 168 -169 0.0222821235656738 0.0200000000000102 0.0200000000000102 0.0 169 -170 0.0222339630126953 0.019999999999996 0.019999999999996 0.0 170 -171 0.0482370853424072 0.0499999999999972 0.0499999999999972 0.0 171 -172 0.0229589939117432 0.019999999999996 0.019999999999996 0.0 172 -173 0.0225811004638672 0.0200000000000102 0.0200000000000102 0.0 173 -174 0.0225679874420166 0.0300000000000011 0.0300000000000011 0.0 174 -175 0.0226399898529053 0.019999999999996 0.019999999999996 0.0 175 -176 0.0225110054016113 0.019999999999996 0.019999999999996 0.0 176 -177 0.0512759685516357 0.0599999999999881 0.0499999999999972 0.01 177 -178 0.0293910503387451 0.0300000000000011 0.0300000000000011 0.0 178 -179 0.0228638648986816 0.0200000000000102 0.0200000000000102 0.0 179 -180 0.0226418972015381 0.0300000000000011 0.0300000000000011 0.0 180 -181 0.0233349800109863 0.019999999999996 0.019999999999996 0.0 181 -182 0.0224719047546387 0.019999999999996 0.019999999999996 0.0 182 -183 0.0222139358520508 0.019999999999996 0.019999999999996 0.0 183 -184 0.0475149154663086 0.0500000000000114 0.0500000000000114 0.0 184 -185 0.0268290042877197 0.0300000000000011 0.0300000000000011 0.0 185 -186 0.0225980281829834 0.019999999999996 0.019999999999996 0.0 186 -187 0.0224361419677734 0.019999999999996 0.019999999999996 0.0 187 -188 0.0225210189819336 0.0300000000000011 0.0300000000000011 0.0 188 -189 0.022615909576416 0.019999999999996 0.019999999999996 0.0 189 -190 0.0477218627929688 0.0499999999999972 0.0499999999999972 0.0 190 -191 0.0229659080505371 0.0200000000000102 0.0200000000000102 0.0 191 -192 0.0230429172515869 0.019999999999996 0.019999999999996 0.0 192 -193 0.0226750373840332 0.0300000000000011 0.0300000000000011 0.0 193 -194 0.0224380493164062 0.019999999999996 0.019999999999996 0.0 194 -195 0.0255289077758789 0.0200000000000102 0.0200000000000102 0.0 195 -196 0.0223410129547119 0.0299999999999869 0.0299999999999869 0.0 196 -197 0.0477759838104248 0.0400000000000063 0.0400000000000063 0.0 197 -198 0.0227560997009277 0.0300000000000011 0.0300000000000011 0.0 198 -199 0.0232150554656982 0.019999999999996 0.019999999999996 0.0 199 -200 0.0224218368530273 0.019999999999996 0.019999999999996 0.0 200 -201 0.0226380825042725 0.0300000000000011 0.0300000000000011 0.0 201 -202 0.0225119590759277 0.0200000000000102 0.0200000000000102 0.0 202 -203 0.0471208095550537 0.0499999999999972 0.0499999999999972 0.0 203 -204 0.0271830558776855 0.019999999999996 0.019999999999996 0.0 204 -205 0.0227551460266113 0.0300000000000011 0.0300000000000011 0.0 205 -206 0.0225760936737061 0.019999999999996 0.019999999999996 0.0 206 -207 0.0225489139556885 0.0200000000000102 0.0200000000000102 0.0 207 -208 0.0224738121032715 0.019999999999996 0.019999999999996 0.0 208 -209 0.0224080085754395 0.019999999999996 0.019999999999996 0.0 209 -210 0.0474929809570312 0.0499999999999972 0.0499999999999972 0.0 210 -211 0.0227348804473877 0.0200000000000102 0.0200000000000102 0.0 211 -212 0.0227007865905762 0.0300000000000011 0.0300000000000011 0.0 212 -213 0.0257821083068848 0.019999999999996 0.019999999999996 0.0 213 -214 0.0230338573455811 0.0300000000000011 0.0300000000000011 0.0 214 -215 0.0283098220825195 0.019999999999996 0.019999999999996 0.0 215 -216 0.048043966293335 0.0499999999999972 0.0499999999999972 0.0 216 -217 0.0241200923919678 0.0300000000000011 0.0300000000000011 0.0 217 -218 0.0226061344146729 0.019999999999996 0.019999999999996 0.0 218 -219 0.0226290225982666 0.0200000000000102 0.0200000000000102 0.0 219 -220 0.0223400592803955 0.019999999999996 0.019999999999996 0.0 220 -221 0.0222020149230957 0.019999999999996 0.019999999999996 0.0 221 -222 0.0221819877624512 0.019999999999996 0.019999999999996 0.0 222 -223 0.0513238906860352 0.0499999999999972 0.0499999999999972 0.0 223 -224 0.0227959156036377 0.0200000000000102 0.0200000000000102 0.0 224 -225 0.02286696434021 0.0300000000000011 0.0300000000000011 0.0 225 -226 0.0226180553436279 0.019999999999996 0.019999999999996 0.0 226 -227 0.0225269794464111 0.019999999999996 0.019999999999996 0.0 227 -228 0.0236740112304688 0.0300000000000011 0.0300000000000011 0.0 228 -229 0.0473580360412598 0.0400000000000063 0.0400000000000063 0.0 229 -230 0.0230889320373535 0.0300000000000011 0.0300000000000011 0.0 230 -231 0.0243098735809326 0.019999999999996 0.019999999999996 0.0 231 -232 0.0242350101470947 0.019999999999996 0.019999999999996 0.0 232 -233 0.0224809646606445 0.0300000000000011 0.0300000000000011 0.0 233 -234 0.0225131511688232 0.019999999999996 0.019999999999996 0.0 234 -235 0.0222058296203613 0.0200000000000102 0.0200000000000102 0.0 235 -236 0.0484139919281006 0.0499999999999972 0.0499999999999972 0.0 236 -237 0.0229649543762207 0.019999999999996 0.019999999999996 0.0 237 -238 0.0226538181304932 0.0300000000000011 0.0300000000000011 0.0 238 -239 0.0224990844726562 0.019999999999996 0.019999999999996 0.0 239 -240 0.0224988460540771 0.0200000000000102 0.0200000000000102 0.0 240 -241 0.0252270698547363 0.0300000000000011 0.0300000000000011 0.0 241 -242 0.0471029281616211 0.039999999999992 0.039999999999992 0.0 242 -243 0.0229470729827881 0.0300000000000011 0.0300000000000011 0.0 243 -244 0.0228309631347656 0.019999999999996 0.019999999999996 0.0 244 -245 0.0227391719818115 0.0200000000000102 0.0200000000000102 0.0 245 -246 0.0233259201049805 0.0299999999999869 0.0299999999999869 0.0 246 -247 0.0224099159240723 0.0200000000000102 0.0200000000000102 0.0 247 -248 0.0227949619293213 0.019999999999996 0.019999999999996 0.0 248 -249 0.0480821132659912 0.0499999999999972 0.0499999999999972 0.0 249 -250 0.026867151260376 0.0300000000000011 0.0300000000000011 0.0 250 -251 0.0245769023895264 0.019999999999996 0.019999999999996 0.0 251 -252 0.0283010005950928 0.0300000000000011 0.0300000000000011 0.0 252 -253 0.0227351188659668 0.0200000000000102 0.0200000000000102 0.0 253 -254 0.0224411487579346 0.019999999999996 0.019999999999996 0.0 254 -255 0.0479519367218018 0.0499999999999972 0.0499999999999972 0.0 255 -256 0.0230560302734375 0.019999999999996 0.019999999999996 0.0 256 -257 0.0227730274200439 0.0300000000000011 0.0300000000000011 0.0 257 -258 0.022550106048584 0.0200000000000102 0.0200000000000102 0.0 258 -259 0.0257129669189453 0.0300000000000011 0.0300000000000011 0.0 259 -260 0.0255739688873291 0.019999999999996 0.019999999999996 0.0 260 -261 0.0222690105438232 0.019999999999996 0.019999999999996 0.0 261 -262 0.0475499629974365 0.0499999999999972 0.0499999999999972 0.0 262 -263 0.0229249000549316 0.0200000000000102 0.0200000000000102 0.0 263 -264 0.0233249664306641 0.0299999999999869 0.0299999999999869 0.0 264 -265 0.0224719047546387 0.0200000000000102 0.0200000000000102 0.0 265 -266 0.0227599143981934 0.019999999999996 0.019999999999996 0.0 266 -267 0.0225708484649658 0.019999999999996 0.019999999999996 0.0 267 -268 0.0508639812469482 0.0500000000000114 0.0500000000000114 0.0 268 -269 0.0232470035552979 0.0299999999999869 0.0299999999999869 0.0 269 -270 0.0228660106658936 0.0200000000000102 0.0200000000000102 0.0 270 -271 0.0226750373840332 0.019999999999996 0.019999999999996 0.0 271 -272 0.0224699974060059 0.0300000000000011 0.0300000000000011 0.0 272 -273 0.023015022277832 0.019999999999996 0.019999999999996 0.0 273 -274 0.0223150253295898 0.019999999999996 0.019999999999996 0.0 274 -275 0.0476338863372803 0.0500000000000114 0.0500000000000114 0.0 275 -276 0.0227279663085938 0.019999999999996 0.019999999999996 0.0 276 -277 0.022507905960083 0.019999999999996 0.019999999999996 0.0 277 -278 0.0251290798187256 0.0300000000000011 0.0300000000000011 0.0 278 -279 0.0224900245666504 0.019999999999996 0.019999999999996 0.0 279 -280 0.0226230621337891 0.0200000000000102 0.0200000000000102 0.0 280 -281 0.0479300022125244 0.0499999999999972 0.0499999999999972 0.0 281 -282 0.0231950283050537 0.019999999999996 0.019999999999996 0.0 282 -283 0.0243661403656006 0.0300000000000011 0.0300000000000011 0.0 283 -284 0.0225939750671387 0.019999999999996 0.019999999999996 0.0 284 -285 0.0224170684814453 0.0200000000000102 0.0200000000000102 0.0 285 -286 0.0223720073699951 0.019999999999996 0.019999999999996 0.0 286 -287 0.0249221324920654 0.0300000000000011 0.0300000000000011 0.0 287 -288 0.0556089878082275 0.0600000000000023 0.0600000000000023 0.0 288 -289 0.0228722095489502 0.019999999999996 0.019999999999996 0.0 289 -290 0.0225820541381836 0.019999999999996 0.019999999999996 0.0 290 -291 0.0232369899749756 0.0200000000000102 0.0200000000000102 0.0 291 -292 0.0225460529327393 0.0299999999999869 0.0299999999999869 0.0 292 -293 0.0225048065185547 0.0200000000000102 0.0200000000000102 0.0 293 -294 0.0471150875091553 0.0499999999999972 0.0499999999999972 0.0 294 -295 0.0229630470275879 0.019999999999996 0.019999999999996 0.0 295 -296 0.026698112487793 0.0300000000000011 0.0300000000000011 0.0 296 -297 0.0225720405578613 0.019999999999996 0.019999999999996 0.0 297 -298 0.0224101543426514 0.0200000000000102 0.0200000000000102 0.0 298 -299 0.0224401950836182 0.019999999999996 0.019999999999996 0.0 299 -300 0.0223391056060791 0.0300000000000011 0.0300000000000011 0.0 300 -301 0.0480380058288574 0.039999999999992 0.039999999999992 0.0 301 -302 0.0228781700134277 0.0300000000000011 0.0300000000000011 0.0 302 -303 0.0226998329162598 0.0200000000000102 0.0200000000000102 0.0 303 -304 0.0224788188934326 0.019999999999996 0.019999999999996 0.0 304 -305 0.0245270729064941 0.0300000000000011 0.0300000000000011 0.0 305 -306 0.0251939296722412 0.019999999999996 0.019999999999996 0.0 306 -307 0.0470340251922607 0.0499999999999972 0.0499999999999972 0.0 307 -308 0.0229289531707764 0.0200000000000102 0.0200000000000102 0.0 308 -309 0.0233960151672363 0.0300000000000011 0.0300000000000011 0.0 309 -310 0.0224819183349609 0.019999999999996 0.019999999999996 0.0 310 -311 0.0227260589599609 0.019999999999996 0.019999999999996 0.0 311 -312 0.0223228931427002 0.019999999999996 0.019999999999996 0.0 312 -313 0.0223159790039062 0.0300000000000011 0.0300000000000011 0.0 313 -314 0.0510008335113525 0.0500000000000114 0.0500000000000114 0.0 314 -315 0.022799015045166 0.019999999999996 0.019999999999996 0.0 315 -316 0.0225009918212891 0.019999999999996 0.019999999999996 0.0 316 -317 0.0224380493164062 0.0300000000000011 0.0300000000000011 0.0 317 -318 0.0225141048431396 0.019999999999996 0.019999999999996 0.0 318 -319 0.0224788188934326 0.0200000000000102 0.0200000000000102 0.0 319 -320 0.0472540855407715 0.0499999999999972 0.0499999999999972 0.0 320 -321 0.0229048728942871 0.019999999999996 0.019999999999996 0.0 321 -322 0.022752046585083 0.019999999999996 0.019999999999996 0.0 322 -323 0.0224988460540771 0.0300000000000011 0.0300000000000011 0.0 323 -324 0.026637077331543 0.0200000000000102 0.0200000000000102 0.0 324 -325 0.0254490375518799 0.0299999999999869 0.0299999999999869 0.0 325 -326 0.0267879962921143 0.0300000000000011 0.0300000000000011 0.0 326 -327 0.0475130081176758 0.0400000000000063 0.0400000000000063 0.0 327 -328 0.0235271453857422 0.0300000000000011 0.0300000000000011 0.0 328 -329 0.0225729942321777 0.019999999999996 0.019999999999996 0.0 329 -330 0.0224888324737549 0.019999999999996 0.019999999999996 0.0 330 -331 0.0224771499633789 0.0200000000000102 0.0200000000000102 0.0 331 -332 0.0225000381469727 0.0300000000000011 0.0300000000000011 0.0 332 -333 0.0503771305084229 0.0499999999999972 0.0499999999999972 0.0 333 -334 0.02280592918396 0.019999999999996 0.019999999999996 0.0 334 -335 0.0226900577545166 0.019999999999996 0.019999999999996 0.0 335 -336 0.0226840972900391 0.0300000000000011 0.0300000000000011 0.0 336 -337 0.0223648548126221 0.0200000000000102 0.0200000000000102 0.0 337 -338 0.0229740142822266 0.019999999999996 0.019999999999996 0.0 338 -339 0.0223648548126221 0.019999999999996 0.019999999999996 0.0 339 -340 0.047623872756958 0.0499999999999972 0.0499999999999972 0.0 340 -341 0.0227048397064209 0.0200000000000102 0.0200000000000102 0.0 341 -342 0.0267980098724365 0.0300000000000011 0.0300000000000011 0.0 342 -343 0.0225899219512939 0.019999999999996 0.019999999999996 0.0 343 -344 0.022446870803833 0.0300000000000011 0.0300000000000011 0.0 344 -345 0.0226569175720215 0.019999999999996 0.019999999999996 0.0 345 -346 0.0477259159088135 0.0499999999999972 0.0499999999999972 0.0 346 -347 0.0228300094604492 0.019999999999996 0.019999999999996 0.0 347 -348 0.0228700637817383 0.0200000000000102 0.0200000000000102 0.0 348 -349 0.0224990844726562 0.019999999999996 0.019999999999996 0.0 349 -350 0.0223531723022461 0.0300000000000011 0.0300000000000011 0.0 350 -351 0.0225429534912109 0.019999999999996 0.019999999999996 0.0 351 -352 0.0264379978179932 0.0300000000000011 0.0300000000000011 0.0 352 -353 0.04734206199646 0.0400000000000063 0.0400000000000063 0.0 353 -354 0.0228159427642822 0.0300000000000011 0.0300000000000011 0.0 354 -355 0.0224540233612061 0.019999999999996 0.019999999999996 0.0 355 -356 0.0227231979370117 0.019999999999996 0.019999999999996 0.0 356 -357 0.0225269794464111 0.019999999999996 0.019999999999996 0.0 357 -358 0.0225820541381836 0.0300000000000011 0.0300000000000011 0.0 358 -359 0.0475459098815918 0.0400000000000063 0.0400000000000063 0.0 359 -360 0.0234520435333252 0.0300000000000011 0.0300000000000011 0.0 360 -361 0.0246992111206055 0.019999999999996 0.019999999999996 0.0 361 -362 0.0294170379638672 0.0300000000000011 0.0300000000000011 0.0 362 -363 0.0224790573120117 0.019999999999996 0.019999999999996 0.0 363 -364 0.0222852230072021 0.0300000000000011 0.0300000000000011 0.0 364 -365 0.0477530956268311 0.0400000000000063 0.0400000000000063 0.0 365 -366 0.0229170322418213 0.0300000000000011 0.0300000000000011 0.0 366 -367 0.0227410793304443 0.019999999999996 0.019999999999996 0.0 367 -368 0.0225741863250732 0.019999999999996 0.019999999999996 0.0 368 -369 0.0224859714508057 0.0300000000000011 0.0300000000000011 0.0 369 -370 0.0270230770111084 0.0200000000000102 0.0200000000000102 0.0 370 -371 0.0225620269775391 0.0299999999999869 0.0299999999999869 0.0 371 -372 0.047544002532959 0.0400000000000063 0.0400000000000063 0.0 372 -373 0.0227890014648438 0.0300000000000011 0.0300000000000011 0.0 373 -374 0.0226559638977051 0.019999999999996 0.019999999999996 0.0 374 -375 0.0231430530548096 0.019999999999996 0.019999999999996 0.0 375 -376 0.0225589275360107 0.0200000000000102 0.0200000000000102 0.0 376 -377 0.0225508213043213 0.0300000000000011 0.0300000000000011 0.0 377 -378 0.0470719337463379 0.039999999999992 0.039999999999992 0.0 378 -379 0.0261499881744385 0.0300000000000011 0.0300000000000011 0.0 379 -380 0.0227980613708496 0.019999999999996 0.019999999999996 0.0 380 -381 0.0226030349731445 0.0300000000000011 0.0300000000000011 0.0 381 -382 0.022442102432251 0.0200000000000102 0.0200000000000102 0.0 382 -383 0.0225498676300049 0.019999999999996 0.019999999999996 0.0 383 -384 0.0228650569915771 0.019999999999996 0.019999999999996 0.0 384 -385 0.0473499298095703 0.0499999999999972 0.0499999999999972 0.0 385 -386 0.0227880477905273 0.0200000000000102 0.0200000000000102 0.0 386 -387 0.0225081443786621 0.0300000000000011 0.0300000000000011 0.0 387 -388 0.0234310626983643 0.019999999999996 0.019999999999996 0.0 388 -389 0.0260570049285889 0.0300000000000011 0.0300000000000011 0.0 389 -390 0.0224580764770508 0.019999999999996 0.019999999999996 0.0 390 -391 0.0471310615539551 0.0499999999999972 0.0499999999999972 0.0 391 -392 0.02298903465271 0.0200000000000102 0.0200000000000102 0.0 392 -393 0.022860050201416 0.019999999999996 0.019999999999996 0.0 393 -394 0.0225329399108887 0.019999999999996 0.019999999999996 0.0 394 -395 0.0224058628082275 0.0300000000000011 0.0300000000000011 0.0 395 -396 0.0223350524902344 0.019999999999996 0.019999999999996 0.0 396 -397 0.022367000579834 0.0200000000000102 0.0200000000000102 0.0 397 -398 0.055199146270752 0.0599999999999881 0.0599999999999881 0.0 398 -399 0.0272421836853027 0.0200000000000102 0.0200000000000102 0.0 399 -400 0.0226209163665771 0.0300000000000011 0.0300000000000011 0.0 400 -401 0.0224409103393555 0.019999999999996 0.019999999999996 0.0 401 -402 0.0233349800109863 0.019999999999996 0.019999999999996 0.0 402 -403 0.0224699974060059 0.0300000000000011 0.0300000000000011 0.0 403 -404 0.0471019744873047 0.0400000000000063 0.0400000000000063 0.0 404 -405 0.0228829383850098 0.0300000000000011 0.0300000000000011 0.0 405 -406 0.0244019031524658 0.019999999999996 0.019999999999996 0.0 406 -407 0.0267729759216309 0.0300000000000011 0.0300000000000011 0.0 407 -408 0.0224130153656006 0.019999999999996 0.019999999999996 0.0 408 -409 0.022313117980957 0.019999999999996 0.019999999999996 0.0 409 -410 0.0224151611328125 0.0200000000000102 0.0200000000000102 0.0 410 -411 0.0483131408691406 0.0499999999999972 0.0499999999999972 0.0 411 -412 0.0227799415588379 0.019999999999996 0.019999999999996 0.0 412 -413 0.0228002071380615 0.0300000000000011 0.0300000000000011 0.0 413 -414 0.0224690437316895 0.019999999999996 0.019999999999996 0.0 414 -415 0.0225539207458496 0.0200000000000102 0.0200000000000102 0.0 415 -416 0.0254161357879639 0.0300000000000011 0.0300000000000011 0.0 416 -417 0.0482659339904785 0.0499999999999972 0.0499999999999972 0.0 417 -418 0.0229690074920654 0.019999999999996 0.019999999999996 0.0 418 -419 0.0226681232452393 0.019999999999996 0.019999999999996 0.0 419 -420 0.0230739116668701 0.0200000000000102 0.0200000000000102 0.0 420 -421 0.0223119258880615 0.0299999999999869 0.0299999999999869 0.0 421 -422 0.0240011215209961 0.0200000000000102 0.0200000000000102 0.0 422 -423 0.0470819473266602 0.0499999999999972 0.0499999999999972 0.0 423 -424 0.0231809616088867 0.019999999999996 0.019999999999996 0.0 424 -425 0.027169942855835 0.0300000000000011 0.0300000000000011 0.0 425 -426 0.0226540565490723 0.019999999999996 0.019999999999996 0.0 426 -427 0.0227150917053223 0.0200000000000102 0.0200000000000102 0.0 427 -428 0.0225992202758789 0.0300000000000011 0.0300000000000011 0.0 428 -429 0.0225179195404053 0.019999999999996 0.019999999999996 0.0 429 -430 0.0476188659667969 0.0499999999999972 0.0499999999999972 0.0 430 -431 0.0228111743927002 0.019999999999996 0.019999999999996 0.0 431 -432 0.0226650238037109 0.0200000000000102 0.0200000000000102 0.0 432 -433 0.0224969387054443 0.019999999999996 0.019999999999996 0.0 433 -434 0.0223591327667236 0.0300000000000011 0.0300000000000011 0.0 434 -435 0.0267119407653809 0.019999999999996 0.019999999999996 0.0 435 -436 0.0539910793304443 0.0600000000000023 0.0600000000000023 0.0 436 -437 0.0230631828308105 0.019999999999996 0.019999999999996 0.0 437 -438 0.0237729549407959 0.0200000000000102 0.0200000000000102 0.0 438 -439 0.0227470397949219 0.0299999999999869 0.0299999999999869 0.0 439 -440 0.0226438045501709 0.0200000000000102 0.0200000000000102 0.0 440 -441 0.0225329399108887 0.019999999999996 0.019999999999996 0.0 441 -442 0.0225589275360107 0.019999999999996 0.019999999999996 0.0 442 -443 0.0517570972442627 0.0600000000000023 0.0600000000000023 0.0 443 -444 0.0228259563446045 0.019999999999996 0.019999999999996 0.0 444 -445 0.0225679874420166 0.0200000000000102 0.0200000000000102 0.0 445 -446 0.0226199626922607 0.019999999999996 0.019999999999996 0.0 446 -447 0.0224108695983887 0.0300000000000011 0.0300000000000011 0.0 447 -448 0.022813081741333 0.019999999999996 0.019999999999996 0.0 448 -449 0.048245906829834 0.0499999999999972 0.0499999999999972 0.0 449 -450 0.0229110717773438 0.0200000000000102 0.0200000000000102 0.0 450 -451 0.0228190422058105 0.019999999999996 0.019999999999996 0.0 451 -452 0.022475004196167 0.0300000000000011 0.0300000000000011 0.0 452 -453 0.0269429683685303 0.019999999999996 0.019999999999996 0.0 453 -454 0.0225560665130615 0.0300000000000011 0.0300000000000011 0.0 454 -455 0.0226960182189941 0.019999999999996 0.019999999999996 0.0 455 -456 0.0481019020080566 0.0500000000000114 0.0500000000000114 0.0 456 -457 0.0228400230407715 0.019999999999996 0.019999999999996 0.0 457 -458 0.0225000381469727 0.019999999999996 0.019999999999996 0.0 458 -459 0.0225820541381836 0.0300000000000011 0.0300000000000011 0.0 459 -460 0.022550106048584 0.019999999999996 0.019999999999996 0.0 460 -461 0.0224931240081787 0.0200000000000102 0.0200000000000102 0.0 461 -462 0.0505130290985107 0.0499999999999972 0.0499999999999972 0.0 462 -463 0.0229830741882324 0.019999999999996 0.019999999999996 0.0 463 -464 0.0227599143981934 0.0300000000000011 0.0300000000000011 0.0 464 -465 0.0224440097808838 0.019999999999996 0.019999999999996 0.0 465 -466 0.0224459171295166 0.0200000000000102 0.0200000000000102 0.0 466 -467 0.0230529308319092 0.0299999999999869 0.0299999999999869 0.0 467 -468 0.0472948551177979 0.0400000000000063 0.0400000000000063 0.0 468 -469 0.0229778289794922 0.0300000000000011 0.0300000000000011 0.0 469 -470 0.0227181911468506 0.019999999999996 0.019999999999996 0.0 470 -471 0.0253911018371582 0.0200000000000102 0.0200000000000102 0.0 471 -472 0.0295701026916504 0.0299999999999869 0.0299999999999869 0.0 472 -473 0.0240099430084229 0.0300000000000011 0.0300000000000011 0.0 473 -474 0.0225830078125 0.0200000000000102 0.0200000000000102 0.0 474 -475 0.0483601093292236 0.0499999999999972 0.0499999999999972 0.0 475 -476 0.0228290557861328 0.019999999999996 0.019999999999996 0.0 476 -477 0.0227599143981934 0.019999999999996 0.019999999999996 0.0 477 -478 0.0223991870880127 0.0300000000000011 0.0300000000000011 0.0 478 -479 0.0224149227142334 0.0200000000000102 0.0200000000000102 0.0 479 -480 0.0231549739837646 0.019999999999996 0.019999999999996 0.0 480 -481 0.0494570732116699 0.0499999999999972 0.0499999999999972 0.0 481 -482 0.0229361057281494 0.0300000000000011 0.0300000000000011 0.0 482 -483 0.0228068828582764 0.019999999999996 0.019999999999996 0.0 483 -484 0.0226590633392334 0.0200000000000102 0.0200000000000102 0.0 484 -485 0.0231790542602539 0.019999999999996 0.019999999999996 0.0 485 -486 0.0226171016693115 0.0300000000000011 0.0300000000000011 0.0 486 -487 0.0226919651031494 0.019999999999996 0.019999999999996 0.0 487 -488 0.0492510795593262 0.0499999999999972 0.0499999999999972 0.0 488 -489 0.0257031917572021 0.0200000000000102 0.0200000000000102 0.0 489 -490 0.0239601135253906 0.0299999999999869 0.0299999999999869 0.0 490 -491 0.0223851203918457 0.0200000000000102 0.0200000000000102 0.0 491 -492 0.0224499702453613 0.019999999999996 0.019999999999996 0.0 492 -493 0.0224368572235107 0.019999999999996 0.019999999999996 0.0 493 -494 0.0476479530334473 0.0499999999999972 0.0499999999999972 0.0 494 -495 0.022913932800293 0.0300000000000011 0.0300000000000011 0.0 495 -496 0.022791862487793 0.0200000000000102 0.0200000000000102 0.0 496 -497 0.0225038528442383 0.019999999999996 0.019999999999996 0.0 497 -498 0.0226709842681885 0.019999999999996 0.019999999999996 0.0 498 -499 0.0256888866424561 0.0300000000000011 0.0300000000000011 0.0 499 -500 0.0224859714508057 0.019999999999996 0.019999999999996 0.0 500 -501 0.0475161075592041 0.0500000000000114 0.0500000000000114 0.0 501 -502 0.0226891040802002 0.019999999999996 0.019999999999996 0.0 502 -503 0.0227141380310059 0.019999999999996 0.019999999999996 0.0 503 -504 0.0224587917327881 0.0300000000000011 0.0300000000000011 0.0 504 -505 0.0225260257720947 0.019999999999996 0.019999999999996 0.0 505 -506 0.0225589275360107 0.0200000000000102 0.0200000000000102 0.0 506 -507 0.0470049381256104 0.0499999999999972 0.0499999999999972 0.0 507 -508 0.0271100997924805 0.0300000000000011 0.0300000000000011 0.0 508 -509 0.0292420387268066 0.0300000000000011 0.0300000000000011 0.0 509 -510 0.0224711894989014 0.019999999999996 0.019999999999996 0.0 510 -511 0.0221920013427734 0.019999999999996 0.019999999999996 0.0 511 -512 0.0228841304779053 0.0200000000000102 0.0200000000000102 0.0 512 -513 0.0471491813659668 0.0499999999999972 0.0499999999999972 0.0 513 -514 0.0229198932647705 0.019999999999996 0.019999999999996 0.0 514 -515 0.0227129459381104 0.0300000000000011 0.0300000000000011 0.0 515 -516 0.0225949287414551 0.019999999999996 0.019999999999996 0.0 516 -517 0.0255181789398193 0.0200000000000102 0.0200000000000102 0.0 517 -518 0.0228209495544434 0.0299999999999869 0.0299999999999869 0.0 518 -519 0.0225160121917725 0.0200000000000102 0.0200000000000102 0.0 519 -520 0.0473577976226807 0.0499999999999972 0.0499999999999972 0.0 520 -521 0.0227980613708496 0.019999999999996 0.019999999999996 0.0 521 -522 0.0231969356536865 0.019999999999996 0.019999999999996 0.0 522 -523 0.0227179527282715 0.0300000000000011 0.0300000000000011 0.0 523 -524 0.0223970413208008 0.0200000000000102 0.0200000000000102 0.0 524 -525 0.0223920345306396 0.019999999999996 0.019999999999996 0.0 525 -526 0.0507230758666992 0.0499999999999972 0.0499999999999972 0.0 526 -527 0.0229480266571045 0.019999999999996 0.019999999999996 0.0 527 -528 0.0227980613708496 0.0300000000000011 0.0300000000000011 0.0 528 -529 0.0225141048431396 0.0200000000000102 0.0200000000000102 0.0 529 -530 0.0231029987335205 0.019999999999996 0.019999999999996 0.0 530 -531 0.0224690437316895 0.0300000000000011 0.0300000000000011 0.0 531 -532 0.0224161148071289 0.019999999999996 0.019999999999996 0.0 532 -533 0.0474939346313477 0.0499999999999972 0.0499999999999972 0.0 533 -534 0.0227530002593994 0.0200000000000102 0.0200000000000102 0.0 534 -535 0.02276611328125 0.019999999999996 0.019999999999996 0.0 535 -536 0.025050163269043 0.0300000000000011 0.0300000000000011 0.0 536 -537 0.0224800109863281 0.019999999999996 0.019999999999996 0.0 537 -538 0.0225398540496826 0.019999999999996 0.019999999999996 0.0 538 -539 0.047184944152832 0.0500000000000114 0.0500000000000114 0.0 539 -540 0.0230119228363037 0.019999999999996 0.019999999999996 0.0 540 -541 0.022691011428833 0.019999999999996 0.019999999999996 0.0 541 -542 0.0224730968475342 0.0300000000000011 0.0300000000000011 0.0 542 -543 0.0223429203033447 0.019999999999996 0.019999999999996 0.0 543 -544 0.0224099159240723 0.0200000000000102 0.0200000000000102 0.0 544 -545 0.0533881187438965 0.0499999999999972 0.0499999999999972 0.0 545 -546 0.0262870788574219 0.0300000000000011 0.0300000000000011 0.0 546 -547 0.0228250026702881 0.019999999999996 0.019999999999996 0.0 547 -548 0.0226221084594727 0.0300000000000011 0.0300000000000011 0.0 548 -549 0.0232529640197754 0.019999999999996 0.019999999999996 0.0 549 -550 0.0225918292999268 0.019999999999996 0.019999999999996 0.0 550 -551 0.0225841999053955 0.0300000000000011 0.0300000000000011 0.0 551 -552 0.047435998916626 0.0400000000000063 0.0400000000000063 0.0 552 -553 0.0227999687194824 0.0300000000000011 0.0300000000000011 0.0 553 -554 0.0258529186248779 0.019999999999996 0.019999999999996 0.0 554 -555 0.022432804107666 0.019999999999996 0.019999999999996 0.0 555 -556 0.0223519802093506 0.0300000000000011 0.0300000000000011 0.0 556 -557 0.0224819183349609 0.0200000000000102 0.0200000000000102 0.0 557 -558 0.0474679470062256 0.0499999999999972 0.0499999999999972 0.0 558 -559 0.0229389667510986 0.019999999999996 0.019999999999996 0.0 559 -560 0.0228800773620605 0.019999999999996 0.019999999999996 0.0 560 -561 0.0224850177764893 0.0200000000000102 0.0200000000000102 0.0 561 -562 0.0225398540496826 0.0300000000000011 0.0300000000000011 0.0 562 -563 0.0224540233612061 0.019999999999996 0.019999999999996 0.0 563 -564 0.025576114654541 0.0300000000000011 0.0300000000000011 0.0 564 -565 0.0475959777832031 0.039999999999992 0.039999999999992 0.0 565 -566 0.0227079391479492 0.0300000000000011 0.0300000000000011 0.0 566 -567 0.0230989456176758 0.0200000000000102 0.0200000000000102 0.0 567 -568 0.0224859714508057 0.019999999999996 0.019999999999996 0.0 568 -569 0.0224618911743164 0.019999999999996 0.019999999999996 0.0 569 -570 0.0225780010223389 0.0300000000000011 0.0300000000000011 0.0 570 -571 0.0471539497375488 0.0400000000000063 0.0400000000000063 0.0 571 -572 0.0252819061279297 0.0300000000000011 0.0300000000000011 0.0 572 -573 0.0236349105834961 0.019999999999996 0.019999999999996 0.0 573 -574 0.0224208831787109 0.0300000000000011 0.0300000000000011 0.0 574 -575 0.0223720073699951 0.019999999999996 0.019999999999996 0.0 575 -576 0.0222949981689453 0.019999999999996 0.019999999999996 0.0 576 -577 0.0470468997955322 0.0499999999999972 0.0499999999999972 0.0 577 -578 0.0229780673980713 0.0200000000000102 0.0200000000000102 0.0 578 -579 0.0227508544921875 0.019999999999996 0.019999999999996 0.0 579 -580 0.022536039352417 0.0300000000000011 0.0300000000000011 0.0 580 -581 0.0225150585174561 0.019999999999996 0.019999999999996 0.0 581 -582 0.0254819393157959 0.0200000000000102 0.0200000000000102 0.0 582 -583 0.0310370922088623 0.0299999999999869 0.0299999999999869 0.0 583 -584 0.0474588871002197 0.0500000000000114 0.0500000000000114 0.0 584 -585 0.022752046585083 0.019999999999996 0.019999999999996 0.0 585 -586 0.0233280658721924 0.0300000000000011 0.0300000000000011 0.0 586 -587 0.0223760604858398 0.019999999999996 0.019999999999996 0.0 587 -588 0.0223050117492676 0.019999999999996 0.019999999999996 0.0 588 -589 0.0223169326782227 0.0200000000000102 0.0200000000000102 0.0 589 -590 0.047105073928833 0.0499999999999972 0.0499999999999972 0.0 590 -591 0.0272059440612793 0.0300000000000011 0.0300000000000011 0.0 591 -592 0.0227630138397217 0.019999999999996 0.019999999999996 0.0 592 -593 0.0226268768310547 0.019999999999996 0.019999999999996 0.0 593 -594 0.0225090980529785 0.0300000000000011 0.0300000000000011 0.0 594 -595 0.0225892066955566 0.0200000000000102 0.0200000000000102 0.0 595 -596 0.0231549739837646 0.019999999999996 0.019999999999996 0.0 596 -597 0.0475459098815918 0.0499999999999972 0.0499999999999972 0.0 597 -598 0.0226891040802002 0.019999999999996 0.019999999999996 0.0 598 -599 0.0224978923797607 0.0300000000000011 0.0300000000000011 0.0 599 -600 0.0245161056518555 0.0200000000000102 0.0200000000000102 0.0 600 -601 0.0242869853973389 0.019999999999996 0.019999999999996 0.0 601 -602 0.0225369930267334 0.0300000000000011 0.0300000000000011 0.0 602 -603 0.0477139949798584 0.039999999999992 0.039999999999992 0.0 603 -604 0.0228500366210938 0.0300000000000011 0.0300000000000011 0.0 604 -605 0.0225930213928223 0.019999999999996 0.019999999999996 0.0 605 -606 0.0224370956420898 0.0200000000000102 0.0200000000000102 0.0 606 -607 0.0223829746246338 0.019999999999996 0.019999999999996 0.0 607 -608 0.0222539901733398 0.0300000000000011 0.0300000000000011 0.0 608 -609 0.0497751235961914 0.0499999999999972 0.0499999999999972 0.0 609 -610 0.0235979557037354 0.019999999999996 0.019999999999996 0.0 610 -611 0.0227591991424561 0.0200000000000102 0.0200000000000102 0.0 611 -612 0.0226850509643555 0.0300000000000011 0.0300000000000011 0.0 612 -613 0.0225200653076172 0.019999999999996 0.019999999999996 0.0 613 -614 0.0227999687194824 0.019999999999996 0.019999999999996 0.0 614 -615 0.0224919319152832 0.019999999999996 0.019999999999996 0.0 615 -616 0.0472068786621094 0.0500000000000114 0.0500000000000114 0.0 616 -617 0.0227549076080322 0.019999999999996 0.019999999999996 0.0 617 -618 0.0224969387054443 0.0300000000000011 0.0300000000000011 0.0 618 -619 0.0257840156555176 0.019999999999996 0.019999999999996 0.0 619 -620 0.0295670032501221 0.0300000000000011 0.0300000000000011 0.0 620 -621 0.0229511260986328 0.019999999999996 0.019999999999996 0.0 621 -622 0.0471799373626709 0.0500000000000114 0.0500000000000114 0.0 622 -623 0.0238358974456787 0.0299999999999869 0.0299999999999869 0.0 623 -624 0.0228331089019775 0.0200000000000102 0.0200000000000102 0.0 624 -625 0.0225739479064941 0.019999999999996 0.019999999999996 0.0 625 -626 0.0223119258880615 0.019999999999996 0.019999999999996 0.0 626 -627 0.0223081111907959 0.0300000000000011 0.0300000000000011 0.0 627 -628 0.0510420799255371 0.0499999999999972 0.0499999999999972 0.0 628 -629 0.0229439735412598 0.0200000000000102 0.0200000000000102 0.0 629 -630 0.0228598117828369 0.019999999999996 0.019999999999996 0.0 630 -631 0.0226309299468994 0.0300000000000011 0.0300000000000011 0.0 631 -632 0.0225811004638672 0.019999999999996 0.019999999999996 0.0 632 -633 0.0231959819793701 0.019999999999996 0.019999999999996 0.0 633 -634 0.022752046585083 0.0200000000000102 0.0200000000000102 0.0 634 -635 0.0472497940063477 0.0499999999999972 0.0499999999999972 0.0 635 -636 0.0227398872375488 0.019999999999996 0.019999999999996 0.0 636 -637 0.0257761478424072 0.0300000000000011 0.0300000000000011 0.0 637 -638 0.0224080085754395 0.019999999999996 0.019999999999996 0.0 638 -639 0.0224230289459229 0.0300000000000011 0.0300000000000011 0.0 639 -640 0.0224108695983887 0.0200000000000102 0.0200000000000102 0.0 640 -641 0.0475258827209473 0.0499999999999972 0.0499999999999972 0.0 641 -642 0.0228271484375 0.019999999999996 0.019999999999996 0.0 642 -643 0.0227019786834717 0.019999999999996 0.019999999999996 0.0 643 -644 0.0224940776824951 0.0200000000000102 0.0200000000000102 0.0 644 -645 0.0224850177764893 0.0300000000000011 0.0300000000000011 0.0 645 -646 0.0227019786834717 0.019999999999996 0.019999999999996 0.0 646 -647 0.0250790119171143 0.019999999999996 0.019999999999996 0.0 647 -648 0.0480010509490967 0.0499999999999972 0.0499999999999972 0.0 648 -649 0.0226480960845947 0.0200000000000102 0.0200000000000102 0.0 649 -650 0.0224239826202393 0.0300000000000011 0.0300000000000011 0.0 650 -651 0.0233159065246582 0.019999999999996 0.019999999999996 0.0 651 -652 0.022554874420166 0.019999999999996 0.019999999999996 0.0 652 -653 0.0225050449371338 0.019999999999996 0.019999999999996 0.0 653 -654 0.04734206199646 0.0500000000000114 0.0500000000000114 0.0 654 -655 0.0227370262145996 0.019999999999996 0.019999999999996 0.0 655 -656 0.0317370891571045 0.0299999999999869 0.0299999999999869 0.0 656 -657 0.0237619876861572 0.0200000000000102 0.0200000000000102 0.0 657 -658 0.0224289894104004 0.019999999999996 0.019999999999996 0.0 658 -659 0.0223090648651123 0.0300000000000011 0.0300000000000011 0.0 659 -660 0.0475950241088867 0.039999999999992 0.039999999999992 0.0 660 -661 0.0230028629302979 0.0300000000000011 0.0300000000000011 0.0 661 -662 0.0226609706878662 0.0200000000000102 0.0200000000000102 0.0 662 -663 0.0227439403533936 0.019999999999996 0.019999999999996 0.0 663 -664 0.0224378108978271 0.019999999999996 0.019999999999996 0.0 664 -665 0.0267817974090576 0.0300000000000011 0.0300000000000011 0.0 665 -666 0.0225181579589844 0.019999999999996 0.019999999999996 0.0 666 -667 0.0476372241973877 0.0500000000000114 0.0500000000000114 0.0 667 -668 0.0227279663085938 0.019999999999996 0.019999999999996 0.0 668 -669 0.0238058567047119 0.0300000000000011 0.0300000000000011 0.0 669 -670 0.0225961208343506 0.019999999999996 0.019999999999996 0.0 670 -671 0.0226478576660156 0.019999999999996 0.019999999999996 0.0 671 -672 0.0224800109863281 0.0300000000000011 0.0300000000000011 0.0 672 -673 0.0478980541229248 0.0400000000000063 0.0400000000000063 0.0 673 -674 0.0272519588470459 0.0300000000000011 0.0300000000000011 0.0 674 -675 0.0226519107818604 0.019999999999996 0.019999999999996 0.0 675 -676 0.0225238800048828 0.0300000000000011 0.0300000000000011 0.0 676 -677 0.0224411487579346 0.019999999999996 0.019999999999996 0.0 677 -678 0.0228710174560547 0.0200000000000102 0.0200000000000102 0.0 678 -679 0.0471720695495605 0.0499999999999972 0.0499999999999972 0.0 679 -680 0.0229899883270264 0.019999999999996 0.019999999999996 0.0 680 -681 0.0226860046386719 0.019999999999996 0.019999999999996 0.0 681 -682 0.0227768421173096 0.0300000000000011 0.0300000000000011 0.0 682 -683 0.0246498584747314 0.0200000000000102 0.0200000000000102 0.0 683 -684 0.024179220199585 0.0299999999999869 0.0299999999999869 0.0 684 -685 0.0224809646606445 0.0200000000000102 0.0200000000000102 0.0 685 -686 0.0472848415374756 0.0499999999999972 0.0499999999999972 0.0 686 -687 0.0227711200714111 0.019999999999996 0.019999999999996 0.0 687 -688 0.0226719379425049 0.019999999999996 0.019999999999996 0.0 688 -689 0.0224339962005615 0.0200000000000102 0.0200000000000102 0.0 689 -690 0.022291898727417 0.0300000000000011 0.0300000000000011 0.0 690 -691 0.02239990234375 0.019999999999996 0.019999999999996 0.0 691 -692 0.0513718128204346 0.0499999999999972 0.0499999999999972 0.0 692 -693 0.0307130813598633 0.0300000000000011 0.0300000000000011 0.0 693 -694 0.0228471755981445 0.019999999999996 0.019999999999996 0.0 694 -695 0.0224709510803223 0.0300000000000011 0.0300000000000011 0.0 695 -696 0.0225100517272949 0.0200000000000102 0.0200000000000102 0.0 696 -697 0.0233030319213867 0.019999999999996 0.019999999999996 0.0 697 -698 0.0470919609069824 0.0499999999999972 0.0499999999999972 0.0 698 -699 0.0229198932647705 0.019999999999996 0.019999999999996 0.0 699 -700 0.0227630138397217 0.0200000000000102 0.0200000000000102 0.0 700 -701 0.0225980281829834 0.0200000000000102 0.0200000000000102 0.0 701 -702 0.0258259773254395 0.019999999999996 0.019999999999996 0.0 702 -703 0.0223879814147949 0.0300000000000011 0.0300000000000011 0.0 703 -704 0.0224990844726562 0.019999999999996 0.019999999999996 0.0 704 -705 0.0473251342773438 0.0499999999999972 0.0499999999999972 0.0 705 -706 0.0234189033508301 0.019999999999996 0.019999999999996 0.0 706 -707 0.0227119922637939 0.0200000000000102 0.0200000000000102 0.0 707 -708 0.0224349498748779 0.019999999999996 0.019999999999996 0.0 708 -709 0.0224518775939941 0.0300000000000011 0.0300000000000011 0.0 709 -710 0.0225179195404053 0.019999999999996 0.019999999999996 0.0 710 -711 0.0502331256866455 0.0499999999999972 0.0499999999999972 0.0 711 -712 0.0228428840637207 0.0200000000000102 0.0200000000000102 0.0 712 -713 0.0227060317993164 0.0300000000000011 0.0300000000000011 0.0 713 -714 0.023097038269043 0.019999999999996 0.019999999999996 0.0 714 -715 0.0223181247711182 0.019999999999996 0.019999999999996 0.0 715 -716 0.0222809314727783 0.019999999999996 0.019999999999996 0.0 716 -717 0.0471060276031494 0.0500000000000114 0.0500000000000114 0.0 717 -718 0.0228781700134277 0.019999999999996 0.019999999999996 0.0 718 -719 0.0229380130767822 0.0300000000000011 0.0300000000000011 0.0 719 -720 0.0258369445800781 0.019999999999996 0.019999999999996 0.0 720 -721 0.0224931240081787 0.0300000000000011 0.0300000000000011 0.0 721 -722 0.0230259895324707 0.019999999999996 0.019999999999996 0.0 722 -723 0.02252197265625 0.0200000000000102 0.0200000000000102 0.0 723 -724 0.0475549697875977 0.0499999999999972 0.0499999999999972 0.0 724 -725 0.0227770805358887 0.019999999999996 0.019999999999996 0.0 725 -726 0.0225141048431396 0.019999999999996 0.019999999999996 0.0 726 -727 0.0227451324462891 0.0300000000000011 0.0300000000000011 0.0 727 -728 0.0223758220672607 0.0200000000000102 0.0200000000000102 0.0 728 -729 0.023906946182251 0.019999999999996 0.019999999999996 0.0 729 -730 0.0556581020355225 0.0600000000000023 0.0600000000000023 0.0 730 -731 0.0229699611663818 0.019999999999996 0.019999999999996 0.0 731 -732 0.0226690769195557 0.019999999999996 0.019999999999996 0.0 732 -733 0.0225589275360107 0.0300000000000011 0.0300000000000011 0.0 733 -734 0.0232241153717041 0.019999999999996 0.019999999999996 0.0 734 -735 0.0225598812103271 0.0200000000000102 0.0200000000000102 0.0 735 -736 0.0470528602600098 0.0499999999999972 0.0499999999999972 0.0 736 -737 0.0228769779205322 0.019999999999996 0.019999999999996 0.0 737 -738 0.0257880687713623 0.0300000000000011 0.0300000000000011 0.0 738 -739 0.0235300064086914 0.019999999999996 0.019999999999996 0.0 739 -740 0.0224180221557617 0.0200000000000102 0.0200000000000102 0.0 740 -741 0.0224599838256836 0.0300000000000011 0.0300000000000011 0.0 741 -742 0.022385835647583 0.019999999999996 0.019999999999996 0.0 742 -743 0.0479929447174072 0.0499999999999972 0.0499999999999972 0.0 743 -744 0.0231039524078369 0.019999999999996 0.019999999999996 0.0 744 -745 0.0225660800933838 0.0200000000000102 0.0200000000000102 0.0 745 -746 0.0224900245666504 0.019999999999996 0.019999999999996 0.0 746 -747 0.0224640369415283 0.0300000000000011 0.0300000000000011 0.0 747 -748 0.0256268978118896 0.019999999999996 0.019999999999996 0.0 748 -749 0.0473120212554932 0.0499999999999972 0.0499999999999972 0.0 749 -750 0.0228018760681152 0.0200000000000102 0.0200000000000102 0.0 750 -751 0.0232498645782471 0.0300000000000011 0.0300000000000011 0.0 751 -752 0.0224390029907227 0.019999999999996 0.019999999999996 0.0 752 -753 0.022291898727417 0.019999999999996 0.019999999999996 0.0 753 -754 0.0223748683929443 0.019999999999996 0.019999999999996 0.0 754 -755 0.0472152233123779 0.0500000000000114 0.0500000000000114 0.0 755 -756 0.0228731632232666 0.019999999999996 0.019999999999996 0.0 756 -757 0.0252671241760254 0.0300000000000011 0.0300000000000011 0.0 757 -758 0.0226409435272217 0.019999999999996 0.019999999999996 0.0 758 -759 0.0225830078125 0.019999999999996 0.019999999999996 0.0 759 -760 0.0225331783294678 0.0300000000000011 0.0300000000000011 0.0 760 -761 0.0225949287414551 0.0200000000000102 0.0200000000000102 0.0 761 -762 0.0475749969482422 0.0499999999999972 0.0499999999999972 0.0 762 -763 0.0227329730987549 0.019999999999996 0.019999999999996 0.0 763 -764 0.0225529670715332 0.019999999999996 0.019999999999996 0.0 764 -765 0.0224440097808838 0.0200000000000102 0.0200000000000102 0.0 765 -766 0.0223290920257568 0.0300000000000011 0.0300000000000011 0.0 766 -767 0.033358097076416 0.0299999999999869 0.0299999999999869 0.0 767 -768 0.0471920967102051 0.0500000000000114 0.0500000000000114 0.0 768 -769 0.0227799415588379 0.019999999999996 0.019999999999996 0.0 769 -770 0.0234429836273193 0.019999999999996 0.019999999999996 0.0 770 -771 0.0224521160125732 0.0300000000000011 0.0300000000000011 0.0 771 -772 0.0226120948791504 0.019999999999996 0.019999999999996 0.0 772 -773 0.0225300788879395 0.0200000000000102 0.0200000000000102 0.0 773 -774 0.0472240447998047 0.0499999999999972 0.0499999999999972 0.0 774 -775 0.0266668796539307 0.0300000000000011 0.0300000000000011 0.0 775 -776 0.023015022277832 0.019999999999996 0.019999999999996 0.0 776 -777 0.0226809978485107 0.019999999999996 0.019999999999996 0.0 777 -778 0.0225629806518555 0.0200000000000102 0.0200000000000102 0.0 778 -779 0.0223550796508789 0.0300000000000011 0.0300000000000011 0.0 779 -780 0.0230989456176758 0.019999999999996 0.019999999999996 0.0 780 -781 0.0475809574127197 0.0499999999999972 0.0499999999999972 0.0 781 -782 0.0226840972900391 0.019999999999996 0.019999999999996 0.0 782 -783 0.0225729942321777 0.0200000000000102 0.0200000000000102 0.0 783 -784 0.0224289894104004 0.0300000000000011 0.0300000000000011 0.0 784 -785 0.0256469249725342 0.019999999999996 0.019999999999996 0.0 785 -786 0.0225028991699219 0.019999999999996 0.019999999999996 0.0 786 -787 0.0480420589447021 0.0499999999999972 0.0499999999999972 0.0 787 -788 0.0228919982910156 0.0200000000000102 0.0200000000000102 0.0 788 -789 0.0226309299468994 0.0299999999999869 0.0299999999999869 0.0 789 -790 0.0224378108978271 0.0200000000000102 0.0200000000000102 0.0 790 -791 0.0224709510803223 0.019999999999996 0.019999999999996 0.0 791 -792 0.0223159790039062 0.019999999999996 0.019999999999996 0.0 792 -793 0.0482239723205566 0.0400000000000063 0.0400000000000063 0.0 793 -794 0.0246069431304932 0.0299999999999869 0.0299999999999869 0.0 794 -795 0.0227251052856445 0.0200000000000102 0.0200000000000102 0.0 795 -796 0.0226359367370605 0.019999999999996 0.019999999999996 0.0 796 -797 0.0224781036376953 0.0300000000000011 0.0300000000000011 0.0 797 -798 0.0225961208343506 0.019999999999996 0.019999999999996 0.0 798 -799 0.0226588249206543 0.019999999999996 0.019999999999996 0.0 799 -800 0.0475590229034424 0.0500000000000114 0.0500000000000114 0.0 800 -801 0.0227870941162109 0.019999999999996 0.019999999999996 0.0 801 -802 0.0225069522857666 0.019999999999996 0.019999999999996 0.0 802 -803 0.0258538722991943 0.0300000000000011 0.0300000000000011 0.0 803 -804 0.0293428897857666 0.0300000000000011 0.0300000000000011 0.0 804 -805 0.022611141204834 0.019999999999996 0.019999999999996 0.0 805 -806 0.0470418930053711 0.0500000000000114 0.0500000000000114 0.0 806 -807 0.0237758159637451 0.019999999999996 0.019999999999996 0.0 807 -808 0.0227320194244385 0.0300000000000011 0.0300000000000011 0.0 808 -809 0.0224711894989014 0.019999999999996 0.019999999999996 0.0 809 -810 0.0225059986114502 0.019999999999996 0.019999999999996 0.0 810 -811 0.0224649906158447 0.0200000000000102 0.0200000000000102 0.0 811 -812 0.0506050586700439 0.0499999999999972 0.0499999999999972 0.0 812 -813 0.0230269432067871 0.0300000000000011 0.0300000000000011 0.0 813 -814 0.0228140354156494 0.019999999999996 0.019999999999996 0.0 814 -815 0.0225369930267334 0.019999999999996 0.019999999999996 0.0 815 -816 0.0224819183349609 0.0300000000000011 0.0300000000000011 0.0 816 -817 0.0230681896209717 0.019999999999996 0.019999999999996 0.0 817 -818 0.0226531028747559 0.0200000000000102 0.0200000000000102 0.0 818 -819 0.0471920967102051 0.0499999999999972 0.0499999999999972 0.0 819 -820 0.022752046585083 0.019999999999996 0.019999999999996 0.0 820 -821 0.0240130424499512 0.0300000000000011 0.0300000000000011 0.0 821 -822 0.024043083190918 0.019999999999996 0.019999999999996 0.0 822 -823 0.022367000579834 0.0200000000000102 0.0200000000000102 0.0 823 -824 0.0223929882049561 0.019999999999996 0.019999999999996 0.0 824 -825 0.0477418899536133 0.0499999999999972 0.0499999999999972 0.0 825 -826 0.0227749347686768 0.0300000000000011 0.0300000000000011 0.0 826 -827 0.0227129459381104 0.019999999999996 0.019999999999996 0.0 827 -828 0.0225088596343994 0.0200000000000102 0.0200000000000102 0.0 828 -829 0.0223178863525391 0.019999999999996 0.019999999999996 0.0 829 -830 0.02256178855896 0.0300000000000011 0.0300000000000011 0.0 830 -831 0.0491888523101807 0.039999999999992 0.039999999999992 0.0 831 -832 0.0238690376281738 0.0300000000000011 0.0300000000000011 0.0 832 -833 0.0228731632232666 0.0200000000000102 0.0200000000000102 0.0 833 -834 0.0226390361785889 0.019999999999996 0.019999999999996 0.0 834 -835 0.0226919651031494 0.0300000000000011 0.0300000000000011 0.0 835 -836 0.0225028991699219 0.019999999999996 0.019999999999996 0.0 836 -837 0.0224220752716064 0.019999999999996 0.019999999999996 0.0 837 -838 0.0475718975067139 0.0500000000000114 0.0500000000000114 0.0 838 -839 0.0228641033172607 0.019999999999996 0.019999999999996 0.0 839 -840 0.0308690071105957 0.0300000000000011 0.0300000000000011 0.0 840 -841 0.0251350402832031 0.0300000000000011 0.0300000000000011 0.0 841 -842 0.022784948348999 0.019999999999996 0.019999999999996 0.0 842 -843 0.022475004196167 0.019999999999996 0.019999999999996 0.0 843 -844 0.0481071472167969 0.0499999999999972 0.0499999999999972 0.0 844 -845 0.022777795791626 0.0200000000000102 0.0200000000000102 0.0 845 -846 0.0225391387939453 0.0300000000000011 0.0300000000000011 0.0 846 -847 0.0223829746246338 0.019999999999996 0.019999999999996 0.0 847 -848 0.0222880840301514 0.019999999999996 0.019999999999996 0.0 848 -849 0.0231649875640869 0.0200000000000102 0.0200000000000102 0.0 849 -850 0.0498239994049072 0.0499999999999972 0.0499999999999972 0.0 850 -851 0.0229728221893311 0.0300000000000011 0.0300000000000011 0.0 851 -852 0.0226678848266602 0.019999999999996 0.019999999999996 0.0 852 -853 0.0235629081726074 0.019999999999996 0.019999999999996 0.0 853 -854 0.0226778984069824 0.0300000000000011 0.0300000000000011 0.0 854 -855 0.0225760936737061 0.019999999999996 0.019999999999996 0.0 855 -856 0.0472428798675537 0.0500000000000114 0.0500000000000114 0.0 856 -857 0.0228590965270996 0.019999999999996 0.019999999999996 0.0 857 -858 0.0256388187408447 0.0300000000000011 0.0300000000000011 0.0 858 -859 0.0229208469390869 0.019999999999996 0.019999999999996 0.0 859 -860 0.0224840641021729 0.019999999999996 0.019999999999996 0.0 860 -861 0.0223701000213623 0.0200000000000102 0.0200000000000102 0.0 861 -862 0.0229117870330811 0.0300000000000011 0.0300000000000011 0.0 862 -863 0.0475149154663086 0.039999999999992 0.039999999999992 0.0 863 -864 0.022799015045166 0.0300000000000011 0.0300000000000011 0.0 864 -865 0.0225379467010498 0.019999999999996 0.019999999999996 0.0 865 -866 0.0226678848266602 0.0200000000000102 0.0200000000000102 0.0 866 -867 0.0223591327667236 0.019999999999996 0.019999999999996 0.0 867 -868 0.0251359939575195 0.0300000000000011 0.0300000000000011 0.0 868 -869 0.0475220680236816 0.0499999999999972 0.0499999999999972 0.0 869 -870 0.0227980613708496 0.019999999999996 0.019999999999996 0.0 870 -871 0.0227110385894775 0.0200000000000102 0.0200000000000102 0.0 871 -872 0.0231759548187256 0.0299999999999869 0.0299999999999869 0.0 872 -873 0.0223469734191895 0.0200000000000102 0.0200000000000102 0.0 873 -874 0.0222749710083008 0.019999999999996 0.019999999999996 0.0 874 -875 0.046968936920166 0.0499999999999972 0.0499999999999972 0.0 875 -876 0.0229840278625488 0.0200000000000102 0.0200000000000102 0.0 876 -877 0.0336899757385254 0.0299999999999869 0.0299999999999869 0.0 877 -878 0.0226821899414062 0.0300000000000011 0.0300000000000011 0.0 878 -879 0.0225288867950439 0.0200000000000102 0.0200000000000102 0.0 879 -880 0.0224189758300781 0.019999999999996 0.019999999999996 0.0 880 -881 0.023205041885376 0.0300000000000011 0.0300000000000011 0.0 881 -882 0.0473780632019043 0.039999999999992 0.039999999999992 0.0 882 -883 0.0226800441741943 0.0300000000000011 0.0300000000000011 0.0 883 -884 0.0224399566650391 0.0200000000000102 0.0200000000000102 0.0 884 -885 0.0223681926727295 0.019999999999996 0.019999999999996 0.0 885 -886 0.0252659320831299 0.0300000000000011 0.0300000000000011 0.0 886 -887 0.0249259471893311 0.019999999999996 0.019999999999996 0.0 887 -888 0.047400951385498 0.0499999999999972 0.0499999999999972 0.0 888 -889 0.0227570533752441 0.0200000000000102 0.0200000000000102 0.0 889 -890 0.0234551429748535 0.019999999999996 0.019999999999996 0.0 890 -891 0.0227649211883545 0.0300000000000011 0.0300000000000011 0.0 891 -892 0.0223729610443115 0.019999999999996 0.019999999999996 0.0 892 -893 0.0223479270935059 0.019999999999996 0.019999999999996 0.0 893 -894 0.047307014465332 0.0500000000000114 0.0500000000000114 0.0 894 -895 0.0258030891418457 0.019999999999996 0.019999999999996 0.0 895 -896 0.0229730606079102 0.0300000000000011 0.0300000000000011 0.0 896 -897 0.0226550102233887 0.019999999999996 0.019999999999996 0.0 897 -898 0.0230071544647217 0.019999999999996 0.019999999999996 0.0 898 -899 0.0224480628967285 0.0300000000000011 0.0300000000000011 0.0 899 -900 0.047260046005249 0.0400000000000063 0.0400000000000063 0.0 900 -901 0.0229511260986328 0.0300000000000011 0.0300000000000011 0.0 901 -902 0.0227549076080322 0.019999999999996 0.019999999999996 0.0 902 -903 0.0227870941162109 0.019999999999996 0.019999999999996 0.0 903 -904 0.023169994354248 0.0200000000000102 0.0200000000000102 0.0 904 -905 0.0247299671173096 0.0299999999999869 0.0299999999999869 0.0 905 -906 0.0232272148132324 0.0200000000000102 0.0200000000000102 0.0 906 -907 0.0473639965057373 0.0499999999999972 0.0499999999999972 0.0 907 -908 0.0231180191040039 0.019999999999996 0.019999999999996 0.0 908 -909 0.0226378440856934 0.0300000000000011 0.0300000000000011 0.0 909 -910 0.0224730968475342 0.019999999999996 0.019999999999996 0.0 910 -911 0.0223720073699951 0.0200000000000102 0.0200000000000102 0.0 911 -912 0.0224881172180176 0.019999999999996 0.019999999999996 0.0 912 -913 0.0518181324005127 0.0600000000000023 0.0600000000000023 0.0 913 -914 0.0285370349884033 0.019999999999996 0.019999999999996 0.0 914 -915 0.0229339599609375 0.0300000000000011 0.0300000000000011 0.0 915 -916 0.0224258899688721 0.019999999999996 0.019999999999996 0.0 916 -917 0.0223419666290283 0.0200000000000102 0.0200000000000102 0.0 917 -918 0.0231149196624756 0.019999999999996 0.019999999999996 0.0 918 -919 0.0469498634338379 0.0499999999999972 0.0499999999999972 0.0 919 -920 0.0229380130767822 0.019999999999996 0.019999999999996 0.0 920 -921 0.022784948348999 0.0300000000000011 0.0300000000000011 0.0 921 -922 0.0224778652191162 0.0200000000000102 0.0200000000000102 0.0 922 -923 0.025670051574707 0.0299999999999869 0.0299999999999869 0.0 923 -924 0.0241270065307617 0.0200000000000102 0.0200000000000102 0.0 924 -925 0.0224959850311279 0.019999999999996 0.019999999999996 0.0 925 -926 0.0475151538848877 0.0499999999999972 0.0499999999999972 0.0 926 -927 0.0233569145202637 0.019999999999996 0.019999999999996 0.0 927 -928 0.022697925567627 0.0300000000000011 0.0300000000000011 0.0 928 -929 0.0224049091339111 0.0200000000000102 0.0200000000000102 0.0 929 -930 0.0223929882049561 0.019999999999996 0.019999999999996 0.0 930 -931 0.0224430561065674 0.019999999999996 0.019999999999996 0.0 931 -932 0.0508589744567871 0.0499999999999972 0.0499999999999972 0.0 932 -933 0.0229549407958984 0.0300000000000011 0.0300000000000011 0.0 933 -934 0.0227360725402832 0.0200000000000102 0.0200000000000102 0.0 934 -935 0.0230159759521484 0.019999999999996 0.019999999999996 0.0 935 -936 0.0223309993743896 0.019999999999996 0.019999999999996 0.0 936 -937 0.0222959518432617 0.019999999999996 0.019999999999996 0.0 937 -938 0.0472970008850098 0.0400000000000063 0.0400000000000063 0.0 938 -939 0.0230600833892822 0.0300000000000011 0.0300000000000011 0.0 939 -940 0.0226349830627441 0.019999999999996 0.019999999999996 0.0 940 -941 0.025303840637207 0.0300000000000011 0.0300000000000011 0.0 941 -942 0.0234689712524414 0.019999999999996 0.019999999999996 0.0 942 -943 0.022615909576416 0.019999999999996 0.019999999999996 0.0 943 -944 0.0470030307769775 0.0500000000000114 0.0500000000000114 0.0 944 -945 0.0232269763946533 0.019999999999996 0.019999999999996 0.0 945 -946 0.0227811336517334 0.0300000000000011 0.0300000000000011 0.0 946 -947 0.0225110054016113 0.019999999999996 0.019999999999996 0.0 947 -948 0.0224099159240723 0.019999999999996 0.019999999999996 0.0 948 -949 0.0224759578704834 0.0200000000000102 0.0200000000000102 0.0 949 -950 0.0223360061645508 0.0300000000000011 0.0300000000000011 0.0 950 -951 0.0556850433349609 0.0499999999999972 0.0499999999999972 0.0 951 -952 0.0229251384735107 0.019999999999996 0.019999999999996 0.0 952 -953 0.0225358009338379 0.0300000000000011 0.0300000000000011 0.0 953 -954 0.0226168632507324 0.019999999999996 0.019999999999996 0.0 954 -955 0.023292064666748 0.019999999999996 0.019999999999996 0.0 955 -956 0.0225601196289062 0.0300000000000011 0.0300000000000011 0.0 956 -957 0.0472140312194824 0.0400000000000063 0.0400000000000063 0.0 957 -958 0.0228290557861328 0.0300000000000011 0.0300000000000011 0.0 958 -959 0.0247390270233154 0.019999999999996 0.019999999999996 0.0 959 -960 0.0244059562683105 0.019999999999996 0.019999999999996 0.0 960 -961 0.0223748683929443 0.0300000000000011 0.0300000000000011 0.0 961 -962 0.0224399566650391 0.0200000000000102 0.0200000000000102 0.0 962 -963 0.0478479862213135 0.0499999999999972 0.0499999999999972 0.0 963 -964 0.0231130123138428 0.019999999999996 0.019999999999996 0.0 964 -965 0.0229220390319824 0.019999999999996 0.019999999999996 0.0 965 -966 0.0224699974060059 0.0300000000000011 0.0300000000000011 0.0 966 -967 0.0225620269775391 0.0200000000000102 0.0200000000000102 0.0 967 -968 0.0224020481109619 0.019999999999996 0.019999999999996 0.0 968 -969 0.0508251190185547 0.0499999999999972 0.0499999999999972 0.0 969 -970 0.0230629444122314 0.0300000000000011 0.0300000000000011 0.0 970 -971 0.0234439373016357 0.019999999999996 0.019999999999996 0.0 971 -972 0.0241410732269287 0.0200000000000102 0.0200000000000102 0.0 972 -973 0.0225048065185547 0.019999999999996 0.019999999999996 0.0 973 -974 0.0223360061645508 0.0300000000000011 0.0300000000000011 0.0 974 -975 0.0224909782409668 0.019999999999996 0.019999999999996 0.0 975 -976 0.0475950241088867 0.0499999999999972 0.0499999999999972 0.0 976 -977 0.0227401256561279 0.0200000000000102 0.0200000000000102 0.0 977 -978 0.0255289077758789 0.019999999999996 0.019999999999996 0.0 978 -979 0.0238900184631348 0.0300000000000011 0.0300000000000011 0.0 979 -980 0.0224909782409668 0.019999999999996 0.019999999999996 0.0 980 -981 0.0223910808563232 0.019999999999996 0.019999999999996 0.0 981 -982 0.0473268032073975 0.0499999999999972 0.0499999999999972 0.0 982 -983 0.0227880477905273 0.0200000000000102 0.0200000000000102 0.0 983 -984 0.0226118564605713 0.0300000000000011 0.0300000000000011 0.0 984 -985 0.0223948955535889 0.019999999999996 0.019999999999996 0.0 985 -986 0.0223472118377686 0.019999999999996 0.019999999999996 0.0 986 -987 0.0237748622894287 0.0200000000000102 0.0200000000000102 0.0 987 -988 0.0564570426940918 0.0499999999999972 0.0499999999999972 0.0 988 -989 0.0229530334472656 0.0200000000000102 0.0200000000000102 0.0 989 -990 0.0226871967315674 0.0300000000000011 0.0300000000000011 0.0 990 -991 0.0234870910644531 0.019999999999996 0.019999999999996 0.0 991 -992 0.0224900245666504 0.019999999999996 0.019999999999996 0.0 992 -993 0.0224850177764893 0.0300000000000011 0.0300000000000011 0.0 993 -994 0.0470020771026611 0.0400000000000063 0.0400000000000063 0.0 994 -995 0.022852897644043 0.0300000000000011 0.0300000000000011 0.0 995 -996 0.0257470607757568 0.019999999999996 0.019999999999996 0.0 996 -997 0.0236849784851074 0.0300000000000011 0.0300000000000011 0.0 997 -998 0.0226609706878662 0.019999999999996 0.019999999999996 0.0 998 -999 0.0222959518432617 0.019999999999996 0.019999999999996 0.0 999 -1000 0.0223429203033447 0.0200000000000102 0.0200000000000102 0.0 1000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log deleted file mode 100644 index 1d42e63..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log +++ /dev/null @@ -1,262 +0,0 @@ -========================== 2009-04-01T16:50:52 CEST =========================== -Benchmarking on ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]. -Running 'GeneratorBenchmarkPure' for 1000 iterations/method (compare_time=real) -=============================================================================== - -This first run is only for warmup. -GeneratorBenchmarkPure#generator_pretty: - real total user system -sum 27.356301069 27.380000000 27.370000000 0.010000000 -min 0.022372007 0.020000000 0.020000000 0.000000000 -std- 0.018178834 0.017248947 0.017256376 -0.000306228 -mean 0.027356301 0.027380000 0.027370000 0.000010000 -std+ 0.036533768 0.037511053 0.037483624 0.000326228 -max 0.059602976 0.060000000 0.060000000 0.010000000 -std 0.009177467 0.010131053 0.010113624 0.000316228 -std% 33.547909026 37.001655096 36.951493429 3162.277660168 -harm 0.025499974 0.024719842 0.024716787 nan -geo 0.026258699 0.025883656 0.025877881 0.000000000 -q1 0.023006916 0.020000000 0.020000000 0.000000000 -med 0.023234129 0.020000000 0.020000000 0.000000000 -q3 0.024879038 0.030000000 0.030000000 0.000000000 - 1000 36.55465 0.027356301 - calls calls/sec secs/call - - 0.05774 -| - 0.05402 -|* - 0.05030 -|**** - 0.04657 -|*** - 0.04285 -| - 0.03913 -| - 0.03540 -| - 0.03168 -|* - 0.02796 -|*** - 0.02423 -|************************************************** - -Outliers detected with box plot algo (median=0.02323, iqr=0.00187, factor=3.00): -high=72 very_high=150 - -Ljung-Box statistics: q=3705.61130 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -GeneratorBenchmarkPure#generator_pretty: - real total user system -sum 27.569372892 27.540000000 27.530000000 0.010000000 -min 0.022536039 0.020000000 0.020000000 0.000000000 -std- 0.018335894 0.017329581 0.017326902 -0.000306228 -mean 0.027569373 0.027540000 0.027530000 0.000010000 -std+ 0.036802852 0.037750419 0.037733098 0.000326228 -max 0.056230068 0.060000000 0.060000000 0.010000000 -std 0.009233479 0.010210419 0.010203098 0.000316228 -std% 33.491797772 37.074868658 37.061742557 3162.277660168 -harm 0.025675439 0.024841635 0.024836493 nan -geo 0.026453993 0.026024721 0.026017235 0.000000000 -q1 0.023056030 0.020000000 0.020000000 0.000000000 -med 0.023363113 0.020000000 0.020000000 0.000000000 -q3 0.025253892 0.030000000 0.030000000 0.000000000 - 1000 36.27213 0.027569373 - calls calls/sec secs/call - - 0.05455 -|* - 0.05118 -|** - 0.04781 -|****** - 0.04444 -| - 0.04107 -| - 0.03770 -| - 0.03433 -| - 0.03096 -|* - 0.02759 -|***** - 0.02422 -|************************************************** - -Outliers detected with box plot algo (median=0.02336, iqr=0.00220, factor=3.00): -high=67 very_high=148 - -Ljung-Box statistics: q=3212.48820 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -No initial data truncated. - => System may have been in a steady state from the beginning. -------------------------------------------------------------------------------- - -This first run is only for warmup. -GeneratorBenchmarkPure#generator_safe: - real total user system -sum 26.869803667 26.870000000 26.870000000 0.000000000 -min 0.022134781 0.020000000 0.020000000 0.000000000 -std- 0.017763505 0.016750439 0.016750439 0.000000000 -mean 0.026869804 0.026870000 0.026870000 0.000000000 -std+ 0.035976103 0.036989561 0.036989561 0.000000000 -max 0.054952860 0.060000000 0.060000000 0.000000000 -std 0.009106299 0.010119561 0.010119561 0.000000000 -std% 33.890455748 37.661185483 37.661185483 nan -harm 0.024986876 0.024236549 0.024236549 nan -geo 0.025759291 0.025373850 0.025373850 0.000000000 -q1 0.022480011 0.020000000 0.020000000 0.000000000 -med 0.022669554 0.020000000 0.020000000 0.000000000 -q3 0.024562180 0.030000000 0.030000000 0.000000000 - 1000 37.21650 0.026869804 - calls calls/sec secs/call - - 0.05331 -|* - 0.05003 -|** - 0.04675 -|******* - 0.04347 -| - 0.04018 -| - 0.03690 -| - 0.03362 -| - 0.03034 -|* - 0.02706 -|**** - 0.02378 -|************************************************** - -Outliers detected with box plot algo (median=0.02267, iqr=0.00208, factor=3.00): -high=77 very_high=149 - -Ljung-Box statistics: q=3100.69443 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -GeneratorBenchmarkPure#generator_safe: - real total user system -sum 27.079979420 27.040000000 27.030000000 0.010000000 -min 0.022160053 0.020000000 0.020000000 0.000000000 -std- 0.017839790 0.016756803 0.016774061 -0.000306228 -mean 0.027079979 0.027040000 0.027030000 0.000010000 -std+ 0.036320169 0.037323197 0.037285939 0.000326228 -max 0.056457043 0.060000000 0.060000000 0.010000000 -std 0.009240189 0.010283197 0.010255939 0.000316228 -std% 34.121847738 38.029575352 37.942800504 3162.277660168 -harm 0.025134510 0.024331887 0.024329914 nan -geo 0.025935574 0.025501913 0.025497264 0.000000000 -q1 0.022511005 0.020000000 0.020000000 0.000000000 -med 0.022763968 0.020000000 0.020000000 0.000000000 -q3 0.024686873 0.030000000 0.030000000 0.000000000 - 1000 36.92765 0.027079979 - calls calls/sec secs/call - - 0.05474 -| - 0.05131 -|* - 0.04788 -|******** - 0.04445 -| - 0.04102 -| - 0.03759 -| - 0.03416 -| - 0.03073 -|* - 0.02730 -|*** - 0.02387 -|************************************************** - -Outliers detected with box plot algo (median=0.02276, iqr=0.00218, factor=3.00): -high=53 very_high=158 - -Ljung-Box statistics: q=3263.81737 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -No initial data truncated. - => System may have been in a steady state from the beginning. -------------------------------------------------------------------------------- - -This first run is only for warmup. -GeneratorBenchmarkPure#generator_fast: - real total user system -sum 19.930217266 19.900000000 19.900000000 0.000000000 -min 0.015556812 0.010000000 0.010000000 0.000000000 -std- 0.010984683 0.009865525 0.009865525 0.000000000 -mean 0.019930217 0.019900000 0.019900000 0.000000000 -std+ 0.028875752 0.029934475 0.029934475 0.000000000 -max 0.048508883 0.050000000 0.050000000 0.000000000 -std 0.008945535 0.010034475 0.010034475 0.000000000 -std% 44.884280314 50.424498030 50.424498030 nan -harm 0.017806422 0.016056519 0.016056519 nan -geo 0.018618502 0.017792091 0.017792091 0.000000000 -q1 0.015833676 0.010000000 0.010000000 0.000000000 -med 0.016059995 0.020000000 0.020000000 0.000000000 -q3 0.016686678 0.020000000 0.020000000 0.000000000 - 1000 50.17507 0.019930217 - calls calls/sec secs/call - - 0.04686 -| - 0.04357 -|** - 0.04027 -|****** - 0.03698 -| - 0.03368 -| - 0.03039 -| - 0.02709 -| - 0.02379 -|* - 0.02050 -|** - 0.01720 -|************************************************** - -Outliers detected with box plot algo (median=0.01606, iqr=0.00085, factor=3.00): -high=46 very_high=180 - -Ljung-Box statistics: q=3486.59836 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -GeneratorBenchmarkPure#generator_fast: - real total user system -sum 20.008520842 19.960000000 19.950000000 0.010000000 -min 0.015434027 0.010000000 0.010000000 0.000000000 -std- 0.010882230 0.009581845 0.009596030 -0.000306228 -mean 0.020008521 0.019960000 0.019950000 0.000010000 -std+ 0.029134812 0.030338155 0.030303970 0.000326228 -max 0.047976971 0.050000000 0.050000000 0.010000000 -std 0.009126291 0.010378155 0.010353970 0.000316228 -std% 45.612021047 51.994765712 51.899601404 3162.277660168 -harm 0.017787111 0.015944725 0.015943454 nan -geo 0.018637889 0.017737808 0.017733851 0.000000000 -q1 0.015746295 0.010000000 0.010000000 0.000000000 -med 0.015944481 0.020000000 0.020000000 0.000000000 -q3 0.016811609 0.020000000 0.020000000 0.000000000 - 1000 49.97871 0.020008521 - calls calls/sec secs/call - - 0.04635 -|* - 0.04310 -|** - 0.03984 -|******* - 0.03659 -| - 0.03333 -| - 0.03008 -| - 0.02682 -| - 0.02357 -| - 0.02032 -|*** - 0.01706 -|************************************************** - -Outliers detected with box plot algo (median=0.01594, iqr=0.00107, factor=3.00): -high=64 very_high=166 - -Ljung-Box statistics: q=2965.93220 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -No initial data truncated. - => System may have been in a steady state from the beginning. -========================== 2009-04-01T16:53:33 CEST =========================== - -Comparing times (call_time_mean): - 1 GeneratorBenchmarkPure#generator_fast 1000 repeats: - 49.978706968 ( real) -> 1.378x - 0.020008521 - 2 GeneratorBenchmarkPure#generator_safe 1000 repeats: - 36.927649925 ( real) -> 1.018x 3 (>=3859) - 0.027079979 - 3 GeneratorBenchmarkPure#generator_pretty 1000 repeats: - 36.272134441 ( real) -> 1.000x 2 (>=3859) - 0.027569373 - calls/sec ( time) -> speed covers - secs/call - -Comparing times (call_time_median): - 1 GeneratorBenchmarkPure#generator_fast 1000 repeats: - 62.717626652 ( real) -> 1.465x - 0.015944481 - 2 GeneratorBenchmarkPure#generator_safe 1000 repeats: - 43.929073409 ( real) -> 1.026x 3 (>=3859) - 0.022763968 - 3 GeneratorBenchmarkPure#generator_pretty 1000 repeats: - 42.802514491 ( real) -> 1.000x 2 (>=3859) - 0.023363113 - calls/sec ( time) -> speed covers - secs/call -=============================================================================== -Writing measurement data file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_pretty.dat'. -Writing autocorrelation plot file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat'. -Writing measurement data file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_safe.dat'. -Writing autocorrelation plot file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat'. -Writing measurement data file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_fast.dat'. -Writing autocorrelation plot file '/data/scm/json/benchmarks/data/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat'. diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat deleted file mode 100644 index 8817d65..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat +++ /dev/null @@ -1,1000 +0,0 @@ -#lag autocorrelation -1 1.0 -2 -0.0465724627546347 -3 -0.0538491011993629 -4 -0.0538837516678858 -5 -0.0581087152880847 -6 -0.0572986418232159 -7 -0.0599999756465123 -8 -0.068646253651936 -9 -0.0748373181827194 -10 -0.0762302382502274 -11 -0.0698190157504385 -12 -0.0638026172211339 -13 -0.056269249634719 -14 -0.0567327382445349 -15 -0.0596771394790282 -16 -0.054002423139168 -17 -0.0490317335722634 -18 0.461538736857567 -19 0.45915885478734 -20 -0.0465031134094806 -21 -0.0522729893812941 -22 -0.0556508820670087 -23 -0.0550082280116714 -24 -0.0545719306525113 -25 -0.0657168876641937 -26 -0.0693857874047984 -27 -0.0792986072802413 -28 -0.0733338236920328 -29 -0.0654333815670565 -30 -0.0571917436864775 -31 -0.0526717459233624 -32 -0.0557521787108153 -33 -0.0549975758505058 -34 -0.0517415749303995 -35 0.0235297603781655 -36 0.804189593789118 -37 0.0278204967070628 -38 -0.050024141489799 -39 -0.0518095926145569 -40 -0.0452419084747306 -41 -0.0508505065460828 -42 -0.0630761219578647 -43 -0.062815338541251 -44 -0.0772705590073707 -45 -0.0729125138410514 -46 -0.0718320579999123 -47 -0.0607354760752678 -48 -0.0537362276786008 -49 -0.0486777895346357 -50 -0.0554247873222313 -51 -0.0511645855928409 -52 -0.0466004298363093 -53 0.459873350367521 -54 0.424472275070108 -55 -0.0487047547824375 -56 -0.0545283173980978 -57 -0.0480870048405532 -58 -0.0558758950923908 -59 -0.0508952051704444 -60 -0.0620003778190341 -61 -0.0676424010473159 -62 -0.0753766989500048 -63 -0.0695341618321725 -64 -0.0663751431467297 -65 -0.0563170232338965 -66 -0.053655761264179 -67 -0.0530055660822738 -68 -0.0517420323264873 -69 -0.0456703115975304 -70 0.103335608865948 -71 0.639961232446673 -72 0.0835611643585718 -73 -0.0505874487567197 -74 -0.0544864827038179 -75 -0.05268470170316 -76 -0.0471381749128569 -77 -0.0587367141040808 -78 -0.0594188669128526 -79 -0.0650917021991912 -80 -0.068525580194848 -81 -0.0720464392408628 -82 -0.0530371585210882 -83 -0.0594974405056426 -84 -0.0468462249568105 -85 -0.0556729861678099 -86 -0.0486685569511801 -87 -0.0231831809211586 -88 0.412151261252192 -89 0.427286596751845 -90 -0.0468484487476343 -91 -0.0513065750413643 -92 -0.0506460103589642 -93 -0.0523040710285122 -94 -0.0553864194240335 -95 -0.0624298273708398 -96 -0.0629408163122051 -97 -0.0704192947779158 -98 -0.0661863417422444 -99 -0.0616198727092325 -100 -0.0549440862832691 -101 -0.0493100463446785 -102 -0.0513058903561152 -103 -0.0546567629566328 -104 -0.0447767089062448 -105 0.155994950171604 -106 0.499983838989633 -107 0.146752854694195 -108 -0.0499527760238258 -109 -0.0481994338837686 -110 -0.0507971256336303 -111 -0.053242725247733 -112 -0.0556340421399292 -113 -0.0659043126583437 -114 -0.0664898553672703 -115 -0.0623446272778118 -116 -0.0661076782182718 -117 -0.0496402401287781 -118 -0.0494603231236963 -119 -0.04785210230028 -120 -0.0549514395062738 -121 -0.0457893865901791 -122 0.0107718727916323 -123 0.354591871972286 -124 0.378214524188427 -125 -0.00576473785992366 -126 -0.0475263414095933 -127 -0.0467032507959455 -128 -0.0492439340398371 -129 -0.0553725291795042 -130 -0.0588373348224932 -131 -0.0653802923166691 -132 -0.065420878560692 -133 -0.0664825458346486 -134 -0.0585794787867471 -135 -0.0526654847715212 -136 -0.0458834268571694 -137 -0.0488834733479998 -138 -0.0484626462105708 -139 -0.0459832096817391 -140 0.217115969208045 -141 0.366645152379531 -142 0.180037374351014 -143 -0.0470069302868867 -144 -0.0448016085636167 -145 -0.0480964372087658 -146 -0.047581587974722 -147 -0.0542737921731714 -148 -0.0616712591015281 -149 -0.0645264998964167 -150 -0.0660893063296893 -151 -0.0626040533901412 -152 -0.0563401748225009 -153 -0.0489872324179382 -154 -0.0416660137613489 -155 -0.0474153625982119 -156 -0.0429322203344692 -157 0.0758981518142605 -158 0.280022168317631 -159 0.322388389335567 -160 0.029741268314489 -161 -0.0477650431020993 -162 -0.0450492975581489 -163 -0.0437136320420844 -164 -0.0525847472537078 -165 -0.0545773291954165 -166 -0.0605617971026816 -167 -0.0604174493574271 -168 -0.0668887082049361 -169 -0.0569988719330788 -170 -0.0531317736158737 -171 -0.0453847330038626 -172 -0.0478811645968217 -173 -0.0490973206952072 -174 -0.0208865958962374 -175 0.219799921570466 -176 0.281455499801039 -177 0.217413022569843 -178 -0.0472411753883375 -179 -0.0420519413404592 -180 -0.0503599257085886 -181 -0.0460149167014056 -182 -0.0525935089624673 -183 -0.058565014679309 -184 -0.0597480380605469 -185 -0.0594067588886417 -186 -0.0596129671442577 -187 -0.0532084985745771 -188 -0.0488672523172161 -189 -0.0467425993035773 -190 -0.047469398929737 -191 -0.0478812995202321 -192 0.113496325641223 -193 0.235261527843186 -194 0.274288512637064 -195 0.0686558749507578 -196 -0.0421890074761181 -197 -0.0462774420288975 -198 -0.0436343780463106 -199 -0.0526745158526506 -200 -0.0530085997416379 -201 -0.0595766365030657 -202 -0.0527520859095327 -203 -0.0617844575573737 -204 -0.0533732516707478 -205 -0.0475406344908671 -206 -0.0448557657939025 -207 -0.0491813452587493 -208 -0.0465215540303466 -209 0.0129885978681198 -210 0.18048531357979 -211 0.232613590605931 -212 0.216739579303611 -213 -0.0198642765598399 -214 -0.0414628173858397 -215 -0.0446070145491157 -216 -0.0466847454519845 -217 -0.0516226742873491 -218 -0.0545361970917439 -219 -0.0613148091516843 -220 -0.055072960413915 -221 -0.0570761596774525 -222 -0.0495753919838192 -223 -0.044640513821499 -224 -0.0405018327822807 -225 -0.0466702636420172 -226 -0.0430523088898141 -227 0.125260003795363 -228 0.191674753632075 -229 0.237532651857125 -230 0.0874635279713366 -231 -0.0384027504022232 -232 -0.0385130011851906 -233 -0.0369193020542282 -234 -0.0515458512947041 -235 -0.050306447453753 -236 -0.0581741159838659 -237 -0.052999201910556 -238 -0.0589658237786291 -239 -0.0514526377102802 -240 -0.0466869399159385 -241 -0.0380841759966984 -242 -0.0453267873931886 -243 -0.0425000608264673 -244 0.0366267109959152 -245 0.160369979130273 -246 0.196676462412679 -247 0.196963399648668 -248 -0.00269284361330376 -249 -0.0432567847711532 -250 -0.038260742578146 -251 -0.0448624744088596 -252 -0.0455503391926038 -253 -0.0532191861758754 -254 -0.0548508398385335 -255 -0.0555442566058335 -256 -0.0526918597919155 -257 -0.0496453707825256 -258 -0.0463836479193388 -259 -0.0379199031664589 -260 -0.043979755952542 -261 -0.0385836044654481 -262 0.148383243382033 -263 0.160888203514488 -264 0.201083269668142 -265 0.101463931607865 -266 -0.0389240581250844 -267 -0.043318710806698 -268 -0.0360099743646708 -269 -0.0479594556724686 -270 -0.0461272027080179 -271 -0.0510551768794275 -272 -0.0463026057033333 -273 -0.0586300566668458 -274 -0.0481537987530518 -275 -0.0467240944281063 -276 -0.0388278648519038 -277 -0.0438740084909164 -278 -0.0404201849366918 -279 0.0573087818198142 -280 0.149625568374594 -281 0.165251996461555 -282 0.180497909191808 -283 0.0141274252706337 -284 -0.0433910523077124 -285 -0.0353327138881179 -286 -0.04407012419326 -287 -0.0472875341495554 -288 -0.0500154039913527 -289 -0.0489059070454218 -290 -0.0523175481803876 -291 -0.0483438070974799 -292 -0.0465391341735897 -293 -0.0443706893358358 -294 -0.0383212232736209 -295 -0.0439923509231612 -296 -0.0179530530333497 -297 0.126953953852207 -298 0.148073497780274 -299 0.169463284775491 -300 0.12460981401008 -301 -0.0384433337210392 -302 -0.037574676038055 -303 -0.0373312294892246 -304 -0.0476939816787347 -305 -0.0485476034606885 -306 -0.053203479537681 -307 -0.0432695529453645 -308 -0.0531581165281506 -309 -0.0433332891054256 -310 -0.0406621361812071 -311 -0.0336785273069936 -312 -0.0450892345419585 -313 -0.0372803722726718 -314 0.0747413637301572 -315 0.12838403521187 -316 0.131273451158583 -317 0.165634916670676 -318 0.0393574762093495 -319 -0.0400219462092557 -320 -0.0321130988518114 -321 -0.0426329631110547 -322 -0.0472021330054887 -323 -0.0510884361963381 -324 -0.0451526836510229 -325 -0.0497432174259365 -326 -0.0494924567626408 -327 -0.0426445357005891 -328 -0.0399977780929692 -329 -0.035075954620801 -330 -0.0398937379838232 -331 0.00141601747607724 -332 0.111237045799794 -333 0.129781753698161 -334 0.148823429538605 -335 0.111428704849097 -336 -0.0189114212837953 -337 -0.0358144500870447 -338 -0.0338893528609611 -339 -0.04156202524001 -340 -0.0476279047622513 -341 -0.0479240001912479 -342 -0.0448192129885784 -343 -0.0520619488376005 -344 -0.045398294011681 -345 -0.0425448160252897 -346 -0.0301879715513119 -347 -0.039119844953792 -348 -0.0318445060292795 -349 0.0775128927560733 -350 0.133696030929458 -351 0.0934040962894178 -352 0.165037006342042 -353 0.0370713206399436 -354 -0.0370489719027206 -355 -0.0298304751416159 -356 -0.0387994185030151 -357 -0.0425739727567155 -358 -0.0469026409069165 -359 -0.0418293150822566 -360 -0.0473273219131854 -361 -0.049308019642061 -362 -0.0433284886806794 -363 -0.0369972157525989 -364 -0.0345525347288445 -365 -0.0400585889725531 -366 0.006656467274749 -367 0.11319538432443 -368 0.114967420474613 -369 0.133840368292221 -370 0.11280046677219 -371 -0.0184103961539414 -372 -0.0339399206362434 -373 -0.0341590200213704 -374 -0.0389400741910205 -375 -0.0448588461724111 -376 -0.0447120964840124 -377 -0.0401284599190171 -378 -0.0470280445927007 -379 -0.0439972690249817 -380 -0.0392994644400358 -381 -0.0331443114964012 -382 -0.0396320099995872 -383 -0.0357237280973228 -384 0.0769794799672965 -385 0.121101405134608 -386 0.100303300798787 -387 0.149213747230628 -388 0.0412712734968881 -389 -0.034428474543572 -390 -0.0309853686271892 -391 -0.037127802798713 -392 -0.0410862385400477 -393 -0.0446683655260938 -394 -0.0377779019366912 -395 -0.0432145550363202 -396 -0.0438865867392626 -397 -0.0397741719725851 -398 -0.0337532454079572 -399 -0.0345799482263535 -400 -0.0387855235790556 -401 0.0042952586621399 -402 0.114260797874283 -403 0.0962185400570627 -404 0.116302086694965 -405 0.116848660126361 -406 -0.0132599069767382 -407 -0.0326838372412273 -408 -0.031676894325753 -409 -0.0359544345578842 -410 -0.0430939231188687 -411 -0.0427909313399572 -412 -0.0392589148284163 -413 -0.0430139521930403 -414 -0.0405058980200932 -415 -0.0359005384516355 -416 -0.0297289315488662 -417 -0.0346787823837342 -418 -0.0332184590996983 -419 0.0771309823574169 -420 0.0954831808563938 -421 0.0986580814637101 -422 0.132204221810988 -423 0.0432995539287995 -424 -0.0282150289086581 -425 -0.0254088298731916 -426 -0.035952142901876 -427 -0.037552626088304 -428 -0.0405520090843967 -429 -0.0395737434856001 -430 -0.0415264891793749 -431 -0.0396875191674724 -432 -0.0384740880698292 -433 -0.0302213018176337 -434 -0.0302192627628463 -435 -0.0348307323662469 -436 0.00857082219058242 -437 0.113991981123305 -438 0.0810743348982558 -439 0.0970584251304922 -440 0.115026168034471 -441 -0.0130244881629081 -442 -0.0292031219799078 -443 -0.0308836212065116 -444 -0.0320575360367349 -445 -0.0393235092139189 -446 -0.0404817406521166 -447 -0.0375499698943704 -448 -0.0391450519157927 -449 -0.0397015347530508 -450 -0.0341587808934071 -451 -0.0310633384201306 -452 -0.0298881734250907 -453 -0.0295664081324632 -454 0.0805186281243404 -455 0.0833481690834954 -456 0.100864427083124 -457 0.111048128125141 -458 0.0464738054146592 -459 -0.0349995254836163 -460 -0.0255159736923953 -461 -0.0328764364137298 -462 -0.0338236112511505 -463 -0.0346782988250705 -464 -0.0340726935148046 -465 -0.0404234701095829 -466 -0.0356824878052483 -467 -0.0365578629303766 -468 -0.0324733709193554 -469 -0.0289648187856306 -470 -0.0320583632447268 -471 0.0109080362038411 -472 0.11757782076319 -473 0.0695324086716044 -474 0.079135520981604 -475 0.117166513712611 -476 -0.0107597842046391 -477 -0.0317910056255559 -478 -0.027713154753877 -479 -0.0328896799629515 -480 -0.0351148398263727 -481 -0.0367274328131775 -482 -0.0364350706943765 -483 -0.0352358798451258 -484 -0.0349817805140066 -485 -0.0341765926002117 -486 -0.0295770684618762 -487 -0.0265724708520466 -488 -0.0307810244464994 -489 0.0809894603579388 -490 0.0657550565427912 -491 0.106121880875152 -492 0.0974533505603275 -493 0.048238583810636 -494 -0.0288751879183889 -495 -0.0278787597095273 -496 -0.0337889205336922 -497 -0.0310688626579132 -498 -0.0384449649057626 -499 -0.0323682085966455 -500 -0.0361594385992874 -501 -0.0307937097313911 -502 -0.0313341566221988 -503 -0.0279856067641256 -504 -0.0289346840813807 -505 -0.0274872799690336 -506 0.00966555565940951 -507 0.0987720472362742 -508 0.0693890261403234 -509 0.0836756922797179 -510 0.10281770126579 -511 -0.00727787007831376 -512 -0.0258225019587932 -513 -0.0298502698700326 -514 -0.0306103473329238 -515 -0.0340826155989302 -516 -0.0355383371718098 -517 -0.0332157070791453 -518 -0.0354738192624273 -519 -0.0294010470848171 -520 -0.0310021513905682 -521 -0.0278235052216282 -522 -0.0239204460552095 -523 -0.0270969544256545 -524 0.0813764246127106 -525 0.0493102023473518 -526 0.104517332044244 -527 0.0811860139474904 -528 0.0510442031887192 -529 -0.0263637770970907 -530 -0.024755257304 -531 -0.0293388219300537 -532 -0.030007512828798 -533 -0.0323871465584352 -534 -0.0326780116025662 -535 -0.0374203204825225 -536 -0.0287231615177231 -537 -0.0332054768516264 -538 -0.0263051872864467 -539 -0.0243639277620771 -540 -0.023684344033898 -541 0.0142647324079813 -542 0.08574245660666 -543 0.0666795058595027 -544 0.0869761334698767 -545 0.0822018389405922 -546 -0.00295335814304317 -547 -0.0235452895911804 -548 -0.0281420988182953 -549 -0.0274120947938358 -550 -0.030158448744077 -551 -0.0295591560556766 -552 -0.0349368577359752 -553 -0.0326892340430509 -554 -0.0288806796544796 -555 -0.0295906146661126 -556 -0.0255785772166513 -557 -0.0247509384838002 -558 -0.0232231373627232 -559 0.0658724153140723 -560 0.0712698072158692 -561 0.0881661970571259 -562 0.0663434329796159 -563 0.0504442196817487 -564 -0.0220475381031792 -565 -0.0264520763210997 -566 -0.0262681630778278 -567 -0.0288120090469048 -568 -0.0292045667237407 -569 -0.0288062681932496 -570 -0.0330307486178301 -571 -0.0276514157813042 -572 -0.0268575483268837 -573 -0.0286764091398958 -574 -0.0281163961143271 -575 -0.0228693014048811 -576 0.0137045823052654 -577 0.0708633033596918 -578 0.0727744765379734 -579 0.0901470435080371 -580 0.0668755655920324 -581 -0.000653685262202251 -582 -0.0226994101946291 -583 -0.0270858316982201 -584 -0.0262718617327352 -585 -0.0265543856920115 -586 -0.0263771846461291 -587 -0.0319210552186977 -588 -0.029228183377507 -589 -0.0253777881177648 -590 -0.023809668956424 -591 -0.0280707574473553 -592 -0.0236140212549248 -593 -0.0228812657345804 -594 0.0486286781379677 -595 0.0898094414635747 -596 0.0508172134123107 -597 0.0901627351364118 -598 0.035844991775818 -599 -0.0203954379453198 -600 -0.0236862766959248 -601 -0.0247764225976876 -602 -0.0268581954253402 -603 -0.024001323229557 -604 -0.0303209729182735 -605 -0.0282931887611187 -606 -0.0292448557436288 -607 -0.0204578421032432 -608 -0.0248481591188926 -609 -0.0243082585401647 -610 -0.0203058655309834 -611 0.0139804741022989 -612 0.0505962449646704 -613 0.0690065939226321 -614 0.0907008020619833 -615 0.0519895469381193 -616 0.00206395484186643 -617 -0.0179281261622168 -618 -0.0227541776038619 -619 -0.0257149623750039 -620 -0.0221474812173537 -621 -0.0258958495203968 -622 -0.0291821476071184 -623 -0.0275173183668531 -624 -0.0219475947671766 -625 -0.0205864860149524 -626 -0.025198699283959 -627 -0.0196801475213126 -628 -0.0202813022751003 -629 0.0348753757737052 -630 0.0886744284826022 -631 0.0510351034421101 -632 0.0895415054055807 -633 0.0164865165554748 -634 -0.015820890351599 -635 -0.0235475303149806 -636 -0.0213487610196947 -637 -0.0223199871320358 -638 -0.0232883343131998 -639 -0.0272670686256873 -640 -0.0272994728260666 -641 -0.0251308147365066 -642 -0.0178939045831991 -643 -0.0228455395566411 -644 -0.0221674583093893 -645 -0.0181323711670327 -646 -0.000452057490636536 -647 0.0730003371658734 -648 0.0526039790662623 -649 0.0893120555725861 -650 0.0370376391850216 -651 -0.00089235639136826 -652 -0.0187548356986865 -653 -0.0202476722666913 -654 -0.0234402686094643 -655 -0.0176944079943485 -656 -0.0217419932421246 -657 -0.0252856528727102 -658 -0.0266563306764344 -659 -0.0179448089254929 -660 -0.0195530157887301 -661 -0.0242694989687706 -662 -0.0190898174037584 -663 -0.0162971087662526 -664 0.0190291931578508 -665 0.0920040569420149 -666 0.0547776230200262 -667 0.092519718174194 -668 -0.00323187468810452 -669 -0.0159810677640527 -670 -0.0185314129082898 -671 -0.0214996968543122 -672 -0.0209394743431591 -673 -0.0193460621057047 -674 -0.0257496298508357 -675 -0.0234878155623851 -676 -0.0215154679548733 -677 -0.0168154166505892 -678 -0.019623012738795 -679 -0.0222731795719489 -680 -0.0150548901993986 -681 -0.0172527061580013 -682 0.0747183966470148 -683 0.0721393781132992 -684 0.0565213941535672 -685 0.0565389116679803 -686 -0.0148388383909541 -687 -0.0189549593111703 -688 -0.0194161863407717 -689 -0.0197915076545455 -690 -0.0204244077381793 -691 -0.0218016316407433 -692 -0.0214645015602913 -693 -0.0238079641007921 -694 -0.0139629684168808 -695 -0.0156538895936235 -696 -0.021079456852115 -697 -0.0181418459552329 -698 -0.0145711876585601 -699 0.021215272535226 -700 0.0739558887973388 -701 0.0544658986157784 -702 0.0807341348823958 -703 -0.000188368345643536 -704 -0.0129199941327641 -705 -0.0180368997395347 -706 -0.0177692127800531 -707 -0.0204829544190261 -708 -0.0186632967600099 -709 -0.0204496056760325 -710 -0.023317274857146 -711 -0.0203774310283799 -712 -0.0136747501938559 -713 -0.0178116490297146 -714 -0.0189587954269383 -715 -0.0118858609089409 -716 -0.0172514569604997 -717 0.060802565704854 -718 0.0729937005677284 -719 0.0561951789698019 -720 0.042100568116198 -721 -0.0145015528092692 -722 -0.015700955312727 -723 -0.0167874521751816 -724 -0.0157176826421741 -725 -0.01783312467466 -726 -0.0220309477451877 -727 -0.0206302592507727 -728 -0.0200916933627863 -729 -0.0188778418069578 -730 -0.0113708982542668 -731 -0.0176778219523296 -732 -0.014843868366855 -733 -0.0112296460883651 -734 0.0256322345958098 -735 0.0560052205819785 -736 0.0568640232132456 -737 0.0611881586473825 -738 0.00379039852134298 -739 -0.0104730174558681 -740 -0.0164262606347393 -741 -0.0144022889870097 -742 -0.0168139620706729 -743 -0.0162615811333726 -744 -0.0196477371337629 -745 -0.0198824745918442 -746 -0.0192330305226495 -747 -0.012843462564526 -748 -0.0132891104080353 -749 -0.0181808023489715 -750 -0.0130545167379928 -751 -0.0113910229689613 -752 0.041990539641635 -753 0.0763855238906953 -754 0.0594251709620633 -755 0.0243609283015674 -756 -0.011509575108219 -757 -0.0130005756539877 -758 -0.0150890385548497 -759 -0.0139673203815592 -760 -0.0157156335728081 -761 -0.0186682466883542 -762 -0.0185554927618856 -763 -0.0162755018147282 -764 -0.0154200664197001 -765 -0.0134500863696249 -766 -0.014171081512106 -767 -0.0144636296247257 -768 -0.0126931065239486 -769 0.00886491087382969 -770 0.0582642578199214 -771 0.0786546867228701 -772 0.0272306482046141 -773 0.00822579495183492 -774 -0.011517390916366 -775 -0.0139592957633573 -776 -0.0129421565517047 -777 -0.0134986559471086 -778 -0.0136304589585504 -779 -0.0173438393070116 -780 -0.016064531677406 -781 -0.0152510664062614 -782 -0.0101822066131621 -783 -0.0130099394643087 -784 -0.0150897101751983 -785 -0.0121547232260943 -786 -0.0117824571975702 -787 0.0242515574526126 -788 0.0773173900249155 -789 0.061635146281499 -790 0.00959030625397352 -791 -0.0090693872805306 -792 -0.0112081729509553 -793 -0.0138649594742307 -794 -0.010084978733244 -795 -0.0132143360704552 -796 -0.01496302977637 -797 -0.0164140720480332 -798 -0.0137826264017484 -799 -0.0128738607141167 -800 -0.0108179181287105 -801 -0.0114389768189071 -802 -0.0115710434341599 -803 -0.00965025893918617 -804 -0.0135132422793313 -805 0.0617365766920115 -806 0.0779699523399871 -807 0.0247967756220761 -808 -0.0065090662747984 -809 -0.00857892822230665 -810 -0.0101662607994292 -811 -0.0108507653686812 -812 -0.00958246558520002 -813 -0.0144516907622999 -814 -0.0150147299589262 -815 -0.0135220759135818 -816 -0.0115211008118439 -817 -0.0104021106108387 -818 -0.00780776429502702 -819 -0.011404849912357 -820 -0.00951333011434902 -821 -0.00938572506372878 -822 0.0266216133025957 -823 0.0610181017554806 -824 0.0438869371591075 -825 0.00859504869317741 -826 -0.00699743519150731 -827 -0.00929600314682341 -828 -0.0111911531783819 -829 -0.00823625897932562 -830 -0.0100913686286367 -831 -0.0125756643002852 -832 -0.0152602353555104 -833 -0.00953260529007071 -834 -0.0100594605441607 -835 -0.00871459443751229 -836 -0.00938155933764076 -837 -0.00918618283897082 -838 -0.00755980106901216 -839 -0.0107245855066125 -840 0.0458486876264972 -841 0.0824090055093124 -842 0.00574421553061521 -843 -0.00725667517287379 -844 -0.00867494223043522 -845 -0.00829285117321785 -846 -0.00957414187855957 -847 -0.00659032223177494 -848 -0.0106624401215929 -849 -0.0122427759092887 -850 -0.0104622099267244 -851 -0.00799623147718296 -852 -0.0104382420530796 -853 -0.0075668223790859 -854 -0.00621892353946098 -855 -0.00836920759535837 -856 -0.00630014552985234 -857 0.0113479974095218 -858 0.0628686123242055 -859 0.0463260384468626 -860 -0.00865830449867469 -861 -0.00632533057369849 -862 -0.00620405394762857 -863 -0.00876475527943431 -864 -0.00910265771371557 -865 -0.00714690863853632 -866 -0.0103958026182488 -867 -0.0121633888743942 -868 -0.00676196610841381 -869 -0.00714452896204837 -870 -0.00679873891573572 -871 -0.00845680011347619 -872 -0.00625057507944579 -873 -0.00606839813409962 -874 -0.00725859558269772 -875 0.0281965759233777 -876 0.0670260741629087 -877 0.00963490036467712 -878 -0.00456245837151462 -879 -0.00755131292428571 -880 -0.00586747799683473 -881 -0.00783299131040265 -882 -0.00744370954110726 -883 -0.00915087240687255 -884 -0.00957213417268418 -885 -0.00832361596391925 -886 -0.0050340090260566 -887 -0.00755295159414475 -888 -0.00495117481094215 -889 -0.00424086001593403 -890 -0.00515343444584415 -891 -0.00744099299381077 -892 -0.00696188041633924 -893 0.0670358828192865 -894 0.0306555670430617 -895 -0.00700188318283173 -896 -0.00439483158228684 -897 -0.00440309654475794 -898 -0.00580106920715627 -899 -0.00743386431878525 -900 -0.00615300126683845 -901 -0.00852083652339179 -902 -0.00801483743475307 -903 -0.0074130347068713 -904 -0.00363565987760851 -905 -0.007955033309064 -906 -0.00193305784421065 -907 -0.0041800577189778 -908 -0.00353565656672481 -909 -0.0058551774732522 -910 0.0302595657677451 -911 0.0314102314562899 -912 0.013212750015713 -913 -0.00316630844923298 -914 -0.00520479906156008 -915 -0.00420739410816969 -916 -0.00564901350096342 -917 -0.00531128324885506 -918 -0.00606089198821065 -919 -0.00772996050306375 -920 -0.00676594704104744 -921 -0.00533751850001158 -922 -0.0058222391965106 -923 -0.00590469211682123 -924 -0.00139624368550244 -925 -0.00225770557975624 -926 -0.00430278519099915 -927 -0.00497994091066768 -928 0.0521745063047641 -929 0.0125007611461825 -930 -0.00335983528594071 -931 -0.00200633784627574 -932 -0.00192061226814783 -933 -0.00414996522579167 -934 -0.00453925170940819 -935 -0.00441610859184833 -936 -0.00487531850001996 -937 -0.00511365916811154 -938 -0.00549890284279737 -939 -0.00379682253936933 -940 -0.00404757676266654 -941 -0.00349312951783624 -942 -0.00159942004178191 -943 -0.00176952812644145 -944 -0.00366444935410891 -945 0.0162283566898874 -946 0.0320898583297591 -947 -0.00388380045409207 -948 -0.0018243911045478 -949 -0.00115125308892718 -950 -0.00149365801922153 -951 -0.00294988667592288 -952 -0.00329687293305934 -953 -0.00371267430404071 -954 -0.00407396263409427 -955 -0.00384065535263086 -956 -0.00283959971098493 -957 -0.00342824033321658 -958 -0.00321142688896053 -959 -0.00222112060678468 -960 -0.0020328615528584 -961 -0.00145605698519582 -962 -0.00287857829852364 -963 0.0183610738417914 -964 0.0154027556420478 -965 -0.00179489314871512 -966 -0.00129790436843852 -967 -0.000853980926230406 -968 -0.000666619047494671 -969 -0.00118456473308688 -970 -0.00182173221293997 -971 -0.00223763548036304 -972 -0.00250045159359336 -973 -0.00244783545512189 -974 -0.00233355012767793 -975 -0.00148662334882801 -976 -0.00109910993153004 -977 -0.00197535475727005 -978 -0.00150005492632689 -979 -0.000669782105543667 -980 -0.00133477373003284 -981 0.0173273972011934 -982 -0.00112526521664063 -983 -0.000841739351965462 -984 0.000565203827743629 -985 -0.000459312244397425 -986 -0.000418262528083788 -987 -0.000498463341452234 -988 -0.000616296957122406 -989 -0.000679296268851578 -990 -0.00084778145306077 -991 -0.000978798423497668 -992 -0.000894990113732281 -993 -0.000701461719327138 -994 -0.000511781130867642 -995 -0.000286708792038961 -996 -0.000395118651726646 -997 -0.000921290818811666 -998 -0.000781372909192289 -999 9.80848043031114e-05 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat deleted file mode 100644 index 7ed81ad..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat +++ /dev/null @@ -1,1001 +0,0 @@ -#scatter real total user system repeat -1 0.0234072208404541 0.0299999999999976 0.0299999999999976 0.0 1 -2 0.0229461193084717 0.0199999999999996 0.0199999999999996 0.0 2 -3 0.0243709087371826 0.0200000000000031 0.0200000000000031 0.0 3 -4 0.0244681835174561 0.0299999999999976 0.0299999999999976 0.0 4 -5 0.0235309600830078 0.0199999999999996 0.0199999999999996 0.0 5 -6 0.0227420330047607 0.0199999999999996 0.0199999999999996 0.0 6 -7 0.022014856338501 0.0300000000000011 0.0300000000000011 0.0 7 -8 0.0215449333190918 0.0199999999999996 0.0199999999999996 0.0 8 -9 0.0216219425201416 0.0199999999999996 0.0199999999999996 0.0 9 -10 0.0218148231506348 0.0199999999999996 0.0199999999999996 0.0 10 -11 0.0217390060424805 0.0200000000000031 0.0200000000000031 0.0 11 -12 0.0218250751495361 0.0299999999999976 0.0299999999999976 0.0 12 -13 0.0219888687133789 0.0199999999999996 0.0199999999999996 0.0 13 -14 0.021812915802002 0.0200000000000031 0.0200000000000031 0.0 14 -15 0.0244221687316895 0.0199999999999996 0.0199999999999996 0.0 15 -16 0.022874116897583 0.0299999999999976 0.0299999999999976 0.0 16 -17 0.0218498706817627 0.0199999999999996 0.0199999999999996 0.0 17 -18 0.0760290622711182 0.0700000000000003 0.0700000000000003 0.0 18 -19 0.0238790512084961 0.0300000000000011 0.0300000000000011 0.0 19 -20 0.0229480266571045 0.0199999999999996 0.0199999999999996 0.0 20 -21 0.0231330394744873 0.0199999999999996 0.0199999999999996 0.0 21 -22 0.0228769779205322 0.0300000000000011 0.0300000000000011 0.0 22 -23 0.0258219242095947 0.0199999999999996 0.0199999999999996 0.0 23 -24 0.0243449211120605 0.0300000000000011 0.0300000000000011 0.0 24 -25 0.0228381156921387 0.0199999999999996 0.0199999999999996 0.0 25 -26 0.022367000579834 0.0199999999999996 0.0199999999999996 0.0 26 -27 0.0216410160064697 0.0199999999999996 0.0199999999999996 0.0 27 -28 0.0216100215911865 0.0300000000000011 0.0300000000000011 0.0 28 -29 0.0220630168914795 0.0199999999999996 0.0199999999999996 0.0 29 -30 0.0222890377044678 0.0199999999999996 0.0199999999999996 0.0 30 -31 0.0216050148010254 0.0199999999999996 0.0199999999999996 0.0 31 -32 0.0216009616851807 0.0199999999999996 0.0199999999999996 0.0 32 -33 0.021636962890625 0.0199999999999996 0.0199999999999996 0.0 33 -34 0.0239388942718506 0.0300000000000011 0.0300000000000011 0.0 34 -35 0.021759033203125 0.0199999999999996 0.0199999999999996 0.0 35 -36 0.0811088085174561 0.0800000000000018 0.0800000000000018 0.0 36 -37 0.0229001045227051 0.0199999999999996 0.0199999999999996 0.0 37 -38 0.0228509902954102 0.0299999999999976 0.0299999999999976 0.0 38 -39 0.0228641033172607 0.0200000000000031 0.0200000000000031 0.0 39 -40 0.0229160785675049 0.0199999999999996 0.0199999999999996 0.0 40 -41 0.0227169990539551 0.0299999999999976 0.0299999999999976 0.0 41 -42 0.0228250026702881 0.0200000000000031 0.0200000000000031 0.0 42 -43 0.0261838436126709 0.0199999999999996 0.0199999999999996 0.0 43 -44 0.0234429836273193 0.0299999999999976 0.0299999999999976 0.0 44 -45 0.0215818881988525 0.0199999999999996 0.0199999999999996 0.0 45 -46 0.0215709209442139 0.0200000000000031 0.0200000000000031 0.0 46 -47 0.0215950012207031 0.0199999999999996 0.0199999999999996 0.0 47 -48 0.0215859413146973 0.0199999999999996 0.0199999999999996 0.0 48 -49 0.0217461585998535 0.0299999999999976 0.0299999999999976 0.0 49 -50 0.021589994430542 0.0200000000000031 0.0200000000000031 0.0 50 -51 0.0216829776763916 0.0199999999999996 0.0199999999999996 0.0 51 -52 0.0217359066009521 0.0199999999999996 0.0199999999999996 0.0 52 -53 0.0219109058380127 0.0199999999999996 0.0199999999999996 0.0 53 -54 0.0795738697052002 0.0799999999999983 0.0799999999999983 0.0 54 -55 0.023021936416626 0.0300000000000011 0.0300000000000011 0.0 55 -56 0.0230770111083984 0.0199999999999996 0.0199999999999996 0.0 56 -57 0.0229918956756592 0.0199999999999996 0.0199999999999996 0.0 57 -58 0.0233080387115479 0.0300000000000011 0.0300000000000011 0.0 58 -59 0.0226249694824219 0.0199999999999996 0.0199999999999996 0.0 59 -60 0.022819995880127 0.0199999999999996 0.0199999999999996 0.0 60 -61 0.0220620632171631 0.0199999999999996 0.0199999999999996 0.0 61 -62 0.0242538452148438 0.0300000000000011 0.0300000000000011 0.0 62 -63 0.0224769115447998 0.0199999999999996 0.0199999999999996 0.0 63 -64 0.0229120254516602 0.0199999999999996 0.0199999999999996 0.0 64 -65 0.0216310024261475 0.0199999999999996 0.0199999999999996 0.0 65 -66 0.0215990543365479 0.0300000000000011 0.0300000000000011 0.0 66 -67 0.0216221809387207 0.0199999999999996 0.0199999999999996 0.0 67 -68 0.0220649242401123 0.0199999999999996 0.0199999999999996 0.0 68 -69 0.0225241184234619 0.0199999999999996 0.0199999999999996 0.0 69 -70 0.0217139720916748 0.0200000000000031 0.0200000000000031 0.0 70 -71 0.0781118869781494 0.0799999999999983 0.0799999999999983 0.0 71 -72 0.0234410762786865 0.0300000000000011 0.0300000000000011 0.0 72 -73 0.0229668617248535 0.0199999999999996 0.0199999999999996 0.0 73 -74 0.0291080474853516 0.0300000000000011 0.0300000000000011 0.0 74 -75 0.0240139961242676 0.0199999999999996 0.0199999999999996 0.0 75 -76 0.0226550102233887 0.0199999999999996 0.0199999999999996 0.0 76 -77 0.0226681232452393 0.0299999999999976 0.0299999999999976 0.0 77 -78 0.0226988792419434 0.0200000000000031 0.0200000000000031 0.0 78 -79 0.0223758220672607 0.0199999999999996 0.0199999999999996 0.0 79 -80 0.0216100215911865 0.0199999999999996 0.0199999999999996 0.0 80 -81 0.0216431617736816 0.0300000000000011 0.0300000000000011 0.0 81 -82 0.0247490406036377 0.0199999999999996 0.0199999999999996 0.0 82 -83 0.023237943649292 0.0199999999999996 0.0199999999999996 0.0 83 -84 0.0217869281768799 0.0299999999999976 0.0299999999999976 0.0 84 -85 0.0216598510742188 0.0200000000000031 0.0200000000000031 0.0 85 -86 0.0217628479003906 0.0199999999999996 0.0199999999999996 0.0 86 -87 0.0218119621276855 0.0199999999999996 0.0199999999999996 0.0 87 -88 0.0217659473419189 0.0199999999999996 0.0199999999999996 0.0 88 -89 0.0768370628356934 0.0799999999999983 0.0799999999999983 0.0 89 -90 0.025317907333374 0.0200000000000031 0.0200000000000031 0.0 90 -91 0.0233399868011475 0.0299999999999976 0.0299999999999976 0.0 91 -92 0.0232961177825928 0.0199999999999996 0.0199999999999996 0.0 92 -93 0.0227580070495605 0.0199999999999996 0.0199999999999996 0.0 93 -94 0.0227789878845215 0.0300000000000011 0.0300000000000011 0.0 94 -95 0.0228569507598877 0.0199999999999996 0.0199999999999996 0.0 95 -96 0.0226337909698486 0.0199999999999996 0.0199999999999996 0.0 96 -97 0.0222299098968506 0.0300000000000011 0.0300000000000011 0.0 97 -98 0.0214722156524658 0.0199999999999996 0.0199999999999996 0.0 98 -99 0.0216591358184814 0.0199999999999996 0.0199999999999996 0.0 99 -100 0.0215888023376465 0.0199999999999996 0.0199999999999996 0.0 100 -101 0.0234711170196533 0.0200000000000031 0.0200000000000031 0.0 101 -102 0.0229098796844482 0.0299999999999976 0.0299999999999976 0.0 102 -103 0.0220291614532471 0.0199999999999996 0.0199999999999996 0.0 103 -104 0.0216660499572754 0.0199999999999996 0.0199999999999996 0.0 104 -105 0.0216059684753418 0.0200000000000031 0.0200000000000031 0.0 105 -106 0.0761630535125732 0.0799999999999983 0.0799999999999983 0.0 106 -107 0.0231220722198486 0.0199999999999996 0.0199999999999996 0.0 107 -108 0.0229330062866211 0.0199999999999996 0.0199999999999996 0.0 108 -109 0.0230400562286377 0.0300000000000011 0.0300000000000011 0.0 109 -110 0.0250980854034424 0.0199999999999996 0.0199999999999996 0.0 110 -111 0.0231518745422363 0.0300000000000011 0.0300000000000011 0.0 111 -112 0.0227048397064209 0.0199999999999996 0.0199999999999996 0.0 112 -113 0.0284969806671143 0.0300000000000011 0.0300000000000011 0.0 113 -114 0.0239260196685791 0.0199999999999996 0.0199999999999996 0.0 114 -115 0.0219199657440186 0.0199999999999996 0.0199999999999996 0.0 115 -116 0.0215260982513428 0.0199999999999996 0.0199999999999996 0.0 116 -117 0.0215198993682861 0.0300000000000011 0.0300000000000011 0.0 117 -118 0.0216398239135742 0.0199999999999996 0.0199999999999996 0.0 118 -119 0.0215740203857422 0.0199999999999996 0.0199999999999996 0.0 119 -120 0.0216050148010254 0.0199999999999996 0.0199999999999996 0.0 120 -121 0.0247631072998047 0.0300000000000011 0.0300000000000011 0.0 121 -122 0.0225539207458496 0.0199999999999996 0.0199999999999996 0.0 122 -123 0.0218660831451416 0.0199999999999996 0.0199999999999996 0.0 123 -124 0.0765988826751709 0.0799999999999983 0.0799999999999983 0.0 124 -125 0.0230319499969482 0.0199999999999996 0.0199999999999996 0.0 125 -126 0.0229179859161377 0.0200000000000031 0.0200000000000031 0.0 126 -127 0.0229899883270264 0.0299999999999976 0.0299999999999976 0.0 127 -128 0.0230929851531982 0.0199999999999996 0.0199999999999996 0.0 128 -129 0.024507999420166 0.0200000000000031 0.0200000000000031 0.0 129 -130 0.0237898826599121 0.0299999999999976 0.0299999999999976 0.0 130 -131 0.0237009525299072 0.0199999999999996 0.0199999999999996 0.0 131 -132 0.0220949649810791 0.0199999999999996 0.0199999999999996 0.0 132 -133 0.0216069221496582 0.0300000000000011 0.0300000000000011 0.0 133 -134 0.0217080116271973 0.0199999999999996 0.0199999999999996 0.0 134 -135 0.0218410491943359 0.0199999999999996 0.0199999999999996 0.0 135 -136 0.0222909450531006 0.0199999999999996 0.0199999999999996 0.0 136 -137 0.0216519832611084 0.0200000000000031 0.0200000000000031 0.0 137 -138 0.0217440128326416 0.0299999999999976 0.0299999999999976 0.0 138 -139 0.0217659473419189 0.0199999999999996 0.0199999999999996 0.0 139 -140 0.0218610763549805 0.0200000000000031 0.0200000000000031 0.0 140 -141 0.0243120193481445 0.0199999999999996 0.0199999999999996 0.0 141 -142 0.0773770809173584 0.0799999999999983 0.0799999999999983 0.0 142 -143 0.0230779647827148 0.0199999999999996 0.0199999999999996 0.0 143 -144 0.022913932800293 0.0300000000000011 0.0300000000000011 0.0 144 -145 0.0239241123199463 0.0199999999999996 0.0199999999999996 0.0 145 -146 0.0227971076965332 0.0199999999999996 0.0199999999999996 0.0 146 -147 0.0230598449707031 0.0300000000000011 0.0300000000000011 0.0 147 -148 0.0227980613708496 0.0200000000000031 0.0199999999999996 0.0 148 -149 0.0250101089477539 0.019999999999996 0.0199999999999996 0.0 149 -150 0.0231060981750488 0.0300000000000011 0.0300000000000011 0.0 150 -151 0.021589994430542 0.0200000000000031 0.0199999999999996 0.0 151 -152 0.0279331207275391 0.029999999999994 0.0299999999999976 0.0 152 -153 0.0230989456176758 0.0200000000000031 0.0200000000000031 0.0 153 -154 0.0220518112182617 0.019999999999996 0.019999999999996 0.0 154 -155 0.02158522605896 0.0200000000000031 0.0200000000000031 0.0 155 -156 0.0215890407562256 0.0300000000000011 0.0300000000000011 0.0 156 -157 0.021787166595459 0.019999999999996 0.019999999999996 0.0 157 -158 0.0218689441680908 0.0200000000000031 0.0200000000000031 0.0 158 -159 0.0797779560089111 0.0799999999999983 0.0799999999999983 0.0 159 -160 0.0232160091400146 0.0200000000000031 0.0200000000000031 0.0 160 -161 0.0228378772735596 0.019999999999996 0.019999999999996 0.0 161 -162 0.02286696434021 0.0300000000000011 0.0300000000000011 0.0 162 -163 0.0227479934692383 0.0200000000000031 0.0200000000000031 0.0 163 -164 0.0228869915008545 0.019999999999996 0.019999999999996 0.0 164 -165 0.0226659774780273 0.0300000000000011 0.0300000000000011 0.0 165 -166 0.022770881652832 0.0200000000000031 0.0200000000000031 0.0 166 -167 0.0226860046386719 0.019999999999996 0.019999999999996 0.0 167 -168 0.0242869853973389 0.0300000000000011 0.0300000000000011 0.0 168 -169 0.0219647884368896 0.0200000000000031 0.0200000000000031 0.0 169 -170 0.0227658748626709 0.019999999999996 0.019999999999996 0.0 170 -171 0.0217809677124023 0.0200000000000031 0.0200000000000031 0.0 171 -172 0.0216867923736572 0.019999999999996 0.019999999999996 0.0 172 -173 0.0220091342926025 0.0300000000000011 0.0300000000000011 0.0 173 -174 0.0218439102172852 0.0200000000000031 0.0200000000000031 0.0 174 -175 0.0223178863525391 0.019999999999996 0.019999999999996 0.0 175 -176 0.0216579437255859 0.0200000000000031 0.0200000000000031 0.0 176 -177 0.0791630744934082 0.0799999999999983 0.0799999999999983 0.0 177 -178 0.0234289169311523 0.0300000000000011 0.0300000000000011 0.0 178 -179 0.0239951610565186 0.019999999999996 0.019999999999996 0.0 179 -180 0.0231759548187256 0.0200000000000031 0.0200000000000031 0.0 180 -181 0.0228521823883057 0.0300000000000011 0.0300000000000011 0.0 181 -182 0.0234448909759521 0.019999999999996 0.019999999999996 0.0 182 -183 0.0231420993804932 0.0200000000000031 0.0200000000000031 0.0 183 -184 0.0229649543762207 0.0300000000000011 0.0300000000000011 0.0 184 -185 0.0216999053955078 0.019999999999996 0.019999999999996 0.0 185 -186 0.0214908123016357 0.0200000000000031 0.0200000000000031 0.0 186 -187 0.0216050148010254 0.019999999999996 0.019999999999996 0.0 187 -188 0.0253100395202637 0.0200000000000031 0.0200000000000031 0.0 188 -189 0.0231828689575195 0.0300000000000011 0.0300000000000011 0.0 189 -190 0.021651029586792 0.019999999999996 0.019999999999996 0.0 190 -191 0.0281798839569092 0.0300000000000011 0.0300000000000011 0.0 191 -192 0.0221288204193115 0.0200000000000031 0.0200000000000031 0.0 192 -193 0.0217571258544922 0.019999999999996 0.019999999999996 0.0 193 -194 0.0757858753204346 0.0800000000000054 0.0800000000000054 0.0 194 -195 0.0231471061706543 0.019999999999996 0.019999999999996 0.0 195 -196 0.0251290798187256 0.0300000000000011 0.0300000000000011 0.0 196 -197 0.0239238739013672 0.0200000000000031 0.0200000000000031 0.0 197 -198 0.0237748622894287 0.019999999999996 0.019999999999996 0.0 198 -199 0.0228419303894043 0.0300000000000011 0.0300000000000011 0.0 199 -200 0.0227909088134766 0.0200000000000031 0.0200000000000031 0.0 200 -201 0.0227510929107666 0.019999999999996 0.019999999999996 0.0 201 -202 0.0226459503173828 0.0200000000000031 0.0200000000000031 0.0 202 -203 0.0219879150390625 0.0300000000000011 0.0300000000000011 0.0 203 -204 0.0215039253234863 0.019999999999996 0.019999999999996 0.0 204 -205 0.021712064743042 0.0200000000000031 0.0200000000000031 0.0 205 -206 0.0217649936676025 0.019999999999996 0.019999999999996 0.0 206 -207 0.0244510173797607 0.0300000000000011 0.0300000000000011 0.0 207 -208 0.0221529006958008 0.0200000000000031 0.0200000000000031 0.0 208 -209 0.0231170654296875 0.019999999999996 0.019999999999996 0.0 209 -210 0.0216870307922363 0.0200000000000031 0.0200000000000031 0.0 210 -211 0.0216608047485352 0.019999999999996 0.019999999999996 0.0 211 -212 0.0771470069885254 0.0800000000000054 0.0800000000000054 0.0 212 -213 0.0229711532592773 0.019999999999996 0.019999999999996 0.0 213 -214 0.0230278968811035 0.0300000000000011 0.0300000000000011 0.0 214 -215 0.0230338573455811 0.019999999999996 0.019999999999996 0.0 215 -216 0.0260100364685059 0.0300000000000011 0.0300000000000011 0.0 216 -217 0.0238170623779297 0.0200000000000031 0.0200000000000031 0.0 217 -218 0.0228071212768555 0.019999999999996 0.019999999999996 0.0 218 -219 0.0227000713348389 0.0300000000000011 0.0300000000000011 0.0 219 -220 0.0220599174499512 0.0200000000000031 0.0200000000000031 0.0 220 -221 0.0216770172119141 0.019999999999996 0.019999999999996 0.0 221 -222 0.0224151611328125 0.0200000000000031 0.0200000000000031 0.0 222 -223 0.0217008590698242 0.0200000000000031 0.0200000000000031 0.0 223 -224 0.0216941833496094 0.029999999999994 0.029999999999994 0.0 224 -225 0.0216820240020752 0.0200000000000031 0.0200000000000031 0.0 225 -226 0.0217270851135254 0.019999999999996 0.019999999999996 0.0 226 -227 0.0246779918670654 0.0200000000000031 0.0200000000000031 0.0 227 -228 0.0233469009399414 0.0300000000000011 0.0300000000000011 0.0 228 -229 0.0217921733856201 0.019999999999996 0.019999999999996 0.0 229 -230 0.0832829475402832 0.0800000000000054 0.0800000000000054 0.0 230 -231 0.02298903465271 0.019999999999996 0.019999999999996 0.0 231 -232 0.0229618549346924 0.0300000000000011 0.0300000000000011 0.0 232 -233 0.0230050086975098 0.0200000000000031 0.0200000000000031 0.0 233 -234 0.022770881652832 0.019999999999996 0.019999999999996 0.0 234 -235 0.0257570743560791 0.0300000000000011 0.0300000000000011 0.0 235 -236 0.0234668254852295 0.0200000000000031 0.0200000000000031 0.0 236 -237 0.0224740505218506 0.029999999999994 0.029999999999994 0.0 237 -238 0.0215451717376709 0.0200000000000031 0.0200000000000031 0.0 238 -239 0.0215630531311035 0.0200000000000031 0.0200000000000031 0.0 239 -240 0.0216259956359863 0.019999999999996 0.019999999999996 0.0 240 -241 0.0215809345245361 0.0200000000000031 0.0200000000000031 0.0 241 -242 0.0216450691223145 0.019999999999996 0.019999999999996 0.0 242 -243 0.0215449333190918 0.0300000000000011 0.0300000000000011 0.0 243 -244 0.0216479301452637 0.0200000000000031 0.0200000000000031 0.0 244 -245 0.0218291282653809 0.019999999999996 0.019999999999996 0.0 245 -246 0.0227890014648438 0.0200000000000031 0.0200000000000031 0.0 246 -247 0.0793211460113525 0.0799999999999983 0.0799999999999983 0.0 247 -248 0.0230979919433594 0.0200000000000031 0.0200000000000031 0.0 248 -249 0.0230920314788818 0.029999999999994 0.029999999999994 0.0 249 -250 0.0235588550567627 0.0200000000000031 0.0200000000000031 0.0 250 -251 0.0228121280670166 0.0200000000000031 0.0200000000000031 0.0 251 -252 0.0227479934692383 0.029999999999994 0.029999999999994 0.0 252 -253 0.0227429866790771 0.0200000000000031 0.0200000000000031 0.0 253 -254 0.0227539539337158 0.019999999999996 0.019999999999996 0.0 254 -255 0.0255939960479736 0.0300000000000011 0.0300000000000011 0.0 255 -256 0.0225818157196045 0.0200000000000031 0.0200000000000031 0.0 256 -257 0.0216748714447021 0.019999999999996 0.019999999999996 0.0 257 -258 0.0216860771179199 0.0200000000000031 0.0200000000000031 0.0 258 -259 0.0217640399932861 0.0300000000000011 0.0300000000000011 0.0 259 -260 0.0218229293823242 0.019999999999996 0.019999999999996 0.0 260 -261 0.0217108726501465 0.0200000000000031 0.0200000000000031 0.0 261 -262 0.0230560302734375 0.0200000000000031 0.0200000000000031 0.0 262 -263 0.0218439102172852 0.019999999999996 0.019999999999996 0.0 263 -264 0.0216600894927979 0.0200000000000031 0.0200000000000031 0.0 264 -265 0.0821051597595215 0.0899999999999963 0.0899999999999963 0.0 265 -266 0.0255589485168457 0.0200000000000031 0.0200000000000031 0.0 266 -267 0.0274901390075684 0.0300000000000011 0.0300000000000011 0.0 267 -268 0.0230200290679932 0.019999999999996 0.019999999999996 0.0 268 -269 0.0227861404418945 0.0200000000000031 0.0200000000000031 0.0 269 -270 0.0227971076965332 0.0300000000000011 0.0300000000000011 0.0 270 -271 0.0227358341217041 0.019999999999996 0.019999999999996 0.0 271 -272 0.0242559909820557 0.0200000000000031 0.0200000000000031 0.0 272 -273 0.0217318534851074 0.029999999999994 0.029999999999994 0.0 273 -274 0.0250978469848633 0.0200000000000031 0.0200000000000031 0.0 274 -275 0.0236959457397461 0.0200000000000031 0.0200000000000031 0.0 275 -276 0.0217390060424805 0.029999999999994 0.029999999999994 0.0 276 -277 0.0216028690338135 0.0200000000000031 0.0200000000000031 0.0 277 -278 0.0216250419616699 0.0200000000000031 0.0200000000000031 0.0 278 -279 0.0216012001037598 0.019999999999996 0.019999999999996 0.0 279 -280 0.0216450691223145 0.0200000000000031 0.0200000000000031 0.0 280 -281 0.0217640399932861 0.019999999999996 0.019999999999996 0.0 281 -282 0.076016902923584 0.0799999999999983 0.0799999999999983 0.0 282 -283 0.0259561538696289 0.0300000000000011 0.0300000000000011 0.0 283 -284 0.024043083190918 0.0200000000000031 0.0200000000000031 0.0 284 -285 0.0230240821838379 0.019999999999996 0.019999999999996 0.0 285 -286 0.0229220390319824 0.0300000000000011 0.0300000000000011 0.0 286 -287 0.0229079723358154 0.0200000000000031 0.0200000000000031 0.0 287 -288 0.0228331089019775 0.019999999999996 0.019999999999996 0.0 288 -289 0.0232009887695312 0.0300000000000011 0.0300000000000011 0.0 289 -290 0.0225679874420166 0.0200000000000031 0.0200000000000031 0.0 290 -291 0.021859884262085 0.019999999999996 0.019999999999996 0.0 291 -292 0.0215480327606201 0.0200000000000031 0.0200000000000031 0.0 292 -293 0.0216219425201416 0.019999999999996 0.019999999999996 0.0 293 -294 0.0247988700866699 0.0300000000000011 0.0300000000000011 0.0 294 -295 0.0220661163330078 0.0200000000000031 0.0200000000000031 0.0 295 -296 0.0218551158905029 0.019999999999996 0.019999999999996 0.0 296 -297 0.0216910839080811 0.0200000000000031 0.0200000000000031 0.0 297 -298 0.0218009948730469 0.0300000000000011 0.0300000000000011 0.0 298 -299 0.0217809677124023 0.019999999999996 0.019999999999996 0.0 299 -300 0.0773510932922363 0.0800000000000054 0.0800000000000054 0.0 300 -301 0.0230739116668701 0.019999999999996 0.019999999999996 0.0 301 -302 0.0251951217651367 0.0200000000000031 0.0200000000000031 0.0 302 -303 0.0236630439758301 0.0300000000000011 0.0300000000000011 0.0 303 -304 0.0231490135192871 0.019999999999996 0.019999999999996 0.0 304 -305 0.029649019241333 0.0300000000000011 0.0300000000000011 0.0 305 -306 0.0232720375061035 0.0200000000000031 0.0200000000000031 0.0 306 -307 0.0227010250091553 0.029999999999994 0.029999999999994 0.0 307 -308 0.0219080448150635 0.0200000000000031 0.0200000000000031 0.0 308 -309 0.0215001106262207 0.0200000000000031 0.0200000000000031 0.0 309 -310 0.0215349197387695 0.019999999999996 0.019999999999996 0.0 310 -311 0.0216870307922363 0.0200000000000031 0.0200000000000031 0.0 311 -312 0.0215351581573486 0.019999999999996 0.019999999999996 0.0 312 -313 0.0247399806976318 0.0300000000000011 0.0300000000000011 0.0 313 -314 0.0232751369476318 0.0200000000000031 0.0200000000000031 0.0 314 -315 0.0219449996948242 0.019999999999996 0.019999999999996 0.0 315 -316 0.0216867923736572 0.0300000000000011 0.0300000000000011 0.0 316 -317 0.0756809711456299 0.0700000000000003 0.0700000000000003 0.0 317 -318 0.0230629444122314 0.0300000000000011 0.0300000000000011 0.0 318 -319 0.0229449272155762 0.019999999999996 0.019999999999996 0.0 319 -320 0.0231809616088867 0.0200000000000031 0.0200000000000031 0.0 320 -321 0.0229148864746094 0.019999999999996 0.019999999999996 0.0 321 -322 0.0256710052490234 0.0300000000000011 0.0300000000000011 0.0 322 -323 0.0237009525299072 0.0200000000000031 0.0200000000000031 0.0 323 -324 0.0227048397064209 0.0300000000000011 0.0300000000000011 0.0 324 -325 0.0226731300354004 0.019999999999996 0.019999999999996 0.0 325 -326 0.0221679210662842 0.0200000000000031 0.0200000000000031 0.0 326 -327 0.0216591358184814 0.019999999999996 0.019999999999996 0.0 327 -328 0.0220868587493896 0.0300000000000011 0.0300000000000011 0.0 328 -329 0.0215578079223633 0.0200000000000031 0.0200000000000031 0.0 329 -330 0.0216000080108643 0.019999999999996 0.019999999999996 0.0 330 -331 0.0216810703277588 0.0200000000000031 0.0200000000000031 0.0 331 -332 0.0217440128326416 0.019999999999996 0.019999999999996 0.0 332 -333 0.024817943572998 0.0300000000000011 0.0300000000000011 0.0 333 -334 0.0228419303894043 0.0200000000000031 0.0200000000000031 0.0 334 -335 0.0767669677734375 0.0799999999999983 0.0799999999999983 0.0 335 -336 0.0229949951171875 0.0200000000000031 0.0200000000000031 0.0 336 -337 0.0237720012664795 0.019999999999996 0.019999999999996 0.0 337 -338 0.0229918956756592 0.0300000000000011 0.0300000000000011 0.0 338 -339 0.0228021144866943 0.0200000000000031 0.0200000000000031 0.0 339 -340 0.0227911472320557 0.019999999999996 0.019999999999996 0.0 340 -341 0.0249691009521484 0.0300000000000011 0.0300000000000011 0.0 341 -342 0.0228381156921387 0.0200000000000031 0.0200000000000031 0.0 342 -343 0.0229289531707764 0.019999999999996 0.019999999999996 0.0 343 -344 0.028364896774292 0.0300000000000011 0.0300000000000011 0.0 344 -345 0.0216519832611084 0.0200000000000031 0.0200000000000031 0.0 345 -346 0.0216679573059082 0.029999999999994 0.029999999999994 0.0 346 -347 0.0215489864349365 0.0200000000000031 0.0200000000000031 0.0 347 -348 0.0216460227966309 0.0200000000000031 0.0200000000000031 0.0 348 -349 0.0217490196228027 0.019999999999996 0.019999999999996 0.0 349 -350 0.0217440128326416 0.0200000000000031 0.0200000000000031 0.0 350 -351 0.0216310024261475 0.019999999999996 0.019999999999996 0.0 351 -352 0.0248680114746094 0.0300000000000011 0.0300000000000011 0.0 352 -353 0.0779280662536621 0.0799999999999983 0.0799999999999983 0.0 353 -354 0.0229990482330322 0.0200000000000031 0.0200000000000031 0.0 354 -355 0.02298903465271 0.019999999999996 0.019999999999996 0.0 355 -356 0.0229768753051758 0.0300000000000011 0.0300000000000011 0.0 356 -357 0.0228021144866943 0.0200000000000031 0.0200000000000031 0.0 357 -358 0.0227739810943604 0.019999999999996 0.019999999999996 0.0 358 -359 0.0229020118713379 0.0200000000000031 0.0200000000000031 0.0 359 -360 0.0220818519592285 0.0300000000000011 0.0300000000000011 0.0 360 -361 0.024421215057373 0.019999999999996 0.019999999999996 0.0 361 -362 0.0219769477844238 0.0200000000000031 0.0200000000000031 0.0 362 -363 0.0216801166534424 0.0300000000000011 0.0300000000000011 0.0 363 -364 0.0218110084533691 0.019999999999996 0.019999999999996 0.0 364 -365 0.0219409465789795 0.0200000000000031 0.0200000000000031 0.0 365 -366 0.0218820571899414 0.019999999999996 0.019999999999996 0.0 366 -367 0.0223009586334229 0.0200000000000031 0.0200000000000031 0.0 367 -368 0.0218269824981689 0.0300000000000011 0.0300000000000011 0.0 368 -369 0.0217530727386475 0.019999999999996 0.019999999999996 0.0 369 -370 0.0778021812438965 0.0700000000000003 0.0700000000000003 0.0 370 -371 0.0233700275421143 0.0300000000000011 0.0300000000000011 0.0 371 -372 0.0233359336853027 0.0200000000000031 0.0200000000000031 0.0 372 -373 0.0229201316833496 0.019999999999996 0.019999999999996 0.0 373 -374 0.0229110717773438 0.0300000000000011 0.0300000000000011 0.0 374 -375 0.0227591991424561 0.0200000000000031 0.0200000000000031 0.0 375 -376 0.023568868637085 0.019999999999996 0.019999999999996 0.0 376 -377 0.022733211517334 0.0300000000000011 0.0300000000000011 0.0 377 -378 0.0221920013427734 0.0200000000000031 0.0200000000000031 0.0 378 -379 0.0215809345245361 0.019999999999996 0.019999999999996 0.0 379 -380 0.0231049060821533 0.0200000000000031 0.0200000000000031 0.0 380 -381 0.0227119922637939 0.0300000000000011 0.0300000000000011 0.0 381 -382 0.0230410099029541 0.019999999999996 0.019999999999996 0.0 382 -383 0.0276191234588623 0.0300000000000011 0.0300000000000011 0.0 383 -384 0.0234389305114746 0.0200000000000031 0.0200000000000031 0.0 384 -385 0.0217380523681641 0.019999999999996 0.019999999999996 0.0 385 -386 0.0216379165649414 0.0200000000000031 0.0200000000000031 0.0 386 -387 0.0217010974884033 0.0300000000000011 0.0300000000000011 0.0 387 -388 0.0771059989929199 0.0699999999999932 0.0699999999999932 0.0 388 -389 0.0259981155395508 0.0300000000000011 0.0300000000000011 0.0 389 -390 0.0245940685272217 0.0200000000000031 0.0200000000000031 0.0 390 -391 0.0229830741882324 0.0300000000000011 0.0300000000000011 0.0 391 -392 0.0227859020233154 0.019999999999996 0.019999999999996 0.0 392 -393 0.0226709842681885 0.0200000000000031 0.0200000000000031 0.0 393 -394 0.0227479934692383 0.0300000000000011 0.0300000000000011 0.0 394 -395 0.0223689079284668 0.019999999999996 0.019999999999996 0.0 395 -396 0.0215182304382324 0.0200000000000031 0.0200000000000031 0.0 396 -397 0.0214920043945312 0.019999999999996 0.019999999999996 0.0 397 -398 0.0217499732971191 0.0200000000000031 0.0200000000000031 0.0 398 -399 0.021583080291748 0.019999999999996 0.019999999999996 0.0 399 -400 0.0245871543884277 0.0300000000000011 0.0300000000000011 0.0 400 -401 0.0234861373901367 0.0200000000000031 0.0200000000000031 0.0 401 -402 0.0216600894927979 0.019999999999996 0.019999999999996 0.0 402 -403 0.0216600894927979 0.0300000000000011 0.0300000000000011 0.0 403 -404 0.021885871887207 0.0200000000000031 0.0200000000000031 0.0 404 -405 0.0772140026092529 0.0799999999999983 0.0799999999999983 0.0 405 -406 0.0230650901794434 0.0200000000000031 0.0200000000000031 0.0 406 -407 0.0229761600494385 0.019999999999996 0.019999999999996 0.0 407 -408 0.0251660346984863 0.0300000000000011 0.0300000000000011 0.0 408 -409 0.0232548713684082 0.0200000000000031 0.0200000000000031 0.0 409 -410 0.0238220691680908 0.019999999999996 0.019999999999996 0.0 410 -411 0.0227861404418945 0.0300000000000011 0.0300000000000011 0.0 411 -412 0.0226359367370605 0.0200000000000031 0.0200000000000031 0.0 412 -413 0.0224370956420898 0.019999999999996 0.019999999999996 0.0 413 -414 0.0216140747070312 0.0200000000000031 0.0200000000000031 0.0 414 -415 0.0223848819732666 0.0300000000000011 0.0300000000000011 0.0 415 -416 0.0215442180633545 0.019999999999996 0.019999999999996 0.0 416 -417 0.0215690135955811 0.0200000000000031 0.0200000000000031 0.0 417 -418 0.0216190814971924 0.019999999999996 0.019999999999996 0.0 418 -419 0.0228719711303711 0.0200000000000031 0.0200000000000031 0.0 419 -420 0.0226399898529053 0.0300000000000011 0.0300000000000011 0.0 420 -421 0.0236082077026367 0.019999999999996 0.019999999999996 0.0 421 -422 0.0264570713043213 0.0300000000000011 0.0300000000000011 0.0 422 -423 0.0789790153503418 0.0799999999999983 0.0799999999999983 0.0 423 -424 0.0229339599609375 0.0200000000000031 0.0200000000000031 0.0 424 -425 0.0229668617248535 0.019999999999996 0.019999999999996 0.0 425 -426 0.02298903465271 0.0200000000000031 0.0200000000000031 0.0 426 -427 0.0229198932647705 0.0300000000000011 0.0300000000000011 0.0 427 -428 0.0257198810577393 0.019999999999996 0.019999999999996 0.0 428 -429 0.0243279933929443 0.0300000000000011 0.0300000000000011 0.0 429 -430 0.022507905960083 0.0200000000000031 0.0200000000000031 0.0 430 -431 0.0216341018676758 0.019999999999996 0.019999999999996 0.0 431 -432 0.0214908123016357 0.0200000000000031 0.0200000000000031 0.0 432 -433 0.0215690135955811 0.0300000000000011 0.0300000000000011 0.0 433 -434 0.0216338634490967 0.019999999999996 0.019999999999996 0.0 434 -435 0.0216329097747803 0.0200000000000031 0.0200000000000031 0.0 435 -436 0.0217580795288086 0.019999999999996 0.019999999999996 0.0 436 -437 0.0218169689178467 0.0200000000000031 0.0200000000000031 0.0 437 -438 0.0216329097747803 0.019999999999996 0.019999999999996 0.0 438 -439 0.0245261192321777 0.0300000000000011 0.0300000000000011 0.0 439 -440 0.0769329071044922 0.0700000000000003 0.0700000000000003 0.0 440 -441 0.0231759548187256 0.0300000000000011 0.0300000000000011 0.0 441 -442 0.0230391025543213 0.0200000000000031 0.0200000000000031 0.0 442 -443 0.0233399868011475 0.019999999999996 0.019999999999996 0.0 443 -444 0.0227611064910889 0.0300000000000011 0.0300000000000011 0.0 444 -445 0.0228729248046875 0.0200000000000031 0.0200000000000031 0.0 445 -446 0.0227501392364502 0.019999999999996 0.019999999999996 0.0 446 -447 0.0253760814666748 0.0300000000000011 0.0300000000000011 0.0 447 -448 0.0228900909423828 0.0200000000000031 0.0200000000000031 0.0 448 -449 0.0227060317993164 0.019999999999996 0.019999999999996 0.0 449 -450 0.0215671062469482 0.0300000000000011 0.0300000000000011 0.0 450 -451 0.0215458869934082 0.0200000000000031 0.0200000000000031 0.0 451 -452 0.0216641426086426 0.019999999999996 0.019999999999996 0.0 452 -453 0.0215919017791748 0.0200000000000031 0.0200000000000031 0.0 453 -454 0.022503137588501 0.019999999999996 0.019999999999996 0.0 454 -455 0.0216779708862305 0.0300000000000011 0.0300000000000011 0.0 455 -456 0.0216538906097412 0.0200000000000031 0.0200000000000031 0.0 456 -457 0.0217761993408203 0.019999999999996 0.019999999999996 0.0 457 -458 0.0798358917236328 0.0799999999999983 0.0799999999999983 0.0 458 -459 0.0303719043731689 0.0300000000000011 0.0300000000000011 0.0 459 -460 0.0229458808898926 0.0200000000000031 0.0200000000000031 0.0 460 -461 0.0229299068450928 0.019999999999996 0.019999999999996 0.0 461 -462 0.0227961540222168 0.019999999999996 0.019999999999996 0.0 462 -463 0.0226409435272217 0.0200000000000031 0.0200000000000031 0.0 463 -464 0.0226771831512451 0.019999999999996 0.019999999999996 0.0 464 -465 0.0224730968475342 0.0300000000000011 0.0300000000000011 0.0 465 -466 0.0218050479888916 0.0200000000000031 0.0200000000000031 0.0 466 -467 0.025601863861084 0.019999999999996 0.019999999999996 0.0 467 -468 0.0238199234008789 0.0300000000000011 0.0300000000000011 0.0 468 -469 0.0232160091400146 0.0200000000000031 0.0200000000000031 0.0 469 -470 0.0216109752655029 0.019999999999996 0.019999999999996 0.0 470 -471 0.0216319561004639 0.0200000000000031 0.0200000000000031 0.0 471 -472 0.0216560363769531 0.019999999999996 0.019999999999996 0.0 472 -473 0.021658182144165 0.0300000000000011 0.0300000000000011 0.0 473 -474 0.0217010974884033 0.0200000000000031 0.0200000000000031 0.0 474 -475 0.0779910087585449 0.0799999999999983 0.0799999999999983 0.0 475 -476 0.0244100093841553 0.0200000000000031 0.0200000000000031 0.0 476 -477 0.026054859161377 0.029999999999994 0.029999999999994 0.0 477 -478 0.022968053817749 0.0200000000000031 0.0200000000000031 0.0 478 -479 0.0229709148406982 0.0200000000000031 0.0200000000000031 0.0 479 -480 0.0229671001434326 0.019999999999996 0.019999999999996 0.0 480 -481 0.0232329368591309 0.0300000000000011 0.0300000000000011 0.0 481 -482 0.0227680206298828 0.0200000000000031 0.0200000000000031 0.0 482 -483 0.0224251747131348 0.019999999999996 0.019999999999996 0.0 483 -484 0.021751880645752 0.0300000000000011 0.0300000000000011 0.0 484 -485 0.0215151309967041 0.019999999999996 0.019999999999996 0.0 485 -486 0.0246729850769043 0.0200000000000031 0.0200000000000031 0.0 486 -487 0.0227639675140381 0.0200000000000031 0.0200000000000031 0.0 487 -488 0.0219759941101074 0.029999999999994 0.029999999999994 0.0 488 -489 0.0217058658599854 0.0200000000000031 0.0200000000000031 0.0 489 -490 0.0216960906982422 0.0200000000000031 0.0200000000000031 0.0 490 -491 0.0218369960784912 0.019999999999996 0.019999999999996 0.0 491 -492 0.0217111110687256 0.0200000000000031 0.0200000000000031 0.0 492 -493 0.078171968460083 0.0799999999999983 0.0799999999999983 0.0 493 -494 0.0229799747467041 0.019999999999996 0.019999999999996 0.0 494 -495 0.0272798538208008 0.0300000000000011 0.0300000000000011 0.0 495 -496 0.0244588851928711 0.0200000000000031 0.0200000000000031 0.0 496 -497 0.028217077255249 0.0300000000000011 0.0300000000000011 0.0 497 -498 0.0241749286651611 0.0300000000000011 0.0300000000000011 0.0 498 -499 0.0227570533752441 0.019999999999996 0.019999999999996 0.0 499 -500 0.022475004196167 0.0200000000000031 0.0200000000000031 0.0 500 -501 0.021665096282959 0.019999999999996 0.019999999999996 0.0 501 -502 0.021481990814209 0.0300000000000011 0.0300000000000011 0.0 502 -503 0.0216250419616699 0.0200000000000031 0.0200000000000031 0.0 503 -504 0.0215671062469482 0.019999999999996 0.019999999999996 0.0 504 -505 0.0225341320037842 0.0200000000000031 0.0200000000000031 0.0 505 -506 0.0243070125579834 0.0300000000000011 0.0300000000000011 0.0 506 -507 0.0236639976501465 0.019999999999996 0.019999999999996 0.0 507 -508 0.021744966506958 0.0200000000000031 0.0200000000000031 0.0 508 -509 0.0216488838195801 0.019999999999996 0.019999999999996 0.0 509 -510 0.0759198665618896 0.0800000000000054 0.0800000000000054 0.0 510 -511 0.0230319499969482 0.019999999999996 0.019999999999996 0.0 511 -512 0.0232639312744141 0.0300000000000011 0.0300000000000011 0.0 512 -513 0.022974967956543 0.019999999999996 0.019999999999996 0.0 513 -514 0.0257279872894287 0.0200000000000031 0.0200000000000031 0.0 514 -515 0.0243010520935059 0.0300000000000011 0.0300000000000011 0.0 515 -516 0.0226881504058838 0.019999999999996 0.019999999999996 0.0 516 -517 0.0226349830627441 0.0200000000000031 0.0200000000000031 0.0 517 -518 0.0224928855895996 0.0300000000000011 0.0300000000000011 0.0 518 -519 0.0218918323516846 0.019999999999996 0.019999999999996 0.0 519 -520 0.0220029354095459 0.0200000000000031 0.0200000000000031 0.0 520 -521 0.0215179920196533 0.0200000000000031 0.0200000000000031 0.0 521 -522 0.0215981006622314 0.019999999999996 0.019999999999996 0.0 522 -523 0.0216679573059082 0.0300000000000011 0.0300000000000011 0.0 523 -524 0.0216460227966309 0.019999999999996 0.019999999999996 0.0 524 -525 0.0247371196746826 0.0200000000000031 0.0200000000000031 0.0 525 -526 0.0231599807739258 0.0300000000000011 0.0300000000000011 0.0 526 -527 0.021859884262085 0.019999999999996 0.019999999999996 0.0 527 -528 0.0768899917602539 0.0700000000000003 0.0700000000000003 0.0 528 -529 0.0238020420074463 0.0300000000000011 0.0300000000000011 0.0 529 -530 0.0229949951171875 0.0200000000000031 0.0200000000000031 0.0 530 -531 0.0229158401489258 0.019999999999996 0.019999999999996 0.0 531 -532 0.0228259563446045 0.0300000000000011 0.0300000000000011 0.0 532 -533 0.0230560302734375 0.0200000000000031 0.0200000000000031 0.0 533 -534 0.0252690315246582 0.0300000000000011 0.0300000000000011 0.0 534 -535 0.0236430168151855 0.019999999999996 0.019999999999996 0.0 535 -536 0.029339075088501 0.0300000000000011 0.0300000000000011 0.0 536 -537 0.0215559005737305 0.0200000000000031 0.0200000000000031 0.0 537 -538 0.0222070217132568 0.019999999999996 0.019999999999996 0.0 538 -539 0.0215811729431152 0.0200000000000031 0.0200000000000031 0.0 539 -540 0.0215599536895752 0.0300000000000011 0.0300000000000011 0.0 540 -541 0.0217399597167969 0.019999999999996 0.019999999999996 0.0 541 -542 0.0217771530151367 0.0200000000000031 0.0200000000000031 0.0 542 -543 0.0216219425201416 0.019999999999996 0.019999999999996 0.0 543 -544 0.0232682228088379 0.0200000000000031 0.0200000000000031 0.0 544 -545 0.0793290138244629 0.0799999999999983 0.0799999999999983 0.0 545 -546 0.0229940414428711 0.0300000000000011 0.0300000000000011 0.0 546 -547 0.022838830947876 0.019999999999996 0.019999999999996 0.0 547 -548 0.0229969024658203 0.0200000000000031 0.0200000000000031 0.0 548 -549 0.0229189395904541 0.0300000000000011 0.0300000000000011 0.0 549 -550 0.0227901935577393 0.019999999999996 0.019999999999996 0.0 550 -551 0.0229239463806152 0.0200000000000031 0.0200000000000031 0.0 551 -552 0.022730827331543 0.019999999999996 0.019999999999996 0.0 552 -553 0.0253369808197021 0.0300000000000011 0.0300000000000011 0.0 553 -554 0.0220980644226074 0.0200000000000031 0.0200000000000031 0.0 554 -555 0.0214731693267822 0.019999999999996 0.019999999999996 0.0 555 -556 0.0215020179748535 0.0300000000000011 0.0300000000000011 0.0 556 -557 0.0217249393463135 0.0200000000000031 0.0200000000000031 0.0 557 -558 0.0217740535736084 0.019999999999996 0.019999999999996 0.0 558 -559 0.022136926651001 0.0200000000000031 0.0200000000000031 0.0 559 -560 0.021636962890625 0.0200000000000031 0.0200000000000031 0.0 560 -561 0.0216689109802246 0.019999999999996 0.019999999999996 0.0 561 -562 0.0218231678009033 0.0300000000000011 0.0300000000000011 0.0 562 -563 0.0795009136199951 0.0799999999999983 0.0799999999999983 0.0 563 -564 0.0232501029968262 0.0200000000000031 0.0200000000000031 0.0 564 -565 0.0230040550231934 0.019999999999996 0.019999999999996 0.0 565 -566 0.0230789184570312 0.0300000000000011 0.0300000000000011 0.0 566 -567 0.0227739810943604 0.0200000000000031 0.0200000000000031 0.0 567 -568 0.0235750675201416 0.019999999999996 0.019999999999996 0.0 568 -569 0.0226988792419434 0.0200000000000031 0.0200000000000031 0.0 569 -570 0.0223028659820557 0.0300000000000011 0.0300000000000011 0.0 570 -571 0.0216829776763916 0.019999999999996 0.019999999999996 0.0 571 -572 0.0214540958404541 0.0200000000000031 0.0200000000000031 0.0 572 -573 0.0238778591156006 0.019999999999996 0.019999999999996 0.0 573 -574 0.0230958461761475 0.0300000000000011 0.0300000000000011 0.0 574 -575 0.0280261039733887 0.0300000000000011 0.0300000000000011 0.0 575 -576 0.0220839977264404 0.0200000000000031 0.0200000000000031 0.0 576 -577 0.0217299461364746 0.019999999999996 0.019999999999996 0.0 577 -578 0.0215981006622314 0.0200000000000031 0.0200000000000031 0.0 578 -579 0.0216739177703857 0.019999999999996 0.019999999999996 0.0 579 -580 0.0760340690612793 0.0799999999999983 0.0799999999999983 0.0 580 -581 0.0261681079864502 0.0200000000000031 0.0200000000000031 0.0 581 -582 0.0245881080627441 0.0300000000000011 0.0300000000000011 0.0 582 -583 0.0231649875640869 0.019999999999996 0.019999999999996 0.0 583 -584 0.0228891372680664 0.0300000000000011 0.0300000000000011 0.0 584 -585 0.0227940082550049 0.0200000000000031 0.0200000000000031 0.0 585 -586 0.0227079391479492 0.019999999999996 0.019999999999996 0.0 586 -587 0.0227351188659668 0.0200000000000031 0.0200000000000031 0.0 587 -588 0.0223979949951172 0.0300000000000011 0.0300000000000011 0.0 588 -589 0.0217239856719971 0.019999999999996 0.019999999999996 0.0 589 -590 0.0216400623321533 0.0200000000000031 0.0200000000000031 0.0 590 -591 0.0222110748291016 0.019999999999996 0.019999999999996 0.0 591 -592 0.0244839191436768 0.0300000000000011 0.0300000000000011 0.0 592 -593 0.0231800079345703 0.0200000000000031 0.0200000000000031 0.0 593 -594 0.0216829776763916 0.019999999999996 0.019999999999996 0.0 594 -595 0.0216670036315918 0.0200000000000031 0.0200000000000031 0.0 595 -596 0.0216989517211914 0.0200000000000031 0.0200000000000031 0.0 596 -597 0.0218870639801025 0.039999999999992 0.029999999999994 0.01 597 -598 0.077578067779541 0.0700000000000003 0.0700000000000003 0.0 598 -599 0.0230538845062256 0.0300000000000011 0.0300000000000011 0.0 599 -600 0.0230109691619873 0.0200000000000031 0.0200000000000031 0.0 600 -601 0.0260770320892334 0.0300000000000011 0.0300000000000011 0.0 601 -602 0.0238099098205566 0.019999999999996 0.019999999999996 0.0 602 -603 0.0228049755096436 0.0200000000000031 0.0200000000000031 0.0 603 -604 0.0226948261260986 0.019999999999996 0.019999999999996 0.0 604 -605 0.0223379135131836 0.0300000000000011 0.0300000000000011 0.0 605 -606 0.0216000080108643 0.0200000000000031 0.0200000000000031 0.0 606 -607 0.0224909782409668 0.019999999999996 0.019999999999996 0.0 607 -608 0.0216529369354248 0.0200000000000031 0.0200000000000031 0.0 608 -609 0.0217139720916748 0.019999999999996 0.019999999999996 0.0 609 -610 0.0218150615692139 0.0300000000000011 0.0300000000000011 0.0 610 -611 0.0217039585113525 0.0200000000000031 0.0200000000000031 0.0 611 -612 0.0246798992156982 0.019999999999996 0.019999999999996 0.0 612 -613 0.0233089923858643 0.0300000000000011 0.0300000000000011 0.0 613 -614 0.0297579765319824 0.0300000000000011 0.0300000000000011 0.0 614 -615 0.0762190818786621 0.0700000000000003 0.0700000000000003 0.0 615 -616 0.0230169296264648 0.0200000000000031 0.0200000000000031 0.0 616 -617 0.0229558944702148 0.029999999999994 0.029999999999994 0.0 617 -618 0.0230798721313477 0.0200000000000031 0.0200000000000031 0.0 618 -619 0.0230178833007812 0.019999999999996 0.019999999999996 0.0 619 -620 0.0257527828216553 0.0300000000000011 0.0300000000000011 0.0 620 -621 0.0235459804534912 0.0200000000000031 0.0200000000000031 0.0 621 -622 0.0228161811828613 0.0300000000000011 0.0300000000000011 0.0 622 -623 0.022197961807251 0.019999999999996 0.019999999999996 0.0 623 -624 0.021589994430542 0.0200000000000031 0.0200000000000031 0.0 624 -625 0.0214920043945312 0.019999999999996 0.019999999999996 0.0 625 -626 0.0215818881988525 0.0200000000000031 0.0200000000000031 0.0 626 -627 0.021651029586792 0.0300000000000011 0.0300000000000011 0.0 627 -628 0.0215868949890137 0.019999999999996 0.019999999999996 0.0 628 -629 0.0218029022216797 0.0200000000000031 0.0200000000000031 0.0 629 -630 0.0216500759124756 0.019999999999996 0.019999999999996 0.0 630 -631 0.0244319438934326 0.0200000000000031 0.0200000000000031 0.0 631 -632 0.0230758190155029 0.0300000000000011 0.0300000000000011 0.0 632 -633 0.077272891998291 0.0799999999999983 0.0799999999999983 0.0 633 -634 0.0236070156097412 0.0200000000000031 0.0200000000000031 0.0 634 -635 0.0229601860046387 0.019999999999996 0.019999999999996 0.0 635 -636 0.0228729248046875 0.0200000000000031 0.0200000000000031 0.0 636 -637 0.0228011608123779 0.0300000000000011 0.0300000000000011 0.0 637 -638 0.0227499008178711 0.019999999999996 0.019999999999996 0.0 638 -639 0.0244989395141602 0.0200000000000031 0.0200000000000031 0.0 639 -640 0.0235378742218018 0.0200000000000031 0.0200000000000031 0.0 640 -641 0.0223779678344727 0.019999999999996 0.019999999999996 0.0 641 -642 0.0215990543365479 0.0200000000000031 0.0200000000000031 0.0 642 -643 0.0215990543365479 0.019999999999996 0.019999999999996 0.0 643 -644 0.0219650268554688 0.0300000000000011 0.0300000000000011 0.0 644 -645 0.0215990543365479 0.0200000000000031 0.0200000000000031 0.0 645 -646 0.0224740505218506 0.019999999999996 0.019999999999996 0.0 646 -647 0.0216758251190186 0.0200000000000031 0.0200000000000031 0.0 647 -648 0.0216619968414307 0.019999999999996 0.019999999999996 0.0 648 -649 0.0221309661865234 0.0300000000000011 0.0300000000000011 0.0 649 -650 0.0787041187286377 0.0700000000000003 0.0700000000000003 0.0 650 -651 0.0299739837646484 0.0300000000000011 0.0300000000000011 0.0 651 -652 0.0230100154876709 0.0200000000000031 0.0200000000000031 0.0 652 -653 0.0230507850646973 0.019999999999996 0.019999999999996 0.0 653 -654 0.0228569507598877 0.0200000000000031 0.0200000000000031 0.0 654 -655 0.0227470397949219 0.0300000000000011 0.0300000000000011 0.0 655 -656 0.0226500034332275 0.019999999999996 0.019999999999996 0.0 656 -657 0.0228099822998047 0.0200000000000031 0.0200000000000031 0.0 657 -658 0.0222539901733398 0.019999999999996 0.019999999999996 0.0 658 -659 0.0245277881622314 0.0300000000000011 0.0300000000000011 0.0 659 -660 0.0224230289459229 0.0200000000000031 0.0200000000000031 0.0 660 -661 0.0216460227966309 0.019999999999996 0.019999999999996 0.0 661 -662 0.0215950012207031 0.0300000000000011 0.0300000000000011 0.0 662 -663 0.0216000080108643 0.0200000000000031 0.0200000000000031 0.0 663 -664 0.0216140747070312 0.019999999999996 0.019999999999996 0.0 664 -665 0.021726131439209 0.0200000000000031 0.0200000000000031 0.0 665 -666 0.0217559337615967 0.0200000000000031 0.0200000000000031 0.0 666 -667 0.0218238830566406 0.019999999999996 0.019999999999996 0.0 667 -668 0.0802149772644043 0.0799999999999983 0.0799999999999983 0.0 668 -669 0.0245440006256104 0.0300000000000011 0.0300000000000011 0.0 669 -670 0.0230040550231934 0.0200000000000031 0.0200000000000031 0.0 670 -671 0.02288818359375 0.019999999999996 0.019999999999996 0.0 671 -672 0.0228390693664551 0.0300000000000011 0.0300000000000011 0.0 672 -673 0.023313045501709 0.0200000000000031 0.0200000000000031 0.0 673 -674 0.0226609706878662 0.019999999999996 0.019999999999996 0.0 674 -675 0.0220029354095459 0.0300000000000011 0.0300000000000011 0.0 675 -676 0.0215702056884766 0.0200000000000031 0.0200000000000031 0.0 676 -677 0.0216479301452637 0.019999999999996 0.019999999999996 0.0 677 -678 0.0215539932250977 0.0200000000000031 0.0200000000000031 0.0 678 -679 0.0247859954833984 0.0300000000000011 0.0300000000000011 0.0 679 -680 0.0219168663024902 0.019999999999996 0.019999999999996 0.0 680 -681 0.0216579437255859 0.0200000000000031 0.0200000000000031 0.0 681 -682 0.0216360092163086 0.019999999999996 0.019999999999996 0.0 682 -683 0.0217740535736084 0.0200000000000031 0.0200000000000031 0.0 683 -684 0.0216720104217529 0.019999999999996 0.019999999999996 0.0 684 -685 0.076854944229126 0.0800000000000054 0.0800000000000054 0.0 685 -686 0.0229959487915039 0.019999999999996 0.019999999999996 0.0 686 -687 0.0258049964904785 0.0300000000000011 0.0300000000000011 0.0 687 -688 0.0232279300689697 0.0200000000000031 0.0200000000000031 0.0 688 -689 0.0251309871673584 0.029999999999994 0.029999999999994 0.0 689 -690 0.0279409885406494 0.0300000000000011 0.0300000000000011 0.0 690 -691 0.0227260589599609 0.0200000000000031 0.0200000000000031 0.0 691 -692 0.0227479934692383 0.019999999999996 0.019999999999996 0.0 692 -693 0.0219731330871582 0.0200000000000031 0.0200000000000031 0.0 693 -694 0.0215420722961426 0.0300000000000011 0.0300000000000011 0.0 694 -695 0.0214939117431641 0.019999999999996 0.019999999999996 0.0 695 -696 0.0216901302337646 0.0200000000000031 0.0200000000000031 0.0 696 -697 0.0216901302337646 0.019999999999996 0.019999999999996 0.0 697 -698 0.0246269702911377 0.0200000000000031 0.0200000000000031 0.0 698 -699 0.0231730937957764 0.0300000000000011 0.0300000000000011 0.0 699 -700 0.021737813949585 0.019999999999996 0.019999999999996 0.0 700 -701 0.0217559337615967 0.0200000000000031 0.0200000000000031 0.0 701 -702 0.0756359100341797 0.0799999999999983 0.0799999999999983 0.0 702 -703 0.0232179164886475 0.0200000000000031 0.0200000000000031 0.0 703 -704 0.0229458808898926 0.019999999999996 0.019999999999996 0.0 704 -705 0.0230169296264648 0.0300000000000011 0.0300000000000011 0.0 705 -706 0.0228660106658936 0.0200000000000031 0.0200000000000031 0.0 706 -707 0.0257608890533447 0.0300000000000011 0.0300000000000011 0.0 707 -708 0.0230529308319092 0.019999999999996 0.019999999999996 0.0 708 -709 0.0226249694824219 0.0200000000000031 0.0200000000000031 0.0 709 -710 0.0225780010223389 0.019999999999996 0.019999999999996 0.0 710 -711 0.0220761299133301 0.0300000000000011 0.0300000000000011 0.0 711 -712 0.0221598148345947 0.0200000000000031 0.0200000000000031 0.0 712 -713 0.0215129852294922 0.019999999999996 0.019999999999996 0.0 713 -714 0.0216219425201416 0.0200000000000031 0.0200000000000031 0.0 714 -715 0.0215890407562256 0.019999999999996 0.019999999999996 0.0 715 -716 0.0216820240020752 0.0200000000000031 0.0200000000000031 0.0 716 -717 0.0216300487518311 0.0300000000000011 0.0300000000000011 0.0 717 -718 0.0247721672058105 0.019999999999996 0.019999999999996 0.0 718 -719 0.0220820903778076 0.0200000000000031 0.0200000000000031 0.0 719 -720 0.0769851207733154 0.0799999999999983 0.0799999999999983 0.0 720 -721 0.0229990482330322 0.0200000000000031 0.0200000000000031 0.0 721 -722 0.024212121963501 0.0300000000000011 0.0300000000000011 0.0 722 -723 0.0229740142822266 0.019999999999996 0.019999999999996 0.0 723 -724 0.0227351188659668 0.0200000000000031 0.0200000000000031 0.0 724 -725 0.0226562023162842 0.029999999999994 0.029999999999994 0.0 725 -726 0.0255320072174072 0.0200000000000031 0.0200000000000031 0.0 726 -727 0.0227208137512207 0.0200000000000031 0.0200000000000031 0.0 727 -728 0.0237081050872803 0.029999999999994 0.029999999999994 0.0 728 -729 0.0268452167510986 0.0200000000000031 0.0200000000000031 0.0 729 -730 0.0218770503997803 0.0300000000000011 0.0300000000000011 0.0 730 -731 0.0217039585113525 0.019999999999996 0.019999999999996 0.0 731 -732 0.0215818881988525 0.0200000000000031 0.0200000000000031 0.0 732 -733 0.0217380523681641 0.0200000000000031 0.0200000000000031 0.0 733 -734 0.0216901302337646 0.019999999999996 0.019999999999996 0.0 734 -735 0.0217649936676025 0.0300000000000011 0.0300000000000011 0.0 735 -736 0.0216591358184814 0.019999999999996 0.019999999999996 0.0 736 -737 0.0809669494628906 0.0800000000000054 0.0800000000000054 0.0 737 -738 0.0230050086975098 0.019999999999996 0.019999999999996 0.0 738 -739 0.0229599475860596 0.0200000000000031 0.0200000000000031 0.0 739 -740 0.0229651927947998 0.0300000000000011 0.0300000000000011 0.0 740 -741 0.0228550434112549 0.019999999999996 0.019999999999996 0.0 741 -742 0.0228068828582764 0.0200000000000031 0.0200000000000031 0.0 742 -743 0.022993803024292 0.0300000000000011 0.0300000000000011 0.0 743 -744 0.0227200984954834 0.019999999999996 0.019999999999996 0.0 744 -745 0.02242112159729 0.0200000000000031 0.0200000000000031 0.0 745 -746 0.0246379375457764 0.0300000000000011 0.0300000000000011 0.0 746 -747 0.0218410491943359 0.019999999999996 0.019999999999996 0.0 747 -748 0.0215339660644531 0.0200000000000031 0.0200000000000031 0.0 748 -749 0.0215659141540527 0.019999999999996 0.019999999999996 0.0 749 -750 0.0216779708862305 0.0200000000000031 0.0200000000000031 0.0 750 -751 0.0216810703277588 0.019999999999996 0.019999999999996 0.0 751 -752 0.0221710205078125 0.0300000000000011 0.0300000000000011 0.0 752 -753 0.0216331481933594 0.0200000000000031 0.0200000000000031 0.0 753 -754 0.0217230319976807 0.019999999999996 0.019999999999996 0.0 754 -755 0.0797798633575439 0.0800000000000054 0.0800000000000054 0.0 755 -756 0.0233240127563477 0.019999999999996 0.019999999999996 0.0 756 -757 0.0232129096984863 0.0300000000000011 0.0300000000000011 0.0 757 -758 0.0233068466186523 0.0200000000000031 0.0200000000000031 0.0 758 -759 0.0228340625762939 0.019999999999996 0.019999999999996 0.0 759 -760 0.0226619243621826 0.0300000000000011 0.0300000000000011 0.0 760 -761 0.0235550403594971 0.0200000000000031 0.0200000000000031 0.0 761 -762 0.0222749710083008 0.019999999999996 0.019999999999996 0.0 762 -763 0.0216190814971924 0.0200000000000031 0.0200000000000031 0.0 763 -764 0.0215640068054199 0.019999999999996 0.019999999999996 0.0 764 -765 0.0237760543823242 0.0300000000000011 0.0300000000000011 0.0 765 -766 0.0217039585113525 0.0200000000000031 0.0200000000000031 0.0 766 -767 0.0219049453735352 0.019999999999996 0.019999999999996 0.0 767 -768 0.0291330814361572 0.0300000000000011 0.0300000000000011 0.0 768 -769 0.0216200351715088 0.0200000000000031 0.0200000000000031 0.0 769 -770 0.0217278003692627 0.019999999999996 0.019999999999996 0.0 770 -771 0.0217189788818359 0.0300000000000011 0.0300000000000011 0.0 771 -772 0.0760140419006348 0.0700000000000003 0.0700000000000003 0.0 772 -773 0.0230591297149658 0.0300000000000011 0.0300000000000011 0.0 773 -774 0.0260210037231445 0.019999999999996 0.019999999999996 0.0 774 -775 0.0247459411621094 0.0300000000000011 0.0300000000000011 0.0 775 -776 0.0229299068450928 0.0200000000000031 0.0200000000000031 0.0 776 -777 0.0227248668670654 0.019999999999996 0.019999999999996 0.0 777 -778 0.022636890411377 0.0300000000000011 0.0300000000000011 0.0 778 -779 0.0227160453796387 0.0200000000000031 0.0200000000000031 0.0 779 -780 0.0222170352935791 0.019999999999996 0.019999999999996 0.0 780 -781 0.0216178894042969 0.0200000000000031 0.0200000000000031 0.0 781 -782 0.0216701030731201 0.019999999999996 0.019999999999996 0.0 782 -783 0.0215609073638916 0.0300000000000011 0.0300000000000011 0.0 783 -784 0.0215671062469482 0.0200000000000031 0.0200000000000031 0.0 784 -785 0.0244979858398438 0.019999999999996 0.019999999999996 0.0 785 -786 0.02254319190979 0.0200000000000031 0.0200000000000031 0.0 786 -787 0.0216531753540039 0.0300000000000011 0.0300000000000011 0.0 787 -788 0.0216619968414307 0.019999999999996 0.019999999999996 0.0 788 -789 0.0218989849090576 0.0200000000000031 0.0200000000000031 0.0 789 -790 0.0775949954986572 0.0799999999999983 0.0799999999999983 0.0 790 -791 0.0229768753051758 0.0200000000000031 0.0200000000000031 0.0 791 -792 0.0230350494384766 0.019999999999996 0.019999999999996 0.0 792 -793 0.0247578620910645 0.0300000000000011 0.0300000000000011 0.0 793 -794 0.0241599082946777 0.0200000000000031 0.0200000000000031 0.0 794 -795 0.0229189395904541 0.029999999999994 0.029999999999994 0.0 795 -796 0.0227510929107666 0.0200000000000031 0.0200000000000031 0.0 796 -797 0.0223112106323242 0.0200000000000031 0.0200000000000031 0.0 797 -798 0.0216238498687744 0.019999999999996 0.019999999999996 0.0 798 -799 0.0216000080108643 0.0200000000000031 0.0200000000000031 0.0 799 -800 0.0226099491119385 0.0300000000000011 0.0300000000000011 0.0 800 -801 0.0218279361724854 0.019999999999996 0.019999999999996 0.0 801 -802 0.0216817855834961 0.0200000000000031 0.0200000000000031 0.0 802 -803 0.0218219757080078 0.019999999999996 0.019999999999996 0.0 803 -804 0.0220489501953125 0.0200000000000031 0.0200000000000031 0.0 804 -805 0.0245721340179443 0.0300000000000011 0.0300000000000011 0.0 805 -806 0.0237100124359131 0.019999999999996 0.019999999999996 0.0 806 -807 0.0831229686737061 0.0900000000000034 0.0900000000000034 0.0 807 -808 0.0229980945587158 0.019999999999996 0.019999999999996 0.0 808 -809 0.0230069160461426 0.0200000000000031 0.0200000000000031 0.0 809 -810 0.0229578018188477 0.019999999999996 0.019999999999996 0.0 810 -811 0.0229570865631104 0.0300000000000011 0.0300000000000011 0.0 811 -812 0.0228419303894043 0.0200000000000031 0.0200000000000031 0.0 812 -813 0.0257079601287842 0.0300000000000011 0.0300000000000011 0.0 813 -814 0.0235209465026855 0.019999999999996 0.019999999999996 0.0 814 -815 0.0221221446990967 0.0200000000000031 0.0200000000000031 0.0 815 -816 0.0214879512786865 0.019999999999996 0.019999999999996 0.0 816 -817 0.0215079784393311 0.0300000000000011 0.0300000000000011 0.0 817 -818 0.0216140747070312 0.0200000000000031 0.0200000000000031 0.0 818 -819 0.0216760635375977 0.019999999999996 0.019999999999996 0.0 819 -820 0.021683931350708 0.0200000000000031 0.0200000000000031 0.0 820 -821 0.0217459201812744 0.019999999999996 0.019999999999996 0.0 821 -822 0.0217831134796143 0.0200000000000031 0.0200000000000031 0.0 822 -823 0.0216968059539795 0.0300000000000011 0.0300000000000011 0.0 823 -824 0.0794470310211182 0.0799999999999983 0.0799999999999983 0.0 824 -825 0.0230400562286377 0.0200000000000031 0.0200000000000031 0.0 825 -826 0.0233430862426758 0.019999999999996 0.019999999999996 0.0 826 -827 0.023482084274292 0.0300000000000011 0.0300000000000011 0.0 827 -828 0.0228879451751709 0.0200000000000031 0.0200000000000031 0.0 828 -829 0.0232207775115967 0.019999999999996 0.019999999999996 0.0 829 -830 0.0228579044342041 0.0200000000000031 0.0200000000000031 0.0 830 -831 0.022691011428833 0.029999999999994 0.029999999999994 0.0 831 -832 0.024960994720459 0.0200000000000031 0.0200000000000031 0.0 832 -833 0.0226261615753174 0.0200000000000031 0.0200000000000031 0.0 833 -834 0.0222339630126953 0.029999999999994 0.029999999999994 0.0 834 -835 0.0216858386993408 0.0200000000000031 0.0200000000000031 0.0 835 -836 0.0216341018676758 0.0200000000000031 0.0200000000000031 0.0 836 -837 0.0216710567474365 0.019999999999996 0.019999999999996 0.0 837 -838 0.0217170715332031 0.0200000000000031 0.0200000000000031 0.0 838 -839 0.0223820209503174 0.0300000000000011 0.0300000000000011 0.0 839 -840 0.0218658447265625 0.019999999999996 0.019999999999996 0.0 840 -841 0.0216851234436035 0.0200000000000031 0.0200000000000031 0.0 841 -842 0.0797119140625 0.0799999999999983 0.0799999999999983 0.0 842 -843 0.0296900272369385 0.0300000000000011 0.0300000000000011 0.0 843 -844 0.023921012878418 0.019999999999996 0.019999999999996 0.0 844 -845 0.0230309963226318 0.0300000000000011 0.0300000000000011 0.0 845 -846 0.0227670669555664 0.0200000000000031 0.0200000000000031 0.0 846 -847 0.0226919651031494 0.019999999999996 0.019999999999996 0.0 847 -848 0.0227150917053223 0.0200000000000031 0.0200000000000031 0.0 848 -849 0.0224990844726562 0.0300000000000011 0.0300000000000011 0.0 849 -850 0.0217578411102295 0.019999999999996 0.019999999999996 0.0 850 -851 0.0215840339660645 0.0200000000000031 0.0200000000000031 0.0 851 -852 0.0246429443359375 0.0300000000000011 0.0300000000000011 0.0 852 -853 0.0232079029083252 0.019999999999996 0.019999999999996 0.0 853 -854 0.0217320919036865 0.0200000000000031 0.0200000000000031 0.0 854 -855 0.0215840339660645 0.019999999999996 0.019999999999996 0.0 855 -856 0.0217161178588867 0.0200000000000031 0.0200000000000031 0.0 856 -857 0.0216400623321533 0.0300000000000011 0.0300000000000011 0.0 857 -858 0.0217981338500977 0.019999999999996 0.019999999999996 0.0 858 -859 0.0765349864959717 0.0700000000000003 0.0700000000000003 0.0 859 -860 0.0244770050048828 0.0300000000000011 0.0300000000000011 0.0 860 -861 0.0246331691741943 0.0200000000000031 0.0200000000000031 0.0 861 -862 0.0232968330383301 0.029999999999994 0.029999999999994 0.0 862 -863 0.0228350162506104 0.0200000000000031 0.0200000000000031 0.0 863 -864 0.0228140354156494 0.0200000000000031 0.0200000000000031 0.0 864 -865 0.0230000019073486 0.029999999999994 0.029999999999994 0.0 865 -866 0.0231919288635254 0.0200000000000031 0.0200000000000031 0.0 866 -867 0.0222370624542236 0.0200000000000031 0.0200000000000031 0.0 867 -868 0.0216059684753418 0.019999999999996 0.019999999999996 0.0 868 -869 0.0215280055999756 0.0200000000000031 0.0200000000000031 0.0 869 -870 0.0218400955200195 0.029999999999994 0.029999999999994 0.0 870 -871 0.0238420963287354 0.0200000000000031 0.0200000000000031 0.0 871 -872 0.0222158432006836 0.0200000000000031 0.0200000000000031 0.0 872 -873 0.0229439735412598 0.029999999999994 0.029999999999994 0.0 873 -874 0.022014856338501 0.0200000000000031 0.0200000000000031 0.0 874 -875 0.0218870639801025 0.0200000000000031 0.0200000000000031 0.0 875 -876 0.0765628814697266 0.0799999999999983 0.0799999999999983 0.0 876 -877 0.0229649543762207 0.019999999999996 0.019999999999996 0.0 877 -878 0.0228400230407715 0.0200000000000031 0.0200000000000031 0.0 878 -879 0.0230231285095215 0.019999999999996 0.019999999999996 0.0 879 -880 0.0252189636230469 0.0300000000000011 0.0300000000000011 0.0 880 -881 0.0232028961181641 0.0200000000000031 0.0200000000000031 0.0 881 -882 0.0295140743255615 0.0300000000000011 0.0300000000000011 0.0 882 -883 0.0227620601654053 0.0300000000000011 0.0300000000000011 0.0 883 -884 0.0229089260101318 0.019999999999996 0.019999999999996 0.0 884 -885 0.0219950675964355 0.0200000000000031 0.0200000000000031 0.0 885 -886 0.021589994430542 0.019999999999996 0.019999999999996 0.0 886 -887 0.0214979648590088 0.0200000000000031 0.0200000000000031 0.0 887 -888 0.0215859413146973 0.0300000000000011 0.0300000000000011 0.0 888 -889 0.0217750072479248 0.019999999999996 0.019999999999996 0.0 889 -890 0.021744966506958 0.0200000000000031 0.0200000000000031 0.0 890 -891 0.025892972946167 0.019999999999996 0.019999999999996 0.0 891 -892 0.0236170291900635 0.0300000000000011 0.0300000000000011 0.0 892 -893 0.0218141078948975 0.0200000000000031 0.0200000000000031 0.0 893 -894 0.0771820545196533 0.0799999999999983 0.0799999999999983 0.0 894 -895 0.0230357646942139 0.0200000000000031 0.0200000000000031 0.0 895 -896 0.0231060981750488 0.019999999999996 0.019999999999996 0.0 896 -897 0.023137092590332 0.0300000000000011 0.0300000000000011 0.0 897 -898 0.022799015045166 0.019999999999996 0.019999999999996 0.0 898 -899 0.0256779193878174 0.0200000000000031 0.0200000000000031 0.0 899 -900 0.0231838226318359 0.0300000000000011 0.0300000000000011 0.0 900 -901 0.0232141017913818 0.019999999999996 0.019999999999996 0.0 901 -902 0.0217940807342529 0.0200000000000031 0.0200000000000031 0.0 902 -903 0.0214989185333252 0.0200000000000031 0.0200000000000031 0.0 903 -904 0.0218000411987305 0.029999999999994 0.029999999999994 0.0 904 -905 0.0220961570739746 0.0200000000000031 0.0200000000000031 0.0 905 -906 0.0215680599212646 0.0200000000000031 0.0200000000000031 0.0 906 -907 0.0216329097747803 0.019999999999996 0.019999999999996 0.0 907 -908 0.0217070579528809 0.0200000000000031 0.0200000000000031 0.0 908 -909 0.0216760635375977 0.019999999999996 0.019999999999996 0.0 909 -910 0.0236759185791016 0.0300000000000011 0.0300000000000011 0.0 910 -911 0.0770270824432373 0.0799999999999983 0.0799999999999983 0.0 911 -912 0.0231328010559082 0.0200000000000031 0.0200000000000031 0.0 912 -913 0.0229079723358154 0.019999999999996 0.019999999999996 0.0 913 -914 0.0230019092559814 0.0200000000000031 0.0200000000000031 0.0 914 -915 0.0252349376678467 0.0300000000000011 0.0300000000000011 0.0 915 -916 0.0227150917053223 0.019999999999996 0.019999999999996 0.0 916 -917 0.0228018760681152 0.0200000000000031 0.0200000000000031 0.0 917 -918 0.0226809978485107 0.0300000000000011 0.0300000000000011 0.0 918 -919 0.0252270698547363 0.019999999999996 0.019999999999996 0.0 919 -920 0.0231540203094482 0.0300000000000011 0.0300000000000011 0.0 920 -921 0.0289709568023682 0.0200000000000031 0.0200000000000031 0.0 921 -922 0.0215799808502197 0.0300000000000011 0.0300000000000011 0.0 922 -923 0.0319468975067139 0.0300000000000011 0.019999999999996 0.01 923 -924 0.0216109752655029 0.0200000000000031 0.0200000000000031 0.0 924 -925 0.0217740535736084 0.019999999999996 0.019999999999996 0.0 925 -926 0.0216958522796631 0.0200000000000031 0.0200000000000031 0.0 926 -927 0.0216629505157471 0.019999999999996 0.019999999999996 0.0 927 -928 0.0217578411102295 0.0300000000000011 0.0300000000000011 0.0 928 -929 0.0820608139038086 0.0799999999999983 0.0799999999999983 0.0 929 -930 0.0229201316833496 0.0200000000000031 0.0200000000000031 0.0 930 -931 0.0229270458221436 0.0200000000000031 0.0200000000000031 0.0 931 -932 0.0229320526123047 0.029999999999994 0.029999999999994 0.0 932 -933 0.0227558612823486 0.0200000000000031 0.0200000000000031 0.0 933 -934 0.0226609706878662 0.0200000000000031 0.0200000000000031 0.0 934 -935 0.0229549407958984 0.019999999999996 0.019999999999996 0.0 935 -936 0.0221340656280518 0.0300000000000011 0.0300000000000011 0.0 936 -937 0.0215301513671875 0.019999999999996 0.019999999999996 0.0 937 -938 0.0243568420410156 0.0200000000000031 0.0200000000000031 0.0 938 -939 0.021946907043457 0.0300000000000011 0.0300000000000011 0.0 939 -940 0.021575927734375 0.019999999999996 0.019999999999996 0.0 940 -941 0.0216639041900635 0.0200000000000031 0.0200000000000031 0.0 941 -942 0.0217418670654297 0.0200000000000031 0.0200000000000031 0.0 942 -943 0.0222411155700684 0.019999999999996 0.019999999999996 0.0 943 -944 0.0216610431671143 0.0200000000000031 0.0200000000000031 0.0 944 -945 0.0216820240020752 0.019999999999996 0.019999999999996 0.0 945 -946 0.0792751312255859 0.0699999999999932 0.0699999999999932 0.0 946 -947 0.0251059532165527 0.0300000000000011 0.0300000000000011 0.0 947 -948 0.0247578620910645 0.0200000000000031 0.0200000000000031 0.0 948 -949 0.0229980945587158 0.0300000000000011 0.0300000000000011 0.0 949 -950 0.0229229927062988 0.019999999999996 0.019999999999996 0.0 950 -951 0.0227029323577881 0.0200000000000031 0.0200000000000031 0.0 951 -952 0.0226871967315674 0.019999999999996 0.019999999999996 0.0 952 -953 0.0235540866851807 0.0300000000000011 0.0300000000000011 0.0 953 -954 0.0219640731811523 0.0200000000000031 0.0200000000000031 0.0 954 -955 0.0214629173278809 0.019999999999996 0.019999999999996 0.0 955 -956 0.021557092666626 0.0200000000000031 0.0200000000000031 0.0 956 -957 0.02388596534729 0.0300000000000011 0.0300000000000011 0.0 957 -958 0.0222799777984619 0.019999999999996 0.019999999999996 0.0 958 -959 0.0276319980621338 0.0300000000000011 0.0300000000000011 0.0 959 -960 0.0242338180541992 0.0200000000000031 0.0200000000000031 0.0 960 -961 0.0216600894927979 0.019999999999996 0.019999999999996 0.0 961 -962 0.0217490196228027 0.0200000000000031 0.0200000000000031 0.0 962 -963 0.0757958889007568 0.0799999999999983 0.0799999999999983 0.0 963 -964 0.0231211185455322 0.0200000000000031 0.0200000000000031 0.0 964 -965 0.023090124130249 0.029999999999994 0.029999999999994 0.0 965 -966 0.02652907371521 0.0200000000000031 0.0200000000000031 0.0 966 -967 0.024601936340332 0.0300000000000011 0.0300000000000011 0.0 967 -968 0.0228731632232666 0.019999999999996 0.019999999999996 0.0 968 -969 0.0227208137512207 0.0200000000000031 0.0200000000000031 0.0 969 -970 0.0226399898529053 0.0300000000000011 0.0300000000000011 0.0 970 -971 0.0225419998168945 0.019999999999996 0.019999999999996 0.0 971 -972 0.0218651294708252 0.0200000000000031 0.0200000000000031 0.0 972 -973 0.0215599536895752 0.0200000000000031 0.0200000000000031 0.0 973 -974 0.0218329429626465 0.019999999999996 0.019999999999996 0.0 974 -975 0.0215480327606201 0.0300000000000011 0.0300000000000011 0.0 975 -976 0.0220801830291748 0.019999999999996 0.019999999999996 0.0 976 -977 0.0245459079742432 0.0200000000000031 0.0200000000000031 0.0 977 -978 0.0230350494384766 0.0300000000000011 0.0300000000000011 0.0 978 -979 0.0217211246490479 0.019999999999996 0.019999999999996 0.0 979 -980 0.0217759609222412 0.0200000000000031 0.0200000000000031 0.0 980 -981 0.0778119564056396 0.0799999999999983 0.0799999999999983 0.0 981 -982 0.0229709148406982 0.0200000000000031 0.0200000000000031 0.0 982 -983 0.023047924041748 0.019999999999996 0.019999999999996 0.0 983 -984 0.0228879451751709 0.0300000000000011 0.0300000000000011 0.0 984 -985 0.0263099670410156 0.0200000000000031 0.0200000000000031 0.0 985 -986 0.0241529941558838 0.0300000000000011 0.0300000000000011 0.0 986 -987 0.0228710174560547 0.019999999999996 0.019999999999996 0.0 987 -988 0.0223538875579834 0.0200000000000031 0.0200000000000031 0.0 988 -989 0.0217280387878418 0.019999999999996 0.019999999999996 0.0 989 -990 0.0214800834655762 0.0300000000000011 0.0300000000000011 0.0 990 -991 0.0215470790863037 0.0200000000000031 0.0200000000000031 0.0 991 -992 0.0224719047546387 0.019999999999996 0.019999999999996 0.0 992 -993 0.0216379165649414 0.0200000000000031 0.0200000000000031 0.0 993 -994 0.0215561389923096 0.019999999999996 0.019999999999996 0.0 994 -995 0.021676778793335 0.0200000000000031 0.0200000000000031 0.0 995 -996 0.024587869644165 0.0300000000000011 0.0300000000000011 0.0 996 -997 0.0231449604034424 0.019999999999996 0.019999999999996 0.0 997 -998 0.0824549198150635 0.0900000000000034 0.0900000000000034 0.0 998 -999 0.0230429172515869 0.019999999999996 0.019999999999996 0.0 999 -1000 0.0229730606079102 0.0200000000000031 0.0200000000000031 0.0 1000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log deleted file mode 100644 index 7272679..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log +++ /dev/null @@ -1,82 +0,0 @@ -========================== 2009-04-01T16:49:55 CEST =========================== -Benchmarking on ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]. -Running 'GeneratorBenchmarkRails' for 1000 iterations/method (compare_time=real) -=============================================================================== - -This first run is only for warmup. -GeneratorBenchmarkRails#generator: - real total user system -sum 25.871086597 25.820000000 25.780000000 0.040000000 -min 0.021485090 0.020000000 0.020000000 0.000000000 -std- 0.013123732 0.012534515 0.012507179 -0.000591505 -mean 0.025871087 0.025820000 0.025780000 0.000040000 -std+ 0.038618441 0.039105485 0.039052821 0.000671505 -max 0.084933996 0.090000000 0.090000000 0.010000000 -std 0.012747354 0.013285485 0.013272821 0.000631505 -std% 49.272590131 51.454239794 51.484952060 1578.762962731 -harm 0.023654431 0.022959497 0.022933171 nan -geo 0.024373445 0.023988580 0.023955348 0.000000000 -q1 0.021737874 0.020000000 0.020000000 0.000000000 -med 0.022677064 0.020000000 0.020000000 0.000000000 -q3 0.023290575 0.030000000 0.030000000 0.000000000 - 1000 38.65319 0.025871087 - calls calls/sec secs/call - - 0.08176 -|* - 0.07542 -|** - 0.06907 -| - 0.06273 -| - 0.05638 -| - 0.05004 -| - 0.04369 -| - 0.03735 -| - 0.03100 -|* - 0.02466 -|************************************************** - -Outliers detected with box plot algo (median=0.02268, iqr=0.00155, factor=3.00): -high=115 very_high=69 - -Ljung-Box statistics: q=1246.12050 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -GeneratorBenchmarkRails#generator: - real total user system -sum 25.952543497 25.950000000 25.930000000 0.020000000 -min 0.021454096 0.020000000 0.020000000 0.000000000 -std- 0.013029796 0.012272113 0.012258057 -0.000426990 -mean 0.025952543 0.025950000 0.025930000 0.000020000 -std+ 0.038875291 0.039627887 0.039601943 0.000466990 -max 0.083282948 0.090000000 0.090000000 0.010000000 -std 0.012922747 0.013677887 0.013671943 0.000446990 -std% 49.793760083 52.708619269 52.726351240 2234.948544149 -harm 0.023675798 0.022977187 0.022963996 nan -geo 0.024414095 0.024037524 0.024020868 0.000000000 -q1 0.021728516 0.020000000 0.020000000 0.000000000 -med 0.022745013 0.020000000 0.020000000 0.000000000 -q3 0.023253679 0.030000000 0.030000000 0.000000000 - 1000 38.53187 0.025952543 - calls calls/sec secs/call - - 0.08019 -|** - 0.07401 -|* - 0.06783 -| - 0.06164 -| - 0.05546 -| - 0.04928 -| - 0.04309 -| - 0.03691 -| - 0.03073 -|* - 0.02455 -|************************************************** - -Outliers detected with box plot algo (median=0.02275, iqr=0.00153, factor=3.00): -high=106 very_high=75 - -Ljung-Box statistics: q=1270.99317 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -No initial data truncated. - => System may have been in a steady state from the beginning. -========================== 2009-04-01T16:50:50 CEST =========================== - -Writing measurement data file '/data/scm/json/benchmarks/data/GeneratorBenchmarkRails#generator.dat'. -Writing autocorrelation plot file '/data/scm/json/benchmarks/data/GeneratorBenchmarkRails#generator-autocorrelation.dat'. diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log deleted file mode 100644 index 7df4445..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log +++ /dev/null @@ -1,34 +0,0 @@ -========================== 2009-04-01T16:49:51 CEST =========================== - -Comparing times (call_time_mean): - 1 ParserBenchmarkExt#parser 900 repeats: - 553.922304770 ( real) -> 21.500x - 0.001805307 - 2 ParserBenchmarkYAML#parser 1000 repeats: - 224.513358139 ( real) -> 8.714x - 0.004454078 - 3 ParserBenchmarkPure#parser 1000 repeats: - 26.755020642 ( real) -> 1.038x - 0.037376163 - 4 ParserBenchmarkRails#parser 1000 repeats: - 25.763381731 ( real) -> 1.000x - 0.038814780 - calls/sec ( time) -> speed covers - secs/call - -Comparing times (call_time_median): - 1 ParserBenchmarkExt#parser 900 repeats: - 800.592479481 ( real) -> 26.936x - 0.001249075 - 2 ParserBenchmarkYAML#parser 1000 repeats: - 271.002390644 ( real) -> 9.118x - 0.003690004 - 3 ParserBenchmarkRails#parser 1000 repeats: - 30.227910865 ( real) -> 1.017x - 0.033082008 - 4 ParserBenchmarkPure#parser 1000 repeats: - 29.722384421 ( real) -> 1.000x - 0.033644676 - calls/sec ( time) -> speed covers - secs/call -=============================================================================== diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat deleted file mode 100644 index 40efc57..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat +++ /dev/null @@ -1,900 +0,0 @@ -#lag autocorrelation -101 1.0 -102 0.00985212418163005 -103 -0.00105742571489969 -104 -0.0200019393620297 -105 -0.00933105977449441 -106 -0.0198053539236752 -107 -0.0179767811553642 -108 -0.0176611423990743 -109 -0.0185222417953087 -110 -0.0205843694390457 -111 -0.01715959553508 -112 -0.0198505157325194 -113 -0.0185062490072185 -114 -0.0196897065923063 -115 -0.021656479097572 -116 -0.0204821887654524 -117 -0.0184415185088398 -118 -0.0211615011085338 -119 -0.0216761971444828 -120 -0.0198233495768411 -121 -0.0203604715880323 -122 -0.0198005010000642 -123 -0.0186848341524697 -124 -0.0180302780242917 -125 -0.0183844885059821 -126 -0.0193889269967917 -127 -0.0192676046194778 -128 -0.017137594880939 -129 -0.0170409124066728 -130 -0.0150595759310503 -131 -0.018497243864985 -132 -0.0191312662452333 -133 -0.0194917405622472 -134 -0.0182724916370003 -135 -0.0171018288530395 -136 -0.017693203383731 -137 -0.019233808628409 -138 -0.0204803489133546 -139 -0.0206519814870514 -140 -0.0209197600090546 -141 -0.0201426439148014 -142 -0.0181979335068176 -143 -0.0198192645275531 -144 -0.0202773409268149 -145 -0.0197509641765462 -146 -0.0174542791271672 -147 -0.0185131963029398 -148 -0.0142911622141816 -149 -0.018189949446747 -150 -0.0172775321644038 -151 -0.0172514996638929 -152 -0.0149711216258677 -153 -0.0180209406771167 -154 -0.0187829326095732 -155 -0.0179420788237305 -156 0.00424372785454928 -157 0.00821554188465932 -158 0.35293400731859 -159 0.366837592246794 -160 0.213298783047283 -161 -0.0157394761915721 -162 -0.00774376349114834 -163 -0.0172186119438013 -164 -0.0162348306988972 -165 -0.0179811217375531 -166 -0.0168325248721867 -167 -0.0177863454159124 -168 -0.0162717222175639 -169 -0.0191117204105146 -170 -0.0177356811020167 -171 -0.0186975490077008 -172 -0.0172583072789483 -173 -0.0189210264178748 -174 -0.0171826733538386 -175 -0.0197467598837419 -176 -0.0197612311894552 -177 -0.0200029809913758 -178 -0.0197615059774931 -179 -0.017571989727297 -180 -0.0173400082784329 -181 -0.0176396221137864 -182 -0.0178007321096628 -183 -0.0171581059408866 -184 -0.0175715243687287 -185 -0.0144018049890081 -186 -0.0137323861679082 -187 -0.0160141550759938 -188 -0.017722831700802 -189 -0.015351426662838 -190 -0.0185698089210776 -191 -0.0175157776409104 -192 -0.0155631516338833 -193 -0.0169248557096909 -194 -0.0172361325951485 -195 -0.0181452103029826 -196 -0.0188512630759419 -197 -0.019287412783149 -198 -0.0189502964327969 -199 -0.0175238114666983 -200 -0.0183952774301715 -201 -0.0186218598819691 -202 -0.018542074990071 -203 -0.0182545379514657 -204 -0.017840994815964 -205 -0.0165268111705284 -206 -0.0170697996989772 -207 -0.0164709961667795 -208 -0.016643508111465 -209 -0.0157568996501781 -210 -0.0168374783887807 -211 -0.0177159477110073 -212 -0.0185524368774668 -213 0.0053422952230943 -214 0.00276128222155045 -215 0.286489934471652 -216 0.0658269400928081 -217 0.262561253228902 -218 0.169103819531699 -219 0.0650049870287007 -220 -0.0133346213868773 -221 -0.0142126752180425 -222 -0.0160968078458446 -223 -0.0167528062012806 -224 -0.0164817511097463 -225 -0.0142119297070018 -226 -0.0184810797176798 -227 -0.0172569541054024 -228 -0.0172066024264211 -229 -0.0169726297147995 -230 -0.0150887497973008 -231 -0.0156277947184747 -232 -0.0180738339464492 -233 -0.0190883324101496 -234 -0.0183422711026111 -235 -0.018362277398652 -236 -0.0181804365041856 -237 -0.0173970084740036 -238 -0.0160781720728349 -239 -0.0175236902049324 -240 -0.0174042718759811 -241 -0.0173938793276598 -242 -0.0147551028769872 -243 -0.0122857581039405 -244 -0.010867924198452 -245 -0.0147424216205904 -246 -0.0161622617779801 -247 -0.0172022551420587 -248 -0.0150808969605776 -249 -0.0151917742587137 -250 -0.0152127703813932 -251 -0.0164007891388044 -252 -0.0158495946074772 -253 -0.0165231819746255 -254 -0.0179743821309601 -255 -0.0168790954979486 -256 -0.0162120097817564 -257 -0.0178739491417351 -258 -0.0173473040628906 -259 -0.017333660413587 -260 -0.0169091470123355 -261 -0.0173480396586057 -262 -0.0162244782824425 -263 -0.0161131334675745 -264 -0.015440149830728 -265 -0.0158807862437797 -266 -0.0152294521155507 -267 -0.0158352218642096 -268 -0.0155828944335708 -269 -0.0154836062421944 -270 0.00558208708467659 -271 0.0114870902959279 -272 0.231287473612096 -273 0.0339554100844083 -274 0.0575163566469858 -275 0.200319219612533 -276 0.130545113965154 -277 0.103208025156172 -278 -0.00828951271991966 -279 -0.011478192463039 -280 -0.0144428867470379 -281 -0.0166239539451988 -282 -0.0140920994032186 -283 -0.0158723288388108 -284 -0.0165069706040961 -285 -0.0161430629749153 -286 -0.0156730553051534 -287 -0.0140404598916659 -288 -0.0133504108974733 -289 -0.0157085445845684 -290 -0.0176124651386038 -291 -0.0171680503827001 -292 -0.0170039830572799 -293 -0.0168887759061973 -294 -0.0169101987732867 -295 -0.0163174932481928 -296 -0.0167303236582728 -297 -0.0164240715366653 -298 -0.0174052740404305 -299 -0.0154895527247017 -300 -0.0136444220312839 -301 -0.0116830781987026 -302 -0.0115068177333964 -303 -0.0122234935117673 -304 -0.0161080245808241 -305 -0.0156513921624129 -306 -0.015465759720129 -307 -0.0155883071657887 -308 -0.014915569597449 -309 -0.0154401977831601 -310 -0.0152328705988631 -311 -0.0150660231818582 -312 -0.0162849647550971 -313 -0.0156909486406831 -314 -0.0157314619149535 -315 -0.0171049069711299 -316 -0.0163207392432989 -317 -0.0162187518728422 -318 -0.0159225278740695 -319 -0.0158753160806369 -320 -0.0175020706698857 -321 -0.0162498852657993 -322 -0.0142911340574672 -323 -0.0134726499133121 -324 -0.0139601338890013 -325 -0.0135761876345162 -326 -0.0137860102565959 -327 0.00758105123652143 -328 0.0138556686845422 -329 0.160536954774616 -330 0.0580898398456171 -331 0.0362943231984366 -332 0.0582894097570709 -333 0.140607199465268 -334 0.122618966464092 -335 0.0544884026670781 -336 0.0574883295508244 -337 -0.0128811621108332 -338 -0.0142051495442353 -339 -0.012596825344306 -340 -0.0144711739317383 -341 -0.0143424560269512 -342 -0.0151482554143398 -343 -0.0152335381293791 -344 -0.0145008541639242 -345 -0.0128863677349906 -346 -0.0135998919997521 -347 -0.0137187354568586 -348 -0.016562150133356 -349 -0.0159327586951356 -350 -0.0157278421724429 -351 -0.0156917921778683 -352 -0.0162525169522264 -353 -0.0151087680645235 -354 -0.0163683946557918 -355 -0.0158321090068333 -356 -0.014187820897252 -357 -0.0135506277381031 -358 -0.0129291218507853 -359 -0.011476061331394 -360 -0.0106220863859184 -361 -0.0136381523747695 -362 -0.0144198007144617 -363 -0.0140646467360062 -364 -0.0146311562003427 -365 -0.0138043111265009 -366 -0.0132336502438289 -367 -0.0137447378009751 -368 -0.0134055994936963 -369 -0.0138096044909662 -370 -0.0148709544542698 -371 -0.0141560548846661 -372 -0.0143189068321436 -373 -0.0154246653827396 -374 -0.0143998490618263 -375 -0.0151239610115372 -376 -0.0145837141470442 -377 -0.0149820141088871 -378 -0.0152660994133885 -379 -0.0150896640677698 -380 -0.0143925874319689 -381 -0.012857919840862 -382 -0.012469852706461 -383 -0.0114191455070416 -384 -0.0117369627541799 -385 0.00901231127194259 -386 0.112581309251641 -387 0.0630586366341156 -388 0.0560506964150278 -389 0.034078031969884 -390 0.0673456104691437 -391 0.0675823686435704 -392 0.125111752483497 -393 0.0574208869213907 -394 0.0547195112212531 -395 -0.0126520762992662 -396 -0.0108416098060863 -397 -0.0130469248384881 -398 -0.0127546014788274 -399 -0.0132792357499854 -400 -0.0146832842515137 -401 -0.0126612510959431 -402 -0.0115800372136954 -403 -0.0113903072278453 -404 -0.0140846407853927 -405 -0.0131520362471166 -406 -0.0151139726926659 -407 -0.014338285447184 -408 -0.0139604129340576 -409 -0.0146086760584088 -410 -0.0147068805852203 -411 -0.0133990381740181 -412 -0.0146858710730989 -413 -0.0130742254367083 -414 -0.0131112804223081 -415 -0.0137104304702131 -416 -0.0127181490916882 -417 -0.0101122805581215 -418 -0.0116311057808783 -419 -0.0116685677717087 -420 -0.0125364818049418 -421 -0.0131681573750755 -422 -0.0136051276108772 -423 -0.0120078720987834 -424 -0.0120742461009416 -425 -0.0122528176238668 -426 -0.0117254366398627 -427 -0.0121713901545344 -428 -0.0134473192309673 -429 -0.0125993249687127 -430 -0.0127679522459455 -431 -0.0139092549620457 -432 -0.012803641341176 -433 -0.0136774030500624 -434 -0.0141830514589281 -435 -0.0128995570395618 -436 -0.0138061906269556 -437 -0.0138485903191603 -438 -0.0134705594226274 -439 -0.0135710367850959 -440 -0.0134802406736088 -441 -0.0114240523633417 -442 0.00941052876968686 -443 0.0430904882987511 -444 0.0610654134717703 -445 0.062319445242902 -446 0.0601232622212667 -447 0.0405754724552619 -448 0.0620931832458557 -449 0.0116088523973264 -450 0.0982633823768887 -451 0.0714603689521745 -452 0.0559398394361076 -453 -0.0101201070889078 -454 -0.00879771513149454 -455 -0.0115272354759577 -456 -0.0116269116840352 -457 -0.0122869101923228 -458 -0.0120188445899197 -459 -0.0118598309936189 -460 -0.0101004693907269 -461 -0.0114030122417514 -462 -0.0122734729370316 -463 -0.0115720712151182 -464 -0.0138183196216235 -465 -0.0127878610331042 -466 -0.0125076360625095 -467 -0.012954528306254 -468 -0.0134636454445403 -469 -0.0119988447482744 -470 -0.0129555835189171 -471 -0.0118492958760378 -472 -0.0118594416726488 -473 -0.0122062699596644 -474 -0.010080021699572 -475 -0.0096177810356361 -476 -0.0103925438270026 -477 -0.00956922010832709 -478 -0.0112412626452718 -479 -0.0121001052660535 -480 -0.011378640220319 -481 -0.0092484956113967 -482 -0.0106941808432033 -483 -0.0110034314038638 -484 -0.0110076000819364 -485 -0.0120066628455925 -486 -0.0120644325940679 -487 -0.0113002732292104 -488 -0.0115088408547228 -489 -0.0124620522688203 -490 -0.011436641831689 -491 -0.0122177151639931 -492 -0.011889848089267 -493 -0.0112514741258071 -494 -0.0123396196285994 -495 -0.0125441398199035 -496 -0.0120423852622065 -497 -0.0117710714915686 -498 -0.0120685728943707 -499 -0.0102415762932917 -500 -0.00952560982747511 -501 0.057365018480452 -502 0.0589533698587152 -503 0.0631840298934377 -504 0.0575949246719766 -505 0.0495075237359153 -506 -0.00276987533523964 -507 0.0566980942764334 -508 0.0446716609032234 -509 0.0800168272027955 -510 0.0590566885918559 -511 -0.00867575003512787 -512 -0.00762446391218853 -513 -0.0110530315739159 -514 -0.0112154987644773 -515 -0.0115595346792594 -516 -0.00980277940001169 -517 -0.00973051262117572 -518 -0.0103794047555936 -519 -0.0112379712859069 -520 -0.0115804163149423 -521 -0.0101848401928812 -522 -0.0124971838157264 -523 -0.0116095875762639 -524 -0.0110264315185272 -525 -0.0117091264505558 -526 -0.0123732885927322 -527 -0.010594137537324 -528 -0.0118959477121367 -529 -0.0104863548938662 -530 -0.0105605260979509 -531 -0.0106933635291854 -532 -0.0108043363381157 -533 -0.00921313629560141 -534 -0.00991616820012903 -535 -0.00958582052168739 -536 -0.00704544580624994 -537 -0.0106691661025772 -538 -0.010420801758334 -539 -0.00875433609811375 -540 -0.00883595894162315 -541 -0.00997102984238341 -542 -0.0102647231793572 -543 -0.0102814553860974 -544 -0.0108603826750419 -545 -0.00986739232072193 -546 -0.0101569632812344 -547 -0.011268829829185 -548 -0.0103314326239715 -549 -0.0108025538636602 -550 -0.0110885402975588 -551 -0.00994108726738058 -552 -0.0109717247548978 -553 -0.0111952027153027 -554 -0.0106777314688714 -555 -0.0105192670440749 -556 -0.0103965890169893 -557 -0.00921877528177769 -558 -0.0105438348503076 -559 0.0565407931203086 -560 0.0607631038776418 -561 0.0631456281304688 -562 0.0643969806813753 -563 0.00250124004424947 -564 0.0238807604805019 -565 0.0611062977177439 -566 0.00597775022828004 -567 0.0460556379694793 -568 0.0815090939407766 -569 -0.00626805713052914 -570 -0.00661349141206074 -571 -0.0103106916231778 -572 -0.00997759927119779 -573 -0.00925417552568336 -574 -0.00793232399214336 -575 -0.00984859802468641 -576 -0.00970943291247622 -577 -0.0102555983171129 -578 -0.0105112448841139 -579 -0.00934462727175849 -580 -0.0109724429920345 -581 -0.0105475816212072 -582 -0.00987869004825123 -583 -0.0108012349540747 -584 -0.0110285881583596 -585 -0.00936923199699531 -586 -0.010677032137483 -587 -0.00926759654250112 -588 -0.00927806685390026 -589 -0.00953198453346766 -590 -0.00985316922914821 -591 -0.00816343304426746 -592 -0.00804247528052676 -593 -0.00716187036218296 -594 -0.00719169352938419 -595 -0.00640320531281439 -596 -0.00933925279879329 -597 -0.00742884578783592 -598 -0.00884147481763569 -599 -0.00946231770499787 -600 -0.00920569741458586 -601 -0.00945237056796019 -602 -0.00981398771732927 -603 -0.00871297697902305 -604 -0.0100303276706874 -605 -0.00898480302286613 -606 -0.00924314281708078 -607 -0.00967182311916309 -608 -0.00990373367569264 -609 -0.00867546650016389 -610 -0.00974271626786161 -611 -0.00993605711012294 -612 -0.00942263108268127 -613 -0.00900896482065972 -614 -0.0091002536867116 -615 -0.0087141619357278 -616 -0.00892632720545352 -617 0.0589814861280723 -618 0.0605513762593439 -619 0.0714950418331747 -620 -0.00270802819557134 -621 0.0492471524740303 -622 0.038730090749927 -623 -0.00470286001171746 -624 0.0805291384934167 -625 -0.0061135815816416 -626 0.0469241708061885 -627 0.0129057834766504 -628 -0.00613654384956245 -629 -0.00879823441679327 -630 -0.00781138453907383 -631 -0.00742325743221473 -632 -0.00823530705565565 -633 -0.0084784951984544 -634 -0.00809365168883783 -635 -0.00953458560320773 -636 -0.00802484455858134 -637 -0.00916422962874895 -638 -0.00901522658367207 -639 -0.00980509257172476 -640 -0.00879042365734647 -641 -0.00895901541679582 -642 -0.00967011172668992 -643 -0.00909032972552398 -644 -0.00839888383893324 -645 -0.00811198094900032 -646 -0.00768107918073061 -647 -0.00816456224653991 -648 -0.0082275430634122 -649 -0.0081977088645516 -650 -0.00539347813540888 -651 -0.00654335448921841 -652 -0.00443308105716727 -653 -0.00570487900007702 -654 -0.0066893756968109 -655 -0.00818867754248517 -656 -0.00757689453770065 -657 -0.00809806707024929 -658 -0.00781954604985851 -659 -0.00817710586907003 -660 -0.00815598808085207 -661 -0.00838471453215144 -662 -0.00761655712958744 -663 -0.00754256056280177 -664 -0.00784016975796052 -665 -0.00809877261256007 -666 -0.00845387142411403 -667 -0.00839255166002082 -668 -0.00750643389123885 -669 -0.00842839786359518 -670 -0.00793771252048078 -671 -0.00821559065464683 -672 -0.00836801649799504 -673 -0.00801406294900344 -674 -0.0068829238602205 -675 0.0587431729672395 -676 0.0679066498016378 -677 0.00138627052356425 -678 0.045430011210707 -679 0.0703642058717147 -680 -0.00785311036081027 -681 0.0393771166371859 -682 -0.0012573720198598 -683 0.0787866974453597 -684 -0.00622669473512034 -685 -0.00636435714406588 -686 -0.00498738462505791 -687 -0.00682069596495773 -688 -0.00626878401038485 -689 -0.00829494420297491 -690 -0.00672112910303483 -691 -0.00742349355313316 -692 -0.00663050740514031 -693 -0.00668402104568857 -694 -0.00765554385447826 -695 -0.00750480426076586 -696 -0.00755677083867405 -697 -0.00878562401331522 -698 -0.00750067365297707 -699 -0.00777302023891454 -700 -0.00817258866736239 -701 -0.00782461564356417 -702 -0.00524788018311442 -703 -0.00639934484202989 -704 -0.00643323873066334 -705 -0.00675310931225713 -706 -0.00662734325519555 -707 -0.00521831889291382 -708 -0.00564541170834083 -709 -0.00456417269308792 -710 -0.00400766521918149 -711 -0.00371044720499201 -712 -0.00477769884156836 -713 -0.00650815478194108 -714 -0.00648004714637358 -715 -0.00676089500421721 -716 -0.00680941068103167 -717 -0.00642611423395982 -718 -0.00702188737616296 -719 -0.00653395389621014 -720 -0.00584494763207698 -721 -0.00698560115812894 -722 -0.00617395252882351 -723 -0.00649589045366301 -724 -0.00697571124768394 -725 -0.00710622766255317 -726 -0.00619879747257016 -727 -0.00665952366507082 -728 -0.00697267381777301 -729 -0.00656067343167249 -730 -0.00686476942480864 -731 -0.00642237619826439 -732 -0.00571464839985842 -733 0.0667446844690344 -734 -0.000602956363836805 -735 0.0435578419252502 -736 0.0671949304076346 -737 0.00272911716837698 -738 0.0617459164425819 -739 -0.00803573888395584 -740 0.0408644996908555 -741 -0.00188635612841879 -742 0.012816656873346 -743 -0.00568767407759494 -744 -0.00636171895252407 -745 -0.00542006518701238 -746 -0.00762131167004239 -747 -0.00660561178711003 -748 -0.00606759153689151 -749 -0.0058887906931096 -750 -0.00489479103900307 -751 -0.00560951874516548 -752 -0.00616879095509287 -753 -0.00635688929093473 -754 -0.00647498478390112 -755 -0.00602500915318228 -756 -0.00733096951475789 -757 -0.00594264381799701 -758 -0.00639292931982792 -759 -0.00572524668506834 -760 -0.00539599866786123 -761 -0.00379529224483641 -762 -0.00508628266806213 -763 -0.00482859601859399 -764 -0.00384270276169917 -765 -0.0048947554317503 -766 -0.0036868713314995 -767 -0.00296664588261117 -768 -0.00394853350358643 -769 -0.00370978621561119 -770 -0.00496135959443785 -771 -0.00483764544982328 -772 -0.00514032926285884 -773 -0.00429422735197048 -774 -0.00533057103732123 -775 -0.00536211175807313 -776 -0.00507354991704586 -777 -0.00523842710609345 -778 -0.00538601193828756 -779 -0.00457245530033061 -780 -0.00555196995586425 -781 -0.00431853553236008 -782 -0.00528202292794999 -783 -0.00548332867892791 -784 -0.0054668106220194 -785 -0.00467211264805423 -786 -0.0056172070705691 -787 -0.0050524268347218 -788 -0.00490507861057278 -789 -0.00533817709181219 -790 -0.00320459126822799 -791 0.000899360051725526 -792 0.0415445575505902 -793 0.0636610531703114 -794 -0.0016809425357539 -795 0.0687212087083107 -796 0.000196803163775908 -797 0.0629583673226595 -798 -0.00692549309097212 -799 -0.00464547193258324 -800 -0.00554999704707722 -801 -0.00548776067864322 -802 -0.00542976281097604 -803 -0.0035044437646846 -804 -0.0055525582475137 -805 -0.00571646473007065 -806 -0.00559650400651719 -807 -0.0038274405540596 -808 -0.0049295061654944 -809 -0.00431367615172496 -810 -0.00488424593891825 -811 -0.00508803026004008 -812 -0.00516376184293035 -813 -0.00533514975859532 -814 -0.00495590288647863 -815 -0.00582914296339316 -816 -0.00363638197988919 -817 -0.00435167714877856 -818 -0.00395852323776287 -819 -0.0040209798766184 -820 -0.00259964040539382 -821 -0.00252589454921766 -822 -0.00402931674090356 -823 -0.00437393888079731 -824 -0.00424357159059594 -825 -0.00410943374121717 -826 -0.00317027800134567 -827 -0.00401422305864503 -828 -0.00362959396117676 -829 -0.00435662189051477 -830 -0.00429725981497675 -831 -0.00437374795310113 -832 -0.00378466430841879 -833 -0.00411294642315096 -834 -0.00378707889918487 -835 -0.00453957661876227 -836 -0.00428380826395531 -837 -0.00440314525366383 -838 -0.0035999051330324 -839 -0.00448715088820831 -840 -0.00394825961839359 -841 -0.00424255651229298 -842 -0.00457239362923998 -843 -0.00454960510129971 -844 -0.00359729823872128 -845 -0.00427987549442926 -846 -0.00383749859614317 -847 -0.00440264075958008 -848 -0.00443053281886172 -849 -0.00462479790588209 -850 0.0635581089210887 -851 -0.00436894515178304 -852 0.0644673368682151 -853 -0.000871046243511147 -854 0.0774867967247699 -855 -0.00520058993039265 -856 -0.00455758197376518 -857 -0.0045515125818426 -858 -0.00326760124250017 -859 -0.00391042035486497 -860 -0.00365931176845998 -861 -0.00406590514483785 -862 -0.0025402582470179 -863 -0.00536731784656349 -864 -0.00383767883865199 -865 -0.00355617763954968 -866 -0.00378000247138692 -867 -0.00392301919821498 -868 -0.00311017256485425 -869 -0.00362676859689902 -870 -0.00388528530404416 -871 -0.00403811507092716 -872 -0.00389341264783238 -873 -0.00250872494912967 -874 -0.00227481761327797 -875 -0.00232996833366221 -876 -0.00304083453398083 -877 -0.00268074555016819 -878 -0.00265096778109124 -879 -0.00262000280831905 -880 -0.00263328713175465 -881 -0.0025831537476473 -882 -0.00285396803049453 -883 -0.00275081518908208 -884 -0.00275786365878849 -885 -0.00270692981149454 -886 -0.00279346701415621 -887 -0.00243358618146588 -888 -0.00292581648863345 -889 -0.00324682684580069 -890 -0.00268405340278505 -891 -0.00298098008752344 -892 -0.0030275487992921 -893 -0.00253465692577619 -894 -0.0030528198225934 -895 -0.00306163668899383 -896 -0.00302971568628192 -897 -0.00312372318456645 -898 -0.00302532654866883 -899 -0.00260699554256586 -900 -0.00314997872940616 -901 -0.00310092374684808 -902 -0.00285287807280204 -903 -0.00322514674479286 -904 -0.00324555248275787 -905 -0.00266343884682981 -906 -0.0033292088604627 -907 -0.00311942534161818 -908 -0.003188028948592 -909 0.063849474353312 -910 -0.00314766360320187 -911 0.0654720703776586 -912 -0.00104922659034679 -913 0.00682464273763961 -914 -0.00303985655616328 -915 -0.00305320941524036 -916 -0.00235000269848827 -917 -0.00159322372169743 -918 -0.00266570495618958 -919 -0.00262099570862898 -920 -0.00331666377238153 -921 -0.000308570913141365 -922 -0.0043164022171378 -923 -0.00371227484203275 -924 -0.00247827724873875 -925 -0.00234032536054011 -926 -0.00253743141649567 -927 -0.00196547166307156 -928 -0.00258072736023124 -929 -0.00262490193099622 -930 -0.00130204665127498 -931 -0.00126358935693649 -932 -0.00125324190600646 -933 -0.00103101472775934 -934 -0.00130963767061068 -935 -0.00170600528719406 -936 -0.00131231544424995 -937 -0.00130240649250473 -938 -0.0011496494054081 -939 -0.00120338315610114 -940 -0.00107955390929202 -941 -0.00136336765253578 -942 -0.00138525137115296 -943 -0.00142000506928781 -944 -0.00137347169208518 -945 -0.00130072987756282 -946 -0.00149282878067872 -947 -0.00147328073275425 -948 -0.00148996134571696 -949 -0.0015346094598941 -950 -0.00155787525175409 -951 -0.0015758298667031 -952 -0.00144258818629267 -953 -0.0016057038498501 -954 -0.00161313789189179 -955 -0.0014926163928444 -956 -0.00167630619540263 -957 -0.00171225333920666 -958 -0.00158417048330168 -959 -0.00172363849918105 -960 -0.00178681745393769 -961 -0.00177326985666539 -962 -0.00177274859905472 -963 -0.00180813461186522 -964 -0.00164734316246358 -965 -0.00179758469878046 -966 -0.00170533834289266 -967 -0.0018391064291266 -968 0.0648568044321966 -969 -0.00181391508277247 -970 -0.00187271774497418 -971 -0.00171843154333231 -972 0.00690748933974905 -973 -0.0020046618702145 -974 -0.00209930430368119 -975 -0.00151158386207428 -976 -0.00215827618636864 -977 -0.00219374577659291 -978 -0.00221636226760568 -979 -0.00228093075519445 -980 -0.00204652728069895 -981 -0.00229765429774947 -982 -0.00230704101453769 -983 -0.00107403973652915 -984 -0.00110441180969535 -985 -0.00113692360921596 -986 -0.00114267728647558 -987 0.000141381944635982 -988 0.00011755670125973 -989 9.44527623139297e-05 -990 7.92340829889737e-05 -991 0.000230018756762113 -992 0.000207110838703588 -993 0.000182764350871147 -994 0.000169272314028801 -995 0.000144905246673696 -996 0.000120096836237343 -997 9.53172448027285e-05 -998 7.0792968638772e-05 -999 4.98796983407663e-05 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat deleted file mode 100644 index 797a3d0..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat +++ /dev/null @@ -1,901 +0,0 @@ -#scatter real total user system repeat -101 0.00124120712280273 0.0 0.0 0.0 101 -102 0.00123310089111328 0.0 0.0 0.0 102 -103 0.0012359619140625 0.0 0.0 0.0 103 -104 0.00124216079711914 0.0 0.0 0.0 104 -105 0.00124096870422363 0.0 0.0 0.0 105 -106 0.00124096870422363 0.00999999999999979 0.00999999999999979 0.0 106 -107 0.00124692916870117 0.0 0.0 0.0 107 -108 0.00122189521789551 0.0 0.0 0.0 108 -109 0.00124287605285645 0.0 0.0 0.0 109 -110 0.00124287605285645 0.0 0.0 0.0 110 -111 0.00124597549438477 0.0 0.0 0.0 111 -112 0.0012519359588623 0.0 0.0 0.0 112 -113 0.00124788284301758 0.0 0.0 0.0 113 -114 0.00124502182006836 0.0100000000000007 0.0100000000000007 0.0 114 -115 0.00124692916870117 0.0 0.0 0.0 115 -116 0.00123810768127441 0.0 0.0 0.0 116 -117 0.00125002861022949 0.0 0.0 0.0 117 -118 0.00125789642333984 0.0 0.0 0.0 118 -119 0.0300710201263428 0.0299999999999994 0.0299999999999994 0.0 119 -120 0.00127291679382324 0.0 0.0 0.0 120 -121 0.00133109092712402 0.0 0.0 0.0 121 -122 0.0012810230255127 0.0100000000000007 0.0100000000000007 0.0 122 -123 0.00127792358398438 0.0 0.0 0.0 123 -124 0.0012671947479248 0.0 0.0 0.0 124 -125 0.00126814842224121 0.0 0.0 0.0 125 -126 0.00125694274902344 0.0 0.0 0.0 126 -127 0.00124883651733398 0.0 0.0 0.0 127 -128 0.00124907493591309 0.0 0.0 0.0 128 -129 0.0012509822845459 0.0 0.0 0.0 129 -130 0.0012509822845459 0.00999999999999979 0.00999999999999979 0.0 130 -131 0.00125312805175781 0.0 0.0 0.0 131 -132 0.00131797790527344 0.0 0.0 0.0 132 -133 0.00125694274902344 0.0 0.0 0.0 133 -134 0.00125288963317871 0.0 0.0 0.0 134 -135 0.0012519359588623 0.0 0.0 0.0 135 -136 0.00124692916870117 0.0 0.0 0.0 136 -137 0.00124692916870117 0.0 0.0 0.0 137 -138 0.00124907493591309 0.00999999999999979 0.00999999999999979 0.0 138 -139 0.0012509822845459 0.0 0.0 0.0 139 -140 0.00125598907470703 0.0 0.0 0.0 140 -141 0.00124287605285645 0.0 0.0 0.0 141 -142 0.00124812126159668 0.0 0.0 0.0 142 -143 0.00124883651733398 0.0 0.0 0.0 143 -144 0.00123500823974609 0.0 0.0 0.0 144 -145 0.00124382972717285 0.00999999999999979 0.00999999999999979 0.0 145 -146 0.00123715400695801 0.0 0.0 0.0 146 -147 0.00134897232055664 0.0 0.0 0.0 147 -148 0.00123906135559082 0.0 0.0 0.0 148 -149 0.00124788284301758 0.0 0.0 0.0 149 -150 0.0012359619140625 0.0 0.0 0.0 150 -151 0.00123476982116699 0.0 0.0 0.0 151 -152 0.00124597549438477 0.0 0.0 0.0 152 -153 0.00124597549438477 0.0100000000000007 0.0100000000000007 0.0 153 -154 0.00123190879821777 0.0 0.0 0.0 154 -155 0.0012509822845459 0.0 0.0 0.0 155 -156 0.00124096870422363 0.0 0.0 0.0 156 -157 0.0012359619140625 0.0 0.0 0.0 157 -158 0.00123906135559082 0.0 0.0 0.0 158 -159 0.00123906135559082 0.0 0.0 0.0 159 -160 0.00123691558837891 0.0 0.0 0.0 160 -161 0.00124001502990723 0.00999999999999979 0.00999999999999979 0.0 161 -162 0.00124597549438477 0.0 0.0 0.0 162 -163 0.00124096870422363 0.0 0.0 0.0 163 -164 0.0012359619140625 0.0 0.0 0.0 164 -165 0.00123500823974609 0.0 0.0 0.0 165 -166 0.00173211097717285 0.0 0.0 0.0 166 -167 0.00125217437744141 0.0 0.0 0.0 167 -168 0.00124406814575195 0.00999999999999979 0.00999999999999979 0.0 168 -169 0.00124096870422363 0.0 0.0 0.0 169 -170 0.00123381614685059 0.0 0.0 0.0 170 -171 0.00124001502990723 0.0 0.0 0.0 171 -172 0.00124001502990723 0.0 0.0 0.0 172 -173 0.00123715400695801 0.0 0.0 0.0 173 -174 0.00123691558837891 0.0 0.0 0.0 174 -175 0.00124692916870117 0.0 0.0 0.0 175 -176 0.00130796432495117 0.00999999999999979 0.00999999999999979 0.0 176 -177 0.00127100944519043 0.0 0.0 0.0 177 -178 0.0301418304443359 0.0300000000000002 0.0300000000000002 0.0 178 -179 0.00127196311950684 0.0 0.0 0.0 179 -180 0.00131416320800781 0.0 0.0 0.0 180 -181 0.00119805335998535 0.0 0.0 0.0 181 -182 0.00128316879272461 0.0 0.0 0.0 182 -183 0.0013129711151123 0.0 0.0 0.0 183 -184 0.00127100944519043 0.0 0.0 0.0 184 -185 0.00141692161560059 0.0 0.0 0.0 185 -186 0.00130701065063477 0.0 0.0 0.0 186 -187 0.00126099586486816 0.0 0.0 0.0 187 -188 0.00125694274902344 0.0 0.0 0.0 188 -189 0.00124502182006836 0.0 0.0 0.0 189 -190 0.00125217437744141 0.0 0.0 0.0 190 -191 0.00124216079711914 0.0 0.0 0.0 191 -192 0.00125408172607422 0.0100000000000007 0.0100000000000007 0.0 192 -193 0.00124502182006836 0.0 0.0 0.0 193 -194 0.00125718116760254 0.0 0.0 0.0 194 -195 0.00125503540039062 0.0 0.0 0.0 195 -196 0.00125598907470703 0.0 0.0 0.0 196 -197 0.00137186050415039 0.0 0.0 0.0 197 -198 0.0011131763458252 0.0 0.0 0.0 198 -199 0.00124788284301758 0.0 0.0 0.0 199 -200 0.00124597549438477 0.00999999999999979 0.00999999999999979 0.0 200 -201 0.00124597549438477 0.0 0.0 0.0 201 -202 0.00132608413696289 0.0 0.0 0.0 202 -203 0.00129795074462891 0.0 0.0 0.0 203 -204 0.00120997428894043 0.0 0.0 0.0 204 -205 0.00124192237854004 0.0 0.0 0.0 205 -206 0.00126290321350098 0.0 0.0 0.0 206 -207 0.00125002861022949 0.00999999999999979 0.00999999999999979 0.0 207 -208 0.00125503540039062 0.0 0.0 0.0 208 -209 0.00124883651733398 0.0 0.0 0.0 209 -210 0.00124192237854004 0.0 0.0 0.0 210 -211 0.00124812126159668 0.0 0.0 0.0 211 -212 0.00125002861022949 0.0 0.0 0.0 212 -213 0.00124287605285645 0.0 0.0 0.0 213 -214 0.00125288963317871 0.0 0.0 0.0 214 -215 0.00125002861022949 0.00999999999999979 0.00999999999999979 0.0 215 -216 0.00124287605285645 0.0 0.0 0.0 216 -217 0.00124001502990723 0.0 0.0 0.0 217 -218 0.00124883651733398 0.0 0.0 0.0 218 -219 0.00124192237854004 0.0 0.0 0.0 219 -220 0.00123405456542969 0.0 0.0 0.0 220 -221 0.00124883651733398 0.0 0.0 0.0 221 -222 0.00123810768127441 0.0 0.0 0.0 222 -223 0.0012359619140625 0.00999999999999979 0.00999999999999979 0.0 223 -224 0.00123405456542969 0.0 0.0 0.0 224 -225 0.00124788284301758 0.0 0.0 0.0 225 -226 0.00148200988769531 0.0 0.0 0.0 226 -227 0.00123882293701172 0.0 0.0 0.0 227 -228 0.00124907493591309 0.0 0.0 0.0 228 -229 0.00124120712280273 0.0 0.0 0.0 229 -230 0.00124096870422363 0.0 0.0 0.0 230 -231 0.00124812126159668 0.0100000000000007 0.0100000000000007 0.0 231 -232 0.00124001502990723 0.0 0.0 0.0 232 -233 0.001251220703125 0.0 0.0 0.0 233 -234 0.00123810768127441 0.0 0.0 0.0 234 -235 0.00125885009765625 0.0 0.0 0.0 235 -236 0.00126409530639648 0.0 0.0 0.0 236 -237 0.0301649570465088 0.0299999999999994 0.0299999999999994 0.0 237 -238 0.00130605697631836 0.0 0.0 0.0 238 -239 0.00129795074462891 0.0100000000000007 0.0100000000000007 0.0 239 -240 0.00127410888671875 0.0 0.0 0.0 240 -241 0.00134420394897461 0.0 0.0 0.0 241 -242 0.00127720832824707 0.0 0.0 0.0 242 -243 0.00126409530639648 0.0 0.0 0.0 243 -244 0.00125288963317871 0.0 0.0 0.0 244 -245 0.00125384330749512 0.0 0.0 0.0 245 -246 0.00124788284301758 0.0 0.0 0.0 246 -247 0.00124287605285645 0.00999999999999979 0.00999999999999979 0.0 247 -248 0.00125813484191895 0.0 0.0 0.0 248 -249 0.00125002861022949 0.0 0.0 0.0 249 -250 0.00124502182006836 0.0 0.0 0.0 250 -251 0.00125694274902344 0.0 0.0 0.0 251 -252 0.00124192237854004 0.0 0.0 0.0 252 -253 0.00128889083862305 0.0 0.0 0.0 253 -254 0.00124883651733398 0.00999999999999979 0.00999999999999979 0.0 254 -255 0.00124907493591309 0.0 0.0 0.0 255 -256 0.00124812126159668 0.0 0.0 0.0 256 -257 0.00125503540039062 0.0 0.0 0.0 257 -258 0.00125789642333984 0.0 0.0 0.0 258 -259 0.00124692916870117 0.0 0.0 0.0 259 -260 0.00124812126159668 0.0 0.0 0.0 260 -261 0.00124192237854004 0.0 0.0 0.0 261 -262 0.00124287605285645 0.00999999999999979 0.00999999999999979 0.0 262 -263 0.00124192237854004 0.0 0.0 0.0 263 -264 0.00123500823974609 0.0 0.0 0.0 264 -265 0.00123715400695801 0.0 0.0 0.0 265 -266 0.0018610954284668 0.0 0.0 0.0 266 -267 0.00128507614135742 0.0 0.0 0.0 267 -268 0.00123906135559082 0.0 0.0 0.0 268 -269 0.00124001502990723 0.0 0.0 0.0 269 -270 0.00124907493591309 0.0 0.0 0.0 270 -271 0.00124716758728027 0.0 0.0 0.0 271 -272 0.00124001502990723 0.0 0.0 0.0 272 -273 0.00125288963317871 0.0 0.0 0.0 273 -274 0.00118589401245117 0.0 0.0 0.0 274 -275 0.00124192237854004 0.0 0.0 0.0 275 -276 0.00123906135559082 0.0 0.0 0.0 276 -277 0.00125002861022949 0.00999999999999979 0.00999999999999979 0.0 277 -278 0.00124597549438477 0.0 0.0 0.0 278 -279 0.00124096870422363 0.0 0.0 0.0 279 -280 0.00124382972717285 0.0 0.0 0.0 280 -281 0.00125694274902344 0.0 0.0 0.0 281 -282 0.00124812126159668 0.0 0.0 0.0 282 -283 0.00124192237854004 0.0 0.0 0.0 283 -284 0.001251220703125 0.0 0.0 0.0 284 -285 0.00128316879272461 0.00999999999999979 0.00999999999999979 0.0 285 -286 0.00124287605285645 0.0 0.0 0.0 286 -287 0.00133800506591797 0.0 0.0 0.0 287 -288 0.00124788284301758 0.0 0.0 0.0 288 -289 0.0012509822845459 0.0 0.0 0.0 289 -290 0.00124883651733398 0.0 0.0 0.0 290 -291 0.00124502182006836 0.0 0.0 0.0 291 -292 0.00124382972717285 0.0 0.0 0.0 292 -293 0.00125908851623535 0.00999999999999979 0.00999999999999979 0.0 293 -294 0.00126791000366211 0.0 0.0 0.0 294 -295 0.0215630531311035 0.0200000000000005 0.0200000000000005 0.0 295 -296 0.00352096557617188 0.0 0.0 0.0 296 -297 0.00220417976379395 0.0 0.0 0.0 297 -298 0.00125384330749512 0.00999999999999979 0.00999999999999979 0.0 298 -299 0.00129985809326172 0.0 0.0 0.0 299 -300 0.00123715400695801 0.0 0.0 0.0 300 -301 0.00124096870422363 0.0 0.0 0.0 301 -302 0.00124001502990723 0.0 0.0 0.0 302 -303 0.00123405456542969 0.0 0.0 0.0 303 -304 0.0012509822845459 0.0 0.0 0.0 304 -305 0.0012509822845459 0.00999999999999979 0.00999999999999979 0.0 305 -306 0.00125288963317871 0.0 0.0 0.0 306 -307 0.00126099586486816 0.0 0.0 0.0 307 -308 0.00124788284301758 0.0 0.0 0.0 308 -309 0.00124907493591309 0.0 0.0 0.0 309 -310 0.00124096870422363 0.0 0.0 0.0 310 -311 0.00125002861022949 0.0 0.0 0.0 311 -312 0.0012519359588623 0.0 0.0 0.0 312 -313 0.00126314163208008 0.0100000000000007 0.0100000000000007 0.0 313 -314 0.00124406814575195 0.0 0.0 0.0 314 -315 0.00125789642333984 0.0 0.0 0.0 315 -316 0.00128793716430664 0.0 0.0 0.0 316 -317 0.0012509822845459 0.0 0.0 0.0 317 -318 0.00156903266906738 0.0 0.0 0.0 318 -319 0.00181221961975098 0.0 0.0 0.0 319 -320 0.0018010139465332 0.00999999999999979 0.00999999999999979 0.0 320 -321 0.00193095207214355 0.0 0.0 0.0 321 -322 0.0014030933380127 0.0 0.0 0.0 322 -323 0.0012519359588623 0.0 0.0 0.0 323 -324 0.00121903419494629 0.0 0.0 0.0 324 -325 0.00120687484741211 0.0 0.0 0.0 325 -326 0.00123000144958496 0.0 0.0 0.0 326 -327 0.00123095512390137 0.00999999999999979 0.00999999999999979 0.0 327 -328 0.00124692916870117 0.0 0.0 0.0 328 -329 0.00127005577087402 0.0 0.0 0.0 329 -330 0.00124716758728027 0.0 0.0 0.0 330 -331 0.00126481056213379 0.0 0.0 0.0 331 -332 0.00125694274902344 0.0 0.0 0.0 332 -333 0.00118613243103027 0.0 0.0 0.0 333 -334 0.00124001502990723 0.0 0.0 0.0 334 -335 0.00124812126159668 0.00999999999999979 0.00999999999999979 0.0 335 -336 0.00126791000366211 0.0 0.0 0.0 336 -337 0.00124692916870117 0.0 0.0 0.0 337 -338 0.00124907493591309 0.0 0.0 0.0 338 -339 0.00126218795776367 0.0 0.0 0.0 339 -340 0.00124406814575195 0.0 0.0 0.0 340 -341 0.0012359619140625 0.0 0.0 0.0 341 -342 0.00125885009765625 0.0100000000000007 0.0100000000000007 0.0 342 -343 0.00131320953369141 0.0 0.0 0.0 343 -344 0.0012519359588623 0.0 0.0 0.0 344 -345 0.00123691558837891 0.0 0.0 0.0 345 -346 0.00125694274902344 0.0 0.0 0.0 346 -347 0.00139403343200684 0.0 0.0 0.0 347 -348 0.00127506256103516 0.0 0.0 0.0 348 -349 0.00130009651184082 0.0 0.0 0.0 349 -350 0.00128412246704102 0.00999999999999979 0.00999999999999979 0.0 350 -351 0.00133395195007324 0.0 0.0 0.0 351 -352 0.00152087211608887 0.0 0.0 0.0 352 -353 0.0015110969543457 0.0 0.0 0.0 353 -354 0.0320370197296143 0.0299999999999994 0.0299999999999994 0.0 354 -355 0.00130319595336914 0.0 0.0 0.0 355 -356 0.0012969970703125 0.0100000000000007 0.0100000000000007 0.0 356 -357 0.00127792358398438 0.0 0.0 0.0 357 -358 0.00127506256103516 0.0 0.0 0.0 358 -359 0.00126791000366211 0.0 0.0 0.0 359 -360 0.00126385688781738 0.0 0.0 0.0 360 -361 0.00125694274902344 0.0 0.0 0.0 361 -362 0.00125002861022949 0.0 0.0 0.0 362 -363 0.00125598907470703 0.0 0.0 0.0 363 -364 0.00125002861022949 0.00999999999999979 0.00999999999999979 0.0 364 -365 0.00124692916870117 0.0 0.0 0.0 365 -366 0.00125503540039062 0.0 0.0 0.0 366 -367 0.00125217437744141 0.0 0.0 0.0 367 -368 0.00124406814575195 0.0 0.0 0.0 368 -369 0.00125789642333984 0.0 0.0 0.0 369 -370 0.0012509822845459 0.0 0.0 0.0 370 -371 0.00124287605285645 0.0 0.0 0.0 371 -372 0.00124812126159668 0.00999999999999979 0.00999999999999979 0.0 372 -373 0.00124692916870117 0.0 0.0 0.0 373 -374 0.0012519359588623 0.0 0.0 0.0 374 -375 0.0012519359588623 0.0 0.0 0.0 375 -376 0.00125503540039062 0.0 0.0 0.0 376 -377 0.00123691558837891 0.0 0.0 0.0 377 -378 0.00123310089111328 0.0 0.0 0.0 378 -379 0.00123190879821777 0.0 0.0 0.0 379 -380 0.00124382972717285 0.00999999999999979 0.00999999999999979 0.0 380 -381 0.00123906135559082 0.0 0.0 0.0 381 -382 0.00124883651733398 0.0 0.0 0.0 382 -383 0.00124192237854004 0.0 0.0 0.0 383 -384 0.0012509822845459 0.0 0.0 0.0 384 -385 0.00124406814575195 0.0 0.0 0.0 385 -386 0.00123405456542969 0.0 0.0 0.0 386 -387 0.00124788284301758 0.0100000000000007 0.0100000000000007 0.0 387 -388 0.00125002861022949 0.0 0.0 0.0 388 -389 0.00123214721679688 0.0 0.0 0.0 389 -390 0.00123810768127441 0.0 0.0 0.0 390 -391 0.00124287605285645 0.0 0.0 0.0 391 -392 0.0012359619140625 0.0 0.0 0.0 392 -393 0.00123405456542969 0.0 0.0 0.0 393 -394 0.00124621391296387 0.0 0.0 0.0 394 -395 0.00124907493591309 0.00999999999999979 0.00999999999999979 0.0 395 -396 0.00124216079711914 0.0 0.0 0.0 396 -397 0.00123190879821777 0.0 0.0 0.0 397 -398 0.00139594078063965 0.0 0.0 0.0 398 -399 0.0022280216217041 0.0 0.0 0.0 399 -400 0.00197100639343262 0.0 0.0 0.0 400 -401 0.00163888931274414 0.00999999999999979 0.00999999999999979 0.0 401 -402 0.00142812728881836 0.0 0.0 0.0 402 -403 0.00138711929321289 0.0 0.0 0.0 403 -404 0.00148701667785645 0.0 0.0 0.0 404 -405 0.00162696838378906 0.0 0.0 0.0 405 -406 0.00157594680786133 0.0 0.0 0.0 406 -407 0.00158596038818359 0.00999999999999979 0.00999999999999979 0.0 407 -408 0.00186491012573242 0.0 0.0 0.0 408 -409 0.0016481876373291 0.0 0.0 0.0 409 -410 0.00135707855224609 0.0 0.0 0.0 410 -411 0.00129485130310059 0.0 0.0 0.0 411 -412 0.0299890041351318 0.0300000000000002 0.0300000000000002 0.0 412 -413 0.00138497352600098 0.0 0.0 0.0 413 -414 0.0013120174407959 0.0 0.0 0.0 414 -415 0.00127696990966797 0.00999999999999979 0.00999999999999979 0.0 415 -416 0.00128507614135742 0.0 0.0 0.0 416 -417 0.00126981735229492 0.0 0.0 0.0 417 -418 0.00126814842224121 0.0 0.0 0.0 418 -419 0.00125718116760254 0.0 0.0 0.0 419 -420 0.00125408172607422 0.0 0.0 0.0 420 -421 0.0012509822845459 0.0 0.0 0.0 421 -422 0.00124716758728027 0.0 0.0 0.0 422 -423 0.00125408172607422 0.0100000000000007 0.0100000000000007 0.0 423 -424 0.001251220703125 0.0 0.0 0.0 424 -425 0.00124812126159668 0.0 0.0 0.0 425 -426 0.00124692916870117 0.0 0.0 0.0 426 -427 0.00124597549438477 0.0 0.0 0.0 427 -428 0.001251220703125 0.0 0.0 0.0 428 -429 0.00124311447143555 0.0 0.0 0.0 429 -430 0.00124812126159668 0.00999999999999979 0.00999999999999979 0.0 430 -431 0.00124311447143555 0.0 0.0 0.0 431 -432 0.00125002861022949 0.0 0.0 0.0 432 -433 0.00125002861022949 0.0 0.0 0.0 433 -434 0.00125002861022949 0.0 0.0 0.0 434 -435 0.00124502182006836 0.0 0.0 0.0 435 -436 0.00124382972717285 0.0 0.0 0.0 436 -437 0.00124812126159668 0.0 0.0 0.0 437 -438 0.00124406814575195 0.00999999999999979 0.00999999999999979 0.0 438 -439 0.00122785568237305 0.0 0.0 0.0 439 -440 0.00123214721679688 0.0 0.0 0.0 440 -441 0.00123691558837891 0.0 0.0 0.0 441 -442 0.00124502182006836 0.0 0.0 0.0 442 -443 0.00123405456542969 0.0 0.0 0.0 443 -444 0.00124311447143555 0.0 0.0 0.0 444 -445 0.00124382972717285 0.0 0.0 0.0 445 -446 0.00123906135559082 0.00999999999999979 0.00999999999999979 0.0 446 -447 0.00124096870422363 0.0 0.0 0.0 447 -448 0.00124311447143555 0.0 0.0 0.0 448 -449 0.00124788284301758 0.0 0.0 0.0 449 -450 0.00123500823974609 0.0 0.0 0.0 450 -451 0.00124096870422363 0.0 0.0 0.0 451 -452 0.00123906135559082 0.0 0.0 0.0 452 -453 0.00123500823974609 0.0 0.0 0.0 453 -454 0.0012359619140625 0.0100000000000007 0.0100000000000007 0.0 454 -455 0.00124192237854004 0.0 0.0 0.0 455 -456 0.00124096870422363 0.0 0.0 0.0 456 -457 0.00123405456542969 0.0 0.0 0.0 457 -458 0.00124311447143555 0.0 0.0 0.0 458 -459 0.00158381462097168 0.0 0.0 0.0 459 -460 0.00182890892028809 0.0 0.0 0.0 460 -461 0.00183510780334473 0.00999999999999979 0.00999999999999979 0.0 461 -462 0.00188088417053223 0.0 0.0 0.0 462 -463 0.00174307823181152 0.0 0.0 0.0 463 -464 0.00124692916870117 0.0 0.0 0.0 464 -465 0.00123906135559082 0.0 0.0 0.0 465 -466 0.00124096870422363 0.0 0.0 0.0 466 -467 0.00124311447143555 0.00999999999999979 0.00999999999999979 0.0 467 -468 0.00125503540039062 0.0 0.0 0.0 468 -469 0.00125908851623535 0.0 0.0 0.0 469 -470 0.0304310321807861 0.0300000000000002 0.0300000000000002 0.0 470 -471 0.00145387649536133 0.0 0.0 0.0 471 -472 0.00129985809326172 0.0 0.0 0.0 472 -473 0.00149822235107422 0.0 0.0 0.0 473 -474 0.0015261173248291 0.0 0.0 0.0 474 -475 0.00127696990966797 0.00999999999999979 0.00999999999999979 0.0 475 -476 0.0012669563293457 0.0 0.0 0.0 476 -477 0.00122594833374023 0.0 0.0 0.0 477 -478 0.00125002861022949 0.0 0.0 0.0 478 -479 0.00124478340148926 0.0 0.0 0.0 479 -480 0.00125694274902344 0.0 0.0 0.0 480 -481 0.001251220703125 0.0 0.0 0.0 481 -482 0.0012509822845459 0.0 0.0 0.0 482 -483 0.0012509822845459 0.00999999999999979 0.00999999999999979 0.0 483 -484 0.00125288963317871 0.0 0.0 0.0 484 -485 0.00125408172607422 0.0 0.0 0.0 485 -486 0.00125718116760254 0.0 0.0 0.0 486 -487 0.00124716758728027 0.0 0.0 0.0 487 -488 0.00117087364196777 0.0 0.0 0.0 488 -489 0.00124812126159668 0.0 0.0 0.0 489 -490 0.00122618675231934 0.00999999999999979 0.00999999999999979 0.0 490 -491 0.00125598907470703 0.0 0.0 0.0 491 -492 0.00124311447143555 0.0 0.0 0.0 492 -493 0.00124192237854004 0.0 0.0 0.0 493 -494 0.00124692916870117 0.0 0.0 0.0 494 -495 0.00123381614685059 0.0 0.0 0.0 495 -496 0.00123691558837891 0.0 0.0 0.0 496 -497 0.00123906135559082 0.0 0.0 0.0 497 -498 0.00125718116760254 0.0100000000000007 0.0100000000000007 0.0 498 -499 0.00124502182006836 0.0 0.0 0.0 499 -500 0.00124788284301758 0.0 0.0 0.0 500 -501 0.00124812126159668 0.0 0.0 0.0 501 -502 0.00124096870422363 0.0 0.0 0.0 502 -503 0.00124287605285645 0.0 0.0 0.0 503 -504 0.00122690200805664 0.0 0.0 0.0 504 -505 0.00124406814575195 0.0 0.0 0.0 505 -506 0.00123786926269531 0.00999999999999979 0.00999999999999979 0.0 506 -507 0.00124001502990723 0.0 0.0 0.0 507 -508 0.0012519359588623 0.0 0.0 0.0 508 -509 0.00124597549438477 0.0 0.0 0.0 509 -510 0.00124311447143555 0.0 0.0 0.0 510 -511 0.00124979019165039 0.0 0.0 0.0 511 -512 0.00124502182006836 0.0 0.0 0.0 512 -513 0.00124001502990723 0.0 0.0 0.0 513 -514 0.00123810768127441 0.00999999999999979 0.00999999999999979 0.0 514 -515 0.00125002861022949 0.0 0.0 0.0 515 -516 0.00124812126159668 0.0 0.0 0.0 516 -517 0.00124311447143555 0.0 0.0 0.0 517 -518 0.00125288963317871 0.0 0.0 0.0 518 -519 0.00124979019165039 0.0 0.0 0.0 519 -520 0.00124192237854004 0.0 0.0 0.0 520 -521 0.00124406814575195 0.0 0.0 0.0 521 -522 0.00125622749328613 0.00999999999999979 0.00999999999999979 0.0 522 -523 0.00124907493591309 0.0 0.0 0.0 523 -524 0.00124692916870117 0.0 0.0 0.0 524 -525 0.00125002861022949 0.0 0.0 0.0 525 -526 0.0012671947479248 0.0 0.0 0.0 526 -527 0.00126910209655762 0.0 0.0 0.0 527 -528 0.0301029682159424 0.0300000000000002 0.0300000000000002 0.0 528 -529 0.00129103660583496 0.0 0.0 0.0 529 -530 0.00132203102111816 0.00999999999999979 0.00999999999999979 0.0 530 -531 0.00127696990966797 0.0 0.0 0.0 531 -532 0.00128507614135742 0.0 0.0 0.0 532 -533 0.00127196311950684 0.0 0.0 0.0 533 -534 0.00127100944519043 0.0 0.0 0.0 534 -535 0.00126886367797852 0.0 0.0 0.0 535 -536 0.00125789642333984 0.0 0.0 0.0 536 -537 0.00124311447143555 0.0 0.0 0.0 537 -538 0.0012509822845459 0.0100000000000007 0.0100000000000007 0.0 538 -539 0.00125908851623535 0.0 0.0 0.0 539 -540 0.00124788284301758 0.0 0.0 0.0 540 -541 0.00125002861022949 0.0 0.0 0.0 541 -542 0.0012671947479248 0.0 0.0 0.0 542 -543 0.00125312805175781 0.0 0.0 0.0 543 -544 0.00125885009765625 0.0 0.0 0.0 544 -545 0.00125503540039062 0.00999999999999979 0.00999999999999979 0.0 545 -546 0.00126099586486816 0.0 0.0 0.0 546 -547 0.00126218795776367 0.0 0.0 0.0 547 -548 0.00124883651733398 0.0 0.0 0.0 548 -549 0.00126099586486816 0.0 0.0 0.0 549 -550 0.00126194953918457 0.0 0.0 0.0 550 -551 0.00119996070861816 0.0 0.0 0.0 551 -552 0.00124883651733398 0.0 0.0 0.0 552 -553 0.00124192237854004 0.00999999999999979 0.00999999999999979 0.0 553 -554 0.00124382972717285 0.0 0.0 0.0 554 -555 0.00124311447143555 0.0 0.0 0.0 555 -556 0.00123500823974609 0.0 0.0 0.0 556 -557 0.0012359619140625 0.0 0.0 0.0 557 -558 0.00123882293701172 0.0 0.0 0.0 558 -559 0.0012519359588623 0.0 0.0 0.0 559 -560 0.00124716758728027 0.0 0.0 0.0 560 -561 0.00124406814575195 0.0 0.0 0.0 561 -562 0.00124812126159668 0.00999999999999979 0.00999999999999979 0.0 562 -563 0.00129103660583496 0.0 0.0 0.0 563 -564 0.00124001502990723 0.0 0.0 0.0 564 -565 0.00124406814575195 0.0 0.0 0.0 565 -566 0.00125789642333984 0.0 0.0 0.0 566 -567 0.00124406814575195 0.0 0.0 0.0 567 -568 0.00123500823974609 0.0 0.0 0.0 568 -569 0.00124311447143555 0.0 0.0 0.0 569 -570 0.00124096870422363 0.0 0.0 0.0 570 -571 0.00124001502990723 0.0 0.0 0.0 571 -572 0.00123786926269531 0.0 0.0 0.0 572 -573 0.00125288963317871 0.0 0.0 0.0 573 -574 0.00124502182006836 0.0 0.0 0.0 574 -575 0.00124192237854004 0.0 0.0 0.0 575 -576 0.00124502182006836 0.0 0.0 0.0 576 -577 0.00125479698181152 0.00999999999999979 0.00999999999999979 0.0 577 -578 0.00124502182006836 0.0 0.0 0.0 578 -579 0.00124502182006836 0.0 0.0 0.0 579 -580 0.00124692916870117 0.0 0.0 0.0 580 -581 0.00123095512390137 0.0 0.0 0.0 581 -582 0.00124287605285645 0.0 0.0 0.0 582 -583 0.00125288963317871 0.0 0.0 0.0 583 -584 0.0012669563293457 0.0 0.0 0.0 584 -585 0.00127005577087402 0.00999999999999979 0.00999999999999979 0.0 585 -586 0.0311369895935059 0.0300000000000002 0.0300000000000002 0.0 586 -587 0.00198984146118164 0.0 0.0 0.0 587 -588 0.00141692161560059 0.0 0.0 0.0 588 -589 0.00131011009216309 0.0 0.0 0.0 589 -590 0.0012810230255127 0.0 0.0 0.0 590 -591 0.00123500823974609 0.0 0.0 0.0 591 -592 0.00117397308349609 0.00999999999999979 0.00999999999999979 0.0 592 -593 0.00125908851623535 0.0 0.0 0.0 593 -594 0.00126194953918457 0.0 0.0 0.0 594 -595 0.00124597549438477 0.0 0.0 0.0 595 -596 0.00124692916870117 0.0 0.0 0.0 596 -597 0.00125479698181152 0.0 0.0 0.0 597 -598 0.00127911567687988 0.0 0.0 0.0 598 -599 0.00125789642333984 0.0 0.0 0.0 599 -600 0.00124406814575195 0.00999999999999979 0.00999999999999979 0.0 600 -601 0.00124907493591309 0.0 0.0 0.0 601 -602 0.00124216079711914 0.0 0.0 0.0 602 -603 0.00124907493591309 0.0 0.0 0.0 603 -604 0.00125384330749512 0.0 0.0 0.0 604 -605 0.00125694274902344 0.0 0.0 0.0 605 -606 0.00124192237854004 0.0 0.0 0.0 606 -607 0.00124502182006836 0.0 0.0 0.0 607 -608 0.0012509822845459 0.0100000000000007 0.0100000000000007 0.0 608 -609 0.00123906135559082 0.0 0.0 0.0 609 -610 0.0014030933380127 0.0 0.0 0.0 610 -611 0.00124883651733398 0.0 0.0 0.0 611 -612 0.00135397911071777 0.0 0.0 0.0 612 -613 0.00174593925476074 0.0 0.0 0.0 613 -614 0.00124716758728027 0.0 0.0 0.0 614 -615 0.00124812126159668 0.00999999999999979 0.00999999999999979 0.0 615 -616 0.00125503540039062 0.0 0.0 0.0 616 -617 0.00140786170959473 0.0 0.0 0.0 617 -618 0.00125312805175781 0.0 0.0 0.0 618 -619 0.0012509822845459 0.0 0.0 0.0 619 -620 0.00124096870422363 0.0 0.0 0.0 620 -621 0.0012359619140625 0.0 0.0 0.0 621 -622 0.00124382972717285 0.00999999999999979 0.00999999999999979 0.0 622 -623 0.00124406814575195 0.0 0.0 0.0 623 -624 0.00123000144958496 0.0 0.0 0.0 624 -625 0.00124001502990723 0.0 0.0 0.0 625 -626 0.00124001502990723 0.0 0.0 0.0 626 -627 0.00124001502990723 0.0 0.0 0.0 627 -628 0.00125885009765625 0.0 0.0 0.0 628 -629 0.00124907493591309 0.0 0.0 0.0 629 -630 0.00124192237854004 0.00999999999999979 0.00999999999999979 0.0 630 -631 0.00124406814575195 0.0 0.0 0.0 631 -632 0.0012519359588623 0.0 0.0 0.0 632 -633 0.00124502182006836 0.0 0.0 0.0 633 -634 0.00124287605285645 0.0 0.0 0.0 634 -635 0.00123906135559082 0.0 0.0 0.0 635 -636 0.00124621391296387 0.0 0.0 0.0 636 -637 0.00124502182006836 0.0 0.0 0.0 637 -638 0.00124692916870117 0.00999999999999979 0.00999999999999979 0.0 638 -639 0.0012509822845459 0.0 0.0 0.0 639 -640 0.00132584571838379 0.0 0.0 0.0 640 -641 0.00126409530639648 0.0 0.0 0.0 641 -642 0.00126504898071289 0.0 0.0 0.0 642 -643 0.00127911567687988 0.0 0.0 0.0 643 -644 0.0240340232849121 0.0300000000000002 0.0300000000000002 0.0 644 -645 0.0101561546325684 0.00999999999999979 0.00999999999999979 0.0 645 -646 0.00133299827575684 0.0 0.0 0.0 646 -647 0.00129604339599609 0.0 0.0 0.0 647 -648 0.00124382972717285 0.0 0.0 0.0 648 -649 0.00127410888671875 0.0 0.0 0.0 649 -650 0.00126409530639648 0.0 0.0 0.0 650 -651 0.0012519359588623 0.0 0.0 0.0 651 -652 0.00124597549438477 0.0100000000000007 0.0100000000000007 0.0 652 -653 0.000922918319702148 0.0 0.0 0.0 653 -654 0.00125503540039062 0.0 0.0 0.0 654 -655 0.00124287605285645 0.0 0.0 0.0 655 -656 0.00124692916870117 0.0 0.0 0.0 656 -657 0.00126004219055176 0.0 0.0 0.0 657 -658 0.00125384330749512 0.0 0.0 0.0 658 -659 0.0013279914855957 0.0 0.0 0.0 659 -660 0.00124502182006836 0.00999999999999979 0.00999999999999979 0.0 660 -661 0.00125598907470703 0.0 0.0 0.0 661 -662 0.00124192237854004 0.0 0.0 0.0 662 -663 0.00124096870422363 0.0 0.0 0.0 663 -664 0.00125312805175781 0.0 0.0 0.0 664 -665 0.00124692916870117 0.0 0.0 0.0 665 -666 0.00124597549438477 0.0 0.0 0.0 666 -667 0.00123977661132812 0.0 0.0 0.0 667 -668 0.00124406814575195 0.0 0.0 0.0 668 -669 0.00123500823974609 0.0 0.0 0.0 669 -670 0.00124502182006836 0.0 0.0 0.0 670 -671 0.00124502182006836 0.0 0.0 0.0 671 -672 0.00124382972717285 0.0 0.0 0.0 672 -673 0.00123190879821777 0.0 0.0 0.0 673 -674 0.00123500823974609 0.0 0.0 0.0 674 -675 0.00124692916870117 0.00999999999999979 0.00999999999999979 0.0 675 -676 0.00123310089111328 0.0 0.0 0.0 676 -677 0.00123095512390137 0.0 0.0 0.0 677 -678 0.00124192237854004 0.0 0.0 0.0 678 -679 0.00122690200805664 0.0 0.0 0.0 679 -680 0.00123286247253418 0.0 0.0 0.0 680 -681 0.00124096870422363 0.0 0.0 0.0 681 -682 0.00124192237854004 0.0 0.0 0.0 682 -683 0.00124692916870117 0.0100000000000007 0.0100000000000007 0.0 683 -684 0.0012359619140625 0.0 0.0 0.0 684 -685 0.00123286247253418 0.0 0.0 0.0 685 -686 0.00124001502990723 0.0 0.0 0.0 686 -687 0.00124001502990723 0.0 0.0 0.0 687 -688 0.00123786926269531 0.0 0.0 0.0 688 -689 0.00125002861022949 0.0 0.0 0.0 689 -690 0.00124907493591309 0.0 0.0 0.0 690 -691 0.00129103660583496 0.00999999999999979 0.00999999999999979 0.0 691 -692 0.00124311447143555 0.0 0.0 0.0 692 -693 0.00129890441894531 0.0 0.0 0.0 693 -694 0.00130796432495117 0.0 0.0 0.0 694 -695 0.00123500823974609 0.0 0.0 0.0 695 -696 0.00124716758728027 0.0 0.0 0.0 696 -697 0.00123906135559082 0.0 0.0 0.0 697 -698 0.00124287605285645 0.0 0.0 0.0 698 -699 0.00127696990966797 0.00999999999999979 0.00999999999999979 0.0 699 -700 0.00124907493591309 0.0 0.0 0.0 700 -701 0.0300769805908203 0.0300000000000002 0.0300000000000002 0.0 701 -702 0.0012669563293457 0.0 0.0 0.0 702 -703 0.00174999237060547 0.0 0.0 0.0 703 -704 0.00131797790527344 0.0 0.0 0.0 704 -705 0.00130391120910645 0.0 0.0 0.0 705 -706 0.00126886367797852 0.0 0.0 0.0 706 -707 0.00127601623535156 0.00999999999999979 0.00999999999999979 0.0 707 -708 0.00125503540039062 0.0 0.0 0.0 708 -709 0.00125312805175781 0.0 0.0 0.0 709 -710 0.00124597549438477 0.0 0.0 0.0 710 -711 0.00125217437744141 0.0 0.0 0.0 711 -712 0.00124311447143555 0.0 0.0 0.0 712 -713 0.00124287605285645 0.0 0.0 0.0 713 -714 0.00125503540039062 0.00999999999999979 0.00999999999999979 0.0 714 -715 0.0012519359588623 0.0 0.0 0.0 715 -716 0.00124502182006836 0.0 0.0 0.0 716 -717 0.00124502182006836 0.0 0.0 0.0 717 -718 0.00126814842224121 0.0 0.0 0.0 718 -719 0.00124883651733398 0.0 0.0 0.0 719 -720 0.00124812126159668 0.0 0.0 0.0 720 -721 0.00125408172607422 0.0 0.0 0.0 721 -722 0.00125694274902344 0.0100000000000007 0.0100000000000007 0.0 722 -723 0.00125002861022949 0.0 0.0 0.0 723 -724 0.0012509822845459 0.0 0.0 0.0 724 -725 0.00124502182006836 0.0 0.0 0.0 725 -726 0.00115799903869629 0.0 0.0 0.0 726 -727 0.00148391723632812 0.0 0.0 0.0 727 -728 0.00177001953125 0.0 0.0 0.0 728 -729 0.00183606147766113 0.00999999999999979 0.00999999999999979 0.0 729 -730 0.00171613693237305 0.0 0.0 0.0 730 -731 0.00128793716430664 0.0 0.0 0.0 731 -732 0.000819921493530273 0.0 0.0 0.0 732 -733 0.00124001502990723 0.0 0.0 0.0 733 -734 0.00124692916870117 0.0 0.0 0.0 734 -735 0.00124001502990723 0.0 0.0 0.0 735 -736 0.00123882293701172 0.0 0.0 0.0 736 -737 0.00124597549438477 0.00999999999999979 0.00999999999999979 0.0 737 -738 0.00124502182006836 0.0 0.0 0.0 738 -739 0.00124096870422363 0.0 0.0 0.0 739 -740 0.00124502182006836 0.0 0.0 0.0 740 -741 0.00124096870422363 0.0 0.0 0.0 741 -742 0.00124287605285645 0.0 0.0 0.0 742 -743 0.00124096870422363 0.0 0.0 0.0 743 -744 0.00124692916870117 0.00999999999999979 0.00999999999999979 0.0 744 -745 0.00138497352600098 0.0 0.0 0.0 745 -746 0.00129485130310059 0.0 0.0 0.0 746 -747 0.0012509822845459 0.0 0.0 0.0 747 -748 0.00124907493591309 0.0 0.0 0.0 748 -749 0.00123500823974609 0.0 0.0 0.0 749 -750 0.00124621391296387 0.0 0.0 0.0 750 -751 0.00124096870422363 0.0 0.0 0.0 751 -752 0.00123810768127441 0.0100000000000007 0.0100000000000007 0.0 752 -753 0.00124287605285645 0.0 0.0 0.0 753 -754 0.00124716758728027 0.0 0.0 0.0 754 -755 0.00124311447143555 0.0 0.0 0.0 755 -756 0.00124883651733398 0.0 0.0 0.0 756 -757 0.0014030933380127 0.0 0.0 0.0 757 -758 0.0220100879669189 0.0199999999999996 0.0199999999999996 0.0 758 -759 0.00328278541564941 0.00999999999999979 0.00999999999999979 0.0 759 -760 0.00999212265014648 0.00999999999999979 0.00999999999999979 0.0 760 -761 0.00151991844177246 0.0 0.0 0.0 761 -762 0.00131011009216309 0.0 0.0 0.0 762 -763 0.00128889083862305 0.0 0.0 0.0 763 -764 0.0012819766998291 0.0 0.0 0.0 764 -765 0.0012819766998291 0.0 0.0 0.0 765 -766 0.00126886367797852 0.0100000000000007 0.0100000000000007 0.0 766 -767 0.00125288963317871 0.0 0.0 0.0 767 -768 0.00125408172607422 0.0 0.0 0.0 768 -769 0.00125718116760254 0.0 0.0 0.0 769 -770 0.00125384330749512 0.0 0.0 0.0 770 -771 0.00125002861022949 0.0 0.0 0.0 771 -772 0.00124406814575195 0.0 0.0 0.0 772 -773 0.00125002861022949 0.00999999999999979 0.00999999999999979 0.0 773 -774 0.0012509822845459 0.0 0.0 0.0 774 -775 0.00124502182006836 0.0 0.0 0.0 775 -776 0.00124788284301758 0.0 0.0 0.0 776 -777 0.00125408172607422 0.0 0.0 0.0 777 -778 0.00125288963317871 0.0 0.0 0.0 778 -779 0.00124788284301758 0.0 0.0 0.0 779 -780 0.00124287605285645 0.0 0.0 0.0 780 -781 0.00125694274902344 0.00999999999999979 0.00999999999999979 0.0 781 -782 0.00124096870422363 0.0 0.0 0.0 782 -783 0.00123691558837891 0.0 0.0 0.0 783 -784 0.00124287605285645 0.0 0.0 0.0 784 -785 0.00124597549438477 0.0 0.0 0.0 785 -786 0.00123786926269531 0.0 0.0 0.0 786 -787 0.00124502182006836 0.0 0.0 0.0 787 -788 0.00124096870422363 0.0 0.0 0.0 788 -789 0.00124096870422363 0.00999999999999979 0.00999999999999979 0.0 789 -790 0.00123500823974609 0.0 0.0 0.0 790 -791 0.00124001502990723 0.0 0.0 0.0 791 -792 0.00124001502990723 0.0 0.0 0.0 792 -793 0.00123000144958496 0.0 0.0 0.0 793 -794 0.00124406814575195 0.0 0.0 0.0 794 -795 0.00123691558837891 0.0 0.0 0.0 795 -796 0.00123286247253418 0.0 0.0 0.0 796 -797 0.00123906135559082 0.0100000000000007 0.0100000000000007 0.0 797 -798 0.00120997428894043 0.0 0.0 0.0 798 -799 0.00156807899475098 0.0 0.0 0.0 799 -800 0.00123286247253418 0.0 0.0 0.0 800 -801 0.00125002861022949 0.0 0.0 0.0 801 -802 0.0012199878692627 0.0 0.0 0.0 802 -803 0.00123405456542969 0.0 0.0 0.0 803 -804 0.0012519359588623 0.00999999999999979 0.00999999999999979 0.0 804 -805 0.00124192237854004 0.0 0.0 0.0 805 -806 0.00124406814575195 0.0 0.0 0.0 806 -807 0.00124001502990723 0.0 0.0 0.0 807 -808 0.00124692916870117 0.0 0.0 0.0 808 -809 0.00125002861022949 0.0 0.0 0.0 809 -810 0.00125312805175781 0.0 0.0 0.0 810 -811 0.00126981735229492 0.0 0.0 0.0 811 -812 0.00124001502990723 0.00999999999999979 0.00999999999999979 0.0 812 -813 0.00124597549438477 0.0 0.0 0.0 813 -814 0.00126290321350098 0.0 0.0 0.0 814 -815 0.0310249328613281 0.0300000000000002 0.0300000000000002 0.0 815 -816 0.000841140747070312 0.0 0.0 0.0 816 -817 0.000878095626831055 0.0 0.0 0.0 817 -818 0.000874042510986328 0.0 0.0 0.0 818 -819 0.000869035720825195 0.0 0.0 0.0 819 -820 0.0012819766998291 0.0 0.0 0.0 820 -821 0.00133609771728516 0.00999999999999979 0.00999999999999979 0.0 821 -822 0.0012660026550293 0.0 0.0 0.0 822 -823 0.0013270378112793 0.0 0.0 0.0 823 -824 0.00125718116760254 0.0 0.0 0.0 824 -825 0.00124907493591309 0.0 0.0 0.0 825 -826 0.00137901306152344 0.0 0.0 0.0 826 -827 0.00125503540039062 0.0 0.0 0.0 827 -828 0.0012509822845459 0.0 0.0 0.0 828 -829 0.00126791000366211 0.00999999999999979 0.00999999999999979 0.0 829 -830 0.00128698348999023 0.0 0.0 0.0 830 -831 0.00125598907470703 0.0 0.0 0.0 831 -832 0.00135207176208496 0.0 0.0 0.0 832 -833 0.000869035720825195 0.0 0.0 0.0 833 -834 0.00125503540039062 0.0 0.0 0.0 834 -835 0.0012519359588623 0.0 0.0 0.0 835 -836 0.00126004219055176 0.0 0.0 0.0 836 -837 0.00126099586486816 0.0100000000000007 0.0100000000000007 0.0 837 -838 0.00181698799133301 0.0 0.0 0.0 838 -839 0.00126290321350098 0.0 0.0 0.0 839 -840 0.00124096870422363 0.0 0.0 0.0 840 -841 0.00118899345397949 0.0 0.0 0.0 841 -842 0.00124096870422363 0.0 0.0 0.0 842 -843 0.00123286247253418 0.0 0.0 0.0 843 -844 0.00165700912475586 0.00999999999999979 0.00999999999999979 0.0 844 -845 0.00125789642333984 0.0 0.0 0.0 845 -846 0.00123405456542969 0.0 0.0 0.0 846 -847 0.00123095512390137 0.0 0.0 0.0 847 -848 0.0012509822845459 0.0 0.0 0.0 848 -849 0.00123906135559082 0.0 0.0 0.0 849 -850 0.00165104866027832 0.0 0.0 0.0 850 -851 0.00123906135559082 0.00999999999999979 0.00999999999999979 0.0 851 -852 0.00123786926269531 0.0 0.0 0.0 852 -853 0.00120902061462402 0.0 0.0 0.0 853 -854 0.00130009651184082 0.0 0.0 0.0 854 -855 0.00124502182006836 0.0 0.0 0.0 855 -856 0.0016329288482666 0.0 0.0 0.0 856 -857 0.0012509822845459 0.0 0.0 0.0 857 -858 0.00124692916870117 0.0 0.0 0.0 858 -859 0.00129890441894531 0.00999999999999979 0.00999999999999979 0.0 859 -860 0.00123786926269531 0.0 0.0 0.0 860 -861 0.00123786926269531 0.0 0.0 0.0 861 -862 0.0016181468963623 0.0 0.0 0.0 862 -863 0.00124192237854004 0.0 0.0 0.0 863 -864 0.00124692916870117 0.0 0.0 0.0 864 -865 0.00124597549438477 0.0 0.0 0.0 865 -866 0.00124478340148926 0.0100000000000007 0.0100000000000007 0.0 866 -867 0.00123500823974609 0.0 0.0 0.0 867 -868 0.00165414810180664 0.0 0.0 0.0 868 -869 0.00124502182006836 0.0 0.0 0.0 869 -870 0.0012669563293457 0.0 0.0 0.0 870 -871 0.0018620491027832 0.0 0.0 0.0 871 -872 0.0325958728790283 0.04 0.04 0.0 872 -873 0.000857114791870117 0.0 0.0 0.0 873 -874 0.00117611885070801 0.0 0.0 0.0 874 -875 0.000876903533935547 0.0 0.0 0.0 875 -876 0.00108814239501953 0.0 0.0 0.0 876 -877 0.00129008293151855 0.0 0.0 0.0 877 -878 0.00138592720031738 0.0 0.0 0.0 878 -879 0.00126004219055176 0.0 0.0 0.0 879 -880 0.00133490562438965 0.00999999999999979 0.00999999999999979 0.0 880 -881 0.00133109092712402 0.0 0.0 0.0 881 -882 0.00126004219055176 0.0 0.0 0.0 882 -883 0.00134086608886719 0.0 0.0 0.0 883 -884 0.00124907493591309 0.0 0.0 0.0 884 -885 0.00122594833374023 0.0 0.0 0.0 885 -886 0.00130510330200195 0.0 0.0 0.0 886 -887 0.00134396553039551 0.0 0.0 0.0 887 -888 0.00126194953918457 0.00999999999999979 0.00999999999999979 0.0 888 -889 0.00120782852172852 0.0 0.0 0.0 889 -890 0.00124692916870117 0.0 0.0 0.0 890 -891 0.00125813484191895 0.0 0.0 0.0 891 -892 0.0012509822845459 0.0 0.0 0.0 892 -893 0.00136804580688477 0.0 0.0 0.0 893 -894 0.00125718116760254 0.0 0.0 0.0 894 -895 0.00125312805175781 0.00999999999999979 0.00999999999999979 0.0 895 -896 0.00126218795776367 0.0 0.0 0.0 896 -897 0.00123286247253418 0.0 0.0 0.0 897 -898 0.00124406814575195 0.0 0.0 0.0 898 -899 0.00131702423095703 0.0 0.0 0.0 899 -900 0.00123405456542969 0.0 0.0 0.0 900 -901 0.00121402740478516 0.0 0.0 0.0 901 -902 0.00123882293701172 0.0 0.0 0.0 902 -903 0.00123310089111328 0.00999999999999979 0.00999999999999979 0.0 903 -904 0.00124096870422363 0.0 0.0 0.0 904 -905 0.00147390365600586 0.0 0.0 0.0 905 -906 0.0012509822845459 0.0 0.0 0.0 906 -907 0.00124692916870117 0.0 0.0 0.0 907 -908 0.00124907493591309 0.0 0.0 0.0 908 -909 0.00124597549438477 0.0 0.0 0.0 909 -910 0.00124001502990723 0.0 0.0 0.0 910 -911 0.00142002105712891 0.0100000000000007 0.0100000000000007 0.0 911 -912 0.00124502182006836 0.0 0.0 0.0 912 -913 0.00124502182006836 0.0 0.0 0.0 913 -914 0.0012819766998291 0.0 0.0 0.0 914 -915 0.00123786926269531 0.0 0.0 0.0 915 -916 0.00124287605285645 0.0 0.0 0.0 916 -917 0.00142312049865723 0.0 0.0 0.0 917 -918 0.0012509822845459 0.00999999999999979 0.00999999999999979 0.0 918 -919 0.00124502182006836 0.0 0.0 0.0 919 -920 0.00124692916870117 0.0 0.0 0.0 920 -921 0.00124192237854004 0.0 0.0 0.0 921 -922 0.00119709968566895 0.0 0.0 0.0 922 -923 0.00140190124511719 0.0 0.0 0.0 923 -924 0.00125002861022949 0.0 0.0 0.0 924 -925 0.00124502182006836 0.0 0.0 0.0 925 -926 0.00124597549438477 0.00999999999999979 0.00999999999999979 0.0 926 -927 0.00127720832824707 0.0 0.0 0.0 927 -928 0.00126409530639648 0.0 0.0 0.0 928 -929 0.0312209129333496 0.0300000000000002 0.0300000000000002 0.0 929 -930 0.00214791297912598 0.0 0.0 0.0 930 -931 0.00183796882629395 0.0 0.0 0.0 931 -932 0.00143814086914062 0.00999999999999979 0.00999999999999979 0.0 932 -933 0.00145792961120605 0.0 0.0 0.0 933 -934 0.00152087211608887 0.0 0.0 0.0 934 -935 0.00213003158569336 0.0 0.0 0.0 935 -936 0.00166201591491699 0.0 0.0 0.0 936 -937 0.0016930103302002 0.0 0.0 0.0 937 -938 0.00139403343200684 0.00999999999999979 0.00999999999999979 0.0 938 -939 0.00214695930480957 0.0 0.0 0.0 939 -940 0.00102400779724121 0.0 0.0 0.0 940 -941 0.0012660026550293 0.0 0.0 0.0 941 -942 0.00126004219055176 0.0 0.0 0.0 942 -943 0.00126194953918457 0.0 0.0 0.0 943 -944 0.00125813484191895 0.0 0.0 0.0 944 -945 0.00152897834777832 0.0100000000000007 0.0100000000000007 0.0 945 -946 0.0012669563293457 0.0 0.0 0.0 946 -947 0.00125408172607422 0.0 0.0 0.0 947 -948 0.00125980377197266 0.0 0.0 0.0 948 -949 0.00126481056213379 0.0 0.0 0.0 949 -950 0.00125908851623535 0.0 0.0 0.0 950 -951 0.00138092041015625 0.0 0.0 0.0 951 -952 0.00125384330749512 0.00999999999999979 0.00999999999999979 0.0 952 -953 0.00108504295349121 0.0 0.0 0.0 953 -954 0.0012509822845459 0.0 0.0 0.0 954 -955 0.00125980377197266 0.0 0.0 0.0 955 -956 0.00131511688232422 0.0 0.0 0.0 956 -957 0.00130796432495117 0.0 0.0 0.0 957 -958 0.00124597549438477 0.0 0.0 0.0 958 -959 0.00125002861022949 0.0 0.0 0.0 959 -960 0.00124287605285645 0.00999999999999979 0.00999999999999979 0.0 960 -961 0.00124812126159668 0.0 0.0 0.0 961 -962 0.0012509822845459 0.0 0.0 0.0 962 -963 0.00130891799926758 0.0 0.0 0.0 963 -964 0.00123500823974609 0.0 0.0 0.0 964 -965 0.00124096870422363 0.0 0.0 0.0 965 -966 0.00124883651733398 0.0 0.0 0.0 966 -967 0.00124192237854004 0.0 0.0 0.0 967 -968 0.00124502182006836 0.00999999999999979 0.00999999999999979 0.0 968 -969 0.00124597549438477 0.0 0.0 0.0 969 -970 0.00130796432495117 0.0 0.0 0.0 970 -971 0.00124716758728027 0.0 0.0 0.0 971 -972 0.00125408172607422 0.0 0.0 0.0 972 -973 0.00125384330749512 0.0 0.0 0.0 973 -974 0.00124907493591309 0.0 0.0 0.0 974 -975 0.00124502182006836 0.0 0.0 0.0 975 -976 0.00131011009216309 0.0100000000000007 0.0100000000000007 0.0 976 -977 0.00125384330749512 0.0 0.0 0.0 977 -978 0.00124597549438477 0.0 0.0 0.0 978 -979 0.00125503540039062 0.0 0.0 0.0 979 -980 0.00125384330749512 0.0 0.0 0.0 980 -981 0.0012509822845459 0.0 0.0 0.0 981 -982 0.00131988525390625 0.0 0.0 0.0 982 -983 0.00126099586486816 0.00999999999999979 0.00999999999999979 0.0 983 -984 0.00126004219055176 0.0 0.0 0.0 984 -985 0.00127100944519043 0.0 0.0 0.0 985 -986 0.0304250717163086 0.0300000000000002 0.0300000000000002 0.0 986 -987 0.00131678581237793 0.0 0.0 0.0 987 -988 0.00130200386047363 0.0 0.0 0.0 988 -989 0.00139880180358887 0.0 0.0 0.0 989 -990 0.00517010688781738 0.0 0.0 0.0 990 -991 0.00128984451293945 0.00999999999999979 0.00999999999999979 0.0 991 -992 0.00125789642333984 0.0 0.0 0.0 992 -993 0.00152301788330078 0.0 0.0 0.0 993 -994 0.00125598907470703 0.0 0.0 0.0 994 -995 0.00125312805175781 0.0 0.0 0.0 995 -996 0.00125312805175781 0.0 0.0 0.0 996 -997 0.00125598907470703 0.0 0.0 0.0 997 -998 0.00134396553039551 0.0 0.0 0.0 998 -999 0.00124979019165039 0.00999999999999979 0.00999999999999979 0.0 999 -1000 0.00125598907470703 0.0 0.0 0.0 1000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log deleted file mode 100644 index ca6c64e..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log +++ /dev/null @@ -1,81 +0,0 @@ -========================== 2009-04-01T16:49:42 CEST =========================== -Benchmarking on ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]. -Running 'ParserBenchmarkExt' for 1000 iterations/method (compare_time=real) -=============================================================================== - -This first run is only for warmup. -ParserBenchmarkExt#parser: - real total user system -sum 1.733042240 1.770000000 1.760000000 0.010000000 -min 0.000833988 0.000000000 0.000000000 0.000000000 -std- -0.001838092 -0.003229209 -0.003232727 -0.000306228 -mean 0.001733042 0.001770000 0.001760000 0.000010000 -std+ 0.005304177 0.006769209 0.006752727 0.000326228 -max 0.032314062 0.040000000 0.040000000 0.010000000 -std 0.003571134 0.004999209 0.004992727 0.000316228 -std% 206.061583704 282.441194727 283.677695666 3162.277660168 -harm 0.001283614 nan nan nan -geo 0.001337350 0.000000000 0.000000000 0.000000000 -q1 0.001236916 0.000000000 0.000000000 0.000000000 -med 0.001246929 0.000000000 0.000000000 0.000000000 -q3 0.001260996 0.000000000 0.000000000 0.000000000 - 1000 577.01998 0.001733042 - calls calls/sec secs/call - - 0.03074 -|* - 0.02759 -| - 0.02444 -| - 0.02130 -| - 0.01815 -| - 0.01500 -| - 0.01185 -| - 0.00870 -| - 0.00556 -| - 0.00241 -|************************************************** - -Outliers detected with box plot algo (median=0.00125, iqr=0.00002, factor=3.00): -very_low=32 low=15 high=77 very_high=135 - -Ljung-Box statistics: q=13.14182 (alpha=0.05, df=50). -0.00000 < 0.95000 => No autocorrelation was detected. - -ParserBenchmarkExt#parser: - real total user system -sum 1.624776602 1.620000000 1.620000000 0.000000000 -min 0.000819921 0.000000000 0.000000000 0.000000000 -std- -0.001936067 -0.003223194 -0.003223194 0.000000000 -mean 0.001805307 0.001800000 0.001800000 0.000000000 -std+ 0.005546681 0.006823194 0.006823194 0.000000000 -max 0.032595873 0.040000000 0.040000000 0.000000000 -std 0.003741374 0.005023194 0.005023194 0.000000000 -std% 207.243050150 279.066347558 279.066347558 nan -harm 0.001297084 nan nan nan -geo 0.001358799 0.000000000 0.000000000 0.000000000 -q1 0.001241922 0.000000000 0.000000000 0.000000000 -med 0.001249075 0.000000000 0.000000000 0.000000000 -q3 0.001264811 0.000000000 0.000000000 0.000000000 - 900 553.92230 0.001805307 - calls calls/sec secs/call - - 0.03101 -|* - 0.02783 -| - 0.02465 -| - 0.02147 -| - 0.01830 -| - 0.01512 -| - 0.01194 -| - 0.00876 -| - 0.00559 -| - 0.00241 -|************************************************** - -Outliers detected with box plot algo (median=0.00125, iqr=0.00002, factor=3.00): -very_low=15 low=9 high=76 very_high=110 - -Ljung-Box statistics: q=15.89429 (alpha=0.05, df=50). -0.00000 < 0.95000 => No autocorrelation was detected. - -Truncated initial 100 measurements: 1000 -> 900 (-10.00%). -========================== 2009-04-01T16:49:49 CEST =========================== - -Writing measurement data file '/data/scm/json/benchmarks/data/ParserBenchmarkExt#parser.dat'. -Writing autocorrelation plot file '/data/scm/json/benchmarks/data/ParserBenchmarkExt#parser-autocorrelation.dat'. diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat deleted file mode 100644 index 40a0668..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat +++ /dev/null @@ -1,1000 +0,0 @@ -#lag autocorrelation -1 1.0 -2 -0.126526065077488 -3 -0.144961526627029 -4 -0.139357177406834 -5 -0.143974826894912 -6 -0.142298816838391 -7 -0.139337332621068 -8 -0.0804933565996591 -9 0.863154337738992 -10 -0.0856698326462466 -11 -0.139044499260128 -12 -0.144409577021306 -13 -0.139952610271037 -14 -0.137830644370195 -15 -0.138237560134025 -16 -0.0318228583907447 -17 0.762295174674438 -18 -0.0451085401986914 -19 -0.139574314980337 -20 -0.137706022735926 -21 -0.135000055250474 -22 -0.140944565680693 -23 -0.136209503772352 -24 0.0116248943043287 -25 0.668814012806624 -26 0.00194941922845652 -27 -0.132610614145838 -28 -0.110905629572418 -29 -0.142849770878147 -30 -0.143488824970324 -31 -0.134330197021416 -32 0.0538835449451642 -33 0.575132011890069 -34 0.0505429010331842 -35 -0.137467592425517 -36 -0.125877861208834 -37 -0.148631268110284 -38 -0.136115193781866 -39 -0.137935999911469 -40 0.0988849495063306 -41 0.486986888878156 -42 0.0878752779386658 -43 -0.132160917693119 -44 -0.129643145971886 -45 -0.149607998788336 -46 -0.13478438037923 -47 -0.133019295702461 -48 0.14888456218326 -49 0.393046641526692 -50 0.120499739018384 -51 -0.12075319894839 -52 -0.132962236637115 -53 -0.144429618272262 -54 -0.119605702139121 -55 -0.101682767008184 -56 0.152609045047458 -57 0.329588666724346 -58 0.139652155383137 -59 -0.114941895372878 -60 -0.126489834985415 -61 -0.139130898077927 -62 -0.137842155865592 -63 -0.0861253194251446 -64 0.150629648832854 -65 0.281018765279001 -66 0.13915358689329 -67 -0.0896859084267328 -68 -0.123313711110523 -69 -0.142874643960391 -70 -0.135495171639773 -71 -0.0711514410690874 -72 0.147596411956897 -73 0.251872397592371 -74 0.121839586873541 -75 -0.0575973326704366 -76 -0.126799299154496 -77 -0.144543550470945 -78 -0.124111534889387 -79 -0.0466899945416701 -80 0.131315152952299 -81 0.252160996580415 -82 0.10666721386194 -83 -0.0339037628702252 -84 -0.127183439268724 -85 -0.143132479164138 -86 -0.125851156910328 -87 -0.0147264358973224 -88 0.118449575410306 -89 0.201728736307241 -90 0.0886049712661605 -91 -0.00382129887238343 -92 -0.131751835679824 -93 -0.140792586519908 -94 -0.118637713578907 -95 0.02095681301022 -96 0.0813261521961686 -97 0.180482658314394 -98 0.0795745616300617 -99 0.0126200590172042 -100 -0.127051186194544 -101 -0.137444352404263 -102 -0.109978539446263 -103 0.0380230003474469 -104 0.0605417360053513 -105 0.171590136906878 -106 0.0604018417747588 -107 0.0402566049413917 -108 -0.100533719460918 -109 -0.140161784412186 -110 -0.10312957661735 -111 0.0485735840442751 -112 0.0373718997374129 -113 0.167648566872301 -114 0.0459260028708854 -115 0.046121183499996 -116 -0.110430068243273 -117 -0.140278458993756 -118 -0.0875776667752535 -119 0.0510626017064324 -120 0.0238451049454621 -121 0.16085061505561 -122 0.030276460935626 -123 0.0561232990819215 -124 -0.105464808595229 -125 -0.135546173373586 -126 -0.079801944025769 -127 0.0599654914699078 -128 0.0136534141192567 -129 0.15182365517752 -130 0.0197096306752212 -131 0.0534620866010349 -132 -0.0917414096626928 -133 -0.127172172660217 -134 -0.0514782042484449 -135 0.0685986797971808 -136 -0.00353858174559342 -137 0.142196102713977 -138 0.0134469000302172 -139 0.0396095015311617 -140 -0.0655242334449433 -141 -0.122832275916882 -142 -0.0479444786698279 -143 0.050751999392634 -144 -0.011019423438215 -145 0.132113807423818 -146 0.00290229828051553 -147 0.0324895304839574 -148 -0.0424435359166719 -149 -0.122337133535285 -150 -0.0293859066983028 -151 0.0383678650842516 -152 -0.0194742885265415 -153 0.126609912325987 -154 -0.00608808492180084 -155 0.0395330884838485 -156 -0.0368665742861527 -157 -0.121320946026168 -158 -0.0130016640468885 -159 0.0309861525800574 -160 -0.018558052599205 -161 0.137300590031426 -162 -0.00746032318164814 -163 0.0344072362770583 -164 -0.0323265667023796 -165 -0.108099357804514 -166 -0.00728009854612887 -167 0.0166450780849257 -168 -0.0143279526502486 -169 0.109076299549607 -170 -0.0115962562225386 -171 0.0177205211496241 -172 -0.0165802545828673 -173 -0.0995936967878659 -174 0.011605779237427 -175 0.00523220776952252 -176 -0.0161523464956781 -177 0.0989734877266892 -178 -0.0129792250545895 -179 0.00898322395475531 -180 -0.0153158199749067 -181 -0.0800824097692582 -182 0.0178200034942401 -183 -0.00474786676294106 -184 -0.0157551972778546 -185 0.0942532461909266 -186 -0.00969269130384397 -187 0.00652836785416871 -188 0.000910018587766529 -189 -0.0619232375104542 -190 0.0179928377991651 -191 -0.0159711302098274 -192 -0.018744717694339 -193 0.0877619939638119 -194 -0.00502556289883764 -195 -0.00667460786160017 -196 -0.0121723963071187 -197 -0.0449032831155359 -198 0.0212125953730812 -199 -0.0262860792829433 -200 -0.016162057795481 -201 0.0811913575034835 -202 -0.00330089426590078 -203 -0.0151519759511698 -204 -0.017960262928082 -205 -0.0215037814284608 -206 0.0182943543046035 -207 -0.0341747401956763 -208 -0.0146866352915169 -209 0.0792718771176078 -210 -0.00321919646839206 -211 -0.023611826169962 -212 -0.0126184079823646 -213 -0.000954698682123794 -214 0.0297339638938581 -215 -0.0312735654036501 -216 -0.0161173400247215 -217 0.0692180762363309 -218 -0.00283288277832248 -219 -0.0388702841271483 -220 0.00457538848515518 -221 0.017702534023738 -222 0.00544552208632338 -223 -0.0446102056961128 -224 -0.0135729757433799 -225 0.061318425794026 -226 -0.00494947349286398 -227 -0.0321768515141099 -228 0.00497720552190702 -229 0.0267952089554404 -230 -0.000738697332716776 -231 -0.0492659393491728 -232 -0.0148071186922711 -233 0.0545872347505704 -234 -0.00382673762292252 -235 -0.0282826124126036 -236 0.00794227173858329 -237 0.0378731489090914 -238 -0.00835973314997662 -239 -0.0447739268124712 -240 -0.0127983223158383 -241 0.0636581757214183 -242 -0.000854926428120144 -243 -0.0310943152069584 -244 -0.00259888627525403 -245 0.0558953643657078 -246 -0.0171154785163806 -247 -0.0391969466693341 -248 -0.0117324565371219 -249 0.0429666350675198 -250 -0.00749755396653516 -251 -0.0292116650124283 -252 -0.00980920002999956 -253 0.0728023253137216 -254 -0.0242433063094984 -255 -0.0319002210401708 -256 -0.0116887755426019 -257 0.0318202643673836 -258 -0.00934603617096265 -259 -0.0320628549574969 -260 -0.0138223876265734 -261 0.0891055411435177 -262 -0.0247651373213855 -263 -0.0309052036748624 -264 -0.0100532798596721 -265 0.0243378856936498 -266 -0.0045778331986359 -267 -0.026821752316485 -268 0.000989105341668746 -269 0.0888402056176568 -270 -0.0231248959628869 -271 -0.0335116780227126 -272 -0.0117587705487187 -273 0.0167906040316404 -274 -0.00329835726197584 -275 -0.0310756973538631 -276 -0.00167909352527941 -277 0.0731070181742769 -278 -0.0163827003248124 -279 -0.0314028257468305 -280 -0.00966921026548781 -281 0.0102706941067124 -282 0.00203072073029314 -283 -0.0308313739794282 -284 0.00547048142856235 -285 0.0539371640185639 -286 -0.00773101119983001 -287 -0.0303450446180751 -288 -0.00733600257056593 -289 0.00772935578415776 -290 0.00197958032226745 -291 -0.0273846524631412 -292 0.0112672702862109 -293 0.045049409831887 -294 0.00799728833473099 -295 -0.0200723316807648 -296 -0.00733856327080615 -297 -0.001791898850227 -298 0.00388503548910184 -299 -0.0339646317125627 -300 0.0269401380987506 -301 0.0295897394272477 -302 0.00882971838376906 -303 -0.0255032485942965 -304 -0.00586660773988975 -305 -0.0143116332821527 -306 0.00534299944397864 -307 -0.0288912695776605 -308 0.0357675762276391 -309 0.0162077381233435 -310 0.0175736980127429 -311 -0.0300119235674159 -312 -0.00563685913557697 -313 -0.0218208266576808 -314 0.00532212484976867 -315 -0.0165702155219983 -316 0.03160258037738 -317 0.0156089288371773 -318 0.0179977820150998 -319 -0.0255657663584924 -320 -0.00314013163781615 -321 -0.0174257276545932 -322 0.00856637995358983 -323 -0.00719462491658861 -324 0.0248064952084498 -325 0.0118797380566877 -326 0.0164280770611372 -327 -0.0202684072278218 -328 -0.000968003222461791 -329 -0.0392377749025386 -330 0.00616137008243444 -331 -0.00395889897053221 -332 0.0209975704367836 -333 0.0165669731399994 -334 0.0167876667126637 -335 -0.0162800034591445 -336 0.00157612684339945 -337 -0.0497601369515435 -338 0.00168009969601492 -339 -0.00390601780649794 -340 0.023648567413202 -341 0.0158640545767057 -342 0.0244736064929526 -343 -0.014150912333521 -344 0.00356083314932668 -345 -0.0588422955021098 -346 0.0064856866009032 -347 0.000344551175540443 -348 0.0364591845510023 -349 0.0166346451576227 -350 0.0251881929581815 -351 -0.01627179367963 -352 0.00180146013521436 -353 -0.0649333243287488 -354 0.00866862821696223 -355 -0.00279970209152114 -356 0.0263646717293285 -357 0.0211193247836195 -358 0.0214320318152118 -359 -0.0151817766787754 -360 0.00485821947887842 -361 -0.0715992844478512 -362 0.0108378220586832 -363 -0.00133094811006224 -364 0.0247532282729131 -365 0.016495069638089 -366 0.0229500626359929 -367 -0.0147226502159456 -368 0.00647045064867083 -369 -0.073385789691225 -370 0.0114312149907294 -371 0.00249982568991776 -372 0.0225934619182297 -373 0.0238409420604106 -374 0.0300604984923422 -375 -0.00852632300506627 -376 -0.000476408670694637 -377 -0.0669893069127702 -378 0.00708510482024032 -379 -0.00633855524099727 -380 0.0316293143381378 -381 0.0224467328328507 -382 0.024131620910292 -383 -0.0144420099990433 -384 -0.00656804302886437 -385 -0.0605047793511062 -386 -0.00244909720127004 -387 -0.00228283234187514 -388 0.0347630666059254 -389 0.0255372783174439 -390 0.0249118471215147 -391 -0.0156811043640799 -392 -0.0186780895478396 -393 -0.0500470638854078 -394 -0.0106681828115876 -395 0.00299348108637595 -396 0.0375478351991823 -397 0.0272676652644904 -398 0.0249262372804901 -399 -0.0128139590091909 -400 -0.0244260954570344 -401 -0.0296360177448727 -402 -0.0156522051426314 -403 0.00371335698467524 -404 0.0375532256529043 -405 0.025029221367199 -406 0.0252473835020561 -407 -0.00821195172190185 -408 -0.0340470970501328 -409 -0.0312374914683474 -410 -0.0253324219431086 -411 0.00556439075799471 -412 0.0343851616998114 -413 0.0296108649664041 -414 0.0244865536821279 -415 -0.00642396788124207 -416 -0.0381703614534087 -417 -0.0250381539188707 -418 -0.0339628157444566 -419 0.00243992182082179 -420 0.0377363310935231 -421 0.0279269519560789 -422 0.0330045526455719 -423 -0.00511644400658994 -424 -0.0450141067262116 -425 -0.0158485572785398 -426 -0.03936429400437 -427 0.00750953654479071 -428 0.0477707926390831 -429 0.0288151654666373 -430 0.0361802804944373 -431 -0.00712917753126239 -432 -0.0583334638414398 -433 -0.00267010949721538 -434 -0.0470917242637041 -435 0.00517042251078623 -436 0.037455528907572 -437 0.0343942996609878 -438 0.0332028694901519 -439 -0.00589078251875288 -440 -0.0637043911707992 -441 0.00666183788238349 -442 -0.0525517266899241 -443 0.00895232543554424 -444 0.0382697031000271 -445 0.0284021587291105 -446 0.0334942204660841 -447 -0.00596107650540415 -448 -0.0720966795946044 -449 0.0232447585917915 -450 -0.0608153052711438 -451 0.0116399374656849 -452 0.0381251008359883 -453 0.0346830496503291 -454 0.0398065018725046 -455 -0.000362012301347499 -456 -0.0785173577161933 -457 0.0300252474048187 -458 -0.0646382374089607 -459 0.00182900934772608 -460 0.0454064481406782 -461 0.0329664080833594 -462 0.0362011391795208 -463 -0.015347551228469 -464 -0.0671509681824761 -465 0.0296481877260799 -466 -0.0746946268126137 -467 0.00641586390856246 -468 0.0470505050556008 -469 0.0366327721242302 -470 0.0377150582080205 -471 -0.0257508722774105 -472 -0.0637151879640854 -473 0.0236744558402174 -474 -0.0680975388310196 -475 0.00255042565832294 -476 0.0512681657479446 -477 0.0403605713503443 -478 0.0359001859859639 -479 -0.029132074768914 -480 -0.0508034717438863 -481 0.0239527602817767 -482 -0.0575129877889322 -483 -0.00369721861473263 -484 0.0505988973989383 -485 0.0361467620291191 -486 0.0368416078787121 -487 -0.032834716815589 -488 -0.0434932898244011 -489 0.00911801422218572 -490 -0.0523537970034941 -491 -0.00821280045148764 -492 0.0487328578561805 -493 0.0392756061114285 -494 0.0353235938763974 -495 -0.0362172978867714 -496 -0.0301630804400009 -497 -0.00312318019738603 -498 -0.0442427016803628 -499 -0.0193549364510511 -500 0.0511246815814022 -501 0.0375525162491352 -502 0.0415223485757893 -503 -0.0434162929277164 -504 -0.0174703151437594 -505 -0.0123368071049746 -506 -0.030092552759096 -507 -0.0259859780907219 -508 0.0606752480087361 -509 0.0379827626715177 -510 0.0429850681863943 -511 -0.0519282882356438 -512 -0.0109290187868267 -513 -0.0198911294093943 -514 -0.0179805613817386 -515 -0.0373506310511416 -516 0.051718263130701 -517 0.0437679408364481 -518 0.0396991923289056 -519 -0.0598738380924832 -520 0.00227956370589332 -521 -0.0315948919060393 -522 -0.00689298816517704 -523 -0.0400683003822942 -524 0.0504116144670193 -525 0.0384452328799252 -526 0.0422779082777363 -527 -0.0628378541858099 -528 0.00648345925565532 -529 -0.0339074110875153 -530 0.00392215913901875 -531 -0.0447371320235012 -532 0.0499683975261213 -533 0.0445342493453758 -534 0.0358507522616787 -535 -0.0462975420467472 -536 0.0065134510940885 -537 -0.0446950607193122 -538 0.0078695055551158 -539 -0.0435564432715238 -540 0.0490054802985018 -541 0.0429751997079501 -542 0.0249996087628272 -543 -0.0442291516924361 -544 0.00869843705070359 -545 -0.0527698107871565 -546 0.00799130494240491 -547 -0.0323718744761137 -548 0.0410065929835765 -549 0.0475759092955819 -550 0.0175755467103812 -551 -0.0376302948184889 -552 0.00700412709467122 -553 -0.0608320774535298 -554 0.0048130064138099 -555 -0.0173352616909856 -556 0.0346973915783743 -557 0.0493903178904071 -558 0.0101108717892249 -559 -0.0265084973202414 -560 0.00358635362684098 -561 -0.0470576145955835 -562 9.30616028058754e-05 -563 -0.009328796983189 -564 0.0265128180743515 -565 0.047184891847067 -566 0.00219163772528874 -567 -0.0121413168884318 -568 -0.00749414671957915 -569 -0.0440813124278593 -570 -0.00813710471833781 -571 0.00114675437656366 -572 0.0162393335738264 -573 0.0504911799834256 -574 -0.00853374126083636 -575 0.000754234959055234 -576 -0.0117204282603961 -577 -0.0354583766676116 -578 -0.0192100536607529 -579 0.00839406418544501 -580 0.00960845163504427 -581 0.0469051048472684 -582 -0.00888902900418868 -583 0.0100099116353234 -584 -0.0179909146856837 -585 -0.0244293914853853 -586 -0.0256760479816353 -587 0.0212220748711766 -588 0.00632084475559719 -589 0.0387313178071368 -590 -0.000554587934313714 -591 0.0124601538908314 -592 -0.0295249733381573 -593 -0.0144520545351094 -594 -0.0331889907164869 -595 0.0212877712137735 -596 0.00590139546386316 -597 0.0273355576179403 -598 0.00735416770830889 -599 0.0128873818372069 -600 -0.0346175922714857 -601 -0.00857703845819032 -602 -0.0362631596335238 -603 0.0242701471795148 -604 0.0131286156780055 -605 0.00696270942062036 -606 0.0188195193146635 -607 0.0103462402033716 -608 -0.0417481445059436 -609 0.00414843805232896 -610 -0.041616927291058 -611 0.0282618294134973 -612 0.02337979916365 -613 -0.00673110780182958 -614 0.0290971868544386 -615 0.017105062059816 -616 -0.0516331546555055 -617 0.0142062007627548 -618 -0.046594757738246 -619 0.0214354322279795 -620 0.0395098993458107 -621 -0.0267793069789269 -622 0.0381323026116677 -623 0.0119813141067502 -624 -0.0521722164918075 -625 0.00907497826142658 -626 -0.0377414784171271 -627 0.0150907402651132 -628 0.0450797547657188 -629 -0.0367261749783528 -630 0.0474940016463238 -631 0.000764223750645765 -632 -0.0464350834773778 -633 0.00292816454844645 -634 -0.0345472431115147 -635 0.0140802099582887 -636 0.046733825449202 -637 -0.0331976317138726 -638 0.0505769917402539 -639 -0.00507624644834293 -640 -0.0344212973139547 -641 -0.00226163410076298 -642 -0.0197922791475835 -643 0.00383630490838536 -644 0.0363444998831405 -645 -0.0152447367341023 -646 0.0410735723819794 -647 -0.00866551034416046 -648 -0.0282028390344346 -649 -0.0138273162520216 -650 -0.013988974897117 -651 -0.00356215450658962 -652 0.0315292998347554 -653 0.00265684065928491 -654 0.0297462860635905 -655 -0.0132763024515043 -656 -0.0151844375022346 -657 -0.0222624267154824 -658 -0.00808783339763846 -659 -0.0118309039774407 -660 0.0257051832194354 -661 0.0139672196593361 -662 0.0297614515417377 -663 -0.021331361380431 -664 -0.00340733006761883 -665 -0.0283789637687968 -666 0.00461054911911345 -667 -0.018250569181885 -668 0.0226081124897128 -669 0.0323347720900023 -670 0.0223372263530966 -671 -0.0329163380381145 -672 0.00653265472132318 -673 -0.0348871958579168 -674 0.0141751097268468 -675 -0.0288075244305473 -676 0.00890270626763702 -677 0.0520479385647175 -678 0.0145072446621148 -679 -0.0415204263536339 -680 0.0171547215622114 -681 -0.0470557518960979 -682 0.0193254756646944 -683 -0.0255419271372531 -684 0.00688287993008186 -685 0.0526562424346814 -686 0.00589567882152875 -687 -0.0339847831638287 -688 0.02068125784698 -689 -0.0420544887083924 -690 0.013314784448658 -691 -0.0245768886587792 -692 0.00903037071195691 -693 0.0563846260400661 -694 -0.00286801368241955 -695 -0.0213844040017938 -696 0.0126629235111523 -697 -0.0309372292635961 -698 0.00276336704503089 -699 -0.015616452692981 -700 0.00419778210216804 -701 0.0536380666776548 -702 -0.012596502198999 -703 -0.0174715146408299 -704 0.00871952059420196 -705 -0.0227565257963439 -706 -0.00318256697092859 -707 -0.0038667173143475 -708 -0.00772968118848665 -709 0.0587207873901504 -710 -0.0193357475432715 -711 -0.0115269673972748 -712 -1.7421858581782e-05 -713 -0.012115015884252 -714 -0.0149797201478353 -715 0.00756590604451175 -716 -0.0126297132883264 -717 0.0594933008421939 -718 -0.0267304156748315 -719 0.00405070013394311 -720 -0.00821048967450404 -721 -0.000558386344514712 -722 -0.0178272992410061 -723 0.0152599286078378 -724 -0.0188510979465177 -725 0.056849489519984 -726 -0.0348880232368348 -727 0.0167352525344068 -728 -0.020642086446652 -729 0.00744701455708182 -730 -0.027702827538011 -731 0.0163569136090967 -732 -0.00705447320310994 -733 0.0411987341306314 -734 -0.0263596539233783 -735 0.0159406402225642 -736 -0.0248727169666328 -737 0.0157261169316672 -738 -0.039588636677443 -739 0.019694261902396 -740 0.00199064144206026 -741 0.0194114269206411 -742 -0.0122293779441828 -743 0.0185339904720133 -744 -0.0293392689309816 -745 0.0259396934186521 -746 -0.0358486717626121 -747 0.0137081983383313 -748 0.0135827148405382 -749 0.00581560048523093 -750 -0.00646581428956839 -751 0.0110071423563427 -752 -0.0246658880723862 -753 0.0234599435571564 -754 -0.0251762927530073 -755 0.00161483936854108 -756 0.0187635618473274 -757 -0.00741664776560292 -758 0.000689537114138283 -759 0.00538728043193201 -760 -0.0121682428833197 -761 0.0107275222262937 -762 -0.0128031079890448 -763 -0.0063592461488716 -764 0.0251504687162441 -765 -0.0239334767266835 -766 0.0114670525225061 -767 -0.00487523656435794 -768 -0.00763249778942318 -769 0.0104557895326864 -770 -0.00080890423935272 -771 -0.011995729852147 -772 0.0283817192968894 -773 -0.0287562177182345 -774 0.0217718323275436 -775 -0.0101305067053654 -776 0.0014155810398293 -777 0.00324589569032011 -778 0.00708416810583891 -779 -0.022169020480487 -780 0.0234205617460705 -781 -0.0208062585550248 -782 0.0203380109609699 -783 -0.020741474408173 -784 0.0135803686158102 -785 -0.00501416160524954 -786 0.0164731425495951 -787 -0.0268911165061168 -788 0.0106549298554577 -789 -0.00845501832015795 -790 0.023385887150049 -791 -0.0315824919189702 -792 0.0225937647734562 -793 -0.0122625199927789 -794 0.0237235394650212 -795 -0.027848735297458 -796 0.0102148026540408 -797 -0.00743306965465811 -798 0.0163964193052597 -799 -0.0205275094803387 -800 0.0268449934848731 -801 -0.0196194639874214 -802 0.0245047543387088 -803 -0.018846409722053 -804 0.00241958726037752 -805 -0.00956161998696891 -806 0.00999709244485242 -807 -0.010418326586979 -808 0.0168983481695472 -809 -0.0127566274792617 -810 0.0217393096303905 -811 -0.0103549544989814 -812 -0.00649684841130904 -813 -0.00620619985783303 -814 0.000695206197500287 -815 -0.00340809372595454 -816 0.0136404808756853 -817 -0.00453202592092646 -818 0.0101641460331084 -819 0.00219305363441266 -820 -0.01561469271582 -821 -0.00960597345375202 -822 -0.00481911400465912 -823 0.00944779427817189 -824 0.00716593193427114 -825 0.00794506991287553 -826 0.00465812347978461 -827 0.010359878693985 -828 -0.020236818592972 -829 -0.0111741972267443 -830 -0.0115950977160356 -831 0.020041269074572 -832 -0.00202251725285479 -833 0.015145433881013 -834 -0.00118772326275258 -835 0.0172802408084672 -836 -0.023141151004978 -837 -0.00684287010020396 -838 -0.0222362324134472 -839 0.0290833389346101 -840 -0.00863450139262045 -841 0.0198832975538718 -842 -0.0104466516619161 -843 0.0216180798136572 -844 -0.0224573860747524 -845 -0.0159317111021684 -846 -0.0124256114118245 -847 0.0319156051078274 -848 -0.020989683927269 -849 0.0331677982754718 -850 -0.0160779048828163 -851 0.0221942143966997 -852 -0.0207114091551809 -853 -0.0193864563297597 -854 -0.00631341525970981 -855 0.0256287918067823 -856 -0.0127670576748428 -857 0.0268901900517397 -858 -0.00929763294799435 -859 0.0179202360715882 -860 -0.0205297531444686 -861 -0.0205828726597419 -862 -0.00590540758107269 -863 0.0155451399031948 -864 -0.000875709073962753 -865 0.0168572022602374 -866 0.0028001228220118 -867 0.0104479294454913 -868 -0.0213679514358647 -869 -0.0190762037709474 -870 -0.00370777717818964 -871 0.00842042601552804 -872 0.010436753298379 -873 0.00801824546756709 -874 0.00905450943087241 -875 0.00193033358362754 -876 -0.0169120672468857 -877 -0.0180536990655791 -878 -0.00178520558336185 -879 0.00342242219620668 -880 0.0209308868044849 -881 0.00123969777653587 -882 0.0189079333389431 -883 -0.00681131675201787 -884 -0.0163080121259332 -885 -0.0199735256447265 -886 0.00366535906601146 -887 -0.00556880592163452 -888 0.0273660773092557 -889 -0.0056009291081872 -890 0.0258105464894864 -891 -0.0110454740226059 -892 -0.0163301324647326 -893 -0.0182941746735561 -894 0.00615903992467205 -895 -0.0162282546172766 -896 0.0386373258470084 -897 -0.0125315671068463 -898 0.0272787535301086 -899 -0.0123831641946371 -900 -0.0133878892299601 -901 -0.0190951688075489 -902 -0.00155326284649879 -903 -0.00410581328198279 -904 0.0316127784251008 -905 -0.00291818177314328 -906 0.0227531671125918 -907 -0.0109655434893085 -908 -0.012799308403064 -909 -0.0160017423860052 -910 -0.0119329107305064 -911 0.00364258505980213 -912 0.0217756860858317 -913 0.010678734327474 -914 0.0134293321905379 -915 -0.0116912782885493 -916 -0.0117630350181795 -917 -0.0135312586647217 -918 -0.0108968297221034 -919 0.00680452587364608 -920 0.0148747844715078 -921 0.0162949694832807 -922 0.00539910868322474 -923 -0.00933468939253505 -924 -0.0106686683836374 -925 -0.0124085659528643 -926 -0.0105711782287246 -927 0.00804235477237977 -928 0.00723801263775247 -929 0.0258061476363918 -930 -0.000684398388361734 -931 -0.00762103435599326 -932 -0.00904303753421588 -933 -0.00745301596275639 -934 -0.0103044124193686 -935 0.00595191617101465 -936 2.14978806537769e-05 -937 0.0352834100860169 -938 -0.00718396988767262 -939 -0.00837792361666858 -940 -0.00720830894781464 -941 -0.00721256609199517 -942 -0.0103563055654315 -943 0.0067689029813515 -944 -0.00615969185391731 -945 0.0366438822751357 -946 -0.00555322732762464 -947 -0.00559909850816345 -948 -0.00807226171468928 -949 -0.0072437466206792 -950 -0.00880657440286336 -951 -0.000406817302546885 -952 0.00334053871073266 -953 0.0282996182562531 -954 -0.00548530337183551 -955 -0.00508266404610792 -956 -0.00475991829082716 -957 -0.00556541448888507 -958 -0.00693102605261411 -959 -0.0068914951848352 -960 0.0124551723792496 -961 0.0205485192799428 -962 -0.0051215464298893 -963 -0.00544517946765895 -964 -0.00360902370385679 -965 -0.00389124817008502 -966 -0.00568418258247609 -967 -0.00451409289805204 -968 0.0126296974425642 -969 0.0119357974221847 -970 -0.00453960421739095 -971 -0.00389602063108262 -972 -0.00253945519375536 -973 -0.00246645747512712 -974 -0.00331176412956721 -975 -0.0045686818998509 -976 0.0119005284725565 -977 0.00477869960024375 -978 -0.00316972429661236 -979 -0.00294762637219811 -980 -0.00197263485163538 -981 -0.00240027919608702 -982 -0.00221728547295443 -983 -0.00268664184058333 -984 0.013078013292045 -985 -0.00054100792945422 -986 -0.000917736517605598 -987 -0.001567052283492 -988 -0.000836676486280892 -989 -0.00221208695388904 -990 -0.00248903162837629 -991 -0.0021625005351972 -992 0.0072477698974949 -993 0.00063353338379511 -994 0.000469110586525005 -995 -0.000441976909684745 -996 -0.000609378899765559 -997 -0.000809499361526555 -998 -0.0010684119522621 -999 -0.00124157520451844 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat deleted file mode 100644 index 0d92cc3..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat +++ /dev/null @@ -1,1001 +0,0 @@ -#scatter real total user system repeat -1 0.0375239849090576 0.029999999999994 0.029999999999994 0.0 1 -2 0.0333089828491211 0.0300000000000011 0.0300000000000011 0.0 2 -3 0.0330851078033447 0.0399999999999991 0.0399999999999991 0.0 3 -4 0.0331559181213379 0.0300000000000011 0.0300000000000011 0.0 4 -5 0.0330770015716553 0.0300000000000011 0.0300000000000011 0.0 5 -6 0.0331110954284668 0.0399999999999991 0.0399999999999991 0.0 6 -7 0.0357470512390137 0.0300000000000011 0.0300000000000011 0.0 7 -8 0.0360550880432129 0.0399999999999991 0.0399999999999991 0.0 8 -9 0.0575530529022217 0.0600000000000023 0.0600000000000023 0.0 9 -10 0.0352299213409424 0.0300000000000011 0.0300000000000011 0.0 10 -11 0.0335679054260254 0.029999999999994 0.029999999999994 0.0 11 -12 0.0332560539245605 0.0400000000000063 0.0400000000000063 0.0 12 -13 0.0364248752593994 0.029999999999994 0.029999999999994 0.0 13 -14 0.033275842666626 0.0400000000000063 0.0400000000000063 0.0 14 -15 0.0336852073669434 0.029999999999994 0.029999999999994 0.0 15 -16 0.0334939956665039 0.0300000000000011 0.0300000000000011 0.0 16 -17 0.0582540035247803 0.0600000000000023 0.0600000000000023 0.0 17 -18 0.0354878902435303 0.0399999999999991 0.0399999999999991 0.0 18 -19 0.0385029315948486 0.0399999999999991 0.0399999999999991 0.0 19 -20 0.0362861156463623 0.0300000000000011 0.0300000000000011 0.0 20 -21 0.035506010055542 0.0399999999999991 0.0399999999999991 0.0 21 -22 0.0334300994873047 0.0300000000000011 0.0300000000000011 0.0 22 -23 0.0329139232635498 0.0399999999999991 0.0399999999999991 0.0 23 -24 0.0332398414611816 0.0300000000000011 0.0300000000000011 0.0 24 -25 0.0579190254211426 0.0600000000000023 0.0600000000000023 0.0 25 -26 0.0361781120300293 0.029999999999994 0.029999999999994 0.0 26 -27 0.0338189601898193 0.0400000000000063 0.0400000000000063 0.0 27 -28 0.0347120761871338 0.029999999999994 0.029999999999994 0.0 28 -29 0.0333528518676758 0.0399999999999991 0.0399999999999991 0.0 29 -30 0.0332620143890381 0.0300000000000011 0.0300000000000011 0.0 30 -31 0.0329258441925049 0.0300000000000011 0.0300000000000011 0.0 31 -32 0.033383846282959 0.0300000000000011 0.0300000000000011 0.0 32 -33 0.0601050853729248 0.0700000000000003 0.0700000000000003 0.0 33 -34 0.0353600978851318 0.0300000000000011 0.0300000000000011 0.0 34 -35 0.0334739685058594 0.0300000000000011 0.0300000000000011 0.0 35 -36 0.0333919525146484 0.0399999999999991 0.0399999999999991 0.0 36 -37 0.034959077835083 0.0300000000000011 0.0300000000000011 0.0 37 -38 0.0332329273223877 0.029999999999994 0.029999999999994 0.0 38 -39 0.0333740711212158 0.0400000000000063 0.0400000000000063 0.0 39 -40 0.0358071327209473 0.029999999999994 0.029999999999994 0.0 40 -41 0.0592548847198486 0.0600000000000023 0.0600000000000023 0.0 41 -42 0.0328431129455566 0.0399999999999991 0.0399999999999991 0.0 42 -43 0.0325570106506348 0.0300000000000011 0.0300000000000011 0.0 43 -44 0.0326550006866455 0.0300000000000011 0.0300000000000011 0.0 44 -45 0.0341711044311523 0.0300000000000011 0.0300000000000011 0.0 45 -46 0.0385479927062988 0.0300000000000011 0.0300000000000011 0.0 46 -47 0.0355618000030518 0.0399999999999991 0.0399999999999991 0.0 47 -48 0.0336899757385254 0.0300000000000011 0.0300000000000011 0.0 48 -49 0.0340290069580078 0.0399999999999991 0.0399999999999991 0.0 49 -50 0.057744026184082 0.0499999999999972 0.0499999999999972 0.0 50 -51 0.0332441329956055 0.0399999999999991 0.0399999999999991 0.0 51 -52 0.0334060192108154 0.0300000000000011 0.0300000000000011 0.0 52 -53 0.0331339836120605 0.0300000000000011 0.0300000000000011 0.0 53 -54 0.0364229679107666 0.0399999999999991 0.0399999999999991 0.0 54 -55 0.0333731174468994 0.0300000000000011 0.0300000000000011 0.0 55 -56 0.0333929061889648 0.0399999999999991 0.0399999999999991 0.0 56 -57 0.0332939624786377 0.0300000000000011 0.0300000000000011 0.0 57 -58 0.0580708980560303 0.0600000000000023 0.0600000000000023 0.0 58 -59 0.0334999561309814 0.0300000000000011 0.0300000000000011 0.0 59 -60 0.0361111164093018 0.0399999999999991 0.0399999999999991 0.0 60 -61 0.0338809490203857 0.0300000000000011 0.0300000000000011 0.0 61 -62 0.0334880352020264 0.0399999999999991 0.0399999999999991 0.0 62 -63 0.0335280895233154 0.029999999999994 0.029999999999994 0.0 63 -64 0.0350849628448486 0.0300000000000011 0.0300000000000011 0.0 64 -65 0.033484935760498 0.0399999999999991 0.0399999999999991 0.0 65 -66 0.0578420162200928 0.0500000000000043 0.0500000000000043 0.0 66 -67 0.0367329120635986 0.0399999999999991 0.0399999999999991 0.0 67 -68 0.0351338386535645 0.0399999999999991 0.0399999999999991 0.0 68 -69 0.0334072113037109 0.0300000000000011 0.0300000000000011 0.0 69 -70 0.0339431762695312 0.0300000000000011 0.0300000000000011 0.0 70 -71 0.0332098007202148 0.0399999999999991 0.0399999999999991 0.0 71 -72 0.034019947052002 0.0300000000000011 0.0300000000000011 0.0 72 -73 0.0393249988555908 0.0399999999999991 0.0399999999999991 0.0 73 -74 0.0685920715332031 0.0600000000000023 0.0600000000000023 0.0 74 -75 0.034276008605957 0.0399999999999991 0.0399999999999991 0.0 75 -76 0.0334501266479492 0.029999999999994 0.029999999999994 0.0 76 -77 0.0332150459289551 0.0300000000000011 0.0300000000000011 0.0 77 -78 0.0333437919616699 0.0399999999999991 0.0399999999999991 0.0 78 -79 0.0332369804382324 0.0300000000000011 0.0300000000000011 0.0 79 -80 0.0360598564147949 0.0399999999999991 0.0399999999999991 0.0 80 -81 0.0335109233856201 0.0300000000000011 0.0300000000000011 0.0 81 -82 0.058535099029541 0.0600000000000023 0.0600000000000023 0.0 82 -83 0.0335390567779541 0.0300000000000011 0.0300000000000011 0.0 83 -84 0.0335979461669922 0.0399999999999991 0.0399999999999991 0.0 84 -85 0.0331900119781494 0.0300000000000011 0.0300000000000011 0.0 85 -86 0.03330397605896 0.0300000000000011 0.0300000000000011 0.0 86 -87 0.0366411209106445 0.0399999999999991 0.0399999999999991 0.0 87 -88 0.0347549915313721 0.0300000000000011 0.0300000000000011 0.0 88 -89 0.0331470966339111 0.0399999999999991 0.0399999999999991 0.0 89 -90 0.0598249435424805 0.0599999999999952 0.0599999999999952 0.0 90 -91 0.0330801010131836 0.0300000000000011 0.0300000000000011 0.0 91 -92 0.0329310894012451 0.0300000000000011 0.0300000000000011 0.0 92 -93 0.032721996307373 0.0300000000000011 0.0300000000000011 0.0 93 -94 0.0355160236358643 0.0399999999999991 0.0399999999999991 0.0 94 -95 0.0339648723602295 0.0300000000000011 0.0300000000000011 0.0 95 -96 0.032512903213501 0.0399999999999991 0.0399999999999991 0.0 96 -97 0.0330419540405273 0.0300000000000011 0.0300000000000011 0.0 97 -98 0.0334761142730713 0.0300000000000011 0.0300000000000011 0.0 98 -99 0.0660569667816162 0.0700000000000003 0.0700000000000003 0.0 99 -100 0.0368058681488037 0.0399999999999991 0.0399999999999991 0.0 100 -101 0.0347878932952881 0.0300000000000011 0.0300000000000011 0.0 101 -102 0.0338079929351807 0.029999999999994 0.029999999999994 0.0 102 -103 0.0334770679473877 0.029999999999994 0.029999999999994 0.0 103 -104 0.0329740047454834 0.0300000000000011 0.0300000000000011 0.0 104 -105 0.0333049297332764 0.0300000000000011 0.0300000000000011 0.0 105 -106 0.033519983291626 0.0399999999999991 0.0399999999999991 0.0 106 -107 0.0611979961395264 0.0600000000000023 0.0600000000000023 0.0 107 -108 0.0340859889984131 0.0300000000000011 0.0300000000000011 0.0 108 -109 0.0335040092468262 0.0399999999999991 0.0399999999999991 0.0 109 -110 0.0334708690643311 0.0300000000000011 0.0300000000000011 0.0 110 -111 0.0335888862609863 0.0300000000000011 0.0300000000000011 0.0 111 -112 0.033301830291748 0.0399999999999991 0.0399999999999991 0.0 112 -113 0.0332660675048828 0.0300000000000011 0.0300000000000011 0.0 113 -114 0.0370340347290039 0.0399999999999991 0.0399999999999991 0.0 114 -115 0.0586259365081787 0.0599999999999952 0.0599999999999952 0.0 115 -116 0.0336349010467529 0.0300000000000011 0.0300000000000011 0.0 116 -117 0.0350830554962158 0.0300000000000011 0.0300000000000011 0.0 117 -118 0.033397912979126 0.0399999999999991 0.0399999999999991 0.0 118 -119 0.0334382057189941 0.0300000000000011 0.0300000000000011 0.0 119 -120 0.0333988666534424 0.0399999999999991 0.0399999999999991 0.0 120 -121 0.0362389087677002 0.0300000000000011 0.0300000000000011 0.0 121 -122 0.033973217010498 0.0399999999999991 0.0399999999999991 0.0 122 -123 0.0578141212463379 0.0499999999999972 0.0499999999999972 0.0 123 -124 0.033689022064209 0.0400000000000063 0.0400000000000063 0.0 124 -125 0.0340471267700195 0.029999999999994 0.029999999999994 0.0 125 -126 0.0395550727844238 0.0400000000000063 0.0400000000000063 0.0 126 -127 0.0365371704101562 0.0399999999999991 0.0399999999999991 0.0 127 -128 0.034188985824585 0.0300000000000011 0.0300000000000011 0.0 128 -129 0.0336990356445312 0.0399999999999991 0.0399999999999991 0.0 129 -130 0.033534049987793 0.029999999999994 0.029999999999994 0.0 130 -131 0.0577750205993652 0.0600000000000023 0.0600000000000023 0.0 131 -132 0.0339059829711914 0.0300000000000011 0.0300000000000011 0.0 132 -133 0.0334141254425049 0.0300000000000011 0.0300000000000011 0.0 133 -134 0.0364940166473389 0.0399999999999991 0.0399999999999991 0.0 134 -135 0.0346250534057617 0.0399999999999991 0.0399999999999991 0.0 135 -136 0.03348708152771 0.0300000000000011 0.0300000000000011 0.0 136 -137 0.0330390930175781 0.0300000000000011 0.0300000000000011 0.0 137 -138 0.0333828926086426 0.0399999999999991 0.0399999999999991 0.0 138 -139 0.0577211380004883 0.0499999999999972 0.0499999999999972 0.0 139 -140 0.0367538928985596 0.0399999999999991 0.0399999999999991 0.0 140 -141 0.0339748859405518 0.0300000000000011 0.0300000000000011 0.0 141 -142 0.0334391593933105 0.0399999999999991 0.0399999999999991 0.0 142 -143 0.0334470272064209 0.0300000000000011 0.0300000000000011 0.0 143 -144 0.0356760025024414 0.0399999999999991 0.0399999999999991 0.0 144 -145 0.0332551002502441 0.0300000000000011 0.0300000000000011 0.0 145 -146 0.0335030555725098 0.0300000000000011 0.0300000000000011 0.0 146 -147 0.0603840351104736 0.0600000000000023 0.0600000000000023 0.0 147 -148 0.033195972442627 0.0399999999999991 0.0399999999999991 0.0 148 -149 0.0326118469238281 0.0300000000000011 0.0300000000000011 0.0 149 -150 0.0324470996856689 0.029999999999994 0.029999999999994 0.0 150 -151 0.0330009460449219 0.0400000000000063 0.0400000000000063 0.0 151 -152 0.0324180126190186 0.029999999999994 0.029999999999994 0.0 152 -153 0.0400440692901611 0.0400000000000063 0.0400000000000063 0.0 153 -154 0.0362899303436279 0.029999999999994 0.029999999999994 0.0 154 -155 0.0349278450012207 0.0400000000000063 0.0400000000000063 0.0 155 -156 0.0600240230560303 0.0599999999999952 0.0599999999999952 0.0 156 -157 0.0334708690643311 0.0300000000000011 0.0300000000000011 0.0 157 -158 0.0335209369659424 0.0399999999999991 0.0399999999999991 0.0 158 -159 0.0335359573364258 0.0300000000000011 0.0300000000000011 0.0 159 -160 0.0334579944610596 0.0300000000000011 0.0300000000000011 0.0 160 -161 0.0362169742584229 0.0399999999999991 0.0399999999999991 0.0 161 -162 0.0338380336761475 0.0300000000000011 0.0300000000000011 0.0 162 -163 0.0335981845855713 0.0399999999999991 0.0399999999999991 0.0 163 -164 0.0578079223632812 0.0499999999999972 0.0499999999999972 0.0 164 -165 0.0334019660949707 0.0399999999999991 0.0399999999999991 0.0 165 -166 0.0331990718841553 0.0300000000000011 0.0300000000000011 0.0 166 -167 0.0360620021820068 0.0399999999999991 0.0399999999999991 0.0 167 -168 0.0344648361206055 0.0300000000000011 0.0300000000000011 0.0 168 -169 0.0341999530792236 0.0399999999999991 0.0399999999999991 0.0 169 -170 0.0331728458404541 0.0300000000000011 0.0300000000000011 0.0 170 -171 0.0350158214569092 0.0300000000000011 0.0300000000000011 0.0 171 -172 0.0580298900604248 0.0600000000000023 0.0600000000000023 0.0 172 -173 0.0335690975189209 0.0300000000000011 0.0300000000000011 0.0 173 -174 0.036384105682373 0.0399999999999991 0.0399999999999991 0.0 174 -175 0.034492015838623 0.0300000000000011 0.0300000000000011 0.0 175 -176 0.03336501121521 0.0399999999999991 0.0399999999999991 0.0 176 -177 0.0331079959869385 0.029999999999994 0.029999999999994 0.0 177 -178 0.0331339836120605 0.0300000000000011 0.0300000000000011 0.0 178 -179 0.0350081920623779 0.0399999999999991 0.0399999999999991 0.0 179 -180 0.0666470527648926 0.0700000000000003 0.0700000000000003 0.0 180 -181 0.0338301658630371 0.0300000000000011 0.0300000000000011 0.0 181 -182 0.0340950489044189 0.0300000000000011 0.0300000000000011 0.0 182 -183 0.0334529876708984 0.0399999999999991 0.0399999999999991 0.0 183 -184 0.0331630706787109 0.0300000000000011 0.0300000000000011 0.0 184 -185 0.0333731174468994 0.0300000000000011 0.0300000000000011 0.0 185 -186 0.0330700874328613 0.0399999999999991 0.0399999999999991 0.0 186 -187 0.0334250926971436 0.0300000000000011 0.0300000000000011 0.0 187 -188 0.0619869232177734 0.0600000000000023 0.0600000000000023 0.0 188 -189 0.0336270332336426 0.0399999999999991 0.0399999999999991 0.0 189 -190 0.0331699848175049 0.029999999999994 0.029999999999994 0.0 190 -191 0.033411979675293 0.0300000000000011 0.0300000000000011 0.0 191 -192 0.0346980094909668 0.0399999999999991 0.0399999999999991 0.0 192 -193 0.0330710411071777 0.0300000000000011 0.0300000000000011 0.0 193 -194 0.0360589027404785 0.0399999999999991 0.0399999999999991 0.0 194 -195 0.0341928005218506 0.0300000000000011 0.0300000000000011 0.0 195 -196 0.0596940517425537 0.0600000000000023 0.0600000000000023 0.0 196 -197 0.0352950096130371 0.0300000000000011 0.0300000000000011 0.0 197 -198 0.0335190296173096 0.0399999999999991 0.0399999999999991 0.0 198 -199 0.0334808826446533 0.0300000000000011 0.0300000000000011 0.0 199 -200 0.0335469245910645 0.0399999999999991 0.0399999999999991 0.0 200 -201 0.035862922668457 0.0300000000000011 0.0300000000000011 0.0 201 -202 0.034390926361084 0.0399999999999991 0.0399999999999991 0.0 202 -203 0.0333080291748047 0.0300000000000011 0.0300000000000011 0.0 203 -204 0.0580418109893799 0.0599999999999952 0.0599999999999952 0.0 204 -205 0.0345079898834229 0.0300000000000011 0.0300000000000011 0.0 205 -206 0.041719913482666 0.0499999999999972 0.0399999999999991 0.01 206 -207 0.0368390083312988 0.0399999999999991 0.0399999999999991 0.0 207 -208 0.0351078510284424 0.0300000000000011 0.0300000000000011 0.0 208 -209 0.0345809459686279 0.0399999999999991 0.0399999999999991 0.0 209 -210 0.0339300632476807 0.0300000000000011 0.0300000000000011 0.0 210 -211 0.0333361625671387 0.0399999999999991 0.0399999999999991 0.0 211 -212 0.0581560134887695 0.0600000000000023 0.0600000000000023 0.0 212 -213 0.0329880714416504 0.0300000000000011 0.0300000000000011 0.0 213 -214 0.0360338687896729 0.0300000000000011 0.0300000000000011 0.0 214 -215 0.0338609218597412 0.0399999999999991 0.0399999999999991 0.0 215 -216 0.0329849720001221 0.0300000000000011 0.0300000000000011 0.0 216 -217 0.0327110290527344 0.029999999999994 0.029999999999994 0.0 217 -218 0.0328159332275391 0.0400000000000063 0.0400000000000063 0.0 218 -219 0.0330610275268555 0.029999999999994 0.029999999999994 0.0 219 -220 0.03336501121521 0.0300000000000011 0.0300000000000011 0.0 220 -221 0.0611529350280762 0.0600000000000023 0.0600000000000023 0.0 221 -222 0.0351941585540771 0.0399999999999991 0.0399999999999991 0.0 222 -223 0.0333490371704102 0.0300000000000011 0.0300000000000011 0.0 223 -224 0.0350041389465332 0.0399999999999991 0.0399999999999991 0.0 224 -225 0.0333740711212158 0.0300000000000011 0.0300000000000011 0.0 225 -226 0.0332489013671875 0.0300000000000011 0.0300000000000011 0.0 226 -227 0.0336949825286865 0.0399999999999991 0.0399999999999991 0.0 227 -228 0.035956859588623 0.0300000000000011 0.0300000000000011 0.0 228 -229 0.0582809448242188 0.0599999999999952 0.0599999999999952 0.0 229 -230 0.0335919857025146 0.0300000000000011 0.0300000000000011 0.0 230 -231 0.0334489345550537 0.0399999999999991 0.0399999999999991 0.0 231 -232 0.0346810817718506 0.0300000000000011 0.0300000000000011 0.0 232 -233 0.0393500328063965 0.0399999999999991 0.0399999999999991 0.0 233 -234 0.0365040302276611 0.0399999999999991 0.0399999999999991 0.0 234 -235 0.0341880321502686 0.0300000000000011 0.0300000000000011 0.0 235 -236 0.0340659618377686 0.0399999999999991 0.0399999999999991 0.0 236 -237 0.0579462051391602 0.0500000000000043 0.0500000000000043 0.0 237 -238 0.0337111949920654 0.0399999999999991 0.0399999999999991 0.0 238 -239 0.0335190296173096 0.0300000000000011 0.0300000000000011 0.0 239 -240 0.0335848331451416 0.0399999999999991 0.0399999999999991 0.0 240 -241 0.0367398262023926 0.0300000000000011 0.0300000000000011 0.0 241 -242 0.0346360206604004 0.0399999999999991 0.0399999999999991 0.0 242 -243 0.0332989692687988 0.0300000000000011 0.0300000000000011 0.0 243 -244 0.0345680713653564 0.029999999999994 0.029999999999994 0.0 244 -245 0.0580320358276367 0.0600000000000023 0.0600000000000023 0.0 245 -246 0.0333890914916992 0.0399999999999991 0.0399999999999991 0.0 246 -247 0.0363030433654785 0.0300000000000011 0.0300000000000011 0.0 247 -248 0.0343329906463623 0.0399999999999991 0.0399999999999991 0.0 248 -249 0.0347940921783447 0.0300000000000011 0.0300000000000011 0.0 249 -250 0.0332629680633545 0.0300000000000011 0.0300000000000011 0.0 250 -251 0.0347621440887451 0.0399999999999991 0.0399999999999991 0.0 251 -252 0.0334999561309814 0.0300000000000011 0.0300000000000011 0.0 252 -253 0.0580670833587646 0.0600000000000023 0.0600000000000023 0.0 253 -254 0.0367870330810547 0.0399999999999991 0.0399999999999991 0.0 254 -255 0.0336589813232422 0.0300000000000011 0.0300000000000011 0.0 255 -256 0.0331900119781494 0.029999999999994 0.029999999999994 0.0 256 -257 0.0331740379333496 0.0399999999999991 0.0399999999999991 0.0 257 -258 0.0331830978393555 0.0300000000000011 0.0300000000000011 0.0 258 -259 0.037837028503418 0.0399999999999991 0.0399999999999991 0.0 259 -260 0.0366449356079102 0.0300000000000011 0.0300000000000011 0.0 260 -261 0.0612552165985107 0.0599999999999952 0.0599999999999952 0.0 261 -262 0.0344550609588623 0.0300000000000011 0.0300000000000011 0.0 262 -263 0.0333309173583984 0.0300000000000011 0.0300000000000011 0.0 263 -264 0.0331869125366211 0.0399999999999991 0.0399999999999991 0.0 264 -265 0.0332980155944824 0.0300000000000011 0.0300000000000011 0.0 265 -266 0.0332081317901611 0.0300000000000011 0.0300000000000011 0.0 266 -267 0.0328857898712158 0.0399999999999991 0.0399999999999991 0.0 267 -268 0.036323070526123 0.0300000000000011 0.0300000000000011 0.0 268 -269 0.0584030151367188 0.0599999999999952 0.0599999999999952 0.0 269 -270 0.0336670875549316 0.0399999999999991 0.0399999999999991 0.0 270 -271 0.0333220958709717 0.0300000000000011 0.0300000000000011 0.0 271 -272 0.0331919193267822 0.0300000000000011 0.0300000000000011 0.0 272 -273 0.0332930088043213 0.0399999999999991 0.0399999999999991 0.0 273 -274 0.0363700389862061 0.0300000000000011 0.0300000000000011 0.0 274 -275 0.0336799621582031 0.0399999999999991 0.0399999999999991 0.0 275 -276 0.0346400737762451 0.0300000000000011 0.0300000000000011 0.0 276 -277 0.0583391189575195 0.0600000000000023 0.0600000000000023 0.0 277 -278 0.0353269577026367 0.0300000000000011 0.0300000000000011 0.0 278 -279 0.0334451198577881 0.0399999999999991 0.0399999999999991 0.0 279 -280 0.0338170528411865 0.0300000000000011 0.0300000000000011 0.0 280 -281 0.0358221530914307 0.0399999999999991 0.0399999999999991 0.0 281 -282 0.033682107925415 0.0300000000000011 0.0300000000000011 0.0 282 -283 0.0331659317016602 0.029999999999994 0.029999999999994 0.0 283 -284 0.0337538719177246 0.0399999999999991 0.0399999999999991 0.0 284 -285 0.0577969551086426 0.0600000000000023 0.0600000000000023 0.0 285 -286 0.0399131774902344 0.0399999999999991 0.0399999999999991 0.0 286 -287 0.0358040332794189 0.0300000000000011 0.0300000000000011 0.0 287 -288 0.0327050685882568 0.0300000000000011 0.0300000000000011 0.0 288 -289 0.0338749885559082 0.0399999999999991 0.0399999999999991 0.0 289 -290 0.0324099063873291 0.0300000000000011 0.0300000000000011 0.0 290 -291 0.032336950302124 0.0300000000000011 0.0300000000000011 0.0 291 -292 0.0333211421966553 0.0399999999999991 0.0399999999999991 0.0 292 -293 0.0579719543457031 0.0499999999999972 0.0499999999999972 0.0 293 -294 0.0362699031829834 0.0399999999999991 0.0399999999999991 0.0 294 -295 0.0343790054321289 0.0300000000000011 0.0300000000000011 0.0 295 -296 0.0331552028656006 0.0399999999999991 0.0399999999999991 0.0 296 -297 0.0328569412231445 0.0300000000000011 0.0300000000000011 0.0 297 -298 0.0329990386962891 0.0300000000000011 0.0300000000000011 0.0 298 -299 0.0327639579772949 0.0399999999999991 0.0399999999999991 0.0 299 -300 0.0331850051879883 0.0300000000000011 0.0300000000000011 0.0 300 -301 0.0610020160675049 0.0600000000000023 0.0600000000000023 0.0 301 -302 0.0331580638885498 0.0300000000000011 0.0300000000000011 0.0 302 -303 0.0325980186462402 0.0399999999999991 0.0399999999999991 0.0 303 -304 0.0325989723205566 0.029999999999994 0.029999999999994 0.0 304 -305 0.0341310501098633 0.0300000000000011 0.0300000000000011 0.0 305 -306 0.0326070785522461 0.0399999999999991 0.0399999999999991 0.0 306 -307 0.032383918762207 0.0300000000000011 0.0300000000000011 0.0 307 -308 0.0361649990081787 0.0300000000000011 0.0300000000000011 0.0 308 -309 0.0585198402404785 0.0600000000000023 0.0600000000000023 0.0 309 -310 0.0331130027770996 0.0399999999999991 0.0399999999999991 0.0 310 -311 0.0329859256744385 0.0300000000000011 0.0300000000000011 0.0 311 -312 0.0329129695892334 0.0300000000000011 0.0300000000000011 0.0 312 -313 0.0405938625335693 0.0399999999999991 0.0399999999999991 0.0 313 -314 0.0329680442810059 0.0300000000000011 0.0300000000000011 0.0 314 -315 0.0359671115875244 0.0399999999999991 0.0399999999999991 0.0 315 -316 0.0347959995269775 0.0399999999999991 0.0399999999999991 0.0 316 -317 0.0335128307342529 0.0300000000000011 0.0300000000000011 0.0 317 -318 0.0581021308898926 0.0599999999999952 0.0599999999999952 0.0 318 -319 0.033390998840332 0.0300000000000011 0.0300000000000011 0.0 319 -320 0.0332300662994385 0.0300000000000011 0.0300000000000011 0.0 320 -321 0.0363011360168457 0.0399999999999991 0.0399999999999991 0.0 321 -322 0.0331549644470215 0.0300000000000011 0.0300000000000011 0.0 322 -323 0.0341241359710693 0.0399999999999991 0.0399999999999991 0.0 323 -324 0.0336441993713379 0.0300000000000011 0.0300000000000011 0.0 324 -325 0.0336179733276367 0.0300000000000011 0.0300000000000011 0.0 325 -326 0.0578069686889648 0.0599999999999952 0.0599999999999952 0.0 326 -327 0.0333080291748047 0.0400000000000063 0.0400000000000063 0.0 327 -328 0.0363671779632568 0.029999999999994 0.029999999999994 0.0 328 -329 0.0343098640441895 0.0400000000000063 0.0400000000000063 0.0 329 -330 0.033099889755249 0.029999999999994 0.029999999999994 0.0 330 -331 0.0332112312316895 0.0300000000000011 0.0300000000000011 0.0 331 -332 0.0349369049072266 0.0399999999999991 0.0399999999999991 0.0 332 -333 0.033397912979126 0.0300000000000011 0.0300000000000011 0.0 333 -334 0.0581459999084473 0.0600000000000023 0.0600000000000023 0.0 334 -335 0.0366590023040771 0.0300000000000011 0.0300000000000011 0.0 335 -336 0.0336220264434814 0.0399999999999991 0.0399999999999991 0.0 336 -337 0.0332498550415039 0.0300000000000011 0.0300000000000011 0.0 337 -338 0.0331971645355225 0.0399999999999991 0.0399999999999991 0.0 338 -339 0.0332369804382324 0.0300000000000011 0.0300000000000011 0.0 339 -340 0.0404288768768311 0.0399999999999991 0.0399999999999991 0.0 340 -341 0.0335631370544434 0.0300000000000011 0.0300000000000011 0.0 341 -342 0.0613040924072266 0.0599999999999952 0.0599999999999952 0.0 342 -343 0.0339159965515137 0.0399999999999991 0.0399999999999991 0.0 343 -344 0.0333619117736816 0.0300000000000011 0.0300000000000011 0.0 344 -345 0.0331740379333496 0.0300000000000011 0.0300000000000011 0.0 345 -346 0.0331220626831055 0.0399999999999991 0.0399999999999991 0.0 346 -347 0.0331380367279053 0.0300000000000011 0.0300000000000011 0.0 347 -348 0.0358641147613525 0.0399999999999991 0.0399999999999991 0.0 348 -349 0.0335299968719482 0.0300000000000011 0.0300000000000011 0.0 349 -350 0.0584430694580078 0.0600000000000023 0.0600000000000023 0.0 350 -351 0.0353488922119141 0.029999999999994 0.029999999999994 0.0 351 -352 0.03336501121521 0.0400000000000063 0.0400000000000063 0.0 352 -353 0.0332889556884766 0.029999999999994 0.029999999999994 0.0 353 -354 0.0334041118621826 0.0300000000000011 0.0300000000000011 0.0 354 -355 0.0363349914550781 0.0399999999999991 0.0399999999999991 0.0 355 -356 0.0346698760986328 0.0300000000000011 0.0300000000000011 0.0 356 -357 0.0335850715637207 0.0399999999999991 0.0399999999999991 0.0 357 -358 0.0599031448364258 0.0600000000000023 0.0600000000000023 0.0 358 -359 0.0340287685394287 0.0300000000000011 0.0300000000000011 0.0 359 -360 0.0335278511047363 0.0300000000000011 0.0300000000000011 0.0 360 -361 0.0349221229553223 0.0399999999999991 0.0399999999999991 0.0 361 -362 0.0355300903320312 0.0300000000000011 0.0300000000000011 0.0 362 -363 0.0349609851837158 0.0399999999999991 0.0399999999999991 0.0 363 -364 0.0329630374908447 0.0300000000000011 0.0300000000000011 0.0 364 -365 0.0333020687103271 0.0399999999999991 0.0399999999999991 0.0 365 -366 0.065701961517334 0.0599999999999952 0.0599999999999952 0.0 366 -367 0.0337100028991699 0.0400000000000063 0.0400000000000063 0.0 367 -368 0.0366199016571045 0.029999999999994 0.029999999999994 0.0 368 -369 0.0340349674224854 0.0400000000000063 0.0400000000000063 0.0 369 -370 0.0338621139526367 0.029999999999994 0.029999999999994 0.0 370 -371 0.0332958698272705 0.0300000000000011 0.0300000000000011 0.0 371 -372 0.0330479145050049 0.0399999999999991 0.0399999999999991 0.0 372 -373 0.033778190612793 0.0300000000000011 0.0300000000000011 0.0 373 -374 0.0588729381561279 0.0600000000000023 0.0600000000000023 0.0 374 -375 0.036099910736084 0.0399999999999991 0.0399999999999991 0.0 375 -376 0.0358579158782959 0.0300000000000011 0.0300000000000011 0.0 376 -377 0.03354811668396 0.0399999999999991 0.0399999999999991 0.0 377 -378 0.0334241390228271 0.0300000000000011 0.0300000000000011 0.0 378 -379 0.0335249900817871 0.0300000000000011 0.0300000000000011 0.0 379 -380 0.0329539775848389 0.0399999999999991 0.0399999999999991 0.0 380 -381 0.0334098339080811 0.0300000000000011 0.0300000000000011 0.0 381 -382 0.0632669925689697 0.0599999999999952 0.0599999999999952 0.0 382 -383 0.033499002456665 0.0399999999999991 0.0399999999999991 0.0 383 -384 0.0333430767059326 0.0300000000000011 0.0300000000000011 0.0 384 -385 0.03495192527771 0.0300000000000011 0.0300000000000011 0.0 385 -386 0.0333530902862549 0.0399999999999991 0.0399999999999991 0.0 386 -387 0.0335168838500977 0.0300000000000011 0.0300000000000011 0.0 387 -388 0.0355610847473145 0.0399999999999991 0.0399999999999991 0.0 388 -389 0.0336718559265137 0.0300000000000011 0.0300000000000011 0.0 389 -390 0.0594749450683594 0.0600000000000023 0.0600000000000023 0.0 390 -391 0.03342604637146 0.029999999999994 0.029999999999994 0.0 391 -392 0.0333490371704102 0.0400000000000063 0.0400000000000063 0.0 392 -393 0.0401210784912109 0.0399999999999991 0.0399999999999991 0.0 393 -394 0.0331671237945557 0.0300000000000011 0.0300000000000011 0.0 394 -395 0.0364630222320557 0.0399999999999991 0.0399999999999991 0.0 395 -396 0.0339119434356689 0.0300000000000011 0.0300000000000011 0.0 396 -397 0.0332529544830322 0.029999999999994 0.029999999999994 0.0 397 -398 0.0581979751586914 0.0600000000000023 0.0600000000000023 0.0 398 -399 0.0337510108947754 0.0300000000000011 0.0300000000000011 0.0 399 -400 0.0334861278533936 0.0300000000000011 0.0300000000000011 0.0 400 -401 0.0362730026245117 0.0300000000000011 0.0300000000000011 0.0 401 -402 0.03330397605896 0.0399999999999991 0.0399999999999991 0.0 402 -403 0.0347201824188232 0.0300000000000011 0.0300000000000011 0.0 403 -404 0.0331459045410156 0.0399999999999991 0.0399999999999991 0.0 404 -405 0.0333847999572754 0.0300000000000011 0.0300000000000011 0.0 405 -406 0.0580871105194092 0.0599999999999952 0.0599999999999952 0.0 406 -407 0.0334339141845703 0.0300000000000011 0.0300000000000011 0.0 407 -408 0.0370500087738037 0.0399999999999991 0.0399999999999991 0.0 408 -409 0.0344600677490234 0.0300000000000011 0.0300000000000011 0.0 409 -410 0.0331830978393555 0.0399999999999991 0.0399999999999991 0.0 410 -411 0.0335149765014648 0.0300000000000011 0.0300000000000011 0.0 411 -412 0.0346379280090332 0.0300000000000011 0.0300000000000011 0.0 412 -413 0.0334169864654541 0.0399999999999991 0.0399999999999991 0.0 413 -414 0.0582180023193359 0.0600000000000023 0.0600000000000023 0.0 414 -415 0.0361251831054688 0.0300000000000011 0.0300000000000011 0.0 415 -416 0.0350911617279053 0.0399999999999991 0.0399999999999991 0.0 416 -417 0.0334968566894531 0.0300000000000011 0.0300000000000011 0.0 417 -418 0.0332348346710205 0.029999999999994 0.029999999999994 0.0 418 -419 0.0332620143890381 0.0400000000000063 0.0400000000000063 0.0 419 -420 0.0409719944000244 0.0399999999999991 0.0399999999999991 0.0 420 -421 0.0333600044250488 0.0300000000000011 0.0300000000000011 0.0 421 -422 0.0630040168762207 0.0599999999999952 0.0599999999999952 0.0 422 -423 0.0343139171600342 0.0399999999999991 0.0399999999999991 0.0 423 -424 0.0333878993988037 0.0300000000000011 0.0300000000000011 0.0 424 -425 0.0333099365234375 0.0300000000000011 0.0300000000000011 0.0 425 -426 0.0331859588623047 0.0399999999999991 0.0399999999999991 0.0 426 -427 0.0331718921661377 0.0300000000000011 0.0300000000000011 0.0 427 -428 0.0377118587493896 0.0399999999999991 0.0399999999999991 0.0 428 -429 0.0332839488983154 0.0300000000000011 0.0300000000000011 0.0 429 -430 0.0597720146179199 0.0600000000000023 0.0600000000000023 0.0 430 -431 0.0336380004882812 0.029999999999994 0.029999999999994 0.0 431 -432 0.0333139896392822 0.0400000000000063 0.0400000000000063 0.0 432 -433 0.0331470966339111 0.029999999999994 0.029999999999994 0.0 433 -434 0.0334060192108154 0.0300000000000011 0.0300000000000011 0.0 434 -435 0.0361709594726562 0.0399999999999991 0.0399999999999991 0.0 435 -436 0.0336370468139648 0.0300000000000011 0.0300000000000011 0.0 436 -437 0.0333271026611328 0.0399999999999991 0.0399999999999991 0.0 437 -438 0.0596990585327148 0.0500000000000043 0.0500000000000043 0.0 438 -439 0.0337719917297363 0.0399999999999991 0.0399999999999991 0.0 439 -440 0.0335121154785156 0.0300000000000011 0.0300000000000011 0.0 440 -441 0.0355470180511475 0.0399999999999991 0.0399999999999991 0.0 441 -442 0.0341551303863525 0.0300000000000011 0.0300000000000011 0.0 442 -443 0.033562183380127 0.0399999999999991 0.0399999999999991 0.0 443 -444 0.033012866973877 0.0300000000000011 0.0300000000000011 0.0 444 -445 0.0334839820861816 0.029999999999994 0.029999999999994 0.0 445 -446 0.064687967300415 0.0700000000000003 0.0700000000000003 0.0 446 -447 0.0336949825286865 0.0300000000000011 0.0300000000000011 0.0 447 -448 0.0361959934234619 0.0399999999999991 0.0399999999999991 0.0 448 -449 0.0349109172821045 0.0300000000000011 0.0300000000000011 0.0 449 -450 0.0339109897613525 0.0399999999999991 0.0399999999999991 0.0 450 -451 0.0331861972808838 0.0300000000000011 0.0300000000000011 0.0 451 -452 0.0328741073608398 0.0300000000000011 0.0300000000000011 0.0 452 -453 0.0332541465759277 0.0399999999999991 0.0399999999999991 0.0 453 -454 0.0579590797424316 0.0500000000000043 0.0500000000000043 0.0 454 -455 0.0366909503936768 0.0399999999999991 0.0399999999999991 0.0 455 -456 0.0345089435577393 0.0300000000000011 0.0300000000000011 0.0 456 -457 0.0332140922546387 0.0399999999999991 0.0399999999999991 0.0 457 -458 0.0330581665039062 0.029999999999994 0.029999999999994 0.0 458 -459 0.0331969261169434 0.0300000000000011 0.0300000000000011 0.0 459 -460 0.0328719615936279 0.0399999999999991 0.0399999999999991 0.0 460 -461 0.033440113067627 0.0300000000000011 0.0300000000000011 0.0 461 -462 0.0617790222167969 0.0600000000000023 0.0600000000000023 0.0 462 -463 0.033750057220459 0.0300000000000011 0.0300000000000011 0.0 463 -464 0.0332808494567871 0.0399999999999991 0.0399999999999991 0.0 464 -465 0.0350358486175537 0.0300000000000011 0.0300000000000011 0.0 465 -466 0.0332400798797607 0.0399999999999991 0.0399999999999991 0.0 466 -467 0.0332620143890381 0.0300000000000011 0.0300000000000011 0.0 467 -468 0.0343048572540283 0.0300000000000011 0.0300000000000011 0.0 468 -469 0.0357210636138916 0.0399999999999991 0.0399999999999991 0.0 469 -470 0.0584299564361572 0.0599999999999952 0.0599999999999952 0.0 470 -471 0.0334739685058594 0.0300000000000011 0.0300000000000011 0.0 471 -472 0.0334410667419434 0.0300000000000011 0.0300000000000011 0.0 472 -473 0.0423488616943359 0.0499999999999972 0.0499999999999972 0.0 473 -474 0.033174991607666 0.0300000000000011 0.0300000000000011 0.0 474 -475 0.0360331535339355 0.0300000000000011 0.0300000000000011 0.0 475 -476 0.036052942276001 0.0399999999999991 0.0399999999999991 0.0 476 -477 0.0333659648895264 0.0300000000000011 0.0300000000000011 0.0 477 -478 0.0577530860900879 0.0600000000000023 0.0600000000000023 0.0 478 -479 0.0335140228271484 0.0399999999999991 0.0399999999999991 0.0 479 -480 0.0333487987518311 0.0300000000000011 0.0300000000000011 0.0 480 -481 0.0346870422363281 0.0300000000000011 0.0300000000000011 0.0 481 -482 0.0349428653717041 0.0399999999999991 0.0399999999999991 0.0 482 -483 0.0336499214172363 0.0300000000000011 0.0300000000000011 0.0 483 -484 0.0331089496612549 0.0399999999999991 0.0399999999999991 0.0 484 -485 0.0334107875823975 0.029999999999994 0.029999999999994 0.0 485 -486 0.0580129623413086 0.0600000000000023 0.0600000000000023 0.0 486 -487 0.0336880683898926 0.0300000000000011 0.0300000000000011 0.0 487 -488 0.0364341735839844 0.0399999999999991 0.0399999999999991 0.0 488 -489 0.0356800556182861 0.0300000000000011 0.0300000000000011 0.0 489 -490 0.033689022064209 0.0399999999999991 0.0399999999999991 0.0 490 -491 0.0335180759429932 0.0300000000000011 0.0300000000000011 0.0 491 -492 0.0345418453216553 0.0300000000000011 0.0300000000000011 0.0 492 -493 0.0336930751800537 0.0399999999999991 0.0399999999999991 0.0 493 -494 0.0580000877380371 0.0600000000000023 0.0600000000000023 0.0 494 -495 0.0361080169677734 0.029999999999994 0.029999999999994 0.0 495 -496 0.0336720943450928 0.0400000000000063 0.0400000000000063 0.0 496 -497 0.0333058834075928 0.029999999999994 0.029999999999994 0.0 497 -498 0.0333189964294434 0.0300000000000011 0.0300000000000011 0.0 498 -499 0.0332541465759277 0.0399999999999991 0.0399999999999991 0.0 499 -500 0.0402250289916992 0.0399999999999991 0.0399999999999991 0.0 500 -501 0.0334169864654541 0.0300000000000011 0.0300000000000011 0.0 501 -502 0.0628290176391602 0.0600000000000023 0.0600000000000023 0.0 502 -503 0.0341489315032959 0.0399999999999991 0.0399999999999991 0.0 503 -504 0.0333640575408936 0.0300000000000011 0.0300000000000011 0.0 504 -505 0.03312087059021 0.0300000000000011 0.0300000000000011 0.0 505 -506 0.0330550670623779 0.0399999999999991 0.0399999999999991 0.0 506 -507 0.0333640575408936 0.0300000000000011 0.0300000000000011 0.0 507 -508 0.0347590446472168 0.0300000000000011 0.0300000000000011 0.0 508 -509 0.0346050262451172 0.0399999999999991 0.0399999999999991 0.0 509 -510 0.0589158535003662 0.0599999999999952 0.0599999999999952 0.0 510 -511 0.0335807800292969 0.0300000000000011 0.0300000000000011 0.0 511 -512 0.0333380699157715 0.0399999999999991 0.0399999999999991 0.0 512 -513 0.0332279205322266 0.0300000000000011 0.0300000000000011 0.0 513 -514 0.0332310199737549 0.0300000000000011 0.0300000000000011 0.0 514 -515 0.0361509323120117 0.0399999999999991 0.0399999999999991 0.0 515 -516 0.0350699424743652 0.0300000000000011 0.0300000000000011 0.0 516 -517 0.0337638854980469 0.0399999999999991 0.0399999999999991 0.0 517 -518 0.0580861568450928 0.0600000000000023 0.0600000000000023 0.0 518 -519 0.035269021987915 0.0300000000000011 0.0300000000000011 0.0 519 -520 0.0334429740905762 0.029999999999994 0.029999999999994 0.0 520 -521 0.0334320068359375 0.0400000000000063 0.0400000000000063 0.0 521 -522 0.0365338325500488 0.029999999999994 0.029999999999994 0.0 522 -523 0.0335922241210938 0.0400000000000063 0.0400000000000063 0.0 523 -524 0.0331869125366211 0.029999999999994 0.029999999999994 0.0 524 -525 0.0333640575408936 0.0300000000000011 0.0300000000000011 0.0 525 -526 0.0657279491424561 0.0700000000000003 0.0700000000000003 0.0 526 -527 0.0335869789123535 0.0300000000000011 0.0300000000000011 0.0 527 -528 0.0365140438079834 0.0399999999999991 0.0399999999999991 0.0 528 -529 0.033782958984375 0.0300000000000011 0.0300000000000011 0.0 529 -530 0.0337071418762207 0.0399999999999991 0.0399999999999991 0.0 530 -531 0.0332880020141602 0.0300000000000011 0.0300000000000011 0.0 531 -532 0.0329639911651611 0.0300000000000011 0.0300000000000011 0.0 532 -533 0.033315896987915 0.0399999999999991 0.0399999999999991 0.0 533 -534 0.0582611560821533 0.0499999999999972 0.0499999999999972 0.0 534 -535 0.0367379188537598 0.0399999999999991 0.0399999999999991 0.0 535 -536 0.033797025680542 0.0400000000000063 0.0400000000000063 0.0 536 -537 0.0335040092468262 0.029999999999994 0.029999999999994 0.0 537 -538 0.0333931446075439 0.0300000000000011 0.0300000000000011 0.0 538 -539 0.033318042755127 0.0399999999999991 0.0399999999999991 0.0 539 -540 0.0329570770263672 0.0300000000000011 0.0300000000000011 0.0 540 -541 0.0334439277648926 0.0300000000000011 0.0300000000000011 0.0 541 -542 0.0605781078338623 0.0600000000000023 0.0600000000000023 0.0 542 -543 0.0348639488220215 0.0399999999999991 0.0399999999999991 0.0 543 -544 0.0333831310272217 0.0300000000000011 0.0300000000000011 0.0 544 -545 0.0333919525146484 0.029999999999994 0.029999999999994 0.0 545 -546 0.0348379611968994 0.0400000000000063 0.0400000000000063 0.0 546 -547 0.0334489345550537 0.029999999999994 0.029999999999994 0.0 547 -548 0.0333089828491211 0.0400000000000063 0.0400000000000063 0.0 548 -549 0.0365209579467773 0.029999999999994 0.029999999999994 0.0 549 -550 0.0601961612701416 0.0600000000000023 0.0600000000000023 0.0 550 -551 0.0337119102478027 0.0300000000000011 0.0300000000000011 0.0 551 -552 0.0332701206207275 0.0399999999999991 0.0399999999999991 0.0 552 -553 0.0401608943939209 0.0399999999999991 0.0399999999999991 0.0 553 -554 0.0333070755004883 0.0300000000000011 0.0300000000000011 0.0 554 -555 0.0364260673522949 0.0399999999999991 0.0399999999999991 0.0 555 -556 0.0348329544067383 0.0300000000000011 0.0300000000000011 0.0 556 -557 0.0339481830596924 0.0399999999999991 0.0399999999999991 0.0 557 -558 0.0576767921447754 0.0499999999999972 0.0499999999999972 0.0 558 -559 0.0335049629211426 0.0300000000000011 0.0300000000000011 0.0 559 -560 0.0332691669464111 0.029999999999994 0.029999999999994 0.0 560 -561 0.0332450866699219 0.0400000000000063 0.0400000000000063 0.0 561 -562 0.037883996963501 0.029999999999994 0.029999999999994 0.0 562 -563 0.0370709896087646 0.0400000000000063 0.0400000000000063 0.0 563 -564 0.0331628322601318 0.029999999999994 0.029999999999994 0.0 564 -565 0.0335371494293213 0.0399999999999991 0.0399999999999991 0.0 565 -566 0.0579180717468262 0.0500000000000043 0.0500000000000043 0.0 566 -567 0.0335509777069092 0.0399999999999991 0.0399999999999991 0.0 567 -568 0.0369341373443604 0.0300000000000011 0.0300000000000011 0.0 568 -569 0.0334761142730713 0.0399999999999991 0.0399999999999991 0.0 569 -570 0.0333311557769775 0.0300000000000011 0.0300000000000011 0.0 570 -571 0.0333850383758545 0.0300000000000011 0.0300000000000011 0.0 571 -572 0.0344130992889404 0.0399999999999991 0.0399999999999991 0.0 572 -573 0.0333690643310547 0.0300000000000011 0.0300000000000011 0.0 573 -574 0.0581290721893311 0.0599999999999952 0.0599999999999952 0.0 574 -575 0.0367560386657715 0.0399999999999991 0.0399999999999991 0.0 575 -576 0.0336780548095703 0.0300000000000011 0.0300000000000011 0.0 576 -577 0.0331878662109375 0.0300000000000011 0.0300000000000011 0.0 577 -578 0.0332210063934326 0.0399999999999991 0.0399999999999991 0.0 578 -579 0.0332109928131104 0.0300000000000011 0.0300000000000011 0.0 579 -580 0.0409071445465088 0.0399999999999991 0.0399999999999991 0.0 580 -581 0.033595085144043 0.0300000000000011 0.0300000000000011 0.0 581 -582 0.0607550144195557 0.0600000000000023 0.0600000000000023 0.0 582 -583 0.0355041027069092 0.0399999999999991 0.0399999999999991 0.0 583 -584 0.0334818363189697 0.0300000000000011 0.0300000000000011 0.0 584 -585 0.0333139896392822 0.0399999999999991 0.0399999999999991 0.0 585 -586 0.0332391262054443 0.0300000000000011 0.0300000000000011 0.0 586 -587 0.0332348346710205 0.029999999999994 0.029999999999994 0.0 587 -588 0.0332849025726318 0.0400000000000063 0.0400000000000063 0.0 588 -589 0.0360300540924072 0.029999999999994 0.029999999999994 0.0 589 -590 0.0599799156188965 0.0600000000000023 0.0600000000000023 0.0 590 -591 0.0335240364074707 0.0399999999999991 0.0399999999999991 0.0 591 -592 0.0333631038665771 0.0300000000000011 0.0300000000000011 0.0 592 -593 0.0332529544830322 0.0300000000000011 0.0300000000000011 0.0 593 -594 0.0335328578948975 0.0399999999999991 0.0399999999999991 0.0 594 -595 0.0370910167694092 0.0300000000000011 0.0300000000000011 0.0 595 -596 0.0335230827331543 0.0399999999999991 0.0399999999999991 0.0 596 -597 0.0337550640106201 0.0300000000000011 0.0300000000000011 0.0 597 -598 0.0580778121948242 0.0599999999999952 0.0599999999999952 0.0 598 -599 0.0352489948272705 0.0300000000000011 0.0300000000000011 0.0 599 -600 0.0334210395812988 0.0399999999999991 0.0399999999999991 0.0 600 -601 0.0336451530456543 0.0300000000000011 0.0300000000000011 0.0 601 -602 0.0362639427185059 0.0399999999999991 0.0399999999999991 0.0 602 -603 0.0335409641265869 0.0300000000000011 0.0300000000000011 0.0 603 -604 0.0330269336700439 0.0300000000000011 0.0300000000000011 0.0 604 -605 0.033350944519043 0.0399999999999991 0.0399999999999991 0.0 605 -606 0.0649051666259766 0.0600000000000023 0.0600000000000023 0.0 606 -607 0.0337560176849365 0.0399999999999991 0.0399999999999991 0.0 607 -608 0.0365309715270996 0.0300000000000011 0.0300000000000011 0.0 608 -609 0.0352151393890381 0.0399999999999991 0.0399999999999991 0.0 609 -610 0.0339179039001465 0.0300000000000011 0.0300000000000011 0.0 610 -611 0.0331799983978271 0.0300000000000011 0.0300000000000011 0.0 611 -612 0.0330498218536377 0.0399999999999991 0.0399999999999991 0.0 612 -613 0.0336270332336426 0.0300000000000011 0.0300000000000011 0.0 613 -614 0.0577888488769531 0.0599999999999952 0.0599999999999952 0.0 614 -615 0.0366761684417725 0.0399999999999991 0.0399999999999991 0.0 615 -616 0.0336871147155762 0.0300000000000011 0.0300000000000011 0.0 616 -617 0.0334889888763428 0.0300000000000011 0.0300000000000011 0.0 617 -618 0.033146858215332 0.0399999999999991 0.0399999999999991 0.0 618 -619 0.0333569049835205 0.0300000000000011 0.0300000000000011 0.0 619 -620 0.0330309867858887 0.0300000000000011 0.0300000000000011 0.0 620 -621 0.0333929061889648 0.0399999999999991 0.0399999999999991 0.0 621 -622 0.0609011650085449 0.0600000000000023 0.0600000000000023 0.0 622 -623 0.0338809490203857 0.0300000000000011 0.0300000000000011 0.0 623 -624 0.0332272052764893 0.029999999999994 0.029999999999994 0.0 624 -625 0.0336441993713379 0.0399999999999991 0.0399999999999991 0.0 625 -626 0.035059928894043 0.0300000000000011 0.0300000000000011 0.0 626 -627 0.0334160327911377 0.0399999999999991 0.0399999999999991 0.0 627 -628 0.0334069728851318 0.0300000000000011 0.0300000000000011 0.0 628 -629 0.0366249084472656 0.0399999999999991 0.0399999999999991 0.0 629 -630 0.0583260059356689 0.0500000000000043 0.0500000000000043 0.0 630 -631 0.0333540439605713 0.0399999999999991 0.0399999999999991 0.0 631 -632 0.0333960056304932 0.0300000000000011 0.0300000000000011 0.0 632 -633 0.0413072109222412 0.0399999999999991 0.0399999999999991 0.0 633 -634 0.0332448482513428 0.0399999999999991 0.0399999999999991 0.0 634 -635 0.0363118648529053 0.0300000000000011 0.0300000000000011 0.0 635 -636 0.035132884979248 0.0399999999999991 0.0399999999999991 0.0 636 -637 0.0339901447296143 0.0300000000000011 0.0300000000000011 0.0 637 -638 0.0578219890594482 0.0599999999999952 0.0599999999999952 0.0 638 -639 0.0334219932556152 0.0300000000000011 0.0300000000000011 0.0 639 -640 0.0333530902862549 0.0399999999999991 0.0399999999999991 0.0 640 -641 0.033282995223999 0.0300000000000011 0.0300000000000011 0.0 641 -642 0.0364758968353271 0.0399999999999991 0.0399999999999991 0.0 642 -643 0.0333881378173828 0.0300000000000011 0.0300000000000011 0.0 643 -644 0.0334060192108154 0.0300000000000011 0.0300000000000011 0.0 644 -645 0.0334770679473877 0.0399999999999991 0.0399999999999991 0.0 645 -646 0.0579509735107422 0.0500000000000043 0.0500000000000043 0.0 646 -647 0.0336329936981201 0.0399999999999991 0.0399999999999991 0.0 647 -648 0.0373489856719971 0.0399999999999991 0.0399999999999991 0.0 648 -649 0.0342509746551514 0.0300000000000011 0.0300000000000011 0.0 649 -650 0.0337338447570801 0.0300000000000011 0.0300000000000011 0.0 650 -651 0.0333359241485596 0.0399999999999991 0.0399999999999991 0.0 651 -652 0.0332560539245605 0.029999999999994 0.029999999999994 0.0 652 -653 0.034912109375 0.029999999999994 0.0300000000000011 0.0 653 -654 0.0582709312438965 0.0600000000000023 0.0600000000000023 0.0 654 -655 0.0366790294647217 0.0400000000000063 0.0400000000000063 0.0 655 -656 0.0336661338806152 0.0299999999999869 0.0299999999999869 0.0 656 -657 0.0334138870239258 0.0400000000000063 0.0400000000000063 0.0 657 -658 0.033390998840332 0.0300000000000011 0.0300000000000011 0.0 658 -659 0.0330209732055664 0.0300000000000011 0.0300000000000011 0.0 659 -660 0.0407001972198486 0.039999999999992 0.039999999999992 0.0 660 -661 0.0335381031036377 0.0400000000000063 0.0400000000000063 0.0 661 -662 0.0610449314117432 0.0600000000000023 0.0600000000000023 0.0 662 -663 0.0341410636901855 0.0300000000000011 0.0300000000000011 0.0 663 -664 0.0333421230316162 0.039999999999992 0.039999999999992 0.0 664 -665 0.0331799983978271 0.0300000000000011 0.0300000000000011 0.0 665 -666 0.0331680774688721 0.0300000000000011 0.0300000000000011 0.0 666 -667 0.0328528881072998 0.0400000000000063 0.0400000000000063 0.0 667 -668 0.0334010124206543 0.0300000000000011 0.0300000000000011 0.0 668 -669 0.0363960266113281 0.0300000000000011 0.0300000000000011 0.0 669 -670 0.058311939239502 0.0599999999999881 0.0599999999999881 0.0 670 -671 0.03330397605896 0.0400000000000063 0.0400000000000063 0.0 671 -672 0.0332088470458984 0.0300000000000011 0.0300000000000011 0.0 672 -673 0.0331571102142334 0.0300000000000011 0.0300000000000011 0.0 673 -674 0.0347979068756104 0.039999999999992 0.039999999999992 0.0 674 -675 0.0361380577087402 0.0300000000000011 0.0300000000000011 0.0 675 -676 0.0341131687164307 0.0400000000000063 0.0400000000000063 0.0 676 -677 0.03476881980896 0.0300000000000011 0.0300000000000011 0.0 677 -678 0.058121919631958 0.0600000000000023 0.0600000000000023 0.0 678 -679 0.0350527763366699 0.0300000000000011 0.0300000000000011 0.0 679 -680 0.0333900451660156 0.039999999999992 0.039999999999992 0.0 680 -681 0.033829927444458 0.0300000000000011 0.0300000000000011 0.0 681 -682 0.0363891124725342 0.0400000000000063 0.0400000000000063 0.0 682 -683 0.0345211029052734 0.0299999999999869 0.0299999999999869 0.0 683 -684 0.0335590839385986 0.0400000000000063 0.0400000000000063 0.0 684 -685 0.0574600696563721 0.0499999999999972 0.0499999999999972 0.0 685 -686 0.041471004486084 0.0499999999999972 0.0499999999999972 0.0 686 -687 0.0334889888763428 0.0300000000000011 0.0300000000000011 0.0 687 -688 0.0362579822540283 0.0400000000000063 0.0400000000000063 0.0 688 -689 0.033682107925415 0.0300000000000011 0.0300000000000011 0.0 689 -690 0.0352790355682373 0.0300000000000011 0.0300000000000011 0.0 690 -691 0.033221960067749 0.039999999999992 0.039999999999992 0.0 691 -692 0.0330390930175781 0.0300000000000011 0.0300000000000011 0.0 692 -693 0.0577991008758545 0.0600000000000023 0.0600000000000023 0.0 693 -694 0.0340001583099365 0.0300000000000011 0.0300000000000011 0.0 694 -695 0.0366599559783936 0.0400000000000063 0.0400000000000063 0.0 695 -696 0.0336761474609375 0.0299999999999869 0.0299999999999869 0.0 696 -697 0.0338170528411865 0.0400000000000063 0.0400000000000063 0.0 697 -698 0.0334699153900146 0.0300000000000011 0.0300000000000011 0.0 698 -699 0.0334680080413818 0.0300000000000011 0.0300000000000011 0.0 699 -700 0.0334641933441162 0.039999999999992 0.039999999999992 0.0 700 -701 0.0584831237792969 0.0700000000000074 0.0600000000000023 0.01 701 -702 0.0371170043945312 0.0300000000000011 0.0300000000000011 0.0 702 -703 0.0348899364471436 0.0400000000000063 0.0400000000000063 0.0 703 -704 0.0332977771759033 0.0300000000000011 0.0300000000000011 0.0 704 -705 0.0337090492248535 0.0300000000000011 0.0300000000000011 0.0 705 -706 0.0363600254058838 0.039999999999992 0.039999999999992 0.0 706 -707 0.0332589149475098 0.0300000000000011 0.0300000000000011 0.0 707 -708 0.0335700511932373 0.0300000000000011 0.0300000000000011 0.0 708 -709 0.0618710517883301 0.0699999999999932 0.0699999999999932 0.0 709 -710 0.0338459014892578 0.0300000000000011 0.0300000000000011 0.0 710 -711 0.0334110260009766 0.0300000000000011 0.0300000000000011 0.0 711 -712 0.0332870483398438 0.0400000000000063 0.0400000000000063 0.0 712 -713 0.0403330326080322 0.039999999999992 0.039999999999992 0.0 713 -714 0.0332109928131104 0.0300000000000011 0.0300000000000011 0.0 714 -715 0.0362699031829834 0.0400000000000063 0.0400000000000063 0.0 715 -716 0.0349149703979492 0.0300000000000011 0.0300000000000011 0.0 716 -717 0.0590531826019287 0.0600000000000023 0.0600000000000023 0.0 717 -718 0.0336310863494873 0.039999999999992 0.039999999999992 0.0 718 -719 0.0333178043365479 0.0300000000000011 0.0300000000000011 0.0 719 -720 0.0332901477813721 0.0300000000000011 0.0300000000000011 0.0 720 -721 0.0332920551300049 0.0400000000000063 0.0400000000000063 0.0 721 -722 0.0363869667053223 0.0300000000000011 0.0300000000000011 0.0 722 -723 0.0335569381713867 0.039999999999992 0.039999999999992 0.0 723 -724 0.0336151123046875 0.0300000000000011 0.0300000000000011 0.0 724 -725 0.0579018592834473 0.0600000000000023 0.0600000000000023 0.0 725 -726 0.0334959030151367 0.0300000000000011 0.0300000000000011 0.0 726 -727 0.0332579612731934 0.0300000000000011 0.0300000000000011 0.0 727 -728 0.0363228321075439 0.039999999999992 0.039999999999992 0.0 728 -729 0.034060001373291 0.0300000000000011 0.0300000000000011 0.0 729 -730 0.0342481136322021 0.0400000000000063 0.0400000000000063 0.0 730 -731 0.033174991607666 0.0300000000000011 0.0300000000000011 0.0 731 -732 0.0333402156829834 0.039999999999992 0.039999999999992 0.0 732 -733 0.0594391822814941 0.0499999999999972 0.0499999999999972 0.0 733 -734 0.0340390205383301 0.0400000000000063 0.0400000000000063 0.0 734 -735 0.0368988513946533 0.0300000000000011 0.0300000000000011 0.0 735 -736 0.036196231842041 0.039999999999992 0.039999999999992 0.0 736 -737 0.0333859920501709 0.0300000000000011 0.0300000000000011 0.0 737 -738 0.0332441329956055 0.0400000000000063 0.0400000000000063 0.0 738 -739 0.0330839157104492 0.0300000000000011 0.0300000000000011 0.0 739 -740 0.0413918495178223 0.039999999999992 0.039999999999992 0.0 740 -741 0.0612490177154541 0.0600000000000023 0.0600000000000023 0.0 741 -742 0.0341551303863525 0.0300000000000011 0.0300000000000011 0.0 742 -743 0.035499095916748 0.0400000000000063 0.0400000000000063 0.0 743 -744 0.0333080291748047 0.0300000000000011 0.0300000000000011 0.0 744 -745 0.0331649780273438 0.039999999999992 0.039999999999992 0.0 745 -746 0.0332601070404053 0.0300000000000011 0.0300000000000011 0.0 746 -747 0.0330040454864502 0.0300000000000011 0.0300000000000011 0.0 747 -748 0.0333499908447266 0.0400000000000063 0.0400000000000063 0.0 748 -749 0.0617849826812744 0.0599999999999881 0.0599999999999881 0.0 749 -750 0.0337250232696533 0.0300000000000011 0.0300000000000011 0.0 750 -751 0.0336470603942871 0.0400000000000063 0.0400000000000063 0.0 751 -752 0.0334620475769043 0.0300000000000011 0.0300000000000011 0.0 752 -753 0.0332620143890381 0.0300000000000011 0.0300000000000011 0.0 753 -754 0.0332539081573486 0.039999999999992 0.039999999999992 0.0 754 -755 0.036297082901001 0.0300000000000011 0.0300000000000011 0.0 755 -756 0.0344269275665283 0.0400000000000063 0.0400000000000063 0.0 756 -757 0.0584709644317627 0.0499999999999972 0.0499999999999972 0.0 757 -758 0.0336380004882812 0.0300000000000011 0.0300000000000011 0.0 758 -759 0.0352699756622314 0.0300000000000011 0.0300000000000011 0.0 759 -760 0.0333750247955322 0.039999999999992 0.039999999999992 0.0 760 -761 0.0338349342346191 0.0300000000000011 0.0300000000000011 0.0 761 -762 0.0356252193450928 0.0400000000000063 0.0400000000000063 0.0 762 -763 0.0349218845367432 0.0299999999999869 0.0299999999999869 0.0 763 -764 0.0333728790283203 0.0300000000000011 0.0300000000000011 0.0 764 -765 0.057542085647583 0.0600000000000023 0.0600000000000023 0.0 765 -766 0.040518045425415 0.0400000000000063 0.0400000000000063 0.0 766 -767 0.0333969593048096 0.039999999999992 0.039999999999992 0.0 767 -768 0.036506175994873 0.0300000000000011 0.0300000000000011 0.0 768 -769 0.034682035446167 0.0400000000000063 0.0400000000000063 0.0 769 -770 0.0337419509887695 0.0300000000000011 0.0300000000000011 0.0 770 -771 0.0334620475769043 0.0300000000000011 0.0300000000000011 0.0 771 -772 0.0577020645141602 0.0600000000000023 0.0600000000000023 0.0 772 -773 0.0334780216217041 0.039999999999992 0.039999999999992 0.0 773 -774 0.0334508419036865 0.0300000000000011 0.0300000000000011 0.0 774 -775 0.036329984664917 0.0300000000000011 0.0300000000000011 0.0 775 -776 0.0336270332336426 0.039999999999992 0.039999999999992 0.0 776 -777 0.0338649749755859 0.0300000000000011 0.0300000000000011 0.0 777 -778 0.0331289768218994 0.0400000000000063 0.0400000000000063 0.0 778 -779 0.0331418514251709 0.0300000000000011 0.0300000000000011 0.0 779 -780 0.0577938556671143 0.0600000000000023 0.0600000000000023 0.0 780 -781 0.0363731384277344 0.0300000000000011 0.0300000000000011 0.0 781 -782 0.0350909233093262 0.039999999999992 0.039999999999992 0.0 782 -783 0.0350501537322998 0.0300000000000011 0.0300000000000011 0.0 783 -784 0.0335679054260254 0.0400000000000063 0.0400000000000063 0.0 784 -785 0.0334410667419434 0.0300000000000011 0.0300000000000011 0.0 785 -786 0.0349650382995605 0.0300000000000011 0.0300000000000011 0.0 786 -787 0.0338919162750244 0.039999999999992 0.039999999999992 0.0 787 -788 0.060966968536377 0.0600000000000023 0.0600000000000023 0.0 788 -789 0.0341048240661621 0.0300000000000011 0.0300000000000011 0.0 789 -790 0.0336289405822754 0.039999999999992 0.039999999999992 0.0 790 -791 0.0333750247955322 0.0300000000000011 0.0300000000000011 0.0 791 -792 0.0333640575408936 0.0300000000000011 0.0300000000000011 0.0 792 -793 0.0411760807037354 0.0499999999999972 0.0499999999999972 0.0 793 -794 0.0330638885498047 0.0300000000000011 0.0300000000000011 0.0 794 -795 0.0362119674682617 0.0300000000000011 0.0300000000000011 0.0 795 -796 0.0589008331298828 0.0499999999999972 0.0499999999999972 0.0 796 -797 0.0335359573364258 0.0400000000000063 0.0400000000000063 0.0 797 -798 0.0333008766174316 0.0300000000000011 0.0300000000000011 0.0 798 -799 0.0347950458526611 0.0300000000000011 0.0300000000000011 0.0 799 -800 0.0332999229431152 0.039999999999992 0.039999999999992 0.0 800 -801 0.033350944519043 0.0300000000000011 0.0300000000000011 0.0 801 -802 0.0362880229949951 0.0400000000000063 0.0400000000000063 0.0 802 -803 0.0351760387420654 0.0299999999999869 0.0299999999999869 0.0 803 -804 0.0578329563140869 0.0600000000000023 0.0600000000000023 0.0 804 -805 0.0334799289703369 0.0300000000000011 0.0300000000000011 0.0 805 -806 0.0332357883453369 0.0400000000000063 0.0400000000000063 0.0 806 -807 0.0333900451660156 0.0300000000000011 0.0300000000000011 0.0 807 -808 0.0362451076507568 0.039999999999992 0.039999999999992 0.0 808 -809 0.0333170890808105 0.0300000000000011 0.0300000000000011 0.0 809 -810 0.0343527793884277 0.0400000000000063 0.0400000000000063 0.0 810 -811 0.0335409641265869 0.0300000000000011 0.0300000000000011 0.0 811 -812 0.0592930316925049 0.0600000000000023 0.0600000000000023 0.0 812 -813 0.0335829257965088 0.0299999999999869 0.0299999999999869 0.0 813 -814 0.033574104309082 0.0300000000000011 0.0300000000000011 0.0 814 -815 0.0360231399536133 0.0400000000000063 0.0400000000000063 0.0 815 -816 0.033574104309082 0.0300000000000011 0.0300000000000011 0.0 816 -817 0.0337851047515869 0.039999999999992 0.039999999999992 0.0 817 -818 0.0332200527191162 0.0300000000000011 0.0300000000000011 0.0 818 -819 0.0334579944610596 0.0300000000000011 0.0300000000000011 0.0 819 -820 0.063668966293335 0.0600000000000023 0.0600000000000023 0.0 820 -821 0.0360410213470459 0.0300000000000011 0.0300000000000011 0.0 821 -822 0.0340430736541748 0.039999999999992 0.039999999999992 0.0 822 -823 0.0340561866760254 0.0300000000000011 0.0300000000000011 0.0 823 -824 0.0331687927246094 0.0400000000000063 0.0400000000000063 0.0 824 -825 0.0331730842590332 0.0300000000000011 0.0300000000000011 0.0 825 -826 0.0330498218536377 0.0300000000000011 0.0300000000000011 0.0 826 -827 0.0333058834075928 0.039999999999992 0.039999999999992 0.0 827 -828 0.0610239505767822 0.0600000000000023 0.0600000000000023 0.0 828 -829 0.0348649024963379 0.0300000000000011 0.0300000000000011 0.0 829 -830 0.0334899425506592 0.039999999999992 0.039999999999992 0.0 830 -831 0.0332210063934326 0.0300000000000011 0.0300000000000011 0.0 831 -832 0.0332589149475098 0.0300000000000011 0.0300000000000011 0.0 832 -833 0.0330421924591064 0.0400000000000063 0.0400000000000063 0.0 833 -834 0.033440113067627 0.0300000000000011 0.0300000000000011 0.0 834 -835 0.0366320610046387 0.039999999999992 0.039999999999992 0.0 835 -836 0.0392351150512695 0.039999999999992 0.039999999999992 0.0 836 -837 0.0332860946655273 0.0400000000000063 0.0400000000000063 0.0 837 -838 0.0337049961090088 0.0300000000000011 0.0300000000000011 0.0 838 -839 0.0346989631652832 0.0300000000000011 0.0300000000000011 0.0 839 -840 0.0334670543670654 0.039999999999992 0.039999999999992 0.0 840 -841 0.0332751274108887 0.0300000000000011 0.0300000000000011 0.0 841 -842 0.0364458560943604 0.0400000000000063 0.0400000000000063 0.0 842 -843 0.0590341091156006 0.0600000000000023 0.0600000000000023 0.0 843 -844 0.0335009098052979 0.0300000000000011 0.0300000000000011 0.0 844 -845 0.0332801342010498 0.0300000000000011 0.0300000000000011 0.0 845 -846 0.0411808490753174 0.0499999999999972 0.0499999999999972 0.0 846 -847 0.0332710742950439 0.0300000000000011 0.0300000000000011 0.0 847 -848 0.0353641510009766 0.0300000000000011 0.0300000000000011 0.0 848 -849 0.0346250534057617 0.039999999999992 0.039999999999992 0.0 849 -850 0.0339748859405518 0.0300000000000011 0.0300000000000011 0.0 850 -851 0.0577869415283203 0.0600000000000023 0.0600000000000023 0.0 851 -852 0.0328571796417236 0.0300000000000011 0.0300000000000011 0.0 852 -853 0.0324909687042236 0.039999999999992 0.039999999999992 0.0 853 -854 0.0326740741729736 0.0300000000000011 0.0300000000000011 0.0 854 -855 0.035412073135376 0.0300000000000011 0.0300000000000011 0.0 855 -856 0.0338008403778076 0.0400000000000063 0.0400000000000063 0.0 856 -857 0.0328540802001953 0.0300000000000011 0.0300000000000011 0.0 857 -858 0.0333800315856934 0.0300000000000011 0.0300000000000011 0.0 858 -859 0.057999849319458 0.0600000000000023 0.0600000000000023 0.0 859 -860 0.0334048271179199 0.039999999999992 0.039999999999992 0.0 860 -861 0.0332610607147217 0.0300000000000011 0.0300000000000011 0.0 861 -862 0.0369820594787598 0.0400000000000063 0.0400000000000063 0.0 862 -863 0.0350849628448486 0.0299999999999869 0.0299999999999869 0.0 863 -864 0.0332708358764648 0.0300000000000011 0.0300000000000011 0.0 864 -865 0.0333819389343262 0.0400000000000063 0.0400000000000063 0.0 865 -866 0.0360109806060791 0.0300000000000011 0.0300000000000011 0.0 866 -867 0.058070182800293 0.0600000000000023 0.0600000000000023 0.0 867 -868 0.0367460250854492 0.039999999999992 0.039999999999992 0.0 868 -869 0.0335311889648438 0.0300000000000011 0.0300000000000011 0.0 869 -870 0.034480094909668 0.0400000000000063 0.0400000000000063 0.0 870 -871 0.0331480503082275 0.0300000000000011 0.0300000000000011 0.0 871 -872 0.0331017971038818 0.0300000000000011 0.0300000000000011 0.0 872 -873 0.0400230884552002 0.039999999999992 0.039999999999992 0.0 873 -874 0.0334382057189941 0.0400000000000063 0.0400000000000063 0.0 874 -875 0.0614311695098877 0.0600000000000023 0.0600000000000023 0.0 875 -876 0.0357120037078857 0.0299999999999869 0.0299999999999869 0.0 876 -877 0.0331881046295166 0.0400000000000063 0.0400000000000063 0.0 877 -878 0.0333230495452881 0.0300000000000011 0.0300000000000011 0.0 878 -879 0.033128023147583 0.0300000000000011 0.0300000000000011 0.0 879 -880 0.0331029891967773 0.039999999999992 0.039999999999992 0.0 880 -881 0.0331718921661377 0.0300000000000011 0.0300000000000011 0.0 881 -882 0.0365970134735107 0.0400000000000063 0.0400000000000063 0.0 882 -883 0.0594449043273926 0.0499999999999972 0.0499999999999972 0.0 883 -884 0.0333600044250488 0.0400000000000063 0.0400000000000063 0.0 884 -885 0.0332062244415283 0.0300000000000011 0.0300000000000011 0.0 885 -886 0.0332579612731934 0.0300000000000011 0.0300000000000011 0.0 886 -887 0.033174991607666 0.039999999999992 0.039999999999992 0.0 887 -888 0.033627986907959 0.0300000000000011 0.0300000000000011 0.0 888 -889 0.0363061428070068 0.0400000000000063 0.0400000000000063 0.0 889 -890 0.0346910953521729 0.0299999999999869 0.0299999999999869 0.0 890 -891 0.0577399730682373 0.0600000000000023 0.0600000000000023 0.0 891 -892 0.0351190567016602 0.0300000000000011 0.0300000000000011 0.0 892 -893 0.0334410667419434 0.0300000000000011 0.0300000000000011 0.0 893 -894 0.0332920551300049 0.0300000000000011 0.0300000000000011 0.0 894 -895 0.0356509685516357 0.039999999999992 0.039999999999992 0.0 895 -896 0.0329999923706055 0.0300000000000011 0.0300000000000011 0.0 896 -897 0.0350220203399658 0.0400000000000063 0.0400000000000063 0.0 897 -898 0.0576491355895996 0.0499999999999972 0.0499999999999972 0.0 898 -899 0.0413708686828613 0.0400000000000063 0.0400000000000063 0.0 899 -900 0.0334579944610596 0.039999999999992 0.039999999999992 0.0 900 -901 0.0331728458404541 0.0300000000000011 0.0300000000000011 0.0 901 -902 0.0366899967193604 0.0400000000000063 0.0400000000000063 0.0 902 -903 0.0341849327087402 0.0299999999999869 0.0299999999999869 0.0 903 -904 0.0330212116241455 0.0300000000000011 0.0300000000000011 0.0 904 -905 0.0330519676208496 0.0400000000000063 0.0400000000000063 0.0 905 -906 0.0578551292419434 0.0600000000000023 0.0600000000000023 0.0 906 -907 0.0339560508728027 0.0300000000000011 0.0300000000000011 0.0 907 -908 0.0368251800537109 0.039999999999992 0.039999999999992 0.0 908 -909 0.0336120128631592 0.0300000000000011 0.0300000000000011 0.0 909 -910 0.0353670120239258 0.0400000000000063 0.0400000000000063 0.0 910 -911 0.0335800647735596 0.0300000000000011 0.0300000000000011 0.0 911 -912 0.0334420204162598 0.0300000000000011 0.0300000000000011 0.0 912 -913 0.0334601402282715 0.039999999999992 0.039999999999992 0.0 913 -914 0.058056116104126 0.0499999999999972 0.0499999999999972 0.0 914 -915 0.0368549823760986 0.0400000000000063 0.0400000000000063 0.0 915 -916 0.0347049236297607 0.039999999999992 0.039999999999992 0.0 916 -917 0.0332660675048828 0.0300000000000011 0.0300000000000011 0.0 917 -918 0.03336501121521 0.0300000000000011 0.0300000000000011 0.0 918 -919 0.0346500873565674 0.0400000000000063 0.0400000000000063 0.0 919 -920 0.0330588817596436 0.0300000000000011 0.0300000000000011 0.0 920 -921 0.0336630344390869 0.0300000000000011 0.0300000000000011 0.0 921 -922 0.0604748725891113 0.0600000000000023 0.0600000000000023 0.0 922 -923 0.0347628593444824 0.039999999999992 0.039999999999992 0.0 923 -924 0.0331780910491943 0.0300000000000011 0.0300000000000011 0.0 924 -925 0.0331499576568604 0.0300000000000011 0.0300000000000011 0.0 925 -926 0.0402188301086426 0.0400000000000063 0.0400000000000063 0.0 926 -927 0.0330500602722168 0.039999999999992 0.039999999999992 0.0 927 -928 0.0330708026885986 0.0300000000000011 0.0300000000000011 0.0 928 -929 0.036876916885376 0.0400000000000063 0.0400000000000063 0.0 929 -930 0.0586659908294678 0.0599999999999881 0.0599999999999881 0.0 930 -931 0.0333189964294434 0.0300000000000011 0.0300000000000011 0.0 931 -932 0.0332140922546387 0.0300000000000011 0.0300000000000011 0.0 932 -933 0.0332601070404053 0.0400000000000063 0.0400000000000063 0.0 933 -934 0.033146858215332 0.0300000000000011 0.0300000000000011 0.0 934 -935 0.0361688137054443 0.039999999999992 0.039999999999992 0.0 935 -936 0.0331850051879883 0.0300000000000011 0.0300000000000011 0.0 936 -937 0.0338339805603027 0.0300000000000011 0.0300000000000011 0.0 937 -938 0.0579109191894531 0.0600000000000023 0.0600000000000023 0.0 938 -939 0.0335099697113037 0.0300000000000011 0.0300000000000011 0.0 939 -940 0.0332717895507812 0.039999999999992 0.039999999999992 0.0 940 -941 0.0332541465759277 0.0300000000000011 0.0300000000000011 0.0 941 -942 0.0368809700012207 0.0400000000000063 0.0400000000000063 0.0 942 -943 0.0335171222686768 0.0300000000000011 0.0300000000000011 0.0 943 -944 0.0335350036621094 0.0300000000000011 0.0300000000000011 0.0 944 -945 0.0578980445861816 0.0600000000000023 0.0600000000000023 0.0 945 -946 0.0351078510284424 0.039999999999992 0.039999999999992 0.0 946 -947 0.0334479808807373 0.0300000000000011 0.0300000000000011 0.0 947 -948 0.033311128616333 0.0300000000000011 0.0300000000000011 0.0 948 -949 0.0363750457763672 0.0400000000000063 0.0400000000000063 0.0 949 -950 0.033627986907959 0.0299999999999869 0.0299999999999869 0.0 950 -951 0.033160924911499 0.0400000000000063 0.0400000000000063 0.0 951 -952 0.033203125 0.0300000000000011 0.0300000000000011 0.0 952 -953 0.0647599697113037 0.0600000000000023 0.0600000000000023 0.0 953 -954 0.0328559875488281 0.039999999999992 0.039999999999992 0.0 954 -955 0.0357460975646973 0.0300000000000011 0.0300000000000011 0.0 955 -956 0.033236026763916 0.0400000000000063 0.0400000000000063 0.0 956 -957 0.0331499576568604 0.0300000000000011 0.0300000000000011 0.0 957 -958 0.0325798988342285 0.0300000000000011 0.0300000000000011 0.0 958 -959 0.0328090190887451 0.0300000000000011 0.0300000000000011 0.0 959 -960 0.033491849899292 0.039999999999992 0.039999999999992 0.0 960 -961 0.0579450130462646 0.0600000000000023 0.0600000000000023 0.0 961 -962 0.0369048118591309 0.0300000000000011 0.0300000000000011 0.0 962 -963 0.0337331295013428 0.039999999999992 0.039999999999992 0.0 963 -964 0.0333647727966309 0.0300000000000011 0.0300000000000011 0.0 964 -965 0.0332319736480713 0.0300000000000011 0.0300000000000011 0.0 965 -966 0.033174991607666 0.0400000000000063 0.0400000000000063 0.0 966 -967 0.0331299304962158 0.0300000000000011 0.0300000000000011 0.0 967 -968 0.0334961414337158 0.0300000000000011 0.0300000000000011 0.0 968 -969 0.0604250431060791 0.0600000000000023 0.0600000000000023 0.0 969 -970 0.0347049236297607 0.039999999999992 0.039999999999992 0.0 970 -971 0.0334169864654541 0.0300000000000011 0.0300000000000011 0.0 971 -972 0.0332670211791992 0.0400000000000063 0.0400000000000063 0.0 972 -973 0.0347368717193604 0.0300000000000011 0.0300000000000011 0.0 973 -974 0.0333490371704102 0.0299999999999869 0.0299999999999869 0.0 974 -975 0.033484935760498 0.0400000000000063 0.0400000000000063 0.0 975 -976 0.0361530780792236 0.0300000000000011 0.0300000000000011 0.0 976 -977 0.0591049194335938 0.0600000000000023 0.0600000000000023 0.0 977 -978 0.0333170890808105 0.039999999999992 0.039999999999992 0.0 978 -979 0.0332751274108887 0.0300000000000011 0.0300000000000011 0.0 979 -980 0.0404400825500488 0.0400000000000063 0.0400000000000063 0.0 980 -981 0.0332608222961426 0.0300000000000011 0.0300000000000011 0.0 981 -982 0.0361859798431396 0.039999999999992 0.039999999999992 0.0 982 -983 0.0338070392608643 0.0300000000000011 0.0300000000000011 0.0 983 -984 0.0339329242706299 0.0400000000000063 0.0400000000000063 0.0 984 -985 0.0576000213623047 0.0499999999999972 0.0499999999999972 0.0 985 -986 0.0332310199737549 0.0400000000000063 0.0400000000000063 0.0 986 -987 0.0331230163574219 0.0299999999999869 0.0299999999999869 0.0 987 -988 0.0332698822021484 0.0300000000000011 0.0300000000000011 0.0 988 -989 0.0362260341644287 0.0400000000000063 0.0400000000000063 0.0 989 -990 0.0335850715637207 0.0300000000000011 0.0300000000000011 0.0 990 -991 0.0335838794708252 0.039999999999992 0.039999999999992 0.0 991 -992 0.0581378936767578 0.0600000000000023 0.0600000000000023 0.0 992 -993 0.0338449478149414 0.0300000000000011 0.0300000000000011 0.0 993 -994 0.0334839820861816 0.0300000000000011 0.0300000000000011 0.0 994 -995 0.0354399681091309 0.0400000000000063 0.0400000000000063 0.0 995 -996 0.0348441600799561 0.0300000000000011 0.0300000000000011 0.0 996 -997 0.033607006072998 0.039999999999992 0.039999999999992 0.0 997 -998 0.0334219932556152 0.0300000000000011 0.0300000000000011 0.0 998 -999 0.0331289768218994 0.0300000000000011 0.0300000000000011 0.0 999 -1000 0.0591549873352051 0.0600000000000023 0.0600000000000023 0.0 1000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log deleted file mode 100644 index abfc0d4..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log +++ /dev/null @@ -1,82 +0,0 @@ -========================== 2009-04-01T16:48:20 CEST =========================== -Benchmarking on ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]. -Running 'ParserBenchmarkPure' for 1000 iterations/method (compare_time=real) -=============================================================================== - -This first run is only for warmup. -ParserBenchmarkPure#parser: - real total user system -sum 37.410897017 37.380000000 37.360000000 0.020000000 -min 0.032916069 0.030000000 0.030000000 0.000000000 -std- 0.029058517 0.027934111 0.027951551 -0.000426990 -mean 0.037410897 0.037380000 0.037360000 0.000020000 -std+ 0.045763277 0.046825889 0.046768449 0.000466990 -max 0.068524122 0.070000000 0.070000000 0.010000000 -std 0.008352380 0.009445889 0.009408449 0.000446990 -std% 22.326062222 25.269901841 25.183215569 2234.948544149 -harm 0.036161242 0.035525181 0.035515868 nan -geo 0.036699193 0.036372385 0.036358664 0.000000000 -q1 0.033462286 0.030000000 0.030000000 0.000000000 -med 0.033834100 0.040000000 0.040000000 0.000000000 -q3 0.036020756 0.040000000 0.040000000 0.000000000 - 1000 26.73018 0.037410897 - calls calls/sec secs/call - - 0.06674 -| - 0.06318 -|* - 0.05962 -|****** - 0.05606 -|* - 0.05250 -| - 0.04894 -| - 0.04538 -| - 0.04182 -|* - 0.03826 -|**** - 0.03470 -|************************************************** - -Outliers detected with box plot algo (median=0.03383, iqr=0.00256, factor=3.00): -high=35 very_high=121 - -Ljung-Box statistics: q=2505.23586 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -ParserBenchmarkPure#parser: - real total user system -sum 37.376162529 37.280000000 37.260000000 0.020000000 -min 0.032336950 0.030000000 0.030000000 0.000000000 -std- 0.028895529 0.027756750 0.027774096 -0.000426990 -mean 0.037376163 0.037280000 0.037260000 0.000020000 -std+ 0.045856796 0.046803250 0.046745904 0.000466990 -max 0.068592072 0.070000000 0.070000000 0.010000000 -std 0.008480634 0.009523250 0.009485904 0.000446990 -std% 22.689953522 25.545198741 25.458680636 2234.948544149 -harm 0.036080414 0.035400319 0.035391071 nan -geo 0.036638902 0.036256656 0.036242979 0.000000000 -q1 0.033310235 0.030000000 0.030000000 0.000000000 -med 0.033644676 0.030000000 0.030000000 0.000000000 -q3 0.036110342 0.040000000 0.040000000 0.000000000 - 1000 26.75502 0.037376163 - calls calls/sec secs/call - - 0.06678 -| - 0.06315 -|* - 0.05953 -|******* - 0.05590 -| - 0.05228 -| - 0.04865 -| - 0.04503 -| - 0.04140 -|** - 0.03778 -|******** - 0.03415 -|************************************************** - -Outliers detected with box plot algo (median=0.03364, iqr=0.00280, factor=3.00): -high=33 very_high=124 - -Ljung-Box statistics: q=3251.86614 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -No initial data truncated. - => System may have been in a steady state from the beginning. -========================== 2009-04-01T16:49:38 CEST =========================== - -Writing measurement data file '/data/scm/json/benchmarks/data/ParserBenchmarkPure#parser.dat'. -Writing autocorrelation plot file '/data/scm/json/benchmarks/data/ParserBenchmarkPure#parser-autocorrelation.dat'. diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat deleted file mode 100644 index 17c5d6f..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat +++ /dev/null @@ -1,1000 +0,0 @@ -#lag autocorrelation -1 1.0 -2 -0.155070059967971 -3 -0.138640912344721 -4 -0.139479328635323 -5 -0.143780851624976 -6 -0.131974028031826 -7 -0.131846874465781 -8 -0.0297449586146407 -9 0.845922970552183 -10 -0.159296984935386 -11 -0.138285991843348 -12 -0.134537533789242 -13 -0.131577093324224 -14 -0.125691308156566 -15 -0.132970073437043 -16 0.0701610897537414 -17 0.726509328882366 -18 -0.155563464936531 -19 -0.130583532910968 -20 -0.130321215707134 -21 -0.128053370668094 -22 -0.131414104117502 -23 -0.143370315509163 -24 0.167753265713558 -25 0.62702138447293 -26 -0.141554127399372 -27 -0.115269798845456 -28 -0.136445627883801 -29 -0.132820637414474 -30 -0.135080622216643 -31 -0.144602952408704 -32 0.276623173612157 -33 0.525501850891615 -34 -0.139450017650941 -35 -0.134162769453426 -36 -0.140949499976629 -37 -0.132215037534107 -38 -0.128279804339387 -39 -0.136810773207112 -40 0.379134129717981 -41 0.416977891767592 -42 -0.140192442908231 -43 -0.13892710741734 -44 -0.137436044286789 -45 -0.12612058061194 -46 -0.123633038155193 -47 -0.137070098406579 -48 0.472544339120691 -49 0.301863391448336 -50 -0.137675443743332 -51 -0.132184661720946 -52 -0.121519101402595 -53 -0.115776688296262 -54 -0.131478499025051 -55 -0.116275192910739 -56 0.513473974254625 -57 0.227814467008427 -58 -0.129625218043982 -59 -0.125216745459882 -60 -0.125935112946914 -61 -0.130109252240931 -62 -0.135733419564075 -63 -0.0889814647212915 -64 0.559816239969457 -65 0.163620887268623 -66 -0.126594899689712 -67 -0.127716578736114 -68 -0.128558799740727 -69 -0.132714253074456 -70 -0.132981927789806 -71 -0.0463125531444366 -72 0.581465412089299 -73 0.0982819048234013 -74 -0.129982480706599 -75 -0.133771142860062 -76 -0.126274218030991 -77 -0.123223469867868 -78 -0.11895869982128 -79 0.0160445617942978 -80 0.549313085089554 -81 0.0523653189850826 -82 -0.129204586675343 -83 -0.127677297248879 -84 -0.11959366617596 -85 -0.118162084235907 -86 -0.129587964492176 -87 0.0651465727581341 -88 0.512663258282342 -89 0.0223897667771226 -90 -0.118248096115527 -91 -0.123885682842303 -92 -0.117535431833331 -93 -0.121345328959052 -94 -0.133999463136408 -95 0.135326455911309 -96 0.463805777555027 -97 0.00311864739783577 -98 -0.114421979094575 -99 -0.128164506124927 -100 -0.122080031865248 -101 -0.127022342388225 -102 -0.12151335276331 -103 0.208878191673693 -104 0.419309330326886 -105 -0.0174799014199824 -106 -0.12009985269644 -107 -0.131417368471035 -108 -0.121134843634553 -109 -0.120666756344282 -110 -0.105725377626208 -111 0.262489561386311 -112 0.354541905467325 -113 -0.0429415817022358 -114 -0.118506332455011 -115 -0.127753774809165 -116 -0.109476116043001 -117 -0.119418083275649 -118 -0.0854522404041955 -119 0.302906589860581 -120 0.286896207128895 -121 -0.0493387013179091 -122 -0.111479392930294 -123 -0.123008951924811 -124 -0.106573141028928 -125 -0.126135643791708 -126 -0.0577076665067928 -127 0.311292557510419 -128 0.249513559300441 -129 -0.0437015056466829 -130 -0.10140472809797 -131 -0.125545283680022 -132 -0.113851927275127 -133 -0.129070941594458 -134 -0.0206722811383723 -135 0.33013248984195 -136 0.20961947786441 -137 -0.0505286003858023 -138 -0.118483870649077 -139 -0.129232461148704 -140 -0.110922591820262 -141 -0.126965629548802 -142 0.0286192948484217 -143 0.337096243794888 -144 0.169248086740963 -145 -0.0654190423907559 -146 -0.120486323653649 -147 -0.127288129860007 -148 -0.103891665783828 -149 -0.124659309493563 -150 0.0654747872813297 -151 0.339088871793489 -152 0.117694381111953 -153 -0.069800715562458 -154 -0.113826839844647 -155 -0.112055163352168 -156 -0.0970154053292618 -157 -0.12192255176261 -158 0.0946677686276986 -159 0.319767630968006 -160 0.0962983917333902 -161 -0.0684068034695184 -162 -0.112118295167087 -163 -0.114032731963194 -164 -0.110895191829693 -165 -0.12490942207346 -166 0.150898199785889 -167 0.291628773924692 -168 0.0856114574594624 -169 -0.0734234204063937 -170 -0.114367902362174 -171 -0.118059154641348 -172 -0.112572722725924 -173 -0.103481698557819 -174 0.173284813389025 -175 0.278003056900596 -176 0.0650604673280916 -177 -0.0868193733027222 -178 -0.11924430409928 -179 -0.113850555498896 -180 -0.104056053166332 -181 -0.0706195733056155 -182 0.195014655464426 -183 0.251621304231625 -184 0.0441497783679571 -185 -0.0959128518254443 -186 -0.114114295397473 -187 -0.10361116463172 -188 -0.107664797628733 -189 -0.0474401968360638 -190 0.192034834911418 -191 0.224134275351347 -192 0.0395907319098148 -193 -0.0949220934593083 -194 -0.110602484889644 -195 -0.100717728255861 -196 -0.112049320791611 -197 -0.0238825067986291 -198 0.201018888376214 -199 0.200211719960315 -200 0.0376449870339866 -201 -0.0991903665462876 -202 -0.116672120770685 -203 -0.104917842447271 -204 -0.116982682663512 -205 0.0162721560678791 -206 0.204021816160558 -207 0.207342785121829 -208 0.00663694227997103 -209 -0.106521500277643 -210 -0.116317595851116 -211 -0.104116328257713 -212 -0.112167749776831 -213 0.0615103449414028 -214 0.199609635845337 -215 0.172676627738091 -216 -0.0173787071397098 -217 -0.104939889867195 -218 -0.112425821733991 -219 -0.0953637703798143 -220 -0.093052367494033 -221 0.0644616034737725 -222 0.21086820069092 -223 0.135486543334319 -224 -0.0210787666638188 -225 -0.0993320996511885 -226 -0.109562190043721 -227 -0.0908673948537397 -228 -0.0914456089142807 -229 0.077581460778825 -230 0.208551872164277 -231 0.116140101018818 -232 -0.0163102277997069 -233 -0.0916236078939407 -234 -0.111987175847954 -235 -0.0967383768271821 -236 -0.0826408025523878 -237 0.0966321189661173 -238 0.217509001187049 -239 0.0915108637148122 -240 -0.0253671941695331 -241 -0.104462116651977 -242 -0.11348746907754 -243 -0.0959006192794962 -244 -0.0612059863164585 -245 0.113695227895139 -246 0.208511810998661 -247 0.0766780695718476 -248 -0.0378625564901882 -249 -0.10618641671093 -250 -0.109982771242569 -251 -0.0926244918680679 -252 -0.0406078163763886 -253 0.124817056851144 -254 0.194848461762426 -255 0.053597534522723 -256 -0.0438252920201072 -257 -0.0998946597604676 -258 -0.0959760154259235 -259 -0.090197307047542 -260 -0.0257502198933741 -261 0.136762854179184 -262 0.168912763917697 -263 0.048323842970136 -264 -0.0436786423512219 -265 -0.100740525834715 -266 -0.0977845042725835 -267 -0.0927358458760765 -268 -0.0166810260413945 -269 0.146292226604344 -270 0.158004011117704 -271 0.0463090919867654 -272 -0.0508649026224276 -273 -0.100538901603337 -274 -0.0991902746655388 -275 -0.0968540899423071 -276 0.0148153955144431 -277 0.142136683921793 -278 0.150608238602075 -279 0.0366986042958235 -280 -0.0623139712087233 -281 -0.104975317080266 -282 -0.0956029621068854 -283 -0.0890770998720019 -284 0.0548354482192922 -285 0.133209397126082 -286 0.135583138300418 -287 0.0272435880371227 -288 -0.0714230928286135 -289 -0.0994192940032151 -290 -0.088773103919012 -291 -0.0841613176265042 -292 0.0592558849502553 -293 0.125376924612805 -294 0.129920277737479 -295 0.0195010407479747 -296 -0.0711393383891102 -297 -0.0966110162658782 -298 -0.0881783407707736 -299 -0.0770822025982766 -300 0.066971190635949 -301 0.132833571859132 -302 0.106070818363025 -303 0.0264050368313431 -304 -0.0786120187871163 -305 -0.099744480101871 -306 -0.0903116034438872 -307 -0.0727258814461179 -308 0.0805880901984141 -309 0.152764049007061 -310 0.0897693593924932 -311 0.0244183980184888 -312 -0.0913585727715549 -313 -0.101610527844229 -314 -0.0890784444186723 -315 -0.0580505722105439 -316 0.10438372554223 -317 0.13749147221931 -318 0.0759708703685098 -319 0.0047310993987612 -320 -0.0918433949431894 -321 -0.0973283709859868 -322 -0.0830381658731675 -323 -0.0375501533905209 -324 0.104260628790112 -325 0.136767805598137 -326 0.0649623096294137 -327 -0.0111381353615883 -328 -0.0902174271151667 -329 -0.0900084947503609 -330 -0.0845603027974476 -331 -0.0222484905680352 -332 0.10044110265699 -333 0.137209031622297 -334 0.0512317724372533 -335 -0.00469813974344492 -336 -0.0852660869649502 -337 -0.0936856764672113 -338 -0.0810781749410849 -339 -0.0111001728500522 -340 0.103897631604526 -341 0.131709630700509 -342 0.0454986930271181 -343 -0.0154461854075281 -344 -0.0950428147360073 -345 -0.0917481808403137 -346 -0.0819073492712917 -347 0.0124487690676487 -348 0.108988172807393 -349 0.12289144923052 -350 0.0405329244459299 -351 -0.0278261263679556 -352 -0.0969672128436255 -353 -0.0868716693424195 -354 -0.0819407369083838 -355 0.035944491369377 -356 0.107744673984401 -357 0.112575623631055 -358 0.0263346758872926 -359 -0.0328420504056899 -360 -0.0908205706813633 -361 -0.0750870093565662 -362 -0.0805597459059112 -363 0.0581570376747647 -364 0.0865463018735628 -365 0.116540878273595 -366 0.0199948600453009 -367 -0.03533657508366 -368 -0.0918593012174403 -369 -0.0794617415964357 -370 -0.0787014627401186 -371 0.0674476303755033 -372 0.087942973565642 -373 0.104930936427726 -374 0.0273053506001638 -375 -0.0464030903226921 -376 -0.0892541387964512 -377 -0.0826842259404731 -378 -0.071374986057042 -379 0.0807180550904197 -380 0.0929177969009142 -381 0.0862437690352589 -382 0.0286028161793366 -383 -0.0593261076213299 -384 -0.0910657756760768 -385 -0.0789683507405574 -386 -0.0550314183063351 -387 0.100805664939276 -388 0.0897320960012182 -389 0.067010863731299 -390 0.0261048090556462 -391 -0.0659316696174206 -392 -0.086786864764739 -393 -0.0733845242014095 -394 -0.0405465879929758 -395 0.0859517679001778 -396 0.0936250494518407 -397 0.0524562962824195 -398 0.0270919515769923 -399 -0.0676718513969418 -400 -0.0824139549961516 -401 -0.0758274382046422 -402 -0.021973546868283 -403 0.075410664358751 -404 0.104172119247351 -405 0.0343795991613305 -406 0.0358573471696254 -407 -0.0790257754948948 -408 -0.0826103755113398 -409 -0.0802175095763564 -410 -0.00408772816730303 -411 0.0797817450643218 -412 0.10269754375399 -413 0.0435425040893042 -414 0.0151375915059022 -415 -0.082224988149043 -416 -0.0825565105203654 -417 -0.0696184362192416 -418 0.00170781584040336 -419 0.0936874402227218 -420 0.0877595224369305 -421 0.0362572112929432 -422 -0.000752383773564971 -423 -0.0819270792159826 -424 -0.0773158381537405 -425 -0.0651464418900243 -426 0.0233879760162931 -427 0.0833911120244448 -428 0.0867605850712271 -429 0.0258451549993298 -430 -0.00489040153892436 -431 -0.0813233842666857 -432 -0.0691569813607638 -433 -0.0684545819114933 -434 0.0396563587473597 -435 0.0716165433337824 -436 0.0861256506553954 -437 0.0246435046549525 -438 -0.00567840565516219 -439 -0.0766446108871898 -440 -0.0734501086613091 -441 -0.0625863247444175 -442 0.0405008658019374 -443 0.0751250312042876 -444 0.0937777476669092 -445 0.0157135360029692 -446 -0.0185119034061188 -447 -0.0834731849818629 -448 -0.0721596446426834 -449 -0.0539848776994025 -450 0.0482803239352817 -451 0.0865159532050759 -452 0.0758518110612569 -453 0.0183167125626064 -454 -0.0302067075389182 -455 -0.0836849146728332 -456 -0.0680915900681338 -457 -0.0453151677467697 -458 0.0635811903828984 -459 0.0735228836096314 -460 0.0668774855582583 -461 0.0155517569389754 -462 -0.0361902584803522 -463 -0.0772526293731969 -464 -0.0599993945121568 -465 -0.0350025604255705 -466 0.0675409442225932 -467 0.0626588958411958 -468 0.0628618478913283 -469 0.0182100018474144 -470 -0.0393572049932932 -471 -0.0769465863807705 -472 -0.0669019696984521 -473 -0.0307690547029792 -474 0.0787650857298563 -475 0.0555937053005102 -476 0.0591286536064479 -477 0.0236864710611653 -478 -0.0510348446259402 -479 -0.0750230625326582 -480 -0.0692429698123807 -481 -0.0136046303961235 -482 0.074650527480705 -483 0.0576038372995368 -484 0.0514169146679383 -485 0.0235780875676953 -486 -0.0619450461800331 -487 -0.0775574009249976 -488 -0.0561458830522187 -489 -0.00509801117317696 -490 0.0804313785186439 -491 0.0577719157969876 -492 0.03898688881339 -493 0.0241595263048843 -494 -0.0685591657894399 -495 -0.0723076795891697 -496 -0.0523226231903489 -497 0.00373957683716917 -498 0.0717069979485176 -499 0.0550717482683905 -500 0.0403995445989468 -501 0.0113079953085825 -502 -0.0649276537000009 -503 -0.06649843954063 -504 -0.0560505708705572 -505 0.0137761579457734 -506 0.0702863631617265 -507 0.0541404684830862 -508 0.0443433883094673 -509 -0.00133780696150024 -510 -0.0665134068108655 -511 -0.0657601321121601 -512 -0.0607034011107588 -513 0.0213546383342833 -514 0.0775077767181889 -515 0.063458353376667 -516 0.0389609528439854 -517 -0.0108770067728056 -518 -0.0688616436130423 -519 -0.065807838377633 -520 -0.0591899626361279 -521 0.0477995260084885 -522 0.069819996106301 -523 0.0493499046172744 -524 0.0332730594271413 -525 -0.0200687475895302 -526 -0.0673172583961927 -527 -0.0608118592717286 -528 -0.046481250749937 -529 0.0514180414158432 -530 0.0671097463271896 -531 0.0400867520372663 -532 0.0333984982834754 -533 -0.0264838317178022 -534 -0.0659983240048536 -535 -0.0542885590490045 -536 -0.0401453467006326 -537 0.0485625723714385 -538 0.0635239092110429 -539 0.0345979294218286 -540 0.0399929330334083 -541 -0.028147715594677 -542 -0.0619139995393741 -543 -0.0586913999576994 -544 -0.0334649755872845 -545 0.0516737635834675 -546 0.0645253644882226 -547 0.0345307867743962 -548 0.0400603616259159 -549 -0.0423531962375596 -550 -0.0672300807914405 -551 -0.0587843856721668 -552 -0.0232646807886831 -553 0.058345982518284 -554 0.0665917961516256 -555 0.0274860012958233 -556 0.0415598244265968 -557 -0.0545146822234879 -558 -0.0677685109591305 -559 -0.0552725887508413 -560 -0.0125012238487659 -561 0.0625075581718202 -562 0.066971444471093 -563 0.0129232540938186 -564 0.0392980506706601 -565 -0.05908734296345 -566 -0.0607304242571567 -567 -0.0493112113842046 -568 0.00071062117125135 -569 0.0653734421725974 -570 0.0469205167937502 -571 0.0252022285127285 -572 0.0269428623042389 -573 -0.0554040258813037 -574 -0.0594329262955446 -575 -0.0472055457536386 -576 -0.00273760356981996 -577 0.0642743964669037 -578 0.0419312704866381 -579 0.0399122296513867 -580 0.0132186725236814 -581 -0.0547466706460982 -582 -0.0579756221767372 -583 -0.0511476715833451 -584 0.00601423910448657 -585 0.0689373246423459 -586 0.0353940033868963 -587 0.0425778157862413 -588 0.00424129603039375 -589 -0.0586697203651189 -590 -0.059002595522944 -591 -0.0470191336291943 -592 0.0244211578887408 -593 0.0714176288385068 -594 0.0293208317804955 -595 0.0369996210742842 -596 -0.00457553552424864 -597 -0.0559531047561718 -598 -0.0523918096467366 -599 -0.0446664312862491 -600 0.0316320734850762 -601 0.0644602080811167 -602 0.0199863627247641 -603 0.0369746309809726 -604 -0.00948602618598588 -605 -0.0504144894458729 -606 -0.0498443845352435 -607 -0.0444638507903543 -608 0.0391189013974007 -609 0.0628424781970596 -610 0.0112347649830505 -611 0.041452654212153 -612 -0.0137347497952992 -613 -0.0506892746398375 -614 -0.0511072669077967 -615 -0.0477234466444133 -616 0.048705448350975 -617 0.0667627851388053 -618 0.0115120265386804 -619 0.0461383553267045 -620 -0.0255620287525987 -621 -0.0530260247588348 -622 -0.0518381410417808 -623 -0.034700796376516 -624 0.0438063518562166 -625 0.0798836058195734 -626 -0.00243894245318495 -627 0.0406243460796687 -628 -0.0332199890358811 -629 -0.0523350080049007 -630 -0.0477070167478482 -631 -0.0215305402264588 -632 0.0472394359550523 -633 0.0694737083559497 -634 -0.00372172457388709 -635 0.0391809172600764 -636 -0.0382719971378076 -637 -0.0501961995371232 -638 -0.042738214015656 -639 -0.0140839477377811 -640 0.0442885931768186 -641 0.0581346694204897 -642 -0.000477976111666972 -643 0.044566527743489 -644 -0.0396856402477227 -645 -0.0466626145007252 -646 -0.0480864305333951 -647 -0.00726442405889962 -648 0.0459497867910762 -649 0.0529082222445075 -650 0.0147432426130685 -651 0.0267433571795441 -652 -0.0446692520126606 -653 -0.0497203066081803 -654 -0.0480919421757669 -655 0.00345954210366673 -656 0.0509913399433936 -657 0.0467433070314585 -658 0.0252001648134732 -659 0.0106946846977517 -660 -0.0484551606819746 -661 -0.0500758070505588 -662 -0.0440163401232168 -663 0.0148218474037118 -664 0.0526365008291643 -665 0.0397902946591361 -666 0.0206689888910779 -667 0.00207265111858896 -668 -0.0440452489670014 -669 -0.0447792337914997 -670 -0.0286381554427784 -671 0.00640869437792482 -672 0.057153163903739 -673 0.0304890998129141 -674 0.0230136624918959 -675 -0.00281506118608654 -676 -0.0387242678971035 -677 -0.044929991903093 -678 -0.0345193810230013 -679 0.00492460337689268 -680 0.0679821172192718 -681 0.0219950472241659 -682 0.0289438385002853 -683 -0.00781136170677615 -684 -0.0388612390832975 -685 -0.0438680272774733 -686 -0.0376131497506628 -687 0.0139348600467974 -688 0.0615101213028946 -689 0.0249115734544766 -690 0.0331598636184604 -691 -0.0195415991964588 -692 -0.0396395679788538 -693 -0.0456649577394422 -694 -0.0344136244069955 -695 0.031200395934606 -696 0.0562012519733673 -697 0.0260663012747182 -698 0.0295359686001106 -699 -0.0291311572903775 -700 -0.0371203313810216 -701 -0.0424418146790537 -702 -0.0303746199454463 -703 0.0388492858751788 -704 0.0424481679100295 -705 0.0263584605497916 -706 0.0288712604390293 -707 -0.0341554547083513 -708 -0.0333021072203847 -709 -0.0383392296141879 -710 -0.030923211248435 -711 0.0471145773235206 -712 0.032067317539082 -713 0.0263399585846731 -714 0.0323937671311792 -715 -0.0392772990043492 -716 -0.0317758252581109 -717 -0.0407689976562314 -718 -0.0327532575849971 -719 0.0558983521943971 -720 0.026320879417627 -721 0.0457775828616138 -722 0.0162704705253485 -723 -0.0410862090233348 -724 -0.0334511325087015 -725 -0.0413337594074423 -726 -0.0301113850535044 -727 0.0700417742596319 -728 0.0210871230961877 -729 0.0496617422305004 -730 -0.00408251250355076 -731 -0.0406821339716385 -732 -0.0329210563908783 -733 -0.0378798823957753 -734 -0.0166612213666539 -735 0.0622559233401728 -736 0.0220631815362089 -737 0.0480937159816023 -738 -0.0123428856122574 -739 -0.0375402198111287 -740 -0.0309453130567288 -741 -0.0353256252179894 -742 -0.00536945125430805 -743 0.0496444169496324 -744 0.0204929366248046 -745 0.0499533569480695 -746 -0.0174935751544407 -747 -0.0286134919496942 -748 -0.0305151115655182 -749 -0.0370057423961568 -750 0.00182606608143132 -751 0.0417928304144692 -752 0.0232491015772242 -753 0.0556033683720853 -754 -0.0281117547926764 -755 -0.030035318580472 -756 -0.0330573966633533 -757 -0.0365260598388687 -758 0.0111750942979797 -759 0.0374827782514529 -760 0.0257453279628935 -761 0.0580299290244595 -762 -0.0358087395388202 -763 -0.0338231237069173 -764 -0.0328610625099181 -765 -0.0336222121488749 -766 0.0234186100148553 -767 0.0293361050839678 -768 0.0383060243360171 -769 0.0358879458606336 -770 -0.0363117922484678 -771 -0.0310100414844719 -772 -0.0298340231919974 -773 -0.0258481757762449 -774 0.033493341046757 -775 0.0172146853910682 -776 0.0455221955873717 -777 0.0204498758334694 -778 -0.033692934640153 -779 -0.0254246875075756 -780 -0.0321408035488926 -781 -0.0179574084831518 -782 0.0214789164114721 -783 0.019638114859952 -784 0.0455930828635699 -785 0.0178984964416421 -786 -0.0300055577311117 -787 -0.0240917794268532 -788 -0.0321597467853985 -789 -0.0210401731167207 -790 0.0230111556897733 -791 0.0217566052979974 -792 0.0489917866644012 -793 0.0104440982676834 -794 -0.0301428802473305 -795 -0.0258951028342734 -796 -0.03187192392573 -797 -0.0176269050708972 -798 0.027393570534183 -799 0.0263875715311133 -800 0.0486779658212448 -801 -0.00102291484615847 -802 -0.0300556523736458 -803 -0.023857819156972 -804 -0.0280605128257784 -805 -0.0146115387847382 -806 0.0244907923259942 -807 0.0247824841072157 -808 0.0494074681728141 -809 -0.0095960873131345 -810 -0.0267959528999005 -811 -0.0203312406902549 -812 -0.0260311947802059 -813 -0.0131484879600813 -814 0.0230120193265332 -815 0.0228091639758259 -816 0.051666749222434 -817 -0.0152576501369182 -818 -0.0250358027329496 -819 -0.0190314982739485 -820 -0.0266605188325892 -821 -0.0144373958898868 -822 0.0237380994329812 -823 0.0260374801079161 -824 0.0586957834829624 -825 -0.022457849542461 -826 -0.0262980585565696 -827 -0.0200584452117297 -828 -0.0266876132871316 -829 -0.0129290645560979 -830 0.0289095571745369 -831 0.0354539766084729 -832 0.0392777761914384 -833 -0.0238771076358964 -834 -0.0245018601036372 -835 -0.0205517186652316 -836 -0.0234327204627339 -837 -0.00933955244847433 -838 0.0296367828905565 -839 0.0459917434926111 -840 0.0186744768510845 -841 -0.0234505177518883 -842 -0.0215210406113312 -843 -0.01812563049523 -844 -0.0212885529434847 -845 -0.0088234522037928 -846 0.0280281842675072 -847 0.045730091253579 -848 0.0136208433079523 -849 -0.0205058386168346 -850 -0.0163481209061992 -851 -0.017230164457982 -852 -0.0230906563738739 -853 -0.00937085079532756 -854 0.0286089438226922 -855 0.0501679772526387 -856 0.00511934527865221 -857 -0.0188740591732872 -858 -0.017123441437589 -859 -0.0185029603009925 -860 -0.0202624384779385 -861 -0.0103662518808214 -862 0.0316765684721357 -863 0.0535962784902621 -864 -0.00257262435536896 -865 -0.0176721411023214 -866 -0.0194221796537958 -867 -0.0180419513954025 -868 -0.0173325086944974 -869 -0.00890051108382059 -870 0.0333845873727604 -871 0.0544120911411167 -872 -0.0112929673408612 -873 -0.0180526419713337 -874 -0.0167143497616369 -875 -0.0157948604767141 -876 -0.0130148291547908 -877 -0.0066614174930643 -878 0.0306666725820053 -879 0.0540685898200517 -880 -0.0179887040186856 -881 -0.0155749350538922 -882 -0.015542452853135 -883 -0.0149949065113926 -884 -0.0134739305361601 -885 -0.0082822064674981 -886 0.0415180058769115 -887 0.037756025074253 -888 -0.0148899027592997 -889 -0.013090094291838 -890 -0.0153014397425967 -891 -0.0135012972355123 -892 -0.015585448733386 -893 -0.00788737374502331 -894 0.0535415797928148 -895 0.0217926147381109 -896 -0.01363175489377 -897 -0.012354773771845 -898 -0.0155285058724365 -899 -0.0135036893080631 -900 -0.0125236766180776 -901 -0.00637080628552419 -902 0.0605226042557018 -903 0.0112303280281208 -904 -0.0133912061642023 -905 -0.0124502459337457 -906 -0.0142998634027549 -907 -0.0099981269727546 -908 -0.0122633402331702 -909 -0.00567413706716593 -910 0.0595172409685727 -911 0.00326019370638518 -912 -0.0128841193059995 -913 -0.0102224824574885 -914 -0.0116469346046309 -915 -0.00776357295252222 -916 -0.0118848925539363 -917 -0.00433896685705348 -918 0.0567076341120711 -919 -0.00300835870741313 -920 -0.0107647074857665 -921 -0.00845164093060122 -922 -0.0106818140369162 -923 -0.00761048402311565 -924 -0.0114674108324614 -925 -0.00417421313051504 -926 0.0598773670187433 -927 -0.00747931723570069 -928 -0.00927920131574313 -929 -0.00986810999500912 -930 -0.0104075730217127 -931 -0.00695169167094114 -932 -0.0109784274186893 -933 0.00811872232461237 -934 0.0430158981401019 -935 -0.00722859498851006 -936 -0.00990312674945696 -937 -0.00920124918803136 -938 -0.00908355760957161 -939 -0.00496962170124263 -940 -0.00878291146198605 -941 0.0194043242975934 -942 0.0256780783722546 -943 -0.00897052689874001 -944 -0.00954900138754423 -945 -0.00713164082441335 -946 -0.00673138670048183 -947 -0.00311543034312673 -948 -0.00793377494765913 -949 0.0199694046973212 -950 0.0180051634303271 -951 -0.00731841589233604 -952 -0.0061524475893558 -953 -0.00552246177877621 -954 -0.00405347414382562 -955 -0.00502519204794434 -956 -0.00735520719380658 -957 0.0201391483118552 -958 0.0115351551478785 -959 -0.00595396340022971 -960 -0.0044658313778136 -961 -0.00466635333434365 -962 -0.00505971330517482 -963 -0.00426347088471071 -964 -0.00630201264403959 -965 0.0226924063931286 -966 0.00532856864375404 -967 -0.00456693836529996 -968 -0.00500848518452319 -969 -0.00521286355162228 -970 -0.00466691800162192 -971 -0.00261192567994811 -972 -0.00365801738266432 -973 0.0244751515715762 -974 -0.00293671804465107 -975 -0.0036023990997325 -976 -0.00448873920500162 -977 -0.00365131282800052 -978 -0.00180880871887979 -979 -0.00132104428035144 -980 0.00742840409816276 -981 0.00626148410583357 -982 -0.00316720508921753 -983 -0.00304702341715472 -984 -0.0023682711547723 -985 -0.00118323799369014 -986 -3.66599346965767e-05 -987 -0.000324399710172427 -988 0.00733954118289635 -989 -0.00225809776707784 -990 -0.00133635779017759 -991 -0.00134850512655973 -992 -0.000434310902574387 -993 -0.000233992853297238 -994 0.000360461316321191 -995 -0.000531725699132137 -996 -0.000471000549829534 -997 0.000486792668870103 -998 0.000364177523187972 -999 0.000256019411210032 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat deleted file mode 100644 index e51dc44..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat +++ /dev/null @@ -1,1001 +0,0 @@ -#scatter real total user system repeat -1 0.0337560176849365 0.0300000000000011 0.0300000000000011 0.0 1 -2 0.0330429077148438 0.029999999999994 0.029999999999994 0.0 2 -3 0.0369691848754883 0.0400000000000063 0.0400000000000063 0.0 3 -4 0.0330410003662109 0.029999999999994 0.029999999999994 0.0 4 -5 0.0346219539642334 0.0400000000000063 0.0400000000000063 0.0 5 -6 0.0324759483337402 0.029999999999994 0.029999999999994 0.0 6 -7 0.0320150852203369 0.0300000000000011 0.0300000000000011 0.0 7 -8 0.0320718288421631 0.0300000000000011 0.0300000000000011 0.0 8 -9 0.0765988826751709 0.0799999999999983 0.0799999999999983 0.0 9 -10 0.0331180095672607 0.0300000000000011 0.0300000000000011 0.0 10 -11 0.0346410274505615 0.0399999999999991 0.0399999999999991 0.0 11 -12 0.0330672264099121 0.0300000000000011 0.0300000000000011 0.0 12 -13 0.0326869487762451 0.0300000000000011 0.0300000000000011 0.0 13 -14 0.0323951244354248 0.0399999999999991 0.0399999999999991 0.0 14 -15 0.0317728519439697 0.0300000000000011 0.0300000000000011 0.0 15 -16 0.0336828231811523 0.0300000000000011 0.0300000000000011 0.0 16 -17 0.0816280841827393 0.0799999999999983 0.0799999999999983 0.0 17 -18 0.0336179733276367 0.0399999999999991 0.0399999999999991 0.0 18 -19 0.0329349040985107 0.0300000000000011 0.0300000000000011 0.0 19 -20 0.0328211784362793 0.0300000000000011 0.0300000000000011 0.0 20 -21 0.0326688289642334 0.0300000000000011 0.0300000000000011 0.0 21 -22 0.0329129695892334 0.0399999999999991 0.0399999999999991 0.0 22 -23 0.0351161956787109 0.0300000000000011 0.0300000000000011 0.0 23 -24 0.073289155960083 0.0799999999999983 0.0799999999999983 0.0 24 -25 0.0333049297332764 0.0300000000000011 0.0300000000000011 0.0 25 -26 0.0327980518341064 0.029999999999994 0.029999999999994 0.0 26 -27 0.0333559513092041 0.0400000000000063 0.0400000000000063 0.0 27 -28 0.0331299304962158 0.029999999999994 0.029999999999994 0.0 28 -29 0.0361030101776123 0.0300000000000011 0.0300000000000011 0.0 29 -30 0.0326149463653564 0.0399999999999991 0.0399999999999991 0.0 30 -31 0.0354421138763428 0.0300000000000011 0.0300000000000011 0.0 31 -32 0.0737769603729248 0.0799999999999983 0.0799999999999983 0.0 32 -33 0.0334198474884033 0.0300000000000011 0.0300000000000011 0.0 33 -34 0.0328729152679443 0.0300000000000011 0.0300000000000011 0.0 34 -35 0.0363237857818604 0.0399999999999991 0.0399999999999991 0.0 35 -36 0.0331850051879883 0.0300000000000011 0.0300000000000011 0.0 36 -37 0.033970832824707 0.0399999999999991 0.0399999999999991 0.0 37 -38 0.0325729846954346 0.0300000000000011 0.0300000000000011 0.0 38 -39 0.0321781635284424 0.0300000000000011 0.0300000000000011 0.0 39 -40 0.0730009078979492 0.0700000000000003 0.0700000000000003 0.0 40 -41 0.0354671478271484 0.0399999999999991 0.0399999999999991 0.0 41 -42 0.0329980850219727 0.0300000000000011 0.0300000000000011 0.0 42 -43 0.0432839393615723 0.0499999999999972 0.0499999999999972 0.0 43 -44 0.0330131053924561 0.0300000000000011 0.0300000000000011 0.0 44 -45 0.032541036605835 0.0300000000000011 0.0300000000000011 0.0 45 -46 0.0323638916015625 0.0300000000000011 0.0300000000000011 0.0 46 -47 0.0322492122650146 0.0399999999999991 0.0399999999999991 0.0 47 -48 0.0752780437469482 0.0700000000000003 0.0700000000000003 0.0 48 -49 0.0334651470184326 0.0300000000000011 0.0300000000000011 0.0 49 -50 0.0330009460449219 0.0399999999999991 0.0399999999999991 0.0 50 -51 0.0331478118896484 0.0300000000000011 0.0300000000000011 0.0 51 -52 0.0328009128570557 0.029999999999994 0.029999999999994 0.0 52 -53 0.0326621532440186 0.0400000000000063 0.0400000000000063 0.0 53 -54 0.0325331687927246 0.029999999999994 0.029999999999994 0.0 54 -55 0.0355179309844971 0.0300000000000011 0.0300000000000011 0.0 55 -56 0.0758390426635742 0.0800000000000054 0.0800000000000054 0.0 56 -57 0.0330648422241211 0.029999999999994 0.029999999999994 0.0 57 -58 0.0333669185638428 0.0399999999999991 0.0399999999999991 0.0 58 -59 0.0331768989562988 0.0300000000000011 0.0300000000000011 0.0 59 -60 0.0326540470123291 0.0300000000000011 0.0300000000000011 0.0 60 -61 0.036034107208252 0.0399999999999991 0.0399999999999991 0.0 61 -62 0.0326058864593506 0.0300000000000011 0.0300000000000011 0.0 62 -63 0.032081127166748 0.0300000000000011 0.0300000000000011 0.0 63 -64 0.0732240676879883 0.0799999999999983 0.0799999999999983 0.0 64 -65 0.0332009792327881 0.0300000000000011 0.0300000000000011 0.0 65 -66 0.0333409309387207 0.0300000000000011 0.0300000000000011 0.0 66 -67 0.0352249145507812 0.0399999999999991 0.0399999999999991 0.0 67 -68 0.0328779220581055 0.0300000000000011 0.0300000000000011 0.0 68 -69 0.0408899784088135 0.0399999999999991 0.0399999999999991 0.0 69 -70 0.0330538749694824 0.0399999999999991 0.0399999999999991 0.0 70 -71 0.0315990447998047 0.0300000000000011 0.0300000000000011 0.0 71 -72 0.0723180770874023 0.0700000000000003 0.0700000000000003 0.0 72 -73 0.0360608100891113 0.0399999999999991 0.0399999999999991 0.0 73 -74 0.0332560539245605 0.0300000000000011 0.0300000000000011 0.0 74 -75 0.0337710380554199 0.0300000000000011 0.0300000000000011 0.0 75 -76 0.0330729484558105 0.0399999999999991 0.0399999999999991 0.0 76 -77 0.0325820446014404 0.0300000000000011 0.0300000000000011 0.0 77 -78 0.0323619842529297 0.029999999999994 0.029999999999994 0.0 78 -79 0.0319099426269531 0.0300000000000011 0.0300000000000011 0.0 79 -80 0.0756161212921143 0.0800000000000054 0.0800000000000054 0.0 80 -81 0.0331521034240723 0.029999999999994 0.029999999999994 0.0 81 -82 0.0353209972381592 0.0400000000000063 0.0400000000000063 0.0 82 -83 0.0330510139465332 0.029999999999994 0.029999999999994 0.0 83 -84 0.03314208984375 0.0300000000000011 0.0300000000000011 0.0 84 -85 0.03261399269104 0.0300000000000011 0.0300000000000011 0.0 85 -86 0.0322940349578857 0.0399999999999991 0.0399999999999991 0.0 86 -87 0.034559965133667 0.0300000000000011 0.0300000000000011 0.0 87 -88 0.0729730129241943 0.0700000000000003 0.0700000000000003 0.0 88 -89 0.033174991607666 0.0399999999999991 0.0399999999999991 0.0 89 -90 0.0331950187683105 0.0300000000000011 0.0300000000000011 0.0 90 -91 0.032789945602417 0.0300000000000011 0.0300000000000011 0.0 91 -92 0.032573938369751 0.0399999999999991 0.0399999999999991 0.0 92 -93 0.0352959632873535 0.0300000000000011 0.0300000000000011 0.0 93 -94 0.0322601795196533 0.0300000000000011 0.0300000000000011 0.0 94 -95 0.0399200916290283 0.0399999999999991 0.0399999999999991 0.0 95 -96 0.0733668804168701 0.0799999999999983 0.0799999999999983 0.0 96 -97 0.0330679416656494 0.0300000000000011 0.0300000000000011 0.0 97 -98 0.0331020355224609 0.0300000000000011 0.0300000000000011 0.0 98 -99 0.0338099002838135 0.0399999999999991 0.0399999999999991 0.0 99 -100 0.0351119041442871 0.0300000000000011 0.0300000000000011 0.0 100 -101 0.0325391292572021 0.0399999999999991 0.0399999999999991 0.0 101 -102 0.0326120853424072 0.0300000000000011 0.0300000000000011 0.0 102 -103 0.0314269065856934 0.029999999999994 0.029999999999994 0.0 103 -104 0.0736079216003418 0.0700000000000003 0.0700000000000003 0.0 104 -105 0.0331168174743652 0.0399999999999991 0.0399999999999991 0.0 105 -106 0.0369949340820312 0.0300000000000011 0.0300000000000011 0.0 106 -107 0.033034086227417 0.0399999999999991 0.0399999999999991 0.0 107 -108 0.0347108840942383 0.0300000000000011 0.0300000000000011 0.0 108 -109 0.0326550006866455 0.0300000000000011 0.0300000000000011 0.0 109 -110 0.032649040222168 0.0399999999999991 0.0399999999999991 0.0 110 -111 0.0317308902740479 0.0300000000000011 0.0300000000000011 0.0 111 -112 0.075963020324707 0.0700000000000003 0.0700000000000003 0.0 112 -113 0.0332450866699219 0.0399999999999991 0.0399999999999991 0.0 113 -114 0.0340969562530518 0.0300000000000011 0.0300000000000011 0.0 114 -115 0.0331099033355713 0.0300000000000011 0.0300000000000011 0.0 115 -116 0.0326979160308838 0.0399999999999991 0.0399999999999991 0.0 116 -117 0.0322890281677246 0.0300000000000011 0.0300000000000011 0.0 117 -118 0.0321509838104248 0.0300000000000011 0.0300000000000011 0.0 118 -119 0.0315690040588379 0.029999999999994 0.029999999999994 0.0 119 -120 0.0853371620178223 0.0900000000000034 0.0900000000000034 0.0 120 -121 0.0338900089263916 0.0300000000000011 0.0300000000000011 0.0 121 -122 0.0330648422241211 0.0399999999999991 0.0399999999999991 0.0 122 -123 0.0330510139465332 0.0300000000000011 0.0300000000000011 0.0 123 -124 0.0327119827270508 0.0300000000000011 0.0300000000000011 0.0 124 -125 0.0324461460113525 0.029999999999994 0.029999999999994 0.0 125 -126 0.036160945892334 0.0400000000000063 0.0400000000000063 0.0 126 -127 0.0314981937408447 0.029999999999994 0.029999999999994 0.0 127 -128 0.073836088180542 0.0800000000000054 0.0800000000000054 0.0 128 -129 0.0328719615936279 0.029999999999994 0.029999999999994 0.0 129 -130 0.0332820415496826 0.0300000000000011 0.0300000000000011 0.0 130 -131 0.0329020023345947 0.0300000000000011 0.0300000000000011 0.0 131 -132 0.0362491607666016 0.0399999999999991 0.0399999999999991 0.0 132 -133 0.0325329303741455 0.0300000000000011 0.0300000000000011 0.0 133 -134 0.0340819358825684 0.0399999999999991 0.0399999999999991 0.0 134 -135 0.0319511890411377 0.0300000000000011 0.0300000000000011 0.0 135 -136 0.0739138126373291 0.0700000000000003 0.0700000000000003 0.0 136 -137 0.0330600738525391 0.0300000000000011 0.0300000000000011 0.0 137 -138 0.0359530448913574 0.0399999999999991 0.0399999999999991 0.0 138 -139 0.0330100059509277 0.0300000000000011 0.0300000000000011 0.0 139 -140 0.0330448150634766 0.0399999999999991 0.0399999999999991 0.0 140 -141 0.0330119132995605 0.0300000000000011 0.0300000000000011 0.0 141 -142 0.0321979522705078 0.0300000000000011 0.0300000000000011 0.0 142 -143 0.0314090251922607 0.029999999999994 0.029999999999994 0.0 143 -144 0.0762948989868164 0.0800000000000054 0.0800000000000054 0.0 144 -145 0.0330369472503662 0.0300000000000011 0.0300000000000011 0.0 145 -146 0.0413818359375 0.0399999999999991 0.0399999999999991 0.0 146 -147 0.0336639881134033 0.0399999999999991 0.0399999999999991 0.0 147 -148 0.032634973526001 0.0300000000000011 0.0300000000000011 0.0 148 -149 0.0324230194091797 0.029999999999994 0.029999999999994 0.0 149 -150 0.0322530269622803 0.0400000000000063 0.0400000000000063 0.0 150 -151 0.0314328670501709 0.029999999999994 0.029999999999994 0.0 151 -152 0.0764839649200439 0.0700000000000003 0.0700000000000003 0.0 152 -153 0.0351881980895996 0.0400000000000063 0.0400000000000063 0.0 153 -154 0.0330648422241211 0.029999999999994 0.029999999999994 0.0 154 -155 0.0328710079193115 0.0399999999999991 0.0399999999999991 0.0 155 -156 0.032764196395874 0.0300000000000011 0.0300000000000011 0.0 156 -157 0.0323169231414795 0.0300000000000011 0.0300000000000011 0.0 157 -158 0.0350921154022217 0.0399999999999991 0.0399999999999991 0.0 158 -159 0.0315439701080322 0.0300000000000011 0.0300000000000011 0.0 159 -160 0.0760791301727295 0.0700000000000003 0.0700000000000003 0.0 160 -161 0.0333390235900879 0.0399999999999991 0.0399999999999991 0.0 161 -162 0.0331790447235107 0.0300000000000011 0.0300000000000011 0.0 162 -163 0.0328421592712402 0.0300000000000011 0.0300000000000011 0.0 163 -164 0.0354018211364746 0.0399999999999991 0.0399999999999991 0.0 164 -165 0.0326108932495117 0.0300000000000011 0.0300000000000011 0.0 165 -166 0.0330290794372559 0.0300000000000011 0.0300000000000011 0.0 166 -167 0.0316469669342041 0.0300000000000011 0.0300000000000011 0.0 167 -168 0.0735650062561035 0.0799999999999983 0.0799999999999983 0.0 168 -169 0.0328128337860107 0.0300000000000011 0.0300000000000011 0.0 169 -170 0.034276008605957 0.0399999999999991 0.0399999999999991 0.0 170 -171 0.0350871086120605 0.0300000000000011 0.0300000000000011 0.0 171 -172 0.0402491092681885 0.0399999999999991 0.0399999999999991 0.0 172 -173 0.033289909362793 0.0300000000000011 0.0300000000000011 0.0 173 -174 0.0319631099700928 0.0399999999999991 0.0399999999999991 0.0 174 -175 0.0314111709594727 0.029999999999994 0.029999999999994 0.0 175 -176 0.0736920833587646 0.0700000000000003 0.0700000000000003 0.0 176 -177 0.0366611480712891 0.0400000000000063 0.0400000000000063 0.0 177 -178 0.0331029891967773 0.029999999999994 0.029999999999994 0.0 178 -179 0.0331480503082275 0.0300000000000011 0.0300000000000011 0.0 179 -180 0.0324270725250244 0.0399999999999991 0.0399999999999991 0.0 180 -181 0.0324950218200684 0.0300000000000011 0.0300000000000011 0.0 181 -182 0.032120943069458 0.0300000000000011 0.0300000000000011 0.0 182 -183 0.0316941738128662 0.0300000000000011 0.0300000000000011 0.0 183 -184 0.0764799118041992 0.0799999999999983 0.0799999999999983 0.0 184 -185 0.0351009368896484 0.0300000000000011 0.0300000000000011 0.0 185 -186 0.0331439971923828 0.0399999999999991 0.0399999999999991 0.0 186 -187 0.0333070755004883 0.0300000000000011 0.0300000000000011 0.0 187 -188 0.0326988697052002 0.0300000000000011 0.0300000000000011 0.0 188 -189 0.0324010848999023 0.0399999999999991 0.0399999999999991 0.0 189 -190 0.0343129634857178 0.0300000000000011 0.0300000000000011 0.0 190 -191 0.0317180156707764 0.0300000000000011 0.0300000000000011 0.0 191 -192 0.0754880905151367 0.0799999999999983 0.0799999999999983 0.0 192 -193 0.0328428745269775 0.0300000000000011 0.0300000000000011 0.0 193 -194 0.0328872203826904 0.029999999999994 0.029999999999994 0.0 194 -195 0.0326900482177734 0.0400000000000063 0.0400000000000063 0.0 195 -196 0.0326938629150391 0.029999999999994 0.029999999999994 0.0 196 -197 0.036156177520752 0.0400000000000063 0.0400000000000063 0.0 197 -198 0.0402121543884277 0.029999999999994 0.029999999999994 0.0 198 -199 0.0345208644866943 0.0400000000000063 0.0400000000000063 0.0 199 -200 0.0736300945281982 0.0699999999999932 0.0699999999999932 0.0 200 -201 0.0329070091247559 0.0400000000000063 0.0400000000000063 0.0 201 -202 0.0329358577728271 0.029999999999994 0.029999999999994 0.0 202 -203 0.0367400646209717 0.0400000000000063 0.0400000000000063 0.0 203 -204 0.0326740741729736 0.029999999999994 0.029999999999994 0.0 204 -205 0.0328309535980225 0.0300000000000011 0.0300000000000011 0.0 205 -206 0.0319180488586426 0.0300000000000011 0.0300000000000011 0.0 206 -207 0.0315039157867432 0.0300000000000011 0.0300000000000011 0.0 207 -208 0.073983907699585 0.0799999999999983 0.0799999999999983 0.0 208 -209 0.0354940891265869 0.0300000000000011 0.0300000000000011 0.0 209 -210 0.0329270362854004 0.0399999999999991 0.0399999999999991 0.0 210 -211 0.0364441871643066 0.0300000000000011 0.0300000000000011 0.0 211 -212 0.0326921939849854 0.0300000000000011 0.0300000000000011 0.0 212 -213 0.0329389572143555 0.0399999999999991 0.0399999999999991 0.0 213 -214 0.0320320129394531 0.0300000000000011 0.0300000000000011 0.0 214 -215 0.0314679145812988 0.0300000000000011 0.0300000000000011 0.0 215 -216 0.0766069889068604 0.0799999999999983 0.0799999999999983 0.0 216 -217 0.0343639850616455 0.0300000000000011 0.0300000000000011 0.0 217 -218 0.0331821441650391 0.0399999999999991 0.0399999999999991 0.0 218 -219 0.0328841209411621 0.0300000000000011 0.0300000000000011 0.0 219 -220 0.0324678421020508 0.029999999999994 0.029999999999994 0.0 220 -221 0.0323128700256348 0.0300000000000011 0.0300000000000011 0.0 221 -222 0.0320940017700195 0.0399999999999991 0.0399999999999991 0.0 222 -223 0.084298849105835 0.0800000000000054 0.0800000000000054 0.0 223 -224 0.0338959693908691 0.0300000000000011 0.0300000000000011 0.0 224 -225 0.0326578617095947 0.0399999999999991 0.0399999999999991 0.0 225 -226 0.0329980850219727 0.029999999999994 0.029999999999994 0.0 226 -227 0.0328388214111328 0.0300000000000011 0.0300000000000011 0.0 227 -228 0.0324342250823975 0.0399999999999991 0.0399999999999991 0.0 228 -229 0.0363619327545166 0.0300000000000011 0.0300000000000011 0.0 229 -230 0.0319449901580811 0.0300000000000011 0.0300000000000011 0.0 230 -231 0.0728111267089844 0.0799999999999983 0.0799999999999983 0.0 231 -232 0.0331339836120605 0.0300000000000011 0.0300000000000011 0.0 232 -233 0.0330288410186768 0.0300000000000011 0.0300000000000011 0.0 233 -234 0.0328319072723389 0.0399999999999991 0.0399999999999991 0.0 234 -235 0.0353119373321533 0.0300000000000011 0.0300000000000011 0.0 235 -236 0.0324058532714844 0.0300000000000011 0.0300000000000011 0.0 236 -237 0.0343661308288574 0.0399999999999991 0.0399999999999991 0.0 237 -238 0.0319287776947021 0.0300000000000011 0.0300000000000011 0.0 238 -239 0.0734179019927979 0.0700000000000003 0.0700000000000003 0.0 239 -240 0.0330750942230225 0.0399999999999991 0.0399999999999991 0.0 240 -241 0.0359859466552734 0.0300000000000011 0.0300000000000011 0.0 241 -242 0.0331950187683105 0.0399999999999991 0.0399999999999991 0.0 242 -243 0.0336649417877197 0.0300000000000011 0.0300000000000011 0.0 243 -244 0.0327489376068115 0.0300000000000011 0.0300000000000011 0.0 244 -245 0.0324509143829346 0.029999999999994 0.029999999999994 0.0 245 -246 0.0315418243408203 0.0399999999999991 0.0399999999999991 0.0 246 -247 0.0725250244140625 0.0700000000000003 0.0700000000000003 0.0 247 -248 0.0361208915710449 0.0300000000000011 0.0300000000000011 0.0 248 -249 0.040661096572876 0.0399999999999991 0.0399999999999991 0.0 249 -250 0.0346300601959229 0.0400000000000063 0.0400000000000063 0.0 250 -251 0.0325310230255127 0.029999999999994 0.029999999999994 0.0 251 -252 0.032663106918335 0.0300000000000011 0.0300000000000011 0.0 252 -253 0.0323901176452637 0.0399999999999991 0.0399999999999991 0.0 253 -254 0.0314888954162598 0.0300000000000011 0.0300000000000011 0.0 254 -255 0.0757758617401123 0.0700000000000003 0.0700000000000003 0.0 255 -256 0.0334639549255371 0.0399999999999991 0.0399999999999991 0.0 256 -257 0.032958984375 0.0300000000000011 0.0300000000000011 0.0 257 -258 0.0329427719116211 0.0300000000000011 0.0300000000000011 0.0 258 -259 0.0325839519500732 0.0399999999999991 0.0399999999999991 0.0 259 -260 0.0327038764953613 0.0300000000000011 0.0300000000000011 0.0 260 -261 0.0347969532012939 0.0300000000000011 0.0300000000000011 0.0 261 -262 0.0313179492950439 0.0399999999999991 0.0399999999999991 0.0 262 -263 0.0764021873474121 0.0700000000000003 0.0700000000000003 0.0 263 -264 0.0333998203277588 0.0300000000000011 0.0300000000000011 0.0 264 -265 0.0331900119781494 0.0399999999999991 0.0399999999999991 0.0 265 -266 0.0328788757324219 0.0300000000000011 0.0300000000000011 0.0 266 -267 0.0352470874786377 0.0399999999999991 0.0399999999999991 0.0 267 -268 0.0326640605926514 0.0300000000000011 0.0300000000000011 0.0 268 -269 0.0323259830474854 0.029999999999994 0.029999999999994 0.0 269 -270 0.0321478843688965 0.0300000000000011 0.0300000000000011 0.0 270 -271 0.0730900764465332 0.0799999999999983 0.0799999999999983 0.0 271 -272 0.032844066619873 0.0300000000000011 0.0300000000000011 0.0 272 -273 0.0331649780273438 0.0300000000000011 0.0300000000000011 0.0 273 -274 0.0364649295806885 0.0399999999999991 0.0399999999999991 0.0 274 -275 0.0396530628204346 0.0399999999999991 0.0399999999999991 0.0 275 -276 0.0334179401397705 0.0300000000000011 0.0300000000000011 0.0 276 -277 0.0320639610290527 0.0300000000000011 0.0300000000000011 0.0 277 -278 0.0313940048217773 0.0399999999999991 0.0399999999999991 0.0 278 -279 0.0731561183929443 0.0700000000000003 0.0700000000000003 0.0 279 -280 0.0364029407501221 0.0399999999999991 0.0399999999999991 0.0 280 -281 0.0330798625946045 0.0300000000000011 0.0300000000000011 0.0 281 -282 0.0338191986083984 0.0300000000000011 0.0300000000000011 0.0 282 -283 0.0326099395751953 0.0399999999999991 0.0399999999999991 0.0 283 -284 0.0324950218200684 0.0300000000000011 0.0300000000000011 0.0 284 -285 0.0321521759033203 0.0300000000000011 0.0300000000000011 0.0 285 -286 0.0321328639984131 0.0300000000000011 0.0300000000000011 0.0 286 -287 0.0761940479278564 0.0799999999999983 0.0799999999999983 0.0 287 -288 0.0365800857543945 0.0300000000000011 0.0300000000000011 0.0 288 -289 0.0353879928588867 0.0399999999999991 0.0399999999999991 0.0 289 -290 0.0333998203277588 0.0300000000000011 0.0300000000000011 0.0 290 -291 0.0328271389007568 0.029999999999994 0.029999999999994 0.0 291 -292 0.0326738357543945 0.0400000000000063 0.0400000000000063 0.0 292 -293 0.0339128971099854 0.029999999999994 0.029999999999994 0.0 293 -294 0.0325300693511963 0.0300000000000011 0.0300000000000011 0.0 294 -295 0.0739338397979736 0.0800000000000054 0.0800000000000054 0.0 295 -296 0.0328948497772217 0.029999999999994 0.029999999999994 0.0 296 -297 0.0328888893127441 0.0300000000000011 0.0300000000000011 0.0 297 -298 0.0327708721160889 0.0399999999999991 0.0399999999999991 0.0 298 -299 0.0325500965118408 0.0300000000000011 0.0300000000000011 0.0 299 -300 0.0354809761047363 0.0300000000000011 0.0300000000000011 0.0 300 -301 0.0396809577941895 0.0399999999999991 0.0399999999999991 0.0 301 -302 0.0334930419921875 0.0399999999999991 0.0399999999999991 0.0 302 -303 0.0734050273895264 0.0700000000000003 0.0700000000000003 0.0 303 -304 0.0328478813171387 0.0300000000000011 0.0300000000000011 0.0 304 -305 0.0329740047454834 0.0399999999999991 0.0399999999999991 0.0 305 -306 0.0364749431610107 0.0300000000000011 0.0300000000000011 0.0 306 -307 0.0326058864593506 0.0300000000000011 0.0300000000000011 0.0 307 -308 0.0327680110931396 0.0399999999999991 0.0399999999999991 0.0 308 -309 0.0319027900695801 0.0300000000000011 0.0300000000000011 0.0 309 -310 0.0315032005310059 0.0300000000000011 0.0300000000000011 0.0 310 -311 0.073652982711792 0.0700000000000003 0.0700000000000003 0.0 311 -312 0.0356411933898926 0.0399999999999991 0.0399999999999991 0.0 312 -313 0.0330371856689453 0.0300000000000011 0.0300000000000011 0.0 313 -314 0.0342891216278076 0.0399999999999991 0.0399999999999991 0.0 314 -315 0.0345110893249512 0.0300000000000011 0.0300000000000011 0.0 315 -316 0.032926082611084 0.029999999999994 0.029999999999994 0.0 316 -317 0.031851053237915 0.0399999999999991 0.0399999999999991 0.0 317 -318 0.0316848754882812 0.0300000000000011 0.0300000000000011 0.0 318 -319 0.0761759281158447 0.0700000000000003 0.0700000000000003 0.0 319 -320 0.0328528881072998 0.0399999999999991 0.0399999999999991 0.0 320 -321 0.0334789752960205 0.0300000000000011 0.0300000000000011 0.0 321 -322 0.0328638553619385 0.0300000000000011 0.0300000000000011 0.0 322 -323 0.0323901176452637 0.0399999999999991 0.0399999999999991 0.0 323 -324 0.0323100090026855 0.0300000000000011 0.0300000000000011 0.0 324 -325 0.0324501991271973 0.0300000000000011 0.0300000000000011 0.0 325 -326 0.0336298942565918 0.0300000000000011 0.0300000000000011 0.0 326 -327 0.0810260772705078 0.0899999999999963 0.0899999999999963 0.0 327 -328 0.0327072143554688 0.0300000000000011 0.0300000000000011 0.0 328 -329 0.0328741073608398 0.0300000000000011 0.0300000000000011 0.0 329 -330 0.0328249931335449 0.0300000000000011 0.0300000000000011 0.0 330 -331 0.0325191020965576 0.0399999999999991 0.0399999999999991 0.0 331 -332 0.0351779460906982 0.0300000000000011 0.0300000000000011 0.0 332 -333 0.0318300724029541 0.0300000000000011 0.0300000000000011 0.0 333 -334 0.075192928314209 0.0799999999999983 0.0799999999999983 0.0 334 -335 0.0331308841705322 0.0300000000000011 0.0300000000000011 0.0 335 -336 0.0328052043914795 0.029999999999994 0.029999999999994 0.0 336 -337 0.0331370830535889 0.0400000000000063 0.0400000000000063 0.0 337 -338 0.0356910228729248 0.029999999999994 0.029999999999994 0.0 338 -339 0.0324921607971191 0.0400000000000063 0.0400000000000063 0.0 339 -340 0.0324490070343018 0.029999999999994 0.029999999999994 0.0 340 -341 0.0341949462890625 0.0300000000000011 0.0300000000000011 0.0 341 -342 0.0734210014343262 0.0799999999999983 0.0799999999999983 0.0 342 -343 0.0332908630371094 0.0300000000000011 0.0300000000000011 0.0 343 -344 0.0332479476928711 0.0300000000000011 0.0300000000000011 0.0 344 -345 0.0360391139984131 0.0399999999999991 0.0399999999999991 0.0 345 -346 0.0328700542449951 0.0300000000000011 0.0300000000000011 0.0 346 -347 0.0346879959106445 0.0399999999999991 0.0399999999999991 0.0 347 -348 0.0322730541229248 0.0300000000000011 0.0300000000000011 0.0 348 -349 0.0316729545593262 0.0300000000000011 0.0300000000000011 0.0 349 -350 0.0730090141296387 0.0700000000000003 0.0700000000000003 0.0 350 -351 0.0364499092102051 0.0399999999999991 0.0399999999999991 0.0 351 -352 0.0416209697723389 0.0399999999999991 0.0399999999999991 0.0 352 -353 0.0340771675109863 0.0399999999999991 0.0399999999999991 0.0 353 -354 0.0326759815216064 0.0300000000000011 0.0300000000000011 0.0 354 -355 0.0324649810791016 0.0300000000000011 0.0300000000000011 0.0 355 -356 0.032310962677002 0.0300000000000011 0.0300000000000011 0.0 356 -357 0.0313961505889893 0.0300000000000011 0.0300000000000011 0.0 357 -358 0.0751090049743652 0.0799999999999983 0.0799999999999983 0.0 358 -359 0.0351879596710205 0.0399999999999991 0.0399999999999991 0.0 359 -360 0.0331299304962158 0.0300000000000011 0.0300000000000011 0.0 360 -361 0.0328550338745117 0.0300000000000011 0.0300000000000011 0.0 361 -362 0.0325639247894287 0.029999999999994 0.029999999999994 0.0 362 -363 0.0325849056243896 0.0400000000000063 0.0400000000000063 0.0 363 -364 0.0344219207763672 0.029999999999994 0.029999999999994 0.0 364 -365 0.0323021411895752 0.0300000000000011 0.0300000000000011 0.0 365 -366 0.0760447978973389 0.0800000000000054 0.0800000000000054 0.0 366 -367 0.0335848331451416 0.029999999999994 0.029999999999994 0.0 367 -368 0.0331020355224609 0.0399999999999991 0.0399999999999991 0.0 368 -369 0.0329232215881348 0.0300000000000011 0.0300000000000011 0.0 369 -370 0.0328400135040283 0.0300000000000011 0.0300000000000011 0.0 370 -371 0.0363020896911621 0.0399999999999991 0.0399999999999991 0.0 371 -372 0.0322511196136475 0.0300000000000011 0.0300000000000011 0.0 372 -373 0.0333948135375977 0.0300000000000011 0.0300000000000011 0.0 373 -374 0.0732510089874268 0.0799999999999983 0.0799999999999983 0.0 374 -375 0.032930850982666 0.0300000000000011 0.0300000000000011 0.0 375 -376 0.0330500602722168 0.0300000000000011 0.0300000000000011 0.0 376 -377 0.0361061096191406 0.0399999999999991 0.0399999999999991 0.0 377 -378 0.0395760536193848 0.0399999999999991 0.0399999999999991 0.0 378 -379 0.0334169864654541 0.0300000000000011 0.0300000000000011 0.0 379 -380 0.0320568084716797 0.0300000000000011 0.0300000000000011 0.0 380 -381 0.0315189361572266 0.0399999999999991 0.0399999999999991 0.0 381 -382 0.0733020305633545 0.0700000000000003 0.0700000000000003 0.0 382 -383 0.0355980396270752 0.0399999999999991 0.0399999999999991 0.0 383 -384 0.0331339836120605 0.0300000000000011 0.0300000000000011 0.0 384 -385 0.0331411361694336 0.0300000000000011 0.0300000000000011 0.0 385 -386 0.0324721336364746 0.0300000000000011 0.0300000000000011 0.0 386 -387 0.0324320793151855 0.0399999999999991 0.0399999999999991 0.0 387 -388 0.0321850776672363 0.029999999999994 0.029999999999994 0.0 388 -389 0.0315890312194824 0.0300000000000011 0.0300000000000011 0.0 389 -390 0.0761289596557617 0.0800000000000054 0.0800000000000054 0.0 390 -391 0.033301830291748 0.029999999999994 0.029999999999994 0.0 391 -392 0.035081148147583 0.0300000000000011 0.0300000000000011 0.0 392 -393 0.0335009098052979 0.0399999999999991 0.0399999999999991 0.0 393 -394 0.0326759815216064 0.0300000000000011 0.0300000000000011 0.0 394 -395 0.0327270030975342 0.0300000000000011 0.0300000000000011 0.0 395 -396 0.0323770046234131 0.0399999999999991 0.0399999999999991 0.0 396 -397 0.0347421169281006 0.0300000000000011 0.0300000000000011 0.0 397 -398 0.0752899646759033 0.0799999999999983 0.0799999999999983 0.0 398 -399 0.0327789783477783 0.0300000000000011 0.0300000000000011 0.0 399 -400 0.032951831817627 0.0300000000000011 0.0300000000000011 0.0 400 -401 0.03273606300354 0.0300000000000011 0.0300000000000011 0.0 401 -402 0.0324621200561523 0.0399999999999991 0.0399999999999991 0.0 402 -403 0.0350461006164551 0.0300000000000011 0.0300000000000011 0.0 403 -404 0.0376379489898682 0.0399999999999991 0.0399999999999991 0.0 404 -405 0.0354411602020264 0.0300000000000011 0.0300000000000011 0.0 405 -406 0.0734958648681641 0.0799999999999983 0.0799999999999983 0.0 406 -407 0.0329210758209229 0.0300000000000011 0.0300000000000011 0.0 407 -408 0.0329289436340332 0.0300000000000011 0.0300000000000011 0.0 408 -409 0.0354850292205811 0.0399999999999991 0.0399999999999991 0.0 409 -410 0.0325729846954346 0.0300000000000011 0.0300000000000011 0.0 410 -411 0.0327589511871338 0.0399999999999991 0.0399999999999991 0.0 411 -412 0.0319170951843262 0.0300000000000011 0.0300000000000011 0.0 412 -413 0.031519889831543 0.029999999999994 0.029999999999994 0.0 413 -414 0.0742340087890625 0.0700000000000003 0.0700000000000003 0.0 414 -415 0.0346739292144775 0.0399999999999991 0.0399999999999991 0.0 415 -416 0.0351288318634033 0.0300000000000011 0.0300000000000011 0.0 416 -417 0.0329630374908447 0.0399999999999991 0.0399999999999991 0.0 417 -418 0.0367558002471924 0.0300000000000011 0.0300000000000011 0.0 418 -419 0.0328981876373291 0.0300000000000011 0.0300000000000011 0.0 419 -420 0.0320210456848145 0.0399999999999991 0.0399999999999991 0.0 420 -421 0.031790018081665 0.0300000000000011 0.0300000000000011 0.0 421 -422 0.0784010887145996 0.0799999999999983 0.0799999999999983 0.0 422 -423 0.0330309867858887 0.0300000000000011 0.0300000000000011 0.0 423 -424 0.0335760116577148 0.0300000000000011 0.0300000000000011 0.0 424 -425 0.0327050685882568 0.0399999999999991 0.0399999999999991 0.0 425 -426 0.0326788425445557 0.0300000000000011 0.0300000000000011 0.0 426 -427 0.032289981842041 0.0300000000000011 0.0300000000000011 0.0 427 -428 0.0317809581756592 0.0300000000000011 0.0300000000000011 0.0 428 -429 0.0816869735717773 0.0899999999999963 0.0899999999999963 0.0 429 -430 0.035430908203125 0.0300000000000011 0.0300000000000011 0.0 430 -431 0.0327348709106445 0.0300000000000011 0.0300000000000011 0.0 431 -432 0.0328209400177002 0.0399999999999991 0.0399999999999991 0.0 432 -433 0.0328578948974609 0.0300000000000011 0.0300000000000011 0.0 433 -434 0.0324020385742188 0.0300000000000011 0.0300000000000011 0.0 434 -435 0.0351409912109375 0.0399999999999991 0.0399999999999991 0.0 435 -436 0.0321168899536133 0.0300000000000011 0.0300000000000011 0.0 436 -437 0.0726029872894287 0.0700000000000003 0.0700000000000003 0.0 437 -438 0.0331008434295654 0.029999999999994 0.029999999999994 0.0 438 -439 0.0328960418701172 0.0399999999999991 0.0399999999999991 0.0 439 -440 0.0328078269958496 0.0300000000000011 0.0300000000000011 0.0 440 -441 0.0326459407806396 0.0300000000000011 0.0300000000000011 0.0 441 -442 0.0361838340759277 0.0399999999999991 0.0399999999999991 0.0 442 -443 0.0322508811950684 0.0300000000000011 0.0300000000000011 0.0 443 -444 0.0355379581451416 0.0399999999999991 0.0399999999999991 0.0 444 -445 0.0736260414123535 0.0700000000000003 0.0700000000000003 0.0 445 -446 0.0333738327026367 0.0300000000000011 0.0300000000000011 0.0 446 -447 0.0333800315856934 0.0399999999999991 0.0399999999999991 0.0 447 -448 0.0369861125946045 0.0300000000000011 0.0300000000000011 0.0 448 -449 0.033034086227417 0.0399999999999991 0.0399999999999991 0.0 449 -450 0.034984827041626 0.0300000000000011 0.0300000000000011 0.0 450 -451 0.0323779582977295 0.0300000000000011 0.0300000000000011 0.0 451 -452 0.0319168567657471 0.0399999999999991 0.0399999999999991 0.0 452 -453 0.0730609893798828 0.0700000000000003 0.0700000000000003 0.0 453 -454 0.0357108116149902 0.0399999999999991 0.0399999999999991 0.0 454 -455 0.0403239727020264 0.0399999999999991 0.0399999999999991 0.0 455 -456 0.033923864364624 0.0300000000000011 0.0300000000000011 0.0 456 -457 0.0325479507446289 0.0300000000000011 0.0300000000000011 0.0 457 -458 0.0323481559753418 0.0300000000000011 0.0300000000000011 0.0 458 -459 0.0323350429534912 0.0399999999999991 0.0399999999999991 0.0 459 -460 0.0314900875091553 0.0300000000000011 0.0300000000000011 0.0 460 -461 0.075538158416748 0.0700000000000003 0.0700000000000003 0.0 461 -462 0.0340449810028076 0.0399999999999991 0.0399999999999991 0.0 462 -463 0.0331201553344727 0.0300000000000011 0.0300000000000011 0.0 463 -464 0.0330970287322998 0.029999999999994 0.029999999999994 0.0 464 -465 0.0326929092407227 0.0399999999999991 0.0399999999999991 0.0 465 -466 0.0326869487762451 0.0300000000000011 0.0300000000000011 0.0 466 -467 0.0325558185577393 0.0300000000000011 0.0300000000000011 0.0 467 -468 0.0355589389801025 0.0399999999999991 0.0399999999999991 0.0 468 -469 0.0771338939666748 0.0700000000000003 0.0700000000000003 0.0 469 -470 0.0334289073944092 0.0399999999999991 0.0399999999999991 0.0 470 -471 0.0330390930175781 0.0300000000000011 0.0300000000000011 0.0 471 -472 0.0329241752624512 0.0300000000000011 0.0300000000000011 0.0 472 -473 0.0327908992767334 0.0399999999999991 0.0399999999999991 0.0 473 -474 0.0363669395446777 0.0300000000000011 0.0300000000000011 0.0 474 -475 0.0322010517120361 0.0300000000000011 0.0300000000000011 0.0 475 -476 0.0328471660614014 0.0399999999999991 0.0399999999999991 0.0 476 -477 0.0735671520233154 0.0700000000000003 0.0700000000000003 0.0 477 -478 0.0327999591827393 0.0300000000000011 0.0300000000000011 0.0 478 -479 0.0329790115356445 0.0399999999999991 0.0399999999999991 0.0 479 -480 0.0350720882415771 0.0300000000000011 0.0300000000000011 0.0 480 -481 0.0392179489135742 0.0399999999999991 0.0399999999999991 0.0 481 -482 0.0342378616333008 0.0399999999999991 0.0399999999999991 0.0 482 -483 0.0319888591766357 0.0300000000000011 0.0300000000000011 0.0 483 -484 0.0314619541168213 0.0300000000000011 0.0300000000000011 0.0 484 -485 0.0736970901489258 0.0700000000000003 0.0700000000000003 0.0 485 -486 0.0357317924499512 0.0399999999999991 0.0399999999999991 0.0 486 -487 0.0331878662109375 0.0300000000000011 0.0300000000000011 0.0 487 -488 0.033804178237915 0.0399999999999991 0.0399999999999991 0.0 488 -489 0.0325119495391846 0.0300000000000011 0.0300000000000011 0.0 489 -490 0.0325300693511963 0.029999999999994 0.029999999999994 0.0 490 -491 0.0321159362792969 0.0300000000000011 0.0300000000000011 0.0 491 -492 0.0320580005645752 0.0399999999999991 0.0399999999999991 0.0 492 -493 0.075861930847168 0.0700000000000003 0.0700000000000003 0.0 493 -494 0.033599853515625 0.0399999999999991 0.0399999999999991 0.0 494 -495 0.0367560386657715 0.0300000000000011 0.0300000000000011 0.0 495 -496 0.0333199501037598 0.0300000000000011 0.0300000000000011 0.0 496 -497 0.0325191020965576 0.0399999999999991 0.0399999999999991 0.0 497 -498 0.0327298641204834 0.0300000000000011 0.0300000000000011 0.0 498 -499 0.0322799682617188 0.0300000000000011 0.0300000000000011 0.0 499 -500 0.0348708629608154 0.0399999999999991 0.0399999999999991 0.0 500 -501 0.0749578475952148 0.0700000000000003 0.0700000000000003 0.0 501 -502 0.0332460403442383 0.0399999999999991 0.0399999999999991 0.0 502 -503 0.0331079959869385 0.0300000000000011 0.0300000000000011 0.0 503 -504 0.0328578948974609 0.0300000000000011 0.0300000000000011 0.0 504 -505 0.032494068145752 0.0300000000000011 0.0300000000000011 0.0 505 -506 0.0351459980010986 0.0399999999999991 0.0399999999999991 0.0 506 -507 0.0394799709320068 0.0500000000000043 0.0399999999999991 0.01 507 -508 0.0342020988464355 0.0300000000000011 0.0300000000000011 0.0 508 -509 0.0742120742797852 0.0799999999999983 0.0799999999999983 0.0 509 -510 0.0330269336700439 0.0300000000000011 0.0300000000000011 0.0 510 -511 0.032991886138916 0.0300000000000011 0.0300000000000011 0.0 511 -512 0.0354578495025635 0.0399999999999991 0.0399999999999991 0.0 512 -513 0.0327198505401611 0.0300000000000011 0.0300000000000011 0.0 513 -514 0.0336050987243652 0.029999999999994 0.029999999999994 0.0 514 -515 0.0318880081176758 0.0400000000000063 0.0400000000000063 0.0 515 -516 0.0725610256195068 0.0699999999999932 0.0699999999999932 0.0 516 -517 0.0332450866699219 0.0300000000000011 0.0300000000000011 0.0 517 -518 0.0342578887939453 0.0399999999999991 0.0399999999999991 0.0 518 -519 0.035430908203125 0.0300000000000011 0.0300000000000011 0.0 519 -520 0.032912015914917 0.0399999999999991 0.0399999999999991 0.0 520 -521 0.0366041660308838 0.0300000000000011 0.0300000000000011 0.0 521 -522 0.0328991413116455 0.0300000000000011 0.0300000000000011 0.0 522 -523 0.0319130420684814 0.0399999999999991 0.0399999999999991 0.0 523 -524 0.07318115234375 0.0700000000000003 0.0700000000000003 0.0 524 -525 0.0363700389862061 0.0399999999999991 0.0399999999999991 0.0 525 -526 0.033411979675293 0.0300000000000011 0.0300000000000011 0.0 526 -527 0.0364720821380615 0.0399999999999991 0.0399999999999991 0.0 527 -528 0.0327281951904297 0.0300000000000011 0.0300000000000011 0.0 528 -529 0.0325851440429688 0.0300000000000011 0.0300000000000011 0.0 529 -530 0.0322520732879639 0.0300000000000011 0.0300000000000011 0.0 530 -531 0.0316128730773926 0.0399999999999991 0.0399999999999991 0.0 531 -532 0.0813291072845459 0.0799999999999983 0.0799999999999983 0.0 532 -533 0.0356478691101074 0.0300000000000011 0.0300000000000011 0.0 533 -534 0.0330061912536621 0.0300000000000011 0.0300000000000011 0.0 534 -535 0.0327270030975342 0.0399999999999991 0.0399999999999991 0.0 535 -536 0.032696008682251 0.0300000000000011 0.0300000000000011 0.0 536 -537 0.032243013381958 0.0300000000000011 0.0300000000000011 0.0 537 -538 0.0348541736602783 0.0399999999999991 0.0399999999999991 0.0 538 -539 0.031674861907959 0.0300000000000011 0.0300000000000011 0.0 539 -540 0.0754058361053467 0.0700000000000003 0.0700000000000003 0.0 540 -541 0.0328490734100342 0.0399999999999991 0.0399999999999991 0.0 541 -542 0.0332391262054443 0.029999999999994 0.029999999999994 0.0 542 -543 0.0331962108612061 0.0300000000000011 0.0300000000000011 0.0 543 -544 0.0350210666656494 0.0399999999999991 0.0399999999999991 0.0 544 -545 0.0324161052703857 0.0300000000000011 0.0300000000000011 0.0 545 -546 0.031865119934082 0.0300000000000011 0.0300000000000011 0.0 546 -547 0.0355000495910645 0.0399999999999991 0.0399999999999991 0.0 547 -548 0.0733621120452881 0.0700000000000003 0.0700000000000003 0.0 548 -549 0.0331029891967773 0.0300000000000011 0.0300000000000011 0.0 549 -550 0.0332908630371094 0.0399999999999991 0.0399999999999991 0.0 550 -551 0.0365278720855713 0.0300000000000011 0.0300000000000011 0.0 551 -552 0.0326669216156006 0.0399999999999991 0.0399999999999991 0.0 552 -553 0.0345711708068848 0.0300000000000011 0.0300000000000011 0.0 553 -554 0.0320999622344971 0.0300000000000011 0.0300000000000011 0.0 554 -555 0.0315120220184326 0.0300000000000011 0.0300000000000011 0.0 555 -556 0.0733709335327148 0.0700000000000003 0.0700000000000003 0.0 556 -557 0.0357170104980469 0.0300000000000011 0.0300000000000011 0.0 557 -558 0.0411560535430908 0.0399999999999991 0.0399999999999991 0.0 558 -559 0.0337309837341309 0.0399999999999991 0.0399999999999991 0.0 559 -560 0.0325090885162354 0.0300000000000011 0.0300000000000011 0.0 560 -561 0.0326089859008789 0.0300000000000011 0.0300000000000011 0.0 561 -562 0.032412052154541 0.029999999999994 0.029999999999994 0.0 562 -563 0.0314450263977051 0.0300000000000011 0.0300000000000011 0.0 563 -564 0.0781939029693604 0.0700000000000003 0.0700000000000003 0.0 564 -565 0.0359461307525635 0.0399999999999991 0.0399999999999991 0.0 565 -566 0.0339870452880859 0.0300000000000011 0.0300000000000011 0.0 566 -567 0.0329389572143555 0.0399999999999991 0.0399999999999991 0.0 567 -568 0.0336530208587646 0.029999999999994 0.029999999999994 0.0 568 -569 0.0326399803161621 0.0300000000000011 0.0300000000000011 0.0 569 -570 0.0351450443267822 0.0399999999999991 0.0399999999999991 0.0 570 -571 0.0314168930053711 0.0300000000000011 0.0300000000000011 0.0 571 -572 0.0775408744812012 0.0800000000000054 0.0800000000000054 0.0 572 -573 0.032926082611084 0.029999999999994 0.029999999999994 0.0 573 -574 0.0330569744110107 0.0300000000000011 0.0300000000000011 0.0 574 -575 0.0329349040985107 0.0300000000000011 0.0300000000000011 0.0 575 -576 0.0327939987182617 0.0399999999999991 0.0399999999999991 0.0 576 -577 0.035599946975708 0.0300000000000011 0.0300000000000011 0.0 577 -578 0.0321230888366699 0.0399999999999991 0.0399999999999991 0.0 578 -579 0.0320999622344971 0.0300000000000011 0.0300000000000011 0.0 579 -580 0.0739450454711914 0.0700000000000003 0.0700000000000003 0.0 580 -581 0.0332319736480713 0.0300000000000011 0.0300000000000011 0.0 581 -582 0.0331840515136719 0.0300000000000011 0.0300000000000011 0.0 582 -583 0.0358431339263916 0.0300000000000011 0.0300000000000011 0.0 583 -584 0.0413031578063965 0.0499999999999972 0.0499999999999972 0.0 584 -585 0.0345101356506348 0.0300000000000011 0.0300000000000011 0.0 585 -586 0.0317580699920654 0.0300000000000011 0.0300000000000011 0.0 586 -587 0.0729880332946777 0.0799999999999983 0.0799999999999983 0.0 587 -588 0.0332069396972656 0.0300000000000011 0.0300000000000011 0.0 588 -589 0.036264181137085 0.0300000000000011 0.0300000000000011 0.0 589 -590 0.0331530570983887 0.0399999999999991 0.0399999999999991 0.0 590 -591 0.0343399047851562 0.0300000000000011 0.0300000000000011 0.0 591 -592 0.0326418876647949 0.0300000000000011 0.0300000000000011 0.0 592 -593 0.0326697826385498 0.0300000000000011 0.0300000000000011 0.0 593 -594 0.0320968627929688 0.0299999999999869 0.029999999999994 0.0 594 -595 0.0752952098846436 0.0800000000000125 0.0800000000000054 0.0 595 -596 0.0330331325531006 0.0299999999999869 0.029999999999994 0.0 596 -597 0.0343711376190186 0.0300000000000011 0.0300000000000011 0.0 597 -598 0.035207986831665 0.0400000000000063 0.0400000000000063 0.0 598 -599 0.0326581001281738 0.0300000000000011 0.0300000000000011 0.0 599 -600 0.0325701236724854 0.0300000000000011 0.0300000000000011 0.0 600 -601 0.0330169200897217 0.039999999999992 0.039999999999992 0.0 601 -602 0.0319371223449707 0.0300000000000011 0.0300000000000011 0.0 602 -603 0.0774281024932861 0.0799999999999983 0.0799999999999983 0.0 603 -604 0.033113956451416 0.0300000000000011 0.0300000000000011 0.0 604 -605 0.0331709384918213 0.0300000000000011 0.0300000000000011 0.0 605 -606 0.0327689647674561 0.0300000000000011 0.0300000000000011 0.0 606 -607 0.0324411392211914 0.0400000000000063 0.0400000000000063 0.0 607 -608 0.0325808525085449 0.0299999999999869 0.0299999999999869 0.0 608 -609 0.0360062122344971 0.0400000000000063 0.0400000000000063 0.0 609 -610 0.041234016418457 0.0400000000000063 0.0400000000000063 0.0 610 -611 0.0736250877380371 0.0699999999999932 0.0699999999999932 0.0 611 -612 0.0329921245574951 0.0300000000000011 0.0300000000000011 0.0 612 -613 0.0332169532775879 0.0400000000000063 0.0400000000000063 0.0 613 -614 0.0327460765838623 0.0299999999999869 0.0299999999999869 0.0 614 -615 0.0364718437194824 0.0400000000000063 0.0400000000000063 0.0 615 -616 0.0324280261993408 0.0300000000000011 0.0300000000000011 0.0 616 -617 0.0323798656463623 0.0300000000000011 0.0300000000000011 0.0 617 -618 0.031386137008667 0.0300000000000011 0.0300000000000011 0.0 618 -619 0.0726630687713623 0.0799999999999983 0.0799999999999983 0.0 619 -620 0.0328989028930664 0.0300000000000011 0.0300000000000011 0.0 620 -621 0.0358729362487793 0.0300000000000011 0.0300000000000011 0.0 621 -622 0.0327029228210449 0.039999999999992 0.039999999999992 0.0 622 -623 0.0342001914978027 0.0300000000000011 0.0300000000000011 0.0 623 -624 0.0347521305084229 0.0400000000000063 0.0400000000000063 0.0 624 -625 0.0318779945373535 0.0300000000000011 0.0300000000000011 0.0 625 -626 0.0316078662872314 0.0300000000000011 0.0300000000000011 0.0 626 -627 0.0768020153045654 0.0699999999999932 0.0699999999999932 0.0 627 -628 0.0332560539245605 0.0400000000000063 0.0400000000000063 0.0 628 -629 0.0345439910888672 0.0300000000000011 0.0300000000000011 0.0 629 -630 0.033174991607666 0.039999999999992 0.039999999999992 0.0 630 -631 0.0327689647674561 0.0300000000000011 0.0300000000000011 0.0 631 -632 0.0324020385742188 0.0300000000000011 0.0300000000000011 0.0 632 -633 0.0320298671722412 0.0300000000000011 0.0300000000000011 0.0 633 -634 0.0313320159912109 0.0300000000000011 0.0300000000000011 0.0 634 -635 0.0831730365753174 0.0900000000000034 0.0900000000000034 0.0 635 -636 0.0344598293304443 0.0299999999999869 0.0299999999999869 0.0 636 -637 0.0330190658569336 0.0400000000000063 0.0400000000000063 0.0 637 -638 0.033113956451416 0.0300000000000011 0.0300000000000011 0.0 638 -639 0.032689094543457 0.0300000000000011 0.0300000000000011 0.0 639 -640 0.0323820114135742 0.0300000000000011 0.0300000000000011 0.0 640 -641 0.034714937210083 0.039999999999992 0.039999999999992 0.0 641 -642 0.0318310260772705 0.0300000000000011 0.0300000000000011 0.0 642 -643 0.0750701427459717 0.0700000000000074 0.0700000000000074 0.0 643 -644 0.0330171585083008 0.039999999999992 0.039999999999992 0.0 644 -645 0.0331709384918213 0.0300000000000011 0.0300000000000011 0.0 645 -646 0.0328099727630615 0.0300000000000011 0.0300000000000011 0.0 646 -647 0.0354018211364746 0.0400000000000063 0.0400000000000063 0.0 647 -648 0.0324749946594238 0.0300000000000011 0.0300000000000011 0.0 648 -649 0.0331239700317383 0.0300000000000011 0.0300000000000011 0.0 649 -650 0.0337600708007812 0.039999999999992 0.039999999999992 0.0 650 -651 0.0735490322113037 0.0700000000000074 0.0700000000000074 0.0 651 -652 0.0332188606262207 0.0300000000000011 0.0300000000000011 0.0 652 -653 0.0344240665435791 0.039999999999992 0.039999999999992 0.0 653 -654 0.0346159934997559 0.0300000000000011 0.0300000000000011 0.0 654 -655 0.0326159000396729 0.0400000000000063 0.0400000000000063 0.0 655 -656 0.0342769622802734 0.0299999999999869 0.0299999999999869 0.0 656 -657 0.0318350791931152 0.0300000000000011 0.0300000000000011 0.0 657 -658 0.0315489768981934 0.0300000000000011 0.0300000000000011 0.0 658 -659 0.0741128921508789 0.0799999999999983 0.0799999999999983 0.0 659 -660 0.0384690761566162 0.0400000000000063 0.0400000000000063 0.0 660 -661 0.0412099361419678 0.0400000000000063 0.0400000000000063 0.0 661 -662 0.0339169502258301 0.0299999999999869 0.0299999999999869 0.0 662 -663 0.0325090885162354 0.0300000000000011 0.0300000000000011 0.0 663 -664 0.0323750972747803 0.0400000000000063 0.0400000000000063 0.0 664 -665 0.0319221019744873 0.0300000000000011 0.0300000000000011 0.0 665 -666 0.0757949352264404 0.0699999999999932 0.0699999999999932 0.0 666 -667 0.0332348346710205 0.0400000000000063 0.0400000000000063 0.0 667 -668 0.0343492031097412 0.0300000000000011 0.0300000000000011 0.0 668 -669 0.0330471992492676 0.0300000000000011 0.0300000000000011 0.0 669 -670 0.0328240394592285 0.039999999999992 0.039999999999992 0.0 670 -671 0.0326519012451172 0.0300000000000011 0.0300000000000011 0.0 671 -672 0.0323309898376465 0.0300000000000011 0.0300000000000011 0.0 672 -673 0.0348069667816162 0.0400000000000063 0.0400000000000063 0.0 673 -674 0.0734519958496094 0.0699999999999932 0.0699999999999932 0.0 674 -675 0.0358669757843018 0.0400000000000063 0.0400000000000063 0.0 675 -676 0.0329530239105225 0.0300000000000011 0.0300000000000011 0.0 676 -677 0.033228874206543 0.0300000000000011 0.0300000000000011 0.0 677 -678 0.0329709053039551 0.039999999999992 0.039999999999992 0.0 678 -679 0.0349721908569336 0.0300000000000011 0.0300000000000011 0.0 679 -680 0.0329270362854004 0.0300000000000011 0.0300000000000011 0.0 680 -681 0.0317440032958984 0.0400000000000063 0.0400000000000063 0.0 681 -682 0.0737960338592529 0.0699999999999932 0.0699999999999932 0.0 682 -683 0.0329961776733398 0.0300000000000011 0.0300000000000011 0.0 683 -684 0.0329370498657227 0.0400000000000063 0.0400000000000063 0.0 684 -685 0.033027172088623 0.0299999999999869 0.0299999999999869 0.0 685 -686 0.0384509563446045 0.0400000000000063 0.0400000000000063 0.0 686 -687 0.0391240119934082 0.0400000000000063 0.0400000000000063 0.0 687 -688 0.0333750247955322 0.0299999999999869 0.0299999999999869 0.0 688 -689 0.0313661098480225 0.0300000000000011 0.0300000000000011 0.0 689 -690 0.0728821754455566 0.0700000000000074 0.0700000000000074 0.0 690 -691 0.0328829288482666 0.039999999999992 0.039999999999992 0.0 691 -692 0.0367858409881592 0.0300000000000011 0.0300000000000011 0.0 692 -693 0.032905101776123 0.0400000000000063 0.0400000000000063 0.0 693 -694 0.0336589813232422 0.0300000000000011 0.0300000000000011 0.0 694 -695 0.0322878360748291 0.0300000000000011 0.0300000000000011 0.0 695 -696 0.0319581031799316 0.0300000000000011 0.0300000000000011 0.0 696 -697 0.0315032005310059 0.039999999999992 0.039999999999992 0.0 697 -698 0.0756649971008301 0.0700000000000074 0.0700000000000074 0.0 698 -699 0.0332357883453369 0.039999999999992 0.039999999999992 0.0 699 -700 0.0345721244812012 0.0300000000000011 0.0300000000000011 0.0 700 -701 0.035128116607666 0.0300000000000011 0.0300000000000011 0.0 701 -702 0.0327088832855225 0.0400000000000063 0.0400000000000063 0.0 702 -703 0.032559871673584 0.0300000000000011 0.0300000000000011 0.0 703 -704 0.0327198505401611 0.0300000000000011 0.0300000000000011 0.0 704 -705 0.0315008163452148 0.0299999999999869 0.0299999999999869 0.0 705 -706 0.0784509181976318 0.0800000000000125 0.0800000000000125 0.0 706 -707 0.032890796661377 0.039999999999992 0.039999999999992 0.0 707 -708 0.0331568717956543 0.0300000000000011 0.0300000000000011 0.0 708 -709 0.0327529907226562 0.0300000000000011 0.0300000000000011 0.0 709 -710 0.0325257778167725 0.0300000000000011 0.0300000000000011 0.0 710 -711 0.0323739051818848 0.039999999999992 0.039999999999992 0.0 711 -712 0.0377719402313232 0.0300000000000011 0.0300000000000011 0.0 712 -713 0.0389621257781982 0.0400000000000063 0.0400000000000063 0.0 713 -714 0.0756630897521973 0.0799999999999983 0.0799999999999983 0.0 714 -715 0.0329148769378662 0.0300000000000011 0.0300000000000011 0.0 715 -716 0.0330750942230225 0.0400000000000063 0.0400000000000063 0.0 716 -717 0.0328159332275391 0.0299999999999869 0.0299999999999869 0.0 717 -718 0.0366039276123047 0.0300000000000011 0.0300000000000011 0.0 718 -719 0.032505989074707 0.0400000000000063 0.0400000000000063 0.0 719 -720 0.0332479476928711 0.0300000000000011 0.0300000000000011 0.0 720 -721 0.0314240455627441 0.0300000000000011 0.0300000000000011 0.0 721 -722 0.0737588405609131 0.0799999999999983 0.0799999999999983 0.0 722 -723 0.0348548889160156 0.0300000000000011 0.0300000000000011 0.0 723 -724 0.0358438491821289 0.0300000000000011 0.0300000000000011 0.0 724 -725 0.0327739715576172 0.0300000000000011 0.0300000000000011 0.0 725 -726 0.0338411331176758 0.0300000000000011 0.0300000000000011 0.0 726 -727 0.0345768928527832 0.0400000000000063 0.0400000000000063 0.0 727 -728 0.0319709777832031 0.0300000000000011 0.0300000000000011 0.0 728 -729 0.0316281318664551 0.0300000000000011 0.0300000000000011 0.0 729 -730 0.0774428844451904 0.0799999999999983 0.0799999999999983 0.0 730 -731 0.0331730842590332 0.0300000000000011 0.0300000000000011 0.0 731 -732 0.0344212055206299 0.0300000000000011 0.0300000000000011 0.0 732 -733 0.0328938961029053 0.039999999999992 0.039999999999992 0.0 733 -734 0.032724142074585 0.0300000000000011 0.0300000000000011 0.0 734 -735 0.0324850082397461 0.0300000000000011 0.0300000000000011 0.0 735 -736 0.031792163848877 0.0300000000000011 0.0300000000000011 0.0 736 -737 0.0799460411071777 0.0799999999999983 0.0799999999999983 0.0 737 -738 0.0354650020599365 0.0400000000000063 0.0400000000000063 0.0 738 -739 0.0343890190124512 0.0299999999999869 0.0299999999999869 0.0 739 -740 0.0328691005706787 0.0400000000000063 0.0400000000000063 0.0 740 -741 0.0328059196472168 0.0300000000000011 0.0300000000000011 0.0 741 -742 0.0325958728790283 0.0300000000000011 0.0300000000000011 0.0 742 -743 0.0322740077972412 0.039999999999992 0.039999999999992 0.0 743 -744 0.0356390476226807 0.0300000000000011 0.0300000000000011 0.0 744 -745 0.0736830234527588 0.0700000000000074 0.0700000000000074 0.0 745 -746 0.0331189632415771 0.0300000000000011 0.0300000000000011 0.0 746 -747 0.0331828594207764 0.0300000000000011 0.0300000000000011 0.0 747 -748 0.0329599380493164 0.0300000000000011 0.0300000000000011 0.0 748 -749 0.0325560569763184 0.0400000000000063 0.0400000000000063 0.0 749 -750 0.0352969169616699 0.0300000000000011 0.0300000000000011 0.0 750 -751 0.0321471691131592 0.0300000000000011 0.0300000000000011 0.0 751 -752 0.0331270694732666 0.039999999999992 0.039999999999992 0.0 752 -753 0.0755550861358643 0.0700000000000074 0.0700000000000074 0.0 753 -754 0.0331971645355225 0.039999999999992 0.039999999999992 0.0 754 -755 0.0333280563354492 0.0300000000000011 0.0300000000000011 0.0 755 -756 0.0349440574645996 0.0300000000000011 0.0300000000000011 0.0 756 -757 0.0327320098876953 0.0400000000000063 0.0400000000000063 0.0 757 -758 0.0337162017822266 0.0300000000000011 0.0300000000000011 0.0 758 -759 0.0320689678192139 0.0299999999999869 0.0299999999999869 0.0 759 -760 0.0315940380096436 0.0300000000000011 0.0300000000000011 0.0 760 -761 0.0736989974975586 0.0800000000000125 0.0800000000000125 0.0 761 -762 0.0331079959869385 0.0299999999999869 0.0299999999999869 0.0 762 -763 0.0434081554412842 0.0400000000000063 0.0400000000000063 0.0 763 -764 0.0350160598754883 0.0400000000000063 0.0400000000000063 0.0 764 -765 0.0333938598632812 0.0299999999999869 0.0299999999999869 0.0 765 -766 0.0325360298156738 0.0400000000000063 0.0400000000000063 0.0 766 -767 0.032012939453125 0.0300000000000011 0.0300000000000011 0.0 767 -768 0.031588077545166 0.0300000000000011 0.0300000000000011 0.0 768 -769 0.0773451328277588 0.0799999999999983 0.0799999999999983 0.0 769 -770 0.0328960418701172 0.0300000000000011 0.0300000000000011 0.0 770 -771 0.0350039005279541 0.0300000000000011 0.0300000000000011 0.0 771 -772 0.0326879024505615 0.039999999999992 0.039999999999992 0.0 772 -773 0.0326569080352783 0.0300000000000011 0.0300000000000011 0.0 773 -774 0.0326459407806396 0.0300000000000011 0.0300000000000011 0.0 774 -775 0.0321180820465088 0.0300000000000011 0.0300000000000011 0.0 775 -776 0.0343871116638184 0.0400000000000063 0.0400000000000063 0.0 776 -777 0.0758569240570068 0.0799999999999983 0.0799999999999983 0.0 777 -778 0.0349979400634766 0.0300000000000011 0.0300000000000011 0.0 778 -779 0.0329880714416504 0.0300000000000011 0.0300000000000011 0.0 779 -780 0.0330510139465332 0.039999999999992 0.039999999999992 0.0 780 -781 0.0328168869018555 0.0300000000000011 0.0300000000000011 0.0 781 -782 0.0347089767456055 0.0300000000000011 0.0300000000000011 0.0 782 -783 0.0322279930114746 0.0400000000000063 0.0400000000000063 0.0 783 -784 0.0752460956573486 0.0699999999999932 0.0699999999999932 0.0 784 -785 0.0333998203277588 0.0300000000000011 0.0300000000000011 0.0 785 -786 0.0327608585357666 0.0400000000000063 0.0400000000000063 0.0 786 -787 0.032987117767334 0.0300000000000011 0.0300000000000011 0.0 787 -788 0.0328860282897949 0.0299999999999869 0.0299999999999869 0.0 788 -789 0.0421018600463867 0.0500000000000114 0.0500000000000114 0.0 789 -790 0.0354950428009033 0.0300000000000011 0.0300000000000011 0.0 790 -791 0.0326569080352783 0.0299999999999869 0.0299999999999869 0.0 791 -792 0.072484016418457 0.0800000000000125 0.0800000000000125 0.0 792 -793 0.0332272052764893 0.0300000000000011 0.0300000000000011 0.0 793 -794 0.0329101085662842 0.0299999999999869 0.0299999999999869 0.0 794 -795 0.0368521213531494 0.0400000000000063 0.0400000000000063 0.0 795 -796 0.0328860282897949 0.0300000000000011 0.0300000000000011 0.0 796 -797 0.0351109504699707 0.039999999999992 0.039999999999992 0.0 797 -798 0.0322809219360352 0.0300000000000011 0.0300000000000011 0.0 798 -799 0.0317561626434326 0.0300000000000011 0.0300000000000011 0.0 799 -800 0.0744378566741943 0.0799999999999983 0.0799999999999983 0.0 800 -801 0.0369539260864258 0.0300000000000011 0.0300000000000011 0.0 801 -802 0.0338389873504639 0.0400000000000063 0.0400000000000063 0.0 802 -803 0.0353808403015137 0.0300000000000011 0.0300000000000011 0.0 803 -804 0.0346858501434326 0.039999999999992 0.039999999999992 0.0 804 -805 0.0324549674987793 0.0300000000000011 0.0300000000000011 0.0 805 -806 0.0338549613952637 0.0300000000000011 0.0300000000000011 0.0 806 -807 0.0316150188446045 0.0300000000000011 0.0300000000000011 0.0 807 -808 0.0747511386871338 0.0799999999999983 0.0799999999999983 0.0 808 -809 0.0340969562530518 0.0300000000000011 0.0300000000000011 0.0 809 -810 0.0330560207366943 0.0300000000000011 0.0300000000000011 0.0 810 -811 0.0328769683837891 0.0400000000000063 0.0400000000000063 0.0 811 -812 0.0325078964233398 0.0300000000000011 0.0300000000000011 0.0 812 -813 0.0323269367218018 0.0300000000000011 0.0300000000000011 0.0 813 -814 0.0345659255981445 0.039999999999992 0.039999999999992 0.0 814 -815 0.0393409729003906 0.0300000000000011 0.0300000000000011 0.0 815 -816 0.0769538879394531 0.0799999999999983 0.0799999999999983 0.0 816 -817 0.0329430103302002 0.0300000000000011 0.0300000000000011 0.0 817 -818 0.033038854598999 0.0400000000000063 0.0400000000000063 0.0 818 -819 0.0329020023345947 0.0300000000000011 0.0300000000000011 0.0 819 -820 0.0346760749816895 0.0299999999999869 0.0299999999999869 0.0 820 -821 0.0338461399078369 0.0400000000000063 0.0400000000000063 0.0 821 -822 0.0328898429870605 0.0300000000000011 0.0300000000000011 0.0 822 -823 0.0318491458892822 0.0300000000000011 0.0300000000000011 0.0 823 -824 0.0737371444702148 0.0799999999999983 0.0799999999999983 0.0 824 -825 0.032710075378418 0.0300000000000011 0.0300000000000011 0.0 825 -826 0.0330679416656494 0.0300000000000011 0.0300000000000011 0.0 826 -827 0.0366559028625488 0.039999999999992 0.039999999999992 0.0 827 -828 0.0327389240264893 0.0300000000000011 0.0300000000000011 0.0 828 -829 0.0343880653381348 0.0400000000000063 0.0400000000000063 0.0 829 -830 0.0338549613952637 0.0300000000000011 0.0300000000000011 0.0 830 -831 0.0315511226654053 0.0300000000000011 0.0300000000000011 0.0 831 -832 0.0741341114044189 0.0699999999999932 0.0699999999999932 0.0 832 -833 0.0351898670196533 0.0400000000000063 0.0400000000000063 0.0 833 -834 0.0331771373748779 0.0300000000000011 0.0300000000000011 0.0 834 -835 0.0344979763031006 0.039999999999992 0.039999999999992 0.0 835 -836 0.0324339866638184 0.0300000000000011 0.0300000000000011 0.0 836 -837 0.0324251651763916 0.0300000000000011 0.0300000000000011 0.0 837 -838 0.0322468280792236 0.0400000000000063 0.0400000000000063 0.0 838 -839 0.0315029621124268 0.0300000000000011 0.0300000000000011 0.0 839 -840 0.0842621326446533 0.0799999999999983 0.0799999999999983 0.0 840 -841 0.035271167755127 0.039999999999992 0.039999999999992 0.0 841 -842 0.0329780578613281 0.0300000000000011 0.0300000000000011 0.0 842 -843 0.0328261852264404 0.0300000000000011 0.0300000000000011 0.0 843 -844 0.032487154006958 0.0300000000000011 0.0300000000000011 0.0 844 -845 0.0325088500976562 0.0300000000000011 0.0300000000000011 0.0 845 -846 0.0327229499816895 0.0299999999999869 0.0299999999999869 0.0 846 -847 0.0770940780639648 0.0800000000000125 0.0800000000000125 0.0 847 -848 0.0332331657409668 0.0299999999999869 0.0299999999999869 0.0 848 -849 0.0330700874328613 0.0300000000000011 0.0300000000000011 0.0 849 -850 0.0333080291748047 0.0400000000000063 0.0400000000000063 0.0 850 -851 0.0327019691467285 0.0300000000000011 0.0300000000000011 0.0 851 -852 0.0325930118560791 0.0300000000000011 0.0300000000000011 0.0 852 -853 0.0363738536834717 0.039999999999992 0.039999999999992 0.0 853 -854 0.0318160057067871 0.0300000000000011 0.0300000000000011 0.0 854 -855 0.0756251811981201 0.0799999999999983 0.0799999999999983 0.0 855 -856 0.0331168174743652 0.0300000000000011 0.0300000000000011 0.0 856 -857 0.0332381725311279 0.0300000000000011 0.0300000000000011 0.0 857 -858 0.0331380367279053 0.0400000000000063 0.0400000000000063 0.0 858 -859 0.0359609127044678 0.0300000000000011 0.0300000000000011 0.0 859 -860 0.0326030254364014 0.0300000000000011 0.0300000000000011 0.0 860 -861 0.0326559543609619 0.039999999999992 0.039999999999992 0.0 861 -862 0.0313940048217773 0.0300000000000011 0.0300000000000011 0.0 862 -863 0.0721480846405029 0.0700000000000074 0.0700000000000074 0.0 863 -864 0.0329670906066895 0.0300000000000011 0.0300000000000011 0.0 864 -865 0.0358521938323975 0.039999999999992 0.039999999999992 0.0 865 -866 0.0417828559875488 0.0400000000000063 0.0400000000000063 0.0 866 -867 0.0335261821746826 0.039999999999992 0.039999999999992 0.0 867 -868 0.032412052154541 0.0300000000000011 0.0300000000000011 0.0 868 -869 0.0315959453582764 0.0300000000000011 0.0300000000000011 0.0 869 -870 0.0313148498535156 0.0300000000000011 0.0300000000000011 0.0 870 -871 0.0756919384002686 0.0799999999999983 0.0799999999999983 0.0 871 -872 0.033372163772583 0.0300000000000011 0.0300000000000011 0.0 872 -873 0.0342988967895508 0.0300000000000011 0.0300000000000011 0.0 873 -874 0.0328269004821777 0.039999999999992 0.039999999999992 0.0 874 -875 0.0327079296112061 0.0300000000000011 0.0300000000000011 0.0 875 -876 0.0325889587402344 0.0300000000000011 0.0300000000000011 0.0 876 -877 0.0320539474487305 0.0300000000000011 0.0300000000000011 0.0 877 -878 0.0315239429473877 0.0400000000000063 0.0400000000000063 0.0 878 -879 0.0760519504547119 0.0699999999999932 0.0699999999999932 0.0 879 -880 0.0334291458129883 0.0300000000000011 0.0300000000000011 0.0 880 -881 0.0349709987640381 0.0400000000000063 0.0400000000000063 0.0 881 -882 0.0328500270843506 0.0300000000000011 0.0300000000000011 0.0 882 -883 0.0326099395751953 0.0300000000000011 0.0300000000000011 0.0 883 -884 0.0326600074768066 0.039999999999992 0.039999999999992 0.0 884 -885 0.0347640514373779 0.0300000000000011 0.0300000000000011 0.0 885 -886 0.0317268371582031 0.0300000000000011 0.0300000000000011 0.0 886 -887 0.0741100311279297 0.0799999999999983 0.0799999999999983 0.0 887 -888 0.0328361988067627 0.0300000000000011 0.0300000000000011 0.0 888 -889 0.0330181121826172 0.0300000000000011 0.0300000000000011 0.0 889 -890 0.0327560901641846 0.0400000000000063 0.0400000000000063 0.0 890 -891 0.0344109535217285 0.0299999999999869 0.0299999999999869 0.0 891 -892 0.0412158966064453 0.0400000000000063 0.0400000000000063 0.0 892 -893 0.03265380859375 0.0400000000000063 0.0400000000000063 0.0 893 -894 0.0321509838104248 0.0299999999999869 0.0299999999999869 0.0 894 -895 0.0741260051727295 0.0700000000000074 0.0700000000000074 0.0 895 -896 0.0328559875488281 0.0300000000000011 0.0300000000000011 0.0 896 -897 0.0330810546875 0.039999999999992 0.039999999999992 0.0 897 -898 0.0366909503936768 0.0300000000000011 0.0300000000000011 0.0 898 -899 0.0327630043029785 0.0400000000000063 0.0400000000000063 0.0 899 -900 0.0326259136199951 0.0300000000000011 0.0300000000000011 0.0 900 -901 0.031965970993042 0.0300000000000011 0.0300000000000011 0.0 901 -902 0.0730900764465332 0.0699999999999932 0.0699999999999932 0.0 902 -903 0.0331590175628662 0.0400000000000063 0.0400000000000063 0.0 903 -904 0.0365490913391113 0.0300000000000011 0.0300000000000011 0.0 904 -905 0.0330300331115723 0.039999999999992 0.039999999999992 0.0 905 -906 0.0332710742950439 0.0300000000000011 0.0300000000000011 0.0 906 -907 0.0344429016113281 0.0300000000000011 0.0300000000000011 0.0 907 -908 0.032494068145752 0.0400000000000063 0.0400000000000063 0.0 908 -909 0.0318870544433594 0.0300000000000011 0.0300000000000011 0.0 909 -910 0.0748629570007324 0.0699999999999932 0.0699999999999932 0.0 910 -911 0.0334439277648926 0.0400000000000063 0.0400000000000063 0.0 911 -912 0.0351619720458984 0.0300000000000011 0.0300000000000011 0.0 912 -913 0.0328991413116455 0.039999999999992 0.039999999999992 0.0 913 -914 0.0326261520385742 0.0300000000000011 0.0300000000000011 0.0 914 -915 0.0323889255523682 0.0300000000000011 0.0300000000000011 0.0 915 -916 0.0323429107666016 0.0300000000000011 0.0300000000000011 0.0 916 -917 0.0321781635284424 0.039999999999992 0.039999999999992 0.0 917 -918 0.0845181941986084 0.0800000000000125 0.0800000000000125 0.0 918 -919 0.0327539443969727 0.0299999999999869 0.0299999999999869 0.0 919 -920 0.0328059196472168 0.0300000000000011 0.0300000000000011 0.0 920 -921 0.0324711799621582 0.0400000000000063 0.0400000000000063 0.0 921 -922 0.0323400497436523 0.0300000000000011 0.0300000000000011 0.0 922 -923 0.0321018695831299 0.0300000000000011 0.0300000000000011 0.0 923 -924 0.0361039638519287 0.039999999999992 0.039999999999992 0.0 924 -925 0.0316181182861328 0.0300000000000011 0.0300000000000011 0.0 925 -926 0.0748419761657715 0.0700000000000074 0.0700000000000074 0.0 926 -927 0.0332598686218262 0.039999999999992 0.039999999999992 0.0 927 -928 0.0332441329956055 0.0300000000000011 0.0300000000000011 0.0 928 -929 0.0330359935760498 0.0300000000000011 0.0300000000000011 0.0 929 -930 0.0358648300170898 0.0400000000000063 0.0400000000000063 0.0 930 -931 0.0327050685882568 0.0300000000000011 0.0300000000000011 0.0 931 -932 0.0349700450897217 0.039999999999992 0.039999999999992 0.0 932 -933 0.0338780879974365 0.0300000000000011 0.0300000000000011 0.0 933 -934 0.0738511085510254 0.0700000000000074 0.0700000000000074 0.0 934 -935 0.0332021713256836 0.039999999999992 0.039999999999992 0.0 935 -936 0.0359549522399902 0.0300000000000011 0.0300000000000011 0.0 936 -937 0.0331430435180664 0.0400000000000063 0.0400000000000063 0.0 937 -938 0.0340991020202637 0.0300000000000011 0.0300000000000011 0.0 938 -939 0.0326049327850342 0.0299999999999869 0.0299999999999869 0.0 939 -940 0.0325651168823242 0.0400000000000063 0.0400000000000063 0.0 940 -941 0.0317420959472656 0.0300000000000011 0.0300000000000011 0.0 941 -942 0.0775351524353027 0.0799999999999983 0.0799999999999983 0.0 942 -943 0.0417890548706055 0.0400000000000063 0.0400000000000063 0.0 943 -944 0.0358331203460693 0.0300000000000011 0.0300000000000011 0.0 944 -945 0.0328278541564941 0.039999999999992 0.039999999999992 0.0 945 -946 0.0325720310211182 0.0300000000000011 0.0300000000000011 0.0 946 -947 0.0324339866638184 0.0300000000000011 0.0300000000000011 0.0 947 -948 0.0318090915679932 0.0300000000000011 0.0300000000000011 0.0 948 -949 0.0755469799041748 0.0799999999999983 0.0799999999999983 0.0 949 -950 0.0346879959106445 0.0300000000000011 0.0300000000000011 0.0 950 -951 0.0329141616821289 0.039999999999992 0.039999999999992 0.0 951 -952 0.0330381393432617 0.0300000000000011 0.0300000000000011 0.0 952 -953 0.0330090522766113 0.0300000000000011 0.0300000000000011 0.0 953 -954 0.0340299606323242 0.0400000000000063 0.0400000000000063 0.0 954 -955 0.0325748920440674 0.0300000000000011 0.0300000000000011 0.0 955 -956 0.0356650352478027 0.039999999999992 0.039999999999992 0.0 956 -957 0.0749011039733887 0.0700000000000074 0.0700000000000074 0.0 957 -958 0.0347681045532227 0.0300000000000011 0.0300000000000011 0.0 958 -959 0.0330829620361328 0.039999999999992 0.039999999999992 0.0 959 -960 0.0334758758544922 0.0300000000000011 0.0300000000000011 0.0 960 -961 0.0329201221466064 0.0300000000000011 0.0300000000000011 0.0 961 -962 0.0358650684356689 0.0400000000000063 0.0400000000000063 0.0 962 -963 0.0327301025390625 0.0300000000000011 0.0300000000000011 0.0 963 -964 0.03354811668396 0.039999999999992 0.039999999999992 0.0 964 -965 0.0745160579681396 0.0700000000000074 0.0700000000000074 0.0 965 -966 0.0329270362854004 0.0300000000000011 0.0300000000000011 0.0 966 -967 0.0329809188842773 0.039999999999992 0.039999999999992 0.0 967 -968 0.0393757820129395 0.0300000000000011 0.0300000000000011 0.0 968 -969 0.0380401611328125 0.0300000000000011 0.0300000000000011 0.0 969 -970 0.0357730388641357 0.039999999999992 0.039999999999992 0.0 970 -971 0.0322329998016357 0.0300000000000011 0.0300000000000011 0.0 971 -972 0.0315341949462891 0.0300000000000011 0.0300000000000011 0.0 972 -973 0.0736370086669922 0.0799999999999983 0.0799999999999983 0.0 973 -974 0.0357208251953125 0.0300000000000011 0.0300000000000011 0.0 974 -975 0.0331871509552002 0.0400000000000063 0.0400000000000063 0.0 975 -976 0.0338621139526367 0.0300000000000011 0.0300000000000011 0.0 976 -977 0.03261399269104 0.0299999999999869 0.0299999999999869 0.0 977 -978 0.0324549674987793 0.0300000000000011 0.0300000000000011 0.0 978 -979 0.0323319435119629 0.0400000000000063 0.0400000000000063 0.0 979 -980 0.0314400196075439 0.0300000000000011 0.0300000000000011 0.0 980 -981 0.0762598514556885 0.0699999999999932 0.0699999999999932 0.0 981 -982 0.0347981452941895 0.0400000000000063 0.0400000000000063 0.0 982 -983 0.0366230010986328 0.0400000000000063 0.0300000000000011 0.01 983 -984 0.0328900814056396 0.039999999999992 0.039999999999992 0.0 984 -985 0.032588005065918 0.0300000000000011 0.0300000000000011 0.0 985 -986 0.0326781272888184 0.0300000000000011 0.0300000000000011 0.0 986 -987 0.0319411754608154 0.0300000000000011 0.0300000000000011 0.0 987 -988 0.0342800617218018 0.0400000000000063 0.0400000000000063 0.0 988 -989 0.0760009288787842 0.0699999999999932 0.0699999999999932 0.0 989 -990 0.0328078269958496 0.0400000000000063 0.0400000000000063 0.0 990 -991 0.0330369472503662 0.0300000000000011 0.0300000000000011 0.0 991 -992 0.0326659679412842 0.0300000000000011 0.0300000000000011 0.0 992 -993 0.0325169563293457 0.0300000000000011 0.0300000000000011 0.0 993 -994 0.0384469032287598 0.039999999999992 0.039999999999992 0.0 994 -995 0.035956859588623 0.0400000000000063 0.0400000000000063 0.0 995 -996 0.075498104095459 0.0699999999999932 0.0699999999999932 0.0 996 -997 0.0330910682678223 0.0300000000000011 0.0300000000000011 0.0 997 -998 0.0327069759368896 0.0300000000000011 0.0300000000000011 0.0 998 -999 0.0329201221466064 0.0300000000000011 0.0300000000000011 0.0 999 -1000 0.0352790355682373 0.039999999999992 0.039999999999992 0.0 1000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log deleted file mode 100644 index f349db1..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log +++ /dev/null @@ -1,82 +0,0 @@ -========================== 2009-04-01T16:46:56 CEST =========================== -Benchmarking on ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]. -Running 'ParserBenchmarkRails' for 1000 iterations/method (compare_time=real) -=============================================================================== - -This first run is only for warmup. -ParserBenchmarkRails#parser: - real total user system -sum 38.690086126 38.620000000 38.610000000 0.010000000 -min 0.031255007 0.030000000 0.030000000 0.000000000 -std- 0.025022178 0.024277709 0.024265187 -0.000306228 -mean 0.038690086 0.038620000 0.038610000 0.000010000 -std+ 0.052357994 0.052962291 0.052954813 0.000326228 -max 0.083594084 0.090000000 0.090000000 0.010000000 -std 0.013667908 0.014342291 0.014344813 0.000316228 -std% 35.326641197 37.136951469 37.153104057 3162.277660168 -harm 0.035964441 0.035345750 0.035335342 nan -geo 0.037048388 0.036703287 0.036692729 0.000000000 -q1 0.032610178 0.030000000 0.030000000 0.000000000 -med 0.033129930 0.030000000 0.030000000 0.000000000 -q3 0.035388470 0.040000000 0.040000000 0.000000000 - 1000 25.84641 0.038690086 - calls calls/sec secs/call - - 0.08098 -|* - 0.07574 -|***** - 0.07051 -|** - 0.06528 -| - 0.06004 -| - 0.05481 -| - 0.04957 -| - 0.04434 -|* - 0.03911 -|*** - 0.03387 -|************************************************** - -Outliers detected with box plot algo (median=0.03313, iqr=0.00278, factor=3.00): -high=47 very_high=124 - -Ljung-Box statistics: q=5276.52020 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -ParserBenchmarkRails#parser: - real total user system -sum 38.814780235 38.730000000 38.710000000 0.020000000 -min 0.031314850 0.030000000 0.030000000 0.000000000 -std- 0.024801114 0.023975177 0.023956914 -0.000426990 -mean 0.038814780 0.038730000 0.038710000 0.000020000 -std+ 0.052828447 0.053484823 0.053463086 0.000466990 -max 0.085337162 0.090000000 0.090000000 0.010000000 -std 0.014013666 0.014754823 0.014753086 0.000446990 -std% 36.103943796 38.096625621 38.111821850 2234.948544149 -harm 0.035975867 0.035320781 0.035304155 nan -geo 0.037101026 0.036725170 0.036706415 0.000000000 -q1 0.032611191 0.030000000 0.030000000 0.000000000 -med 0.033082008 0.030000000 0.030000000 0.000000000 -q3 0.035308182 0.040000000 0.040000000 0.000000000 - 1000 25.76338 0.038814780 - calls calls/sec secs/call - - 0.08264 -|* - 0.07723 -|*** - 0.07183 -|**** - 0.06643 -| - 0.06103 -| - 0.05562 -| - 0.05022 -| - 0.04482 -| - 0.03942 -|** - 0.03402 -|************************************************** - -Outliers detected with box plot algo (median=0.03308, iqr=0.00270, factor=3.00): -high=43 very_high=127 - -Ljung-Box statistics: q=3451.96535 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -No initial data truncated. - => System may have been in a steady state from the beginning. -========================== 2009-04-01T16:48:17 CEST =========================== - -Writing measurement data file '/data/scm/json/benchmarks/data/ParserBenchmarkRails#parser.dat'. -Writing autocorrelation plot file '/data/scm/json/benchmarks/data/ParserBenchmarkRails#parser-autocorrelation.dat'. diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat deleted file mode 100644 index f32d17f..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat +++ /dev/null @@ -1,1000 +0,0 @@ -#lag autocorrelation -1 1.0 -2 -0.0162844496545126 -3 -0.0217599649154442 -4 -0.0158858309903125 -5 -0.0200808613960338 -6 -0.0259529053941171 -7 -0.0301975414696179 -8 -0.0250675870796551 -9 -0.0285985946623563 -10 -0.0307680893851068 -11 -0.0288265198488383 -12 -0.0271571829024007 -13 -0.0301250298936937 -14 -0.0226181132137933 -15 -0.0294060805772707 -16 -0.0337045155176462 -17 -0.0318194303001094 -18 -0.0292065217707409 -19 -0.0302440574139168 -20 -0.0358556403201638 -21 -0.0277391993235684 -22 -0.0302464277108834 -23 -0.0324555396059655 -24 -0.0281812881852202 -25 -0.022546962678309 -26 -0.0303404504420409 -27 -0.0284646539775073 -28 -0.028171618962038 -29 -0.028565092958004 -30 -0.0291690975621738 -31 -0.0281712395665202 -32 -0.0238379726807203 -33 -0.0294236975427878 -34 -0.0208882165043777 -35 -0.0209638384059497 -36 -0.0161683101478742 -37 -0.0198997973165107 -38 0.435257874984686 -39 0.458604874110641 -40 0.0237621756843474 -41 -0.0234662943892799 -42 -0.0132052112478708 -43 -0.0232550385773748 -44 -0.0265177529080711 -45 -0.0295042353148468 -46 -0.0248888514316335 -47 -0.0267548816775851 -48 -0.0301945196949619 -49 -0.0256866572019894 -50 -0.0261353739728522 -51 -0.0245073925246022 -52 -0.0267569882760944 -53 -0.0290607941928704 -54 -0.030612533159521 -55 -0.0324276179436348 -56 -0.0294828176269951 -57 -0.0302074451537584 -58 -0.0308924549200688 -59 -0.0272193925170758 -60 -0.0310943839021242 -61 -0.0282313865089381 -62 -0.0273610010809688 -63 -0.0250425898280312 -64 -0.0269825367863249 -65 -0.030293343792881 -66 -0.0285829676042798 -67 -0.0259669504450748 -68 -0.028423496235617 -69 -0.0286177493293173 -70 -0.0239113501418138 -71 -0.0226730211754719 -72 -0.0216274261753708 -73 -0.0175668930237053 -74 -0.016987706219544 -75 0.281860410751591 -76 0.25297384526533 -77 0.306701827698567 -78 0.0194414665764478 -79 -0.0243796783451221 -80 -0.0146952129609066 -81 -0.0229107323358625 -82 -0.02476592170182 -83 -0.0262150166126129 -84 -0.0233100425521956 -85 -0.0263455380004048 -86 -0.0253912832942502 -87 -0.0245622723440493 -88 -0.0225180917608497 -89 -0.0292400873158552 -90 -0.0255215645749941 -91 -0.02586826799364 -92 -0.0315849501291156 -93 -0.0319172083894574 -94 -0.0270097346640797 -95 -0.0278372423315524 -96 -0.0306627817548168 -97 -0.0258127345919013 -98 -0.0256340599415291 -99 -0.0270400681439884 -100 -0.0271863267200993 -101 -0.0223938908865392 -102 -0.0269881932444538 -103 -0.0286873034752439 -104 -0.0268085508356207 -105 -0.0250531313567446 -106 -0.0272655637793525 -107 -0.025337879180265 -108 -0.0187629329024022 -109 -0.0223207452723449 -110 -0.0185411706942619 -111 -0.0173591745979572 -112 0.212695002726406 -113 0.176100874201248 -114 0.181136796368959 -115 0.217985852640763 -116 0.0189775496631967 -117 -0.022070943088181 -118 -0.0198858953377023 -119 -0.0228614172431068 -120 -0.0222026156678026 -121 -0.026520195666479 -122 -0.0234557540286227 -123 -0.0222031583717324 -124 -0.0222512221835737 -125 -0.021957746397543 -126 -0.0268087376735115 -127 -0.0273093034119188 -128 -0.0245103124601919 -129 -0.0263347996406397 -130 -0.0312278911250281 -131 -0.0305253475957555 -132 -0.0261963547332742 -133 -0.0274617303870749 -134 -0.0243124109128202 -135 -0.0262235240356464 -136 -0.0239085429783869 -137 -0.0287564527494295 -138 -0.0249876754449911 -139 -0.0197254570216898 -140 -0.0266321665979349 -141 -0.0266120249498159 -142 -0.0248056589461695 -143 -0.0221257923724317 -144 -0.024933311620115 -145 -0.0196549868192828 -146 -0.0207328295283175 -147 -0.0200920805093202 -148 -0.0173063409154936 -149 0.175654369820573 -150 0.0996760311141833 -151 0.142600408151497 -152 0.175452601030937 -153 0.135092911757026 -154 0.015666937752102 -155 -0.0206532136473774 -156 -0.0225660207506427 -157 -0.0220914796170182 -158 -0.0212748341146881 -159 -0.0211831500010699 -160 -0.0199475712567065 -161 -0.0198090360921562 -162 -0.023406680899725 -163 -0.0238338433694836 -164 -0.0256046135139069 -165 -0.0242954498172123 -166 -0.0258660266004111 -167 -0.0269522804569596 -168 -0.0297189079034543 -169 -0.0286038809350082 -170 -0.0243084923873978 -171 -0.0257061323195295 -172 -0.0223670193406507 -173 -0.0230581197957092 -174 -0.0259009025367238 -175 -0.0257560518519552 -176 -0.023090387902458 -177 -0.0203272749388722 -178 -0.0249609826618749 -179 -0.0273749728570153 -180 -0.0232630581935224 -181 -0.0184293362184845 -182 -0.0227584354744901 -183 -0.0189661792281422 -184 -0.0231761259199879 -185 -0.0160634507453316 -186 0.135019288045276 -187 0.0659826079670161 -188 0.135226742645858 -189 0.0605819921567246 -190 0.212733971580529 -191 0.0594662500140067 -192 0.0196656779913871 -193 -0.0198404313214719 -194 -0.0234794798625044 -195 -0.020228110441232 -196 -0.0239711309581977 -197 -0.0213996457420545 -198 -0.0198198390682184 -199 -0.01837620236681 -200 -0.0252904949340885 -201 -0.0209512502626924 -202 -0.0221289412896572 -203 -0.027427908823154 -204 -0.0239458508129429 -205 -0.0247739743326578 -206 -0.0286549975885985 -207 -0.0274257626339078 -208 -0.0209339353182737 -209 -0.0217393583916566 -210 -0.0210676960785699 -211 -0.0244413756252707 -212 -0.0230553337146913 -213 -0.0249257698225569 -214 -0.0209961742884786 -215 -0.0187589223013789 -216 -0.0231441227112562 -217 -0.0256128148841961 -218 -0.0189996873737005 -219 -0.0186032704051841 -220 -0.024896664851184 -221 -0.0154586003532082 -222 -0.016622451190913 -223 0.10528876877612 -224 0.0616792976302413 -225 0.105381487366677 -226 0.0698781422585297 -227 0.0526859362556473 -228 0.252676201792791 -229 -0.0158777502042575 -230 0.0182465167560402 -231 -0.0189176416281867 -232 -0.0223947199370044 -233 -0.0187514827185257 -234 -0.0221421724471967 -235 -0.0189743029127782 -236 -0.0169132380201002 -237 -0.0244680755831848 -238 -0.0218734587520481 -239 -0.0186581914256442 -240 -0.026130481429307 -241 -0.0259336502285975 -242 -0.0243902837001253 -243 -0.0237554283001736 -244 -0.0260009623695832 -245 -0.0207407789914843 -246 -0.0195359028544637 -247 -0.0255947955165555 -248 -0.0192742650096326 -249 -0.02317092217707 -250 -0.0220804794353722 -251 -0.0231629589394634 -252 -0.01815715732966 -253 -0.0168380962328354 -254 -0.0240542649472067 -255 -0.0203501818767696 -256 -0.0171903409693322 -257 -0.0223563828072372 -258 -0.019940801207438 -259 -0.0169291109293721 -260 0.0608679690137956 -261 0.0647081802938391 -262 0.100717554509044 -263 0.0239520468414546 -264 0.0698991274638046 -265 0.0905559637290508 -266 0.178937593759438 -267 0.0219556620146547 -268 -0.0179147413001344 -269 -0.0178917963661612 -270 -0.0182758940871145 -271 -0.0193697306175885 -272 -0.0204671858114412 -273 -0.0171408579409368 -274 -0.0182409872271859 -275 -0.0211824035120345 -276 -0.0235000843866101 -277 -0.0202924958876639 -278 -0.0248505379989764 -279 -0.0220226888126351 -280 -0.0245762806223724 -281 -0.0252042782672907 -282 -0.0216801171879857 -283 -0.0210832689857307 -284 -0.0192213765705103 -285 -0.0220158312276208 -286 -0.0210439300781706 -287 -0.0209875936956392 -288 -0.0206630619760563 -289 -0.0216178400849402 -290 -0.0196909009290242 -291 -0.0174466524982222 -292 -0.0194381489522717 -293 -0.0214825111756293 -294 -0.0174953699462574 -295 -0.022683312446492 -296 -0.0180848133159409 -297 0.0254210486852796 -298 0.0654897828406648 -299 0.0986617374019184 -300 0.0211653698985848 -301 0.03519273754644 -302 0.0994229074199349 -303 0.0569927637089909 -304 0.144208154176788 -305 0.025634547369068 -306 -0.0192573217261146 -307 -0.0134291320771703 -308 -0.0186225883596377 -309 -0.0192924485153545 -310 -0.0212788468915268 -311 -0.0142437809504701 -312 -0.0164846225770394 -313 -0.0230149302918458 -314 -0.0226862925961795 -315 -0.0182027935965825 -316 -0.0223705185857763 -317 -0.0216288175818581 -318 -0.023788812144948 -319 -0.0211845254108688 -320 -0.0222450219207216 -321 -0.0187600056472826 -322 -0.0187902396176198 -323 -0.0195634679662719 -324 -0.0194501685935753 -325 -0.0190333705450752 -326 -0.0204687388385914 -327 -0.0200297119812042 -328 -0.0157733409782519 -329 -0.0164084747060388 -330 -0.0203726921633815 -331 -0.0190072727071644 -332 -0.018178093048503 -333 -0.0159556448940802 -334 -0.013791115173629 -335 0.066803434121925 -336 0.0987477853719105 -337 0.0244839447881098 -338 0.031202350625353 -339 0.0196479023204289 -340 0.141228694216934 -341 0.0175097275718119 -342 0.105954014939689 -343 0.0253759965520281 -344 -0.0116344384079018 -345 -0.0169720879403278 -346 -0.0193914989969224 -347 -0.019089553717436 -348 -0.0156466666300242 -349 -0.0156456435188142 -350 -0.0181150256079739 -351 -0.0223467109479219 -352 -0.0214801527438239 -353 -0.019082414276624 -354 -0.0178557951992504 -355 -0.0228090603341919 -356 -0.0204157042896649 -357 -0.0221410379160091 -358 -0.0199425390855694 -359 -0.018118375890382 -360 -0.0150454629858717 -361 -0.0183129793049915 -362 -0.0204645202101881 -363 -0.0174866608721183 -364 -0.0154096032136416 -365 -0.0179571796427601 -366 -0.0134888272478049 -367 -0.0176851479177383 -368 -0.0193002648975602 -369 -0.0189078544862062 -370 -0.0144320773947494 -371 -0.011260111407965 -372 0.0215572902035114 -373 0.100524914108148 -374 0.0219084872557524 -375 0.0354856193633486 -376 0.0229331908137013 -377 0.0626022532746132 -378 0.0969282134458387 -379 0.0189295482330605 -380 0.0617228180411101 -381 0.0425011894350961 -382 -0.0181588301030469 -383 -0.0171392718695313 -384 -0.0178324205119472 -385 -0.0156705733083666 -386 -0.0146663905947814 -387 -0.0173238224981501 -388 -0.0182073556277454 -389 -0.0204929470007114 -390 -0.0197959652809142 -391 -0.0178487074910014 -392 -0.0191264027449998 -393 -0.0190642154579731 -394 -0.0203166425576961 -395 -0.0188935352488649 -396 -0.0201224460748975 -397 -0.0141844683481906 -398 -0.0139898462786534 -399 -0.0198574924165857 -400 -0.0193966985699962 -401 -0.0164995946916847 -402 -0.0117403653932513 -403 -0.0158736541749091 -404 -0.0156974457240632 -405 -0.0181167763150603 -406 -0.0166788566307347 -407 -0.0180975807807039 -408 -0.0102853501517902 -409 -0.0153437162204268 -410 0.0979710078754703 -411 0.021440871598228 -412 0.0371454198455733 -413 0.0253571102027273 -414 0.0227276443059152 -415 0.101915236805497 -416 0.0635405858848997 -417 0.0221661378891733 -418 0.0270996559475876 -419 0.0299928379379863 -420 -0.0177873081118276 -421 -0.0176051191151391 -422 -0.0117281303593379 -423 -0.013306366759538 -424 -0.0189331445465995 -425 -0.015865418271051 -426 -0.0158088029122447 -427 -0.0187419731224742 -428 -0.0196315339939659 -429 -0.0154861746215526 -430 -0.0178360876528894 -431 -0.0193319397318428 -432 -0.0177297199409179 -433 -0.0183554889687674 -434 -0.0184208823533688 -435 -0.0122396577357641 -436 -0.0123492917667745 -437 -0.0175439953526604 -438 -0.0186111019818843 -439 -0.00971961709959576 -440 -0.0143165389296264 -441 -0.0164005922843576 -442 -0.0132806214338558 -443 -0.0153897804907211 -444 -0.0149226610955752 -445 -0.0161580725559834 -446 -0.0117152404534544 -447 0.0615441203316674 -448 0.0305601601558433 -449 0.0350768852591798 -450 0.026542742159402 -451 0.0220127678478309 -452 0.0626392669570081 -453 0.0651304401691263 -454 0.066454641622587 -455 0.0262150734837409 -456 -0.00708907991883236 -457 0.0224899268420003 -458 -0.0167773922489159 -459 -0.0122552342075114 -460 -0.00995490362784316 -461 -0.0177867736928084 -462 -0.018356900570592 -463 -0.0148615016520588 -464 -0.0148993799153167 -465 -0.0174924308469937 -466 -0.0139062884527871 -467 -0.0169155699762039 -468 -0.0176151358623509 -469 -0.018529629596926 -470 -0.0171234732753041 -471 -0.0168099527879603 -472 -0.0156260281448611 -473 -0.00797509847063728 -474 -0.0133340343499158 -475 -0.0168972023036313 -476 -0.0113479057717735 -477 -0.011961189414667 -478 -0.0152906312825423 -479 -0.0155644967932215 -480 -0.014521215308577 -481 -0.0128622749529332 -482 -0.0141888481401611 -483 -0.0161851374362205 -484 0.0249171103679042 -485 0.0252660269585891 -486 0.04058752667661 -487 0.0258186659046098 -488 0.0275225862715478 -489 0.0600609383170762 -490 0.0261628314767615 -491 0.0691832852264942 -492 0.0694273292329222 -493 -0.0138918138869676 -494 0.0281497919118445 -495 -0.0119297582637103 -496 -0.012445722104394 -497 -0.0152365517205078 -498 -0.0119682770076481 -499 -0.0168102415511826 -500 -0.0132602321806542 -501 -0.0162749170085761 -502 -0.0157874247447598 -503 -0.0143314681097962 -504 -0.0151373301279301 -505 -0.0162736515060562 -506 -0.0170997245763158 -507 -0.0169869002644868 -508 -0.0154802036412146 -509 -0.013854038240204 -510 -0.0151485070183504 -511 -0.00869753773999478 -512 -0.0140737135993086 -513 -0.0107650436900842 -514 -0.0132962323606625 -515 -0.0136429601231209 -516 -0.0155057052143115 -517 -0.0134332443796962 -518 -0.0123129109820222 -519 -0.0142180018449239 -520 -0.0150177576005828 -521 -0.0161252950528183 -522 0.0264250568660815 -523 0.0408783547796429 -524 0.031194610084782 -525 0.0288728641454938 -526 0.0641676357746677 -527 0.0239853005273055 -528 0.0300072680816552 -529 0.0736945294998491 -530 0.028012956538805 -531 0.0259732719006342 -532 -0.00990928630211568 -533 -0.0087387605842169 -534 -0.0137746654626445 -535 -0.0141412876283256 -536 -0.010029400862279 -537 -0.0150007749725246 -538 -0.0121537714685441 -539 -0.0144839491934252 -540 -0.0137950679588151 -541 -0.0155551392121605 -542 -0.0128911409577839 -543 -0.0152961676840741 -544 -0.0161369826243907 -545 -0.0148527760929147 -546 -0.013870773562618 -547 -0.0137226194734097 -548 -0.0113656379568685 -549 -0.00845176980813718 -550 -0.00933414448879775 -551 -0.0133281147011412 -552 -0.0122165348746803 -553 -0.0127303042014063 -554 -0.0128365256419083 -555 -0.0108554430140539 -556 -0.0130979026563391 -557 -0.0146601295923265 -558 -0.0142350683827201 -559 -0.0142543119821695 -560 0.0401428501979482 -561 0.0303680401593431 -562 0.0331394093682309 -563 0.0624790224369076 -564 0.0289179010523467 -565 0.0269736807010873 -566 0.0294760499995686 -567 0.0747760714226703 -568 -0.00997931599998069 -569 0.0266265362948006 -570 -0.00721129513546175 -571 -0.0127302032302545 -572 -0.0136267162889966 -573 -0.0142066353702017 -574 -0.00991164196188114 -575 -0.00996166830564141 -576 -0.0131573176468314 -577 -0.011434640474236 -578 -0.0148706383443339 -579 -0.0134129396964773 -580 -0.0113895405779604 -581 -0.0153189154780471 -582 -0.0150199426352393 -583 -0.0124159111813235 -584 -0.0113435779166304 -585 -0.00971798266945597 -586 -0.0123095479872052 -587 -0.00269803517441434 -588 -0.0127678761964892 -589 -0.0119102487047385 -590 -0.0115043060345689 -591 -0.0106658386617928 -592 -0.0106600448522206 -593 -0.011659738958058 -594 -0.01106663155357 -595 -0.0120386853981255 -596 -0.0127481791971609 -597 -0.00537363830084228 -598 0.0314689202072348 -599 0.032654353162099 -600 0.0639978451412954 -601 0.0283236694256126 -602 0.0317693531084274 -603 0.027542761382292 -604 0.02698217718116 -605 0.0361622659750207 -606 0.0320247155873757 -607 -0.00813391858463189 -608 -0.0089593887672382 -609 -0.0119010871906848 -610 -0.0124880990128273 -611 -0.0121364351320394 -612 -0.00971670182824936 -613 -0.0102177605462013 -614 -0.00898879705064074 -615 -0.013228009191572 -616 -0.012444080731119 -617 -0.0125819657984578 -618 -0.0106457926520048 -619 -0.0137483281342092 -620 -0.0135504808411789 -621 -0.0114612446080959 -622 -0.00821287310238534 -623 -0.0104378096847016 -624 -0.00593940096538122 -625 -0.00945814044610632 -626 -0.0101588782962685 -627 -0.0111243964828339 -628 -0.00950644868084363 -629 -0.00843830240019815 -630 -0.0122240327224205 -631 -0.0121911767968013 -632 -0.0106320087647656 -633 -0.0091538953720945 -634 -0.00833412226908421 -635 -0.00479924172227301 -636 0.0335905043465549 -637 0.0695170041831408 -638 0.0270790255635657 -639 0.0321106733648098 -640 0.0313560382377176 -641 0.0282951882582407 -642 0.0286246187371558 -643 -0.0063978013638528 -644 0.0304346790629898 -645 -0.0101048058759809 -646 -0.00730849974907403 -647 -0.010438994695384 -648 -0.0112449830718235 -649 -0.0113664024129399 -650 -0.00608318090180963 -651 -0.00840928737010642 -652 -0.0108644455614179 -653 -0.010794161792753 -654 -0.0114845408302525 -655 -0.0109919991005556 -656 -0.00951218627321188 -657 -0.0117973727840752 -658 -0.0116097431098058 -659 -0.00670996120713619 -660 -0.0087566923862707 -661 -0.00768893771119313 -662 -0.00792227368859181 -663 -0.0072108108823534 -664 -0.00863418502611649 -665 -0.00848535095588438 -666 -0.00750079906528092 -667 -0.00902829779223548 -668 -0.0104029286615084 -669 -0.00972615613411735 -670 -0.00909686229570264 -671 -0.00489514770930345 -672 -0.00695727933803365 -673 -0.00291923866250643 -674 0.0692585752006358 -675 0.0338324022772704 -676 0.0312432314045003 -677 0.0301206988202449 -678 0.0318944076704347 -679 0.0308282822415121 -680 -0.00918999100874598 -681 0.0315959820198552 -682 -0.00790274938593563 -683 -0.00905781884326524 -684 -0.00978094259623583 -685 -0.00713889275972127 -686 -0.00961735482798763 -687 -0.00462928907883874 -688 -0.00708992015115961 -689 -0.0103894616795413 -690 -0.00975021468154266 -691 -0.0104107842274988 -692 -0.00992064479267111 -693 -0.0101176695314485 -694 -0.0104463991054629 -695 -0.00746960217815067 -696 -0.00654218027790495 -697 -0.0072389149982618 -698 -0.00618599001631964 -699 -0.00987786436517789 -700 -0.00673370918278097 -701 -0.00741759762031304 -702 -0.00541549527991575 -703 -0.00791781857083014 -704 -0.00787381692952382 -705 -0.00794395001729855 -706 -0.00931768673974245 -707 -0.00885678465821695 -708 -0.0052821815238511 -709 -0.00521693921004783 -710 -0.00576093393541424 -711 0.0319052243530813 -712 0.0335565990727355 -713 0.0359823614765673 -714 0.0310776016839443 -715 0.0324813323954347 -716 0.0341278653693179 -717 -0.00771207564784067 -718 0.0276493611582263 -719 -0.00348763960636761 -720 -0.00758712167000528 -721 -0.00857064851604708 -722 -0.00851623359127258 -723 -0.00860306547563313 -724 -0.00613401688706074 -725 -0.00513329277378087 -726 -0.00905815149013341 -727 -0.00906250727280879 -728 -0.00928036762666381 -729 -0.00830114918655625 -730 -0.00888782794632727 -731 -0.00904256610543205 -732 -0.00874136315610037 -733 -0.00531018786452449 -734 -0.00629165130613466 -735 -0.00755517067228936 -736 -0.00836182239325517 -737 -0.00809350876481861 -738 -0.00404124535306633 -739 -0.00561644195626163 -740 -0.00642305805867293 -741 -0.00816305467996883 -742 -0.00843581049472936 -743 -0.00672325206596123 -744 -0.00617215358093702 -745 -0.00402751925690743 -746 -0.00479725155053775 -747 -0.00342071760962384 -748 -0.0076001254677333 -749 0.0344911275393927 -750 0.0357890953530814 -751 0.0369236838641285 -752 0.0337953594669526 -753 0.0341196656886643 -754 -0.00659802662549373 -755 0.0315371138736742 -756 -0.00562959157006591 -757 -0.00365306265936607 -758 -0.00637937791804702 -759 -0.00728163692006943 -760 -0.00728167255033979 -761 -0.00486863763712198 -762 -0.00700194438994883 -763 -0.00488445712486066 -764 -0.00785107429883577 -765 -0.00743663889427734 -766 -0.0075555414143233 -767 -0.0082175974779749 -768 -0.00762712314452127 -769 -0.00716801816399294 -770 -0.00420432905589099 -771 -0.00646377431872973 -772 -0.00627655191972345 -773 -0.0068281800863105 -774 -0.00646314628967681 -775 -0.00545387418053753 -776 -0.00272565261231244 -777 -0.00644191975512085 -778 -0.00690509982226062 -779 -0.00709925853315763 -780 -0.00694005333594523 -781 -0.00625875545170498 -782 -0.00292200977585102 -783 -0.00321016024715532 -784 -0.00336849507857711 -785 -0.00596633161271771 -786 -0.00616166058124168 -787 0.03411477548233 -788 0.03523911486873 -789 0.039313174460712 -790 0.0358510918513492 -791 -0.00378913539308921 -792 0.0304194265074042 -793 -0.0038004308918757 -794 -0.00607189262016905 -795 -0.00587612619804128 -796 -0.00189219359140836 -797 -0.00616375618998826 -798 -0.00388685360401677 -799 -0.00556254294258616 -800 -0.00661778351426878 -801 -0.00382440352172051 -802 -0.00647820073687594 -803 -0.00624655145167987 -804 -0.00667068925870065 -805 -0.00648578196572712 -806 -0.0051558107815927 -807 -0.00231291615968645 -808 -0.00505615473087768 -809 -0.00587295803700975 -810 -0.00558124863643099 -811 -0.00536491992472214 -812 -0.00398836838292933 -813 -0.00377202632549738 -814 -0.002354118299516 -815 -0.00450512819274966 -816 -0.0052767354763421 -817 -0.00524186198269607 -818 -0.00538929450465706 -819 -0.00531625688326681 -820 -0.00559074601189695 -821 -0.00531052145605409 -822 -0.00506016636387018 -823 -0.00558340516310152 -824 -0.00480493075033995 -825 0.0322805865937449 -826 0.0378874582814526 -827 0.0388905020209905 -828 0.00140630493053477 -829 0.0327652229435057 -830 -0.00223687990639532 -831 -0.00415072629779562 -832 -0.00449816632891999 -833 -0.00471900257056604 -834 -0.00380655567933039 -835 -0.00208013080352473 -836 -0.00399065266148802 -837 -0.00487092683399181 -838 -0.0050959015942598 -839 -0.00191592007441914 -840 -0.00461100733700934 -841 -0.00502472638398927 -842 -0.00505288732904903 -843 -0.00438730255591126 -844 -0.00306177948534003 -845 -0.00375916415653544 -846 -0.00446006819331235 -847 -0.00529861753336898 -848 -0.00366324407821308 -849 -0.00260207768467577 -850 -0.00307568973842944 -851 -0.00423298618954815 -852 -0.00402026548184328 -853 -0.00146181843080695 -854 -0.00349341567107831 -855 -0.00433554634082064 -856 -0.00410204223433599 -857 -0.00434967848256952 -858 -0.00421703547450881 -859 -0.00382881572564153 -860 -0.00423970806851707 -861 -0.00437449172653197 -862 -0.00400502122442197 -863 0.0346819215614161 -864 0.0348750856830455 -865 -0.00265543722265669 -866 0.0380644512814575 -867 -5.14244684871617e-05 -868 -0.0029850292925082 -869 -0.00280199446175912 -870 -0.00310596389994767 -871 -0.00343511488292023 -872 -0.000171378148703489 -873 -0.0024459240224584 -874 -0.00327675207097342 -875 -0.00348581260906698 -876 -0.00355868259309655 -877 -0.000312461719204031 -878 -0.00355336474543735 -879 -0.00357392139745643 -880 -0.00290172241076185 -881 -0.00208381746845654 -882 -0.00191420039525358 -883 -0.00288084255403359 -884 -0.00402165110428679 -885 -0.00363823711845451 -886 -0.00105719975984341 -887 -0.00194304900141352 -888 -0.0028117193732005 -889 -0.00272354659953838 -890 -0.00269119684418979 -891 -0.0024739833326293 -892 -0.00264720107421195 -893 -0.00266281337322763 -894 -0.00271486287490391 -895 -0.0025966883492992 -896 -0.00275998355842941 -897 -0.00285830804400797 -898 -0.00283220277180079 -899 -0.00268773055778214 -900 -0.00284073923200707 -901 0.0353145424004993 -902 -0.00160304708129049 -903 0.0348425254145825 -904 2.8677502125498e-05 -905 0.000437164769156674 -906 -0.000353406460783275 -907 -0.00195469155311098 -908 -0.00181504012345376 -909 0.000213017105712491 -910 -0.001310254306005 -911 -0.00211504011023419 -912 -0.00220453472901432 -913 -0.00221445718259423 -914 -0.0019385529058544 -915 -0.00242106879847995 -916 0.000515093602106525 -917 -0.00157522783064606 -918 -0.000809182215147043 -919 -0.00125292469032103 -920 -0.00240883966759777 -921 -0.0021786367875747 -922 -0.00240937489397921 -923 -0.00116795158553355 -924 -0.000727426386542781 -925 -0.00133194403721344 -926 -0.00124546108708765 -927 -0.00148107783605636 -928 -0.00142616980555449 -929 -0.00146243841366756 -930 -0.0015283737803334 -931 -0.00154540562504725 -932 -0.00155805559628689 -933 -0.00151938623493131 -934 -0.00165541232298659 -935 -0.00168144891364875 -936 -0.00132559687940882 -937 -0.00160394278309398 -938 -0.0017363807642805 -939 -0.00167995411949275 -940 0.0354478346047755 -941 0.00106969481951657 -942 -0.000561313854486038 -943 -0.000457998303574142 -944 -0.000583885106294125 -945 -0.000525159904309248 -946 -0.000517315333414318 -947 -0.000721221933781515 -948 -0.000829549124890304 -949 -8.82882583545919e-05 -950 -0.000766770294365053 -951 -0.000811881521540676 -952 -0.000891788154480318 -953 -0.000934560208414364 -954 -0.00079422177360351 -955 -0.000838129010273254 -956 -0.000963325512884482 -957 -0.00102235934683932 -958 -0.00106440392780229 -959 -0.000989883649450528 -960 0.000386274557612681 -961 -0.000389777489444674 -962 -0.00118692846255399 -963 -5.09408200005586e-06 -964 -5.89078730563787e-05 -965 -1.47060551334381e-05 -966 -0.000136166417132319 -967 -0.000121512032975118 -968 -0.00017156987502174 -969 -0.000156708081095913 -970 -0.000153840321519638 -971 -0.000310390758729453 -972 -0.000312404884024801 -973 -0.000200418566814807 -974 -0.000375662527155661 -975 -0.000354596399099672 -976 -0.000424295858947903 -977 -4.46088202453899e-06 -978 0.00224800854296348 -979 0.000523082860817624 -980 0.00048326199320117 -981 0.000448693340206397 -982 0.000421635212488891 -983 0.000437949926365211 -984 0.000428040241678261 -985 0.000391002232599501 -986 0.00036566913933478 -987 0.000381018446039441 -988 0.000321514512415979 -989 0.000287957422008028 -990 0.000255617051800765 -991 0.000221662354369779 -992 0.000188701605125869 -993 0.00016002049297156 -994 0.000127317707925566 -995 9.31667901426005e-05 -996 6.3380231067732e-05 -997 3.423275902354e-05 -998 -2.14223799528709e-06 -999 -3.67741480724576e-05 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat deleted file mode 100644 index 484b947..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat +++ /dev/null @@ -1,1001 +0,0 @@ -#scatter real total user system repeat -1 0.00562119483947754 0.00999999999999979 0.00999999999999979 0.0 1 -2 0.00404691696166992 0.0 0.0 0.0 2 -3 0.00373387336730957 0.00999999999999979 0.00999999999999979 0.0 3 -4 0.00375699996948242 0.0 0.0 0.0 4 -5 0.00371694564819336 0.0 0.0 0.0 5 -6 0.00381088256835938 0.0100000000000007 0.0100000000000007 0.0 6 -7 0.00370693206787109 0.0 0.0 0.0 7 -8 0.00368213653564453 0.00999999999999979 0.00999999999999979 0.0 8 -9 0.0037529468536377 0.0 0.0 0.0 9 -10 0.00371718406677246 0.0 0.0 0.0 10 -11 0.00370693206787109 0.00999999999999979 0.00999999999999979 0.0 11 -12 0.00371503829956055 0.0 0.0 0.0 12 -13 0.00367999076843262 0.0 0.0 0.0 13 -14 0.0037379264831543 0.00999999999999979 0.00999999999999979 0.0 14 -15 0.00368285179138184 0.0 0.0 0.0 15 -16 0.0036928653717041 0.00999999999999979 0.00999999999999979 0.0 16 -17 0.00363802909851074 0.0 0.0 0.0 17 -18 0.00420713424682617 0.0 0.0 0.0 18 -19 0.0046851634979248 0.0100000000000007 0.0100000000000007 0.0 19 -20 0.00365090370178223 0.0 0.0 0.0 20 -21 0.0036470890045166 0.00999999999999979 0.00999999999999979 0.0 21 -22 0.00363302230834961 0.0 0.0 0.0 22 -23 0.00362706184387207 0.0 0.0 0.0 23 -24 0.00369381904602051 0.00999999999999979 0.00999999999999979 0.0 24 -25 0.00363802909851074 0.0 0.0 0.0 25 -26 0.00362586975097656 0.0 0.0 0.0 26 -27 0.0036308765411377 0.00999999999999979 0.00999999999999979 0.0 27 -28 0.00364899635314941 0.0 0.0 0.0 28 -29 0.00363993644714355 0.0100000000000007 0.0100000000000007 0.0 29 -30 0.0036160945892334 0.0 0.0 0.0 30 -31 0.00362014770507812 0.0 0.0 0.0 31 -32 0.0036470890045166 0.00999999999999979 0.00999999999999979 0.0 32 -33 0.00372695922851562 0.0 0.0 0.0 33 -34 0.00366806983947754 0.0 0.0 0.0 34 -35 0.00362205505371094 0.00999999999999979 0.00999999999999979 0.0 35 -36 0.00366711616516113 0.0 0.0 0.0 36 -37 0.00369906425476074 0.00999999999999979 0.00999999999999979 0.0 37 -38 0.00364184379577637 0.0 0.0 0.0 38 -39 0.0289762020111084 0.0300000000000002 0.0300000000000002 0.0 39 -40 0.00372695922851562 0.0 0.0 0.0 40 -41 0.00367403030395508 0.00999999999999979 0.00999999999999979 0.0 41 -42 0.00373101234436035 0.0 0.0 0.0 42 -43 0.00379014015197754 0.0 0.0 0.0 43 -44 0.00367498397827148 0.0100000000000007 0.0100000000000007 0.0 44 -45 0.00369691848754883 0.0 0.0 0.0 45 -46 0.00368881225585938 0.0 0.0 0.0 46 -47 0.00369405746459961 0.00999999999999979 0.00999999999999979 0.0 47 -48 0.00369095802307129 0.0 0.0 0.0 48 -49 0.00370192527770996 0.00999999999999979 0.00999999999999979 0.0 49 -50 0.00373387336730957 0.0 0.0 0.0 50 -51 0.00370502471923828 0.0 0.0 0.0 51 -52 0.00367999076843262 0.00999999999999979 0.00999999999999979 0.0 52 -53 0.00374007225036621 0.0 0.0 0.0 53 -54 0.00364995002746582 0.0 0.0 0.0 54 -55 0.00367188453674316 0.0100000000000007 0.0100000000000007 0.0 55 -56 0.00363993644714355 0.0 0.0 0.0 56 -57 0.00365900993347168 0.00999999999999979 0.00999999999999979 0.0 57 -58 0.0036160945892334 0.0 0.0 0.0 58 -59 0.00369095802307129 0.0 0.0 0.0 59 -60 0.00452899932861328 0.00999999999999979 0.00999999999999979 0.0 60 -61 0.00462913513183594 0.0 0.0 0.0 61 -62 0.00413894653320312 0.00999999999999979 0.00999999999999979 0.0 62 -63 0.0036470890045166 0.0 0.0 0.0 63 -64 0.00361418724060059 0.0 0.0 0.0 64 -65 0.00383710861206055 0.0100000000000007 0.0100000000000007 0.0 65 -66 0.00362491607666016 0.0 0.0 0.0 66 -67 0.0036318302154541 0.0 0.0 0.0 67 -68 0.0036311149597168 0.00999999999999979 0.00999999999999979 0.0 68 -69 0.00365900993347168 0.0 0.0 0.0 69 -70 0.00515103340148926 0.00999999999999979 0.00999999999999979 0.0 70 -71 0.00363993644714355 0.0 0.0 0.0 71 -72 0.00365900993347168 0.0 0.0 0.0 72 -73 0.00374507904052734 0.00999999999999979 0.00999999999999979 0.0 73 -74 0.00366497039794922 0.0 0.0 0.0 74 -75 0.00367498397827148 0.00999999999999979 0.00999999999999979 0.0 75 -76 0.0036470890045166 0.0 0.0 0.0 76 -77 0.00451517105102539 0.0 0.0 0.0 77 -78 0.0300049781799316 0.0300000000000002 0.0300000000000002 0.0 78 -79 0.00374197959899902 0.00999999999999979 0.00999999999999979 0.0 79 -80 0.00371098518371582 0.0 0.0 0.0 80 -81 0.00372600555419922 0.0 0.0 0.0 81 -82 0.00376200675964355 0.0100000000000007 0.0100000000000007 0.0 82 -83 0.00369596481323242 0.0 0.0 0.0 83 -84 0.00372099876403809 0.00999999999999979 0.00999999999999979 0.0 84 -85 0.00370216369628906 0.0 0.0 0.0 85 -86 0.00374007225036621 0.0 0.0 0.0 86 -87 0.00369381904602051 0.00999999999999979 0.00999999999999979 0.0 87 -88 0.00372195243835449 0.0 0.0 0.0 88 -89 0.00368881225585938 0.0 0.0 0.0 89 -90 0.00371909141540527 0.00999999999999979 0.00999999999999979 0.0 90 -91 0.00371909141540527 0.0 0.0 0.0 91 -92 0.00366497039794922 0.0100000000000007 0.0100000000000007 0.0 92 -93 0.00366401672363281 0.0 0.0 0.0 93 -94 0.00378704071044922 0.0 0.0 0.0 94 -95 0.00365710258483887 0.00999999999999979 0.00999999999999979 0.0 95 -96 0.00405406951904297 0.0 0.0 0.0 96 -97 0.00365591049194336 0.0 0.0 0.0 97 -98 0.00371098518371582 0.00999999999999979 0.00999999999999979 0.0 98 -99 0.00363802909851074 0.0 0.0 0.0 99 -100 0.0036461353302002 0.00999999999999979 0.00999999999999979 0.0 100 -101 0.00359797477722168 0.0 0.0 0.0 101 -102 0.00361990928649902 0.0 0.0 0.0 102 -103 0.00364899635314941 0.0100000000000007 0.0100000000000007 0.0 103 -104 0.00359296798706055 0.0 0.0 0.0 104 -105 0.00363802909851074 0.0 0.0 0.0 105 -106 0.00417685508728027 0.00999999999999979 0.00999999999999979 0.0 106 -107 0.00371980667114258 0.0 0.0 0.0 107 -108 0.0036470890045166 0.00999999999999979 0.00999999999999979 0.0 108 -109 0.00368213653564453 0.0 0.0 0.0 109 -110 0.00360202789306641 0.0 0.0 0.0 110 -111 0.00362992286682129 0.00999999999999979 0.00999999999999979 0.0 111 -112 0.0036311149597168 0.0 0.0 0.0 112 -113 0.00362801551818848 0.0 0.0 0.0 113 -114 0.00364995002746582 0.0100000000000007 0.0100000000000007 0.0 114 -115 0.00370001792907715 0.0 0.0 0.0 115 -116 0.0305509567260742 0.0299999999999994 0.0299999999999994 0.0 116 -117 0.00376200675964355 0.0100000000000007 0.0100000000000007 0.0 117 -118 0.0038001537322998 0.0 0.0 0.0 118 -119 0.00374984741210938 0.0 0.0 0.0 119 -120 0.00397920608520508 0.00999999999999979 0.00999999999999979 0.0 120 -121 0.00372481346130371 0.0 0.0 0.0 121 -122 0.00369715690612793 0.0 0.0 0.0 122 -123 0.00371694564819336 0.00999999999999979 0.00999999999999979 0.0 123 -124 0.00372195243835449 0.0 0.0 0.0 124 -125 0.00375914573669434 0.00999999999999979 0.00999999999999979 0.0 125 -126 0.00368499755859375 0.0 0.0 0.0 126 -127 0.00371503829956055 0.0 0.0 0.0 127 -128 0.00380897521972656 0.00999999999999979 0.00999999999999979 0.0 128 -129 0.00403499603271484 0.0 0.0 0.0 129 -130 0.00370502471923828 0.0100000000000007 0.0100000000000007 0.0 130 -131 0.00371289253234863 0.0 0.0 0.0 131 -132 0.00365591049194336 0.0 0.0 0.0 132 -133 0.00368094444274902 0.00999999999999979 0.00999999999999979 0.0 133 -134 0.0036768913269043 0.0 0.0 0.0 134 -135 0.00362706184387207 0.0 0.0 0.0 135 -136 0.00366616249084473 0.00999999999999979 0.00999999999999979 0.0 136 -137 0.0036470890045166 0.0 0.0 0.0 137 -138 0.00362181663513184 0.0 0.0 0.0 138 -139 0.00364089012145996 0.00999999999999979 0.00999999999999979 0.0 139 -140 0.00363707542419434 0.0 0.0 0.0 140 -141 0.00359892845153809 0.0100000000000007 0.0100000000000007 0.0 141 -142 0.00361514091491699 0.0 0.0 0.0 142 -143 0.00365495681762695 0.0 0.0 0.0 143 -144 0.00371885299682617 0.00999999999999979 0.00999999999999979 0.0 144 -145 0.00364208221435547 0.0 0.0 0.0 145 -146 0.00365304946899414 0.0 0.0 0.0 146 -147 0.00368404388427734 0.00999999999999979 0.00999999999999979 0.0 147 -148 0.00365900993347168 0.0 0.0 0.0 148 -149 0.00368785858154297 0.00999999999999979 0.00999999999999979 0.0 149 -150 0.003662109375 0.0 0.0 0.0 150 -151 0.00363397598266602 0.0 0.0 0.0 151 -152 0.00362491607666016 0.0100000000000007 0.0100000000000007 0.0 152 -153 0.00366687774658203 0.0 0.0 0.0 153 -154 0.0295231342315674 0.0299999999999994 0.0299999999999994 0.0 154 -155 0.00366806983947754 0.0 0.0 0.0 155 -156 0.00370311737060547 0.0100000000000007 0.0100000000000007 0.0 156 -157 0.0037238597869873 0.0 0.0 0.0 157 -158 0.00376701354980469 0.00999999999999979 0.00999999999999979 0.0 158 -159 0.0036771297454834 0.0 0.0 0.0 159 -160 0.00372195243835449 0.0 0.0 0.0 160 -161 0.00371599197387695 0.00999999999999979 0.00999999999999979 0.0 161 -162 0.00371003150939941 0.0 0.0 0.0 162 -163 0.00369811058044434 0.0 0.0 0.0 163 -164 0.00378203392028809 0.00999999999999979 0.00999999999999979 0.0 164 -165 0.00370502471923828 0.0 0.0 0.0 165 -166 0.00371003150939941 0.0100000000000007 0.0100000000000007 0.0 166 -167 0.00371599197387695 0.0 0.0 0.0 167 -168 0.00370192527770996 0.0 0.0 0.0 168 -169 0.00369501113891602 0.00999999999999979 0.00999999999999979 0.0 169 -170 0.00369691848754883 0.0 0.0 0.0 170 -171 0.00400686264038086 0.0 0.0 0.0 171 -172 0.00524497032165527 0.00999999999999979 0.00999999999999979 0.0 172 -173 0.00366020202636719 0.0 0.0 0.0 173 -174 0.00366806983947754 0.00999999999999979 0.00999999999999979 0.0 174 -175 0.00367379188537598 0.0 0.0 0.0 175 -176 0.00362706184387207 0.0 0.0 0.0 176 -177 0.00365996360778809 0.0100000000000007 0.0100000000000007 0.0 177 -178 0.00365900993347168 0.0 0.0 0.0 178 -179 0.00363492965698242 0.00999999999999979 0.00999999999999979 0.0 179 -180 0.00363397598266602 0.0 0.0 0.0 180 -181 0.00366401672363281 0.0 0.0 0.0 181 -182 0.00363302230834961 0.00999999999999979 0.00999999999999979 0.0 182 -183 0.00364494323730469 0.0 0.0 0.0 183 -184 0.00361990928649902 0.0 0.0 0.0 184 -185 0.00379490852355957 0.00999999999999979 0.00999999999999979 0.0 185 -186 0.0036468505859375 0.0 0.0 0.0 186 -187 0.00370502471923828 0.00999999999999979 0.00999999999999979 0.0 187 -188 0.00387907028198242 0.0 0.0 0.0 188 -189 0.00541114807128906 0.0 0.0 0.0 189 -190 0.00428199768066406 0.0100000000000007 0.0100000000000007 0.0 190 -191 0.00368618965148926 0.0 0.0 0.0 191 -192 0.0293948650360107 0.0299999999999994 0.0299999999999994 0.0 192 -193 0.00434708595275879 0.0100000000000007 0.0100000000000007 0.0 193 -194 0.00372600555419922 0.0 0.0 0.0 194 -195 0.00628900527954102 0.00999999999999979 0.00999999999999979 0.0 195 -196 0.00624394416809082 0.0 0.0 0.0 196 -197 0.00649094581604004 0.00999999999999979 0.00999999999999979 0.0 197 -198 0.00419712066650391 0.0 0.0 0.0 198 -199 0.00371003150939941 0.00999999999999979 0.00999999999999979 0.0 199 -200 0.0037531852722168 0.0 0.0 0.0 200 -201 0.00369119644165039 0.0 0.0 0.0 201 -202 0.00369000434875488 0.0100000000000007 0.0100000000000007 0.0 202 -203 0.00372099876403809 0.0 0.0 0.0 203 -204 0.00369000434875488 0.00999999999999979 0.00999999999999979 0.0 204 -205 0.00371885299682617 0.0 0.0 0.0 205 -206 0.00367903709411621 0.0 0.0 0.0 206 -207 0.00364303588867188 0.00999999999999979 0.00999999999999979 0.0 207 -208 0.0037541389465332 0.0 0.0 0.0 208 -209 0.00364303588867188 0.0 0.0 0.0 209 -210 0.00363898277282715 0.00999999999999979 0.00999999999999979 0.0 210 -211 0.00363588333129883 0.0 0.0 0.0 211 -212 0.00367999076843262 0.0100000000000007 0.0100000000000007 0.0 212 -213 0.00364208221435547 0.0 0.0 0.0 213 -214 0.00365614891052246 0.0 0.0 0.0 214 -215 0.00363779067993164 0.00999999999999979 0.00999999999999979 0.0 215 -216 0.00362610816955566 0.0 0.0 0.0 216 -217 0.0036470890045166 0.0 0.0 0.0 217 -218 0.00366711616516113 0.00999999999999979 0.00999999999999979 0.0 218 -219 0.00364995002746582 0.0 0.0 0.0 219 -220 0.0036308765411377 0.0 0.0 0.0 220 -221 0.0036308765411377 0.00999999999999979 0.00999999999999979 0.0 221 -222 0.00362896919250488 0.0 0.0 0.0 222 -223 0.00364899635314941 0.0100000000000007 0.0100000000000007 0.0 223 -224 0.00365805625915527 0.0 0.0 0.0 224 -225 0.00364589691162109 0.0 0.0 0.0 225 -226 0.00363683700561523 0.00999999999999979 0.00999999999999979 0.0 226 -227 0.00364995002746582 0.0 0.0 0.0 227 -228 0.00421810150146484 0.0 0.0 0.0 228 -229 0.00510215759277344 0.00999999999999979 0.00999999999999979 0.0 229 -230 0.0295019149780273 0.0300000000000002 0.0300000000000002 0.0 230 -231 0.00370287895202637 0.0 0.0 0.0 231 -232 0.00370287895202637 0.00999999999999979 0.00999999999999979 0.0 232 -233 0.00372409820556641 0.0 0.0 0.0 233 -234 0.00373697280883789 0.0 0.0 0.0 234 -235 0.00371003150939941 0.00999999999999979 0.00999999999999979 0.0 235 -236 0.00374388694763184 0.0 0.0 0.0 236 -237 0.00366711616516113 0.00999999999999979 0.00999999999999979 0.0 237 -238 0.00371408462524414 0.0 0.0 0.0 238 -239 0.0048530101776123 0.0 0.0 0.0 239 -240 0.00423502922058105 0.0100000000000007 0.0100000000000007 0.0 240 -241 0.00370502471923828 0.0 0.0 0.0 241 -242 0.00370383262634277 0.00999999999999979 0.00999999999999979 0.0 242 -243 0.00366306304931641 0.0 0.0 0.0 243 -244 0.00367593765258789 0.0 0.0 0.0 244 -245 0.00371599197387695 0.00999999999999979 0.00999999999999979 0.0 245 -246 0.00369501113891602 0.0 0.0 0.0 246 -247 0.00366902351379395 0.0 0.0 0.0 247 -248 0.00362110137939453 0.00999999999999979 0.00999999999999979 0.0 248 -249 0.00362896919250488 0.0 0.0 0.0 249 -250 0.00362896919250488 0.0100000000000007 0.0100000000000007 0.0 250 -251 0.00362205505371094 0.0 0.0 0.0 251 -252 0.00364923477172852 0.0 0.0 0.0 252 -253 0.00362801551818848 0.00999999999999979 0.00999999999999979 0.0 253 -254 0.00369715690612793 0.0 0.0 0.0 254 -255 0.00363993644714355 0.0 0.0 0.0 255 -256 0.00364518165588379 0.00999999999999979 0.00999999999999979 0.0 256 -257 0.00360393524169922 0.0 0.0 0.0 257 -258 0.00365090370178223 0.00999999999999979 0.00999999999999979 0.0 258 -259 0.00365996360778809 0.0 0.0 0.0 259 -260 0.00363016128540039 0.0 0.0 0.0 260 -261 0.00363707542419434 0.0100000000000007 0.0100000000000007 0.0 261 -262 0.00364112854003906 0.0 0.0 0.0 262 -263 0.00367903709411621 0.0 0.0 0.0 263 -264 0.00365304946899414 0.00999999999999979 0.00999999999999979 0.0 264 -265 0.00365900993347168 0.0 0.0 0.0 265 -266 0.00364804267883301 0.00999999999999979 0.00999999999999979 0.0 266 -267 0.00368404388427734 0.0 0.0 0.0 267 -268 0.02935791015625 0.0300000000000002 0.0300000000000002 0.0 268 -269 0.00368499755859375 0.0 0.0 0.0 269 -270 0.00371789932250977 0.00999999999999979 0.00999999999999979 0.0 270 -271 0.0037848949432373 0.0 0.0 0.0 271 -272 0.00371384620666504 0.0 0.0 0.0 272 -273 0.00371098518371582 0.00999999999999979 0.00999999999999979 0.0 273 -274 0.00377702713012695 0.0 0.0 0.0 274 -275 0.00371503829956055 0.0 0.0 0.0 275 -276 0.00372791290283203 0.0100000000000007 0.0100000000000007 0.0 276 -277 0.00372004508972168 0.0 0.0 0.0 277 -278 0.00366806983947754 0.00999999999999979 0.00999999999999979 0.0 278 -279 0.00369620323181152 0.0 0.0 0.0 279 -280 0.00374603271484375 0.0 0.0 0.0 280 -281 0.00559902191162109 0.00999999999999979 0.00999999999999979 0.0 281 -282 0.00370311737060547 0.0 0.0 0.0 282 -283 0.00371289253234863 0.00999999999999979 0.00999999999999979 0.0 283 -284 0.00368905067443848 0.0 0.0 0.0 284 -285 0.0037989616394043 0.0 0.0 0.0 285 -286 0.00368595123291016 0.00999999999999979 0.0100000000000007 0.0 286 -287 0.00365710258483887 0.0 0.0 0.0 287 -288 0.00366306304931641 0.00999999999999979 0.00999999999999979 0.0 288 -289 0.00366091728210449 0.0 0.0 0.0 289 -290 0.00363683700561523 0.0 0.0 0.0 290 -291 0.00508499145507812 0.00999999999999979 0.00999999999999979 0.0 291 -292 0.00364899635314941 0.0 0.0 0.0 292 -293 0.00364184379577637 0.0 0.0 0.0 293 -294 0.00365900993347168 0.00999999999999979 0.00999999999999979 0.0 294 -295 0.00361919403076172 0.0 0.0 0.0 295 -296 0.00365996360778809 0.00999999999999979 0.00999999999999979 0.0 296 -297 0.00385499000549316 0.0 0.0 0.0 297 -298 0.00486421585083008 0.0 0.0 0.0 298 -299 0.00370907783508301 0.00999999999999979 0.00999999999999979 0.0 299 -300 0.00366020202636719 0.0 0.0 0.0 300 -301 0.00364780426025391 0.00999999999999979 0.00999999999999979 0.0 301 -302 0.00360703468322754 0.0 0.0 0.0 302 -303 0.00366711616516113 0.0 0.0 0.0 303 -304 0.00365304946899414 0.0100000000000016 0.0100000000000016 0.0 304 -305 0.0293490886688232 0.0299999999999994 0.0299999999999994 0.0 305 -306 0.00373411178588867 0.0 0.0 0.0 306 -307 0.00367593765258789 0.0 0.0 0.0 307 -308 0.0037379264831543 0.00999999999999979 0.00999999999999979 0.0 308 -309 0.00373697280883789 0.0 0.0 0.0 309 -310 0.00374507904052734 0.0 0.0 0.0 310 -311 0.00374889373779297 0.00999999999999979 0.00999999999999979 0.0 311 -312 0.00372195243835449 0.0 0.0 0.0 312 -313 0.00367879867553711 0.00999999999999979 0.00999999999999979 0.0 313 -314 0.00386714935302734 0.0 0.0 0.0 314 -315 0.00381088256835938 0.0 0.0 0.0 315 -316 0.00370597839355469 0.00999999999999979 0.00999999999999979 0.0 316 -317 0.00370287895202637 0.0 0.0 0.0 317 -318 0.00370883941650391 0.0 0.0 0.0 318 -319 0.0037989616394043 0.0100000000000016 0.0100000000000016 0.0 319 -320 0.00371098518371582 0.0 0.0 0.0 320 -321 0.00366806983947754 0.00999999999999979 0.00999999999999979 0.0 321 -322 0.00365209579467773 0.0 0.0 0.0 322 -323 0.00365400314331055 0.0 0.0 0.0 323 -324 0.00365710258483887 0.00999999999999979 0.00999999999999979 0.0 324 -325 0.00365400314331055 0.0 0.0 0.0 325 -326 0.00417399406433105 0.00999999999999979 0.00999999999999979 0.0 326 -327 0.00363588333129883 0.0 0.0 0.0 327 -328 0.00362396240234375 0.0 0.0 0.0 328 -329 0.00364899635314941 0.00999999999999979 0.00999999999999979 0.0 329 -330 0.0036461353302002 0.0 0.0 0.0 330 -331 0.00362610816955566 0.0 0.0 0.0 331 -332 0.00365710258483887 0.00999999999999979 0.00999999999999979 0.0 332 -333 0.00365900993347168 0.0 0.0 0.0 333 -334 0.00363802909851074 0.0 0.0 0.0 334 -335 0.00365495681762695 0.00999999999999979 0.00999999999999979 0.0 335 -336 0.0036931037902832 0.0 0.0 0.0 336 -337 0.00366592407226562 0.00999999999999979 0.00999999999999979 0.0 337 -338 0.0036778450012207 0.0 0.0 0.0 338 -339 0.00438904762268066 0.0 0.0 0.0 339 -340 0.00471091270446777 0.0100000000000016 0.0100000000000016 0.0 340 -341 0.00389599800109863 0.0 0.0 0.0 341 -342 0.00366497039794922 0.00999999999999979 0.00999999999999979 0.0 342 -343 0.0298199653625488 0.0299999999999994 0.0299999999999994 0.0 343 -344 0.00373697280883789 0.0 0.0 0.0 344 -345 0.00366497039794922 0.0 0.0 0.0 345 -346 0.00375890731811523 0.00999999999999979 0.00999999999999979 0.0 346 -347 0.00376486778259277 0.0 0.0 0.0 347 -348 0.00379490852355957 0.00999999999999979 0.00999999999999979 0.0 348 -349 0.00371098518371582 0.0 0.0 0.0 349 -350 0.00410985946655273 0.0 0.0 0.0 350 -351 0.00371313095092773 0.00999999999999979 0.00999999999999979 0.0 351 -352 0.00372481346130371 0.0 0.0 0.0 352 -353 0.00371789932250977 0.0 0.0 0.0 353 -354 0.00374507904052734 0.00999999999999979 0.00999999999999979 0.0 354 -355 0.00374102592468262 0.0 0.0 0.0 355 -356 0.00371098518371582 0.0100000000000016 0.0100000000000016 0.0 356 -357 0.00369906425476074 0.0 0.0 0.0 357 -358 0.00367617607116699 0.0 0.0 0.0 358 -359 0.00366997718811035 0.00999999999999979 0.00999999999999979 0.0 359 -360 0.00365996360778809 0.0 0.0 0.0 360 -361 0.00363588333129883 0.0 0.0 0.0 361 -362 0.00361990928649902 0.00999999999999979 0.00999999999999979 0.0 362 -363 0.00364589691162109 0.0 0.0 0.0 363 -364 0.00363492965698242 0.00999999999999979 0.00999999999999979 0.0 364 -365 0.00372695922851562 0.0 0.0 0.0 365 -366 0.00362396240234375 0.0 0.0 0.0 366 -367 0.00363707542419434 0.00999999999999979 0.00999999999999979 0.0 367 -368 0.0036921501159668 0.0 0.0 0.0 368 -369 0.00365710258483887 0.0 0.0 0.0 369 -370 0.00361800193786621 0.00999999999999979 0.00999999999999979 0.0 370 -371 0.00367903709411621 0.0 0.0 0.0 371 -372 0.00365805625915527 0.00999999999999979 0.00999999999999979 0.0 372 -373 0.00367999076843262 0.0 0.0 0.0 373 -374 0.00368404388427734 0.0 0.0 0.0 374 -375 0.00368690490722656 0.00999999999999979 0.00999999999999979 0.0 375 -376 0.00374794006347656 0.0 0.0 0.0 376 -377 0.00366997718811035 0.0 0.0 0.0 377 -378 0.00365018844604492 0.0100000000000016 0.0100000000000016 0.0 378 -379 0.0036780834197998 0.0 0.0 0.0 379 -380 0.00370216369628906 0.00999999999999979 0.00999999999999979 0.0 380 -381 0.0293450355529785 0.0199999999999996 0.0199999999999996 0.0 381 -382 0.00373005867004395 0.00999999999999979 0.00999999999999979 0.0 382 -383 0.00366306304931641 0.0 0.0 0.0 383 -384 0.00376296043395996 0.00999999999999979 0.00999999999999979 0.0 384 -385 0.00380301475524902 0.0 0.0 0.0 385 -386 0.00372815132141113 0.0 0.0 0.0 386 -387 0.00371193885803223 0.00999999999999979 0.00999999999999979 0.0 387 -388 0.00368499755859375 0.0 0.0 0.0 388 -389 0.00373601913452148 0.0 0.0 0.0 389 -390 0.00371694564819336 0.00999999999999979 0.00999999999999979 0.0 390 -391 0.00372791290283203 0.0 0.0 0.0 391 -392 0.00531101226806641 0.0100000000000016 0.0100000000000016 0.0 392 -393 0.00371789932250977 0.0 0.0 0.0 393 -394 0.00370097160339355 0.00999999999999979 0.00999999999999979 0.0 394 -395 0.00369906425476074 0.0 0.0 0.0 395 -396 0.00373601913452148 0.0 0.0 0.0 396 -397 0.00371694564819336 0.00999999999999979 0.00999999999999979 0.0 397 -398 0.00365591049194336 0.0 0.0 0.0 398 -399 0.00403714179992676 0.0 0.0 0.0 399 -400 0.00364208221435547 0.00999999999999979 0.00999999999999979 0.0 400 -401 0.00365400314331055 0.0 0.0 0.0 401 -402 0.00364089012145996 0.00999999999999979 0.00999999999999979 0.0 402 -403 0.00363302230834961 0.0 0.0 0.0 403 -404 0.00365090370178223 0.0 0.0 0.0 404 -405 0.00374603271484375 0.00999999999999979 0.00999999999999979 0.0 405 -406 0.00363278388977051 0.0 0.0 0.0 406 -407 0.00362515449523926 0.0 0.0 0.0 407 -408 0.00372409820556641 0.00999999999999979 0.00999999999999979 0.0 408 -409 0.00486588478088379 0.0 0.0 0.0 409 -410 0.00364303588867188 0.00999999999999979 0.00999999999999979 0.0 410 -411 0.00371599197387695 0.0 0.0 0.0 411 -412 0.0036618709564209 0.0 0.0 0.0 412 -413 0.00363707542419434 0.00999999999999979 0.00999999999999979 0.0 413 -414 0.00367593765258789 0.0 0.0 0.0 414 -415 0.00361990928649902 0.0 0.0 0.0 415 -416 0.00365900993347168 0.0100000000000016 0.0100000000000016 0.0 416 -417 0.00365614891052246 0.0 0.0 0.0 417 -418 0.00370597839355469 0.00999999999999979 0.00999999999999979 0.0 418 -419 0.0359270572662354 0.0299999999999994 0.0299999999999994 0.0 419 -420 0.00371479988098145 0.00999999999999979 0.00999999999999979 0.0 420 -421 0.00369119644165039 0.0 0.0 0.0 421 -422 0.00375699996948242 0.0 0.0 0.0 422 -423 0.00374388694763184 0.00999999999999979 0.00999999999999979 0.0 423 -424 0.00373291969299316 0.0 0.0 0.0 424 -425 0.00372982025146484 0.0 0.0 0.0 425 -426 0.00370216369628906 0.00999999999999979 0.00999999999999979 0.0 426 -427 0.00371408462524414 0.0 0.0 0.0 427 -428 0.0037078857421875 0.0100000000000016 0.0100000000000016 0.0 428 -429 0.00379300117492676 0.0 0.0 0.0 429 -430 0.00373482704162598 0.0 0.0 0.0 430 -431 0.00374007225036621 0.00999999999999979 0.00999999999999979 0.0 431 -432 0.00367999076843262 0.0 0.0 0.0 432 -433 0.00372695922851562 0.0 0.0 0.0 433 -434 0.00371384620666504 0.00999999999999979 0.00999999999999979 0.0 434 -435 0.0036170482635498 0.0 0.0 0.0 435 -436 0.00364899635314941 0.00999999999999979 0.00999999999999979 0.0 436 -437 0.00367283821105957 0.0 0.0 0.0 437 -438 0.0036160945892334 0.0 0.0 0.0 438 -439 0.00362205505371094 0.00999999999999979 0.00999999999999979 0.0 439 -440 0.00364518165588379 0.0 0.0 0.0 440 -441 0.0036780834197998 0.0 0.0 0.0 441 -442 0.00361800193786621 0.00999999999999979 0.00999999999999979 0.0 442 -443 0.00362396240234375 0.0 0.0 0.0 443 -444 0.00362610816955566 0.00999999999999979 0.00999999999999979 0.0 444 -445 0.00364804267883301 0.0 0.0 0.0 445 -446 0.00360488891601562 0.0 0.0 0.0 446 -447 0.00363397598266602 0.00999999999999979 0.00999999999999979 0.0 447 -448 0.00361299514770508 0.0 0.0 0.0 448 -449 0.00390100479125977 0.0 0.0 0.0 449 -450 0.00565385818481445 0.0100000000000016 0.0100000000000016 0.0 450 -451 0.00366592407226562 0.0 0.0 0.0 451 -452 0.00364398956298828 0.00999999999999979 0.00999999999999979 0.0 452 -453 0.00362896919250488 0.0 0.0 0.0 453 -454 0.0036618709564209 0.0 0.0 0.0 454 -455 0.00370502471923828 0.00999999999999979 0.00999999999999979 0.0 455 -456 0.00375580787658691 0.0 0.0 0.0 456 -457 0.029231071472168 0.0299999999999994 0.0299999999999994 0.0 457 -458 0.00371885299682617 0.0 0.0 0.0 458 -459 0.00371003150939941 0.0 0.0 0.0 459 -460 0.00493097305297852 0.0 0.0 0.0 460 -461 0.00378513336181641 0.00999999999999979 0.00999999999999979 0.0 461 -462 0.0037388801574707 0.0 0.0 0.0 462 -463 0.00383710861206055 0.0 0.0 0.0 463 -464 0.00370407104492188 0.00999999999999979 0.00999999999999979 0.0 464 -465 0.0037388801574707 0.0 0.0 0.0 465 -466 0.00373196601867676 0.0100000000000016 0.0100000000000016 0.0 466 -467 0.00371599197387695 0.0 0.0 0.0 467 -468 0.00373697280883789 0.0 0.0 0.0 468 -469 0.00368809700012207 0.00999999999999979 0.00999999999999979 0.0 469 -470 0.00370502471923828 0.0 0.0 0.0 470 -471 0.0036771297454834 0.0 0.0 0.0 471 -472 0.00364899635314941 0.00999999999999979 0.00999999999999979 0.0 472 -473 0.00366902351379395 0.0 0.0 0.0 473 -474 0.00365710258483887 0.00999999999999979 0.00999999999999979 0.0 474 -475 0.00371217727661133 0.0 0.0 0.0 475 -476 0.00365495681762695 0.0 0.0 0.0 476 -477 0.0036308765411377 0.00999999999999979 0.00999999999999979 0.0 477 -478 0.00365710258483887 0.0 0.0 0.0 478 -479 0.00364899635314941 0.0 0.0 0.0 479 -480 0.00360703468322754 0.00999999999999979 0.00999999999999979 0.0 480 -481 0.0036318302154541 0.0 0.0 0.0 481 -482 0.00359702110290527 0.0 0.0 0.0 482 -483 0.00360584259033203 0.00999999999999979 0.00999999999999979 0.0 483 -484 0.00364303588867188 0.0 0.0 0.0 484 -485 0.00361490249633789 0.00999999999999979 0.00999999999999979 0.0 485 -486 0.00365281105041504 0.0 0.0 0.0 486 -487 0.00365591049194336 0.0 0.0 0.0 487 -488 0.00358986854553223 0.0100000000000016 0.0100000000000016 0.0 488 -489 0.00365304946899414 0.0 0.0 0.0 489 -490 0.00380802154541016 0.0 0.0 0.0 490 -491 0.00366997718811035 0.00999999999999979 0.00999999999999979 0.0 491 -492 0.00363612174987793 0.0 0.0 0.0 492 -493 0.003662109375 0.00999999999999979 0.00999999999999979 0.0 493 -494 0.00367617607116699 0.0 0.0 0.0 494 -495 0.0286951065063477 0.0299999999999994 0.0299999999999994 0.0 495 -496 0.00378203392028809 0.0 0.0 0.0 496 -497 0.00374603271484375 0.00999999999999979 0.00999999999999979 0.0 497 -498 0.00373005867004395 0.0 0.0 0.0 498 -499 0.00371003150939941 0.0 0.0 0.0 499 -500 0.00367212295532227 0.00999999999999979 0.00999999999999979 0.0 500 -501 0.00379490852355957 0.0 0.0 0.0 501 -502 0.00532388687133789 0.0100000000000016 0.0100000000000016 0.0 502 -503 0.00412988662719727 0.0 0.0 0.0 503 -504 0.00371408462524414 0.0 0.0 0.0 504 -505 0.00367403030395508 0.00999999999999979 0.00999999999999979 0.0 505 -506 0.00383114814758301 0.0 0.0 0.0 506 -507 0.00376319885253906 0.00999999999999979 0.00999999999999979 0.0 507 -508 0.00370383262634277 0.0 0.0 0.0 508 -509 0.00366592407226562 0.0 0.0 0.0 509 -510 0.00369906425476074 0.00999999999999979 0.00999999999999979 0.0 510 -511 0.00367116928100586 0.0 0.0 0.0 511 -512 0.00511002540588379 0.0 0.0 0.0 512 -513 0.00360512733459473 0.00999999999999979 0.00999999999999979 0.0 513 -514 0.00369119644165039 0.0 0.0 0.0 514 -515 0.0036311149597168 0.00999999999999979 0.00999999999999979 0.0 515 -516 0.0036771297454834 0.0 0.0 0.0 516 -517 0.00361800193786621 0.0 0.0 0.0 517 -518 0.0038139820098877 0.00999999999999979 0.00999999999999979 0.0 518 -519 0.00537514686584473 0.0 0.0 0.0 519 -520 0.00412893295288086 0.00999999999999979 0.00999999999999979 0.0 520 -521 0.00373005867004395 0.0 0.0 0.0 521 -522 0.00365996360778809 0.0 0.0 0.0 522 -523 0.00364303588867188 0.00999999999999979 0.00999999999999979 0.0 523 -524 0.00367403030395508 0.0 0.0 0.0 524 -525 0.00364589691162109 0.0100000000000016 0.0100000000000016 0.0 525 -526 0.00364398956298828 0.0 0.0 0.0 526 -527 0.00363898277282715 0.0 0.0 0.0 527 -528 0.00362682342529297 0.00999999999999979 0.00999999999999979 0.0 528 -529 0.00360894203186035 0.0 0.0 0.0 529 -530 0.00366091728210449 0.0 0.0 0.0 530 -531 0.00367999076843262 0.00999999999999979 0.00999999999999979 0.0 531 -532 0.0291500091552734 0.0299999999999994 0.0299999999999994 0.0 532 -533 0.00369596481323242 0.0 0.0 0.0 533 -534 0.00374984741210938 0.0 0.0 0.0 534 -535 0.00383186340332031 0.00999999999999979 0.00999999999999979 0.0 535 -536 0.00389409065246582 0.0 0.0 0.0 536 -537 0.00370407104492188 0.00999999999999979 0.00999999999999979 0.0 537 -538 0.0037238597869873 0.0 0.0 0.0 538 -539 0.00371479988098145 0.0 0.0 0.0 539 -540 0.00371289253234863 0.0100000000000016 0.0100000000000016 0.0 540 -541 0.00380897521972656 0.0 0.0 0.0 541 -542 0.00371193885803223 0.0 0.0 0.0 542 -543 0.0036928653717041 0.00999999999999979 0.00999999999999979 0.0 543 -544 0.00368285179138184 0.0 0.0 0.0 544 -545 0.00370407104492188 0.00999999999999979 0.00999999999999979 0.0 545 -546 0.00371193885803223 0.0 0.0 0.0 546 -547 0.00420904159545898 0.0 0.0 0.0 547 -548 0.00372791290283203 0.00999999999999979 0.00999999999999979 0.0 548 -549 0.0037071704864502 0.0 0.0 0.0 549 -550 0.00366401672363281 0.00999999999999979 0.00999999999999979 0.0 550 -551 0.00365710258483887 0.0 0.0 0.0 551 -552 0.00364494323730469 0.0 0.0 0.0 552 -553 0.00368499755859375 0.00999999999999979 0.00999999999999979 0.0 553 -554 0.00366806983947754 0.0 0.0 0.0 554 -555 0.00361418724060059 0.0 0.0 0.0 555 -556 0.00361394882202148 0.00999999999999979 0.00999999999999979 0.0 556 -557 0.00365090370178223 0.0 0.0 0.0 557 -558 0.00361990928649902 0.0 0.0 0.0 558 -559 0.0036468505859375 0.00999999999999979 0.00999999999999979 0.0 559 -560 0.0040891170501709 0.0 0.0 0.0 560 -561 0.00469303131103516 0.0100000000000016 0.0100000000000016 0.0 561 -562 0.00363516807556152 0.0 0.0 0.0 562 -563 0.00363516807556152 0.0 0.0 0.0 563 -564 0.00361895561218262 0.00999999999999979 0.00999999999999979 0.0 564 -565 0.00365996360778809 0.0 0.0 0.0 565 -566 0.00366783142089844 0.00999999999999979 0.00999999999999979 0.0 566 -567 0.00374007225036621 0.0 0.0 0.0 567 -568 0.00392389297485352 0.0 0.0 0.0 568 -569 0.0294678211212158 0.0299999999999994 0.0299999999999994 0.0 569 -570 0.00389218330383301 0.00999999999999979 0.00999999999999979 0.0 570 -571 0.00545501708984375 0.0 0.0 0.0 571 -572 0.00444793701171875 0.00999999999999979 0.00999999999999979 0.0 572 -573 0.00378513336181641 0.0 0.0 0.0 573 -574 0.00372600555419922 0.0 0.0 0.0 574 -575 0.00369596481323242 0.00999999999999979 0.00999999999999979 0.0 575 -576 0.00376510620117188 0.0 0.0 0.0 576 -577 0.00368714332580566 0.0100000000000016 0.0100000000000016 0.0 577 -578 0.00371885299682617 0.0 0.0 0.0 578 -579 0.00372505187988281 0.0 0.0 0.0 579 -580 0.00372815132141113 0.00999999999999979 0.00999999999999979 0.0 580 -581 0.00370502471923828 0.0 0.0 0.0 581 -582 0.00371503829956055 0.0 0.0 0.0 582 -583 0.00371503829956055 0.00999999999999979 0.00999999999999979 0.0 583 -584 0.00370287895202637 0.0 0.0 0.0 584 -585 0.00371599197387695 0.00999999999999979 0.00999999999999979 0.0 585 -586 0.00377798080444336 0.0 0.0 0.0 586 -587 0.00368595123291016 0.0 0.0 0.0 587 -588 0.00366497039794922 0.00999999999999979 0.00999999999999979 0.0 588 -589 0.00367999076843262 0.0 0.0 0.0 589 -590 0.0036320686340332 0.0 0.0 0.0 590 -591 0.00362491607666016 0.00999999999999979 0.00999999999999979 0.0 591 -592 0.00367593765258789 0.0 0.0 0.0 592 -593 0.0036461353302002 0.00999999999999979 0.00999999999999979 0.0 593 -594 0.00365996360778809 0.0 0.0 0.0 594 -595 0.003662109375 0.0 0.0 0.0 595 -596 0.00364398956298828 0.00999999999999979 0.00999999999999979 0.0 596 -597 0.00371479988098145 0.0 0.0 0.0 597 -598 0.00362610816955566 0.0 0.0 0.0 598 -599 0.00365614891052246 0.0100000000000016 0.0100000000000016 0.0 599 -600 0.00365400314331055 0.0 0.0 0.0 600 -601 0.00364089012145996 0.00999999999999979 0.00999999999999979 0.0 601 -602 0.00363492965698242 0.0 0.0 0.0 602 -603 0.0036320686340332 0.0 0.0 0.0 603 -604 0.00364089012145996 0.00999999999999979 0.00999999999999979 0.0 604 -605 0.00368785858154297 0.0 0.0 0.0 605 -606 0.00367999076843262 0.0 0.0 0.0 606 -607 0.0295491218566895 0.0299999999999994 0.0299999999999994 0.0 607 -608 0.00367212295532227 0.00999999999999979 0.00999999999999979 0.0 608 -609 0.00368118286132812 0.0 0.0 0.0 609 -610 0.00368499755859375 0.0 0.0 0.0 610 -611 0.00374102592468262 0.00999999999999979 0.00999999999999979 0.0 611 -612 0.00428009033203125 0.0 0.0 0.0 612 -613 0.00475502014160156 0.0100000000000016 0.0100000000000016 0.0 613 -614 0.00373005867004395 0.0 0.0 0.0 614 -615 0.00372791290283203 0.00999999999999979 0.00999999999999979 0.0 615 -616 0.00373196601867676 0.0 0.0 0.0 616 -617 0.00375008583068848 0.0 0.0 0.0 617 -618 0.00374102592468262 0.00999999999999979 0.00999999999999979 0.0 618 -619 0.00374102592468262 0.0 0.0 0.0 619 -620 0.00369095802307129 0.0 0.0 0.0 620 -621 0.00368785858154297 0.00999999999999979 0.00999999999999979 0.0 621 -622 0.00369095802307129 0.0 0.0 0.0 622 -623 0.0036778450012207 0.00999999999999979 0.00999999999999979 0.0 623 -624 0.0036468505859375 0.0 0.0 0.0 624 -625 0.00369906425476074 0.0 0.0 0.0 625 -626 0.00376510620117188 0.00999999999999979 0.00999999999999979 0.0 626 -627 0.00364899635314941 0.0 0.0 0.0 627 -628 0.00363397598266602 0.0 0.0 0.0 628 -629 0.00383210182189941 0.00999999999999979 0.00999999999999979 0.0 629 -630 0.00394892692565918 0.0 0.0 0.0 630 -631 0.00367307662963867 0.00999999999999979 0.00999999999999979 0.0 631 -632 0.0036311149597168 0.0 0.0 0.0 632 -633 0.00366497039794922 0.0 0.0 0.0 633 -634 0.00363707542419434 0.00999999999999979 0.00999999999999979 0.0 634 -635 0.0036308765411377 0.0 0.0 0.0 635 -636 0.00362706184387207 0.0 0.0 0.0 636 -637 0.00366306304931641 0.0100000000000016 0.0100000000000016 0.0 637 -638 0.0036468505859375 0.0 0.0 0.0 638 -639 0.00365710258483887 0.0 0.0 0.0 639 -640 0.00370287895202637 0.00999999999999979 0.00999999999999979 0.0 640 -641 0.00424313545227051 0.0 0.0 0.0 641 -642 0.00360798835754395 0.00999999999999979 0.00999999999999979 0.0 642 -643 0.00641298294067383 0.0 0.0 0.0 643 -644 0.0336699485778809 0.0399999999999991 0.0399999999999991 0.0 644 -645 0.00376391410827637 0.0 0.0 0.0 645 -646 0.00372314453125 0.0 0.0 0.0 646 -647 0.00375103950500488 0.00999999999999979 0.00999999999999979 0.0 647 -648 0.00373101234436035 0.0 0.0 0.0 648 -649 0.00373196601867676 0.0 0.0 0.0 649 -650 0.00368499755859375 0.0100000000000016 0.0100000000000016 0.0 650 -651 0.00377416610717773 0.0 0.0 0.0 651 -652 0.00371193885803223 0.00999999999999979 0.00999999999999979 0.0 652 -653 0.0036919116973877 0.0 0.0 0.0 653 -654 0.00371813774108887 0.0 0.0 0.0 654 -655 0.00372219085693359 0.00999999999999979 0.00999999999999979 0.0 655 -656 0.00370907783508301 0.0 0.0 0.0 656 -657 0.00366401672363281 0.0 0.0 0.0 657 -658 0.00366806983947754 0.00999999999999979 0.00999999999999979 0.0 658 -659 0.00368309020996094 0.0 0.0 0.0 659 -660 0.00367307662963867 0.00999999999999979 0.00999999999999979 0.0 660 -661 0.00363898277282715 0.0 0.0 0.0 661 -662 0.003662109375 0.0 0.0 0.0 662 -663 0.00363707542419434 0.00999999999999979 0.00999999999999979 0.0 663 -664 0.00363302230834961 0.0 0.0 0.0 664 -665 0.00366091728210449 0.0 0.0 0.0 665 -666 0.0036771297454834 0.00999999999999979 0.00999999999999979 0.0 666 -667 0.00365710258483887 0.0 0.0 0.0 667 -668 0.00360703468322754 0.00999999999999979 0.00999999999999979 0.0 668 -669 0.00365900993347168 0.0 0.0 0.0 669 -670 0.00479602813720703 0.0 0.0 0.0 670 -671 0.0047600269317627 0.0100000000000016 0.0100000000000016 0.0 671 -672 0.00367999076843262 0.0 0.0 0.0 672 -673 0.00362992286682129 0.00999999999999979 0.00999999999999979 0.0 673 -674 0.00359392166137695 0.0 0.0 0.0 674 -675 0.00365710258483887 0.0 0.0 0.0 675 -676 0.00364899635314941 0.00999999999999979 0.00999999999999979 0.0 676 -677 0.00373482704162598 0.0 0.0 0.0 677 -678 0.00359201431274414 0.0 0.0 0.0 678 -679 0.00365900993347168 0.00999999999999979 0.00999999999999979 0.0 679 -680 0.0036919116973877 0.0 0.0 0.0 680 -681 0.00368595123291016 0.00999999999999979 0.00999999999999979 0.0 681 -682 0.0298888683319092 0.0299999999999994 0.0299999999999994 0.0 682 -683 0.00371694564819336 0.0 0.0 0.0 683 -684 0.00372409820556641 0.0 0.0 0.0 684 -685 0.00371193885803223 0.00999999999999979 0.00999999999999979 0.0 685 -686 0.00372695922851562 0.0 0.0 0.0 686 -687 0.00368809700012207 0.0 0.0 0.0 687 -688 0.0036931037902832 0.0100000000000016 0.0100000000000016 0.0 688 -689 0.00371003150939941 0.0 0.0 0.0 689 -690 0.00369119644165039 0.0 0.0 0.0 690 -691 0.00370192527770996 0.0 0.0 0.0 691 -692 0.00372600555419922 0.0 0.0 0.0 692 -693 0.00372099876403809 0.00999999999999979 0.00999999999999979 0.0 693 -694 0.00371193885803223 0.0 0.0 0.0 694 -695 0.00369095802307129 0.0 0.0 0.0 695 -696 0.00366783142089844 0.00999999999999979 0.00999999999999979 0.0 696 -697 0.00373601913452148 0.0 0.0 0.0 697 -698 0.00366497039794922 0.0 0.0 0.0 698 -699 0.00366806983947754 0.0 0.0 0.0 699 -700 0.00364398956298828 0.0 0.0 0.0 700 -701 0.00358295440673828 0.00999999999999979 0.00999999999999979 0.0 701 -702 0.00363898277282715 0.0 0.0 0.0 702 -703 0.00365304946899414 0.0 0.0 0.0 703 -704 0.00369596481323242 0.00999999999999979 0.00999999999999979 0.0 704 -705 0.00362300872802734 0.0 0.0 0.0 705 -706 0.00362801551818848 0.0 0.0 0.0 706 -707 0.00364899635314941 0.00999999999999979 0.00999999999999979 0.0 707 -708 0.00362491607666016 0.0 0.0 0.0 708 -709 0.00363707542419434 0.0100000000000016 0.0100000000000016 0.0 709 -710 0.00364804267883301 0.0 0.0 0.0 710 -711 0.00362610816955566 0.0 0.0 0.0 711 -712 0.00368213653564453 0.00999999999999979 0.00999999999999979 0.0 712 -713 0.00364398956298828 0.0 0.0 0.0 713 -714 0.00365400314331055 0.0 0.0 0.0 714 -715 0.00364518165588379 0.00999999999999979 0.00999999999999979 0.0 715 -716 0.00361394882202148 0.0 0.0 0.0 716 -717 0.00368309020996094 0.00999999999999979 0.00999999999999979 0.0 717 -718 0.00363492965698242 0.0 0.0 0.0 718 -719 0.0291500091552734 0.0299999999999994 0.0299999999999994 0.0 719 -720 0.00372695922851562 0.0 0.0 0.0 720 -721 0.00369691848754883 0.00999999999999979 0.00999999999999979 0.0 721 -722 0.0036919116973877 0.0 0.0 0.0 722 -723 0.00575518608093262 0.0100000000000016 0.0100000000000016 0.0 723 -724 0.00409793853759766 0.0 0.0 0.0 724 -725 0.00376510620117188 0.0 0.0 0.0 725 -726 0.00382494926452637 0.00999999999999979 0.00999999999999979 0.0 726 -727 0.00373482704162598 0.0 0.0 0.0 727 -728 0.00375699996948242 0.0 0.0 0.0 728 -729 0.00374197959899902 0.00999999999999979 0.00999999999999979 0.0 729 -730 0.00372695922851562 0.0 0.0 0.0 730 -731 0.00370311737060547 0.00999999999999979 0.00999999999999979 0.0 731 -732 0.00367593765258789 0.0 0.0 0.0 732 -733 0.00520992279052734 0.0 0.0 0.0 733 -734 0.00372195243835449 0.00999999999999979 0.00999999999999979 0.0 734 -735 0.00368905067443848 0.0 0.0 0.0 735 -736 0.00366616249084473 0.00999999999999979 0.00999999999999979 0.0 736 -737 0.00368809700012207 0.0 0.0 0.0 737 -738 0.00368499755859375 0.0 0.0 0.0 738 -739 0.00387406349182129 0.00999999999999979 0.00999999999999979 0.0 739 -740 0.00513005256652832 0.0 0.0 0.0 740 -741 0.0036470890045166 0.00999999999999979 0.00999999999999979 0.0 741 -742 0.00371885299682617 0.0 0.0 0.0 742 -743 0.00364398956298828 0.0 0.0 0.0 743 -744 0.00364589691162109 0.00999999999999979 0.00999999999999979 0.0 744 -745 0.00363993644714355 0.0 0.0 0.0 745 -746 0.00364089012145996 0.0 0.0 0.0 746 -747 0.00361490249633789 0.0100000000000016 0.0100000000000016 0.0 747 -748 0.00366783142089844 0.0 0.0 0.0 748 -749 0.00363898277282715 0.0 0.0 0.0 749 -750 0.00363612174987793 0.00999999999999979 0.00999999999999979 0.0 750 -751 0.0036470890045166 0.0 0.0 0.0 751 -752 0.00362300872802734 0.00999999999999979 0.00999999999999979 0.0 752 -753 0.00365209579467773 0.0 0.0 0.0 753 -754 0.00367999076843262 0.0 0.0 0.0 754 -755 0.0036628246307373 0.00999999999999979 0.00999999999999979 0.0 755 -756 0.0293610095977783 0.0299999999999994 0.0299999999999994 0.0 756 -757 0.00370907783508301 0.0 0.0 0.0 757 -758 0.00370001792907715 0.0 0.0 0.0 758 -759 0.00371313095092773 0.00999999999999979 0.00999999999999979 0.0 759 -760 0.00373601913452148 0.0 0.0 0.0 760 -761 0.00375699996948242 0.0100000000000016 0.0100000000000016 0.0 761 -762 0.00379014015197754 0.0 0.0 0.0 762 -763 0.00373101234436035 0.0 0.0 0.0 763 -764 0.00369596481323242 0.00999999999999979 0.00999999999999979 0.0 764 -765 0.00373291969299316 0.0 0.0 0.0 765 -766 0.0037081241607666 0.0 0.0 0.0 766 -767 0.00425601005554199 0.00999999999999979 0.00999999999999979 0.0 767 -768 0.00375699996948242 0.0 0.0 0.0 768 -769 0.0037529468536377 0.00999999999999979 0.00999999999999979 0.0 769 -770 0.00371789932250977 0.0 0.0 0.0 770 -771 0.0037229061126709 0.0 0.0 0.0 771 -772 0.00371003150939941 0.00999999999999979 0.00999999999999979 0.0 772 -773 0.00370311737060547 0.0 0.0 0.0 773 -774 0.00365304946899414 0.0 0.0 0.0 774 -775 0.00366783142089844 0.00999999999999979 0.00999999999999979 0.0 775 -776 0.00362801551818848 0.0 0.0 0.0 776 -777 0.00360703468322754 0.00999999999999979 0.00999999999999979 0.0 777 -778 0.00365209579467773 0.0 0.0 0.0 778 -779 0.00366592407226562 0.0 0.0 0.0 779 -780 0.0036308765411377 0.00999999999999979 0.00999999999999979 0.0 780 -781 0.00458216667175293 0.0 0.0 0.0 781 -782 0.00462603569030762 0.0100000000000016 0.0100000000000016 0.0 782 -783 0.00362300872802734 0.0 0.0 0.0 783 -784 0.00360298156738281 0.0 0.0 0.0 784 -785 0.00363993644714355 0.00999999999999979 0.00999999999999979 0.0 785 -786 0.00367403030395508 0.0 0.0 0.0 786 -787 0.00365209579467773 0.0 0.0 0.0 787 -788 0.00373411178588867 0.00999999999999979 0.00999999999999979 0.0 788 -789 0.0038609504699707 0.0 0.0 0.0 789 -790 0.00365781784057617 0.00999999999999979 0.00999999999999979 0.0 790 -791 0.00362110137939453 0.0 0.0 0.0 791 -792 0.00369000434875488 0.0 0.0 0.0 792 -793 0.0307409763336182 0.0299999999999994 0.0299999999999994 0.0 793 -794 0.00374913215637207 0.00999999999999979 0.00999999999999979 0.0 794 -795 0.00369882583618164 0.0 0.0 0.0 795 -796 0.00370097160339355 0.00999999999999979 0.00999999999999979 0.0 796 -797 0.00375890731811523 0.0 0.0 0.0 797 -798 0.00378894805908203 0.0 0.0 0.0 798 -799 0.00387096405029297 0.0100000000000016 0.0100000000000016 0.0 799 -800 0.00368213653564453 0.0 0.0 0.0 800 -801 0.00372719764709473 0.0 0.0 0.0 801 -802 0.00373101234436035 0.00999999999999979 0.00999999999999979 0.0 802 -803 0.00372600555419922 0.0 0.0 0.0 803 -804 0.00373411178588867 0.00999999999999979 0.00999999999999979 0.0 804 -805 0.00366687774658203 0.0 0.0 0.0 805 -806 0.00370907783508301 0.0 0.0 0.0 806 -807 0.0036921501159668 0.00999999999999979 0.00999999999999979 0.0 807 -808 0.00377511978149414 0.0 0.0 0.0 808 -809 0.00365090370178223 0.0 0.0 0.0 809 -810 0.00374388694763184 0.00999999999999979 0.00999999999999979 0.0 810 -811 0.0036778450012207 0.0 0.0 0.0 811 -812 0.0036780834197998 0.00999999999999979 0.00999999999999979 0.0 812 -813 0.00362801551818848 0.0 0.0 0.0 813 -814 0.00365304946899414 0.0 0.0 0.0 814 -815 0.00363516807556152 0.00999999999999979 0.00999999999999979 0.0 815 -816 0.00369000434875488 0.0 0.0 0.0 816 -817 0.00373196601867676 0.0 0.0 0.0 817 -818 0.00360512733459473 0.00999999999999979 0.00999999999999979 0.0 818 -819 0.00361204147338867 0.0 0.0 0.0 819 -820 0.00362610816955566 0.0100000000000016 0.0100000000000016 0.0 820 -821 0.00365090370178223 0.0 0.0 0.0 821 -822 0.00360703468322754 0.0 0.0 0.0 822 -823 0.00362896919250488 0.00999999999999979 0.00999999999999979 0.0 823 -824 0.0036468505859375 0.0 0.0 0.0 824 -825 0.0036320686340332 0.0 0.0 0.0 825 -826 0.00362610816955566 0.00999999999999979 0.00999999999999979 0.0 826 -827 0.00365090370178223 0.0 0.0 0.0 827 -828 0.00363516807556152 0.00999999999999979 0.00999999999999979 0.0 828 -829 0.00368213653564453 0.0 0.0 0.0 829 -830 0.0292301177978516 0.0299999999999994 0.0299999999999994 0.0 830 -831 0.0037531852722168 0.0 0.0 0.0 831 -832 0.00371718406677246 0.00999999999999979 0.00999999999999979 0.0 832 -833 0.0037989616394043 0.0 0.0 0.0 833 -834 0.00615215301513672 0.0100000000000016 0.0100000000000016 0.0 834 -835 0.00377607345581055 0.0 0.0 0.0 835 -836 0.00370907783508301 0.0 0.0 0.0 836 -837 0.00371098518371582 0.00999999999999979 0.00999999999999979 0.0 837 -838 0.00375103950500488 0.0 0.0 0.0 838 -839 0.00372099876403809 0.0 0.0 0.0 839 -840 0.00375795364379883 0.00999999999999979 0.00999999999999979 0.0 840 -841 0.00370502471923828 0.0 0.0 0.0 841 -842 0.00369787216186523 0.00999999999999979 0.00999999999999979 0.0 842 -843 0.00369501113891602 0.0 0.0 0.0 843 -844 0.00370883941650391 0.0 0.0 0.0 844 -845 0.00371408462524414 0.00999999999999979 0.00999999999999979 0.0 845 -846 0.00368404388427734 0.0 0.0 0.0 846 -847 0.0038149356842041 0.0 0.0 0.0 847 -848 0.00367403030395508 0.00999999999999979 0.00999999999999979 0.0 848 -849 0.00365686416625977 0.0 0.0 0.0 849 -850 0.00383400917053223 0.00999999999999979 0.00999999999999979 0.0 850 -851 0.00394606590270996 0.0 0.0 0.0 851 -852 0.00365996360778809 0.0 0.0 0.0 852 -853 0.00365495681762695 0.00999999999999979 0.00999999999999979 0.0 853 -854 0.00370621681213379 0.0 0.0 0.0 854 -855 0.0036461353302002 0.0 0.0 0.0 855 -856 0.00365281105041504 0.00999999999999979 0.00999999999999979 0.0 856 -857 0.00365686416625977 0.0 0.0 0.0 857 -858 0.00365400314331055 0.0100000000000016 0.0100000000000016 0.0 858 -859 0.00363683700561523 0.0 0.0 0.0 859 -860 0.00365209579467773 0.0 0.0 0.0 860 -861 0.00365614891052246 0.00999999999999979 0.00999999999999979 0.0 861 -862 0.00419211387634277 0.0 0.0 0.0 862 -863 0.00362920761108398 0.0 0.0 0.0 863 -864 0.0062098503112793 0.0 0.0 0.0 864 -865 0.00613093376159668 0.00999999999999979 0.00999999999999979 0.0 865 -866 0.00604104995727539 0.0 0.0 0.0 866 -867 0.0290992259979248 0.0299999999999994 0.0299999999999994 0.0 867 -868 0.00398516654968262 0.00999999999999979 0.00999999999999979 0.0 868 -869 0.00370597839355469 0.0 0.0 0.0 869 -870 0.00374913215637207 0.0 0.0 0.0 870 -871 0.00371384620666504 0.0100000000000016 0.0100000000000016 0.0 871 -872 0.00374984741210938 0.0 0.0 0.0 872 -873 0.00371623039245605 0.00999999999999979 0.00999999999999979 0.0 873 -874 0.00370502471923828 0.0 0.0 0.0 874 -875 0.00371003150939941 0.0 0.0 0.0 875 -876 0.00368094444274902 0.00999999999999979 0.00999999999999979 0.0 876 -877 0.00372886657714844 0.0 0.0 0.0 877 -878 0.00374293327331543 0.0 0.0 0.0 878 -879 0.00372195243835449 0.00999999999999979 0.00999999999999979 0.0 879 -880 0.00373101234436035 0.0 0.0 0.0 880 -881 0.00373005867004395 0.00999999999999979 0.00999999999999979 0.0 881 -882 0.00367903709411621 0.0 0.0 0.0 882 -883 0.00371694564819336 0.0 0.0 0.0 883 -884 0.00383996963500977 0.00999999999999979 0.00999999999999979 0.0 884 -885 0.00367379188537598 0.0 0.0 0.0 885 -886 0.00366806983947754 0.0 0.0 0.0 886 -887 0.0036468505859375 0.00999999999999979 0.00999999999999979 0.0 887 -888 0.00361895561218262 0.0 0.0 0.0 888 -889 0.00358295440673828 0.00999999999999979 0.00999999999999979 0.0 889 -890 0.00368213653564453 0.0 0.0 0.0 890 -891 0.0056309700012207 0.0 0.0 0.0 891 -892 0.00402593612670898 0.0 0.0 0.0 892 -893 0.00361013412475586 0.0 0.0 0.0 893 -894 0.00365805625915527 0.00999999999999979 0.00999999999999979 0.0 894 -895 0.00363683700561523 0.0 0.0 0.0 895 -896 0.00369787216186523 0.0 0.0 0.0 896 -897 0.00366902351379395 0.00999999999999979 0.00999999999999979 0.0 897 -898 0.00373387336730957 0.0 0.0 0.0 898 -899 0.00364398956298828 0.00999999999999979 0.00999999999999979 0.0 899 -900 0.00363802909851074 0.0 0.0 0.0 900 -901 0.00359702110290527 0.0 0.0 0.0 901 -902 0.00368213653564453 0.00999999999999979 0.00999999999999979 0.0 902 -903 0.00368189811706543 0.0 0.0 0.0 903 -904 0.0309450626373291 0.0299999999999994 0.0299999999999994 0.0 904 -905 0.00368690490722656 0.0 0.0 0.0 905 -906 0.00371503829956055 0.00999999999999979 0.00999999999999979 0.0 906 -907 0.00382113456726074 0.0 0.0 0.0 907 -908 0.00382494926452637 0.0100000000000016 0.0100000000000016 0.0 908 -909 0.00365877151489258 0.0 0.0 0.0 909 -910 0.00371003150939941 0.0 0.0 0.0 910 -911 0.00370597839355469 0.00999999999999979 0.00999999999999979 0.0 911 -912 0.00368905067443848 0.0 0.0 0.0 912 -913 0.00370502471923828 0.0 0.0 0.0 913 -914 0.00374197959899902 0.00999999999999979 0.00999999999999979 0.0 914 -915 0.00374484062194824 0.0 0.0 0.0 915 -916 0.00371503829956055 0.00999999999999979 0.00999999999999979 0.0 916 -917 0.00371503829956055 0.0 0.0 0.0 917 -918 0.00377702713012695 0.0 0.0 0.0 918 -919 0.00374889373779297 0.00999999999999979 0.00999999999999979 0.0 919 -920 0.00369787216186523 0.0 0.0 0.0 920 -921 0.00368094444274902 0.0 0.0 0.0 921 -922 0.00360298156738281 0.0 0.0 0.0 922 -923 0.00363612174987793 0.0 0.0 0.0 923 -924 0.00366091728210449 0.00999999999999979 0.00999999999999979 0.0 924 -925 0.00364089012145996 0.0 0.0 0.0 925 -926 0.0036780834197998 0.0 0.0 0.0 926 -927 0.00362300872802734 0.00999999999999979 0.00999999999999979 0.0 927 -928 0.00365400314331055 0.0 0.0 0.0 928 -929 0.00363397598266602 0.0 0.0 0.0 929 -930 0.00364303588867188 0.0100000000000016 0.0100000000000016 0.0 930 -931 0.00363302230834961 0.0 0.0 0.0 931 -932 0.0036160945892334 0.00999999999999979 0.00999999999999979 0.0 932 -933 0.00370216369628906 0.0 0.0 0.0 933 -934 0.00365400314331055 0.0 0.0 0.0 934 -935 0.00365090370178223 0.00999999999999979 0.00999999999999979 0.0 935 -936 0.00369095802307129 0.0 0.0 0.0 936 -937 0.00361013412475586 0.0 0.0 0.0 937 -938 0.00361990928649902 0.00999999999999979 0.00999999999999979 0.0 938 -939 0.0036778450012207 0.0 0.0 0.0 939 -940 0.00370097160339355 0.00999999999999979 0.00999999999999979 0.0 940 -941 0.0296061038970947 0.0199999999999996 0.0199999999999996 0.0 941 -942 0.00377488136291504 0.00999999999999979 0.00999999999999979 0.0 942 -943 0.00529098510742188 0.0 0.0 0.0 943 -944 0.0046539306640625 0.0100000000000016 0.0100000000000016 0.0 944 -945 0.00372815132141113 0.0 0.0 0.0 945 -946 0.00383687019348145 0.00999999999999979 0.00999999999999979 0.0 946 -947 0.00372600555419922 0.0 0.0 0.0 947 -948 0.00372004508972168 0.0 0.0 0.0 948 -949 0.00370407104492188 0.00999999999999979 0.00999999999999979 0.0 949 -950 0.00370383262634277 0.0 0.0 0.0 950 -951 0.0037238597869873 0.00999999999999979 0.00999999999999979 0.0 951 -952 0.00373983383178711 0.00999999999999979 0.0 0.01 952 -953 0.00368404388427734 0.0 0.0 0.0 953 -954 0.00569581985473633 0.00999999999999979 0.00999999999999979 0.0 954 -955 0.00375699996948242 0.0 0.0 0.0 955 -956 0.00373697280883789 0.0 0.0 0.0 956 -957 0.00367903709411621 0.00999999999999979 0.00999999999999979 0.0 957 -958 0.00369405746459961 0.0 0.0 0.0 958 -959 0.00399684906005859 0.00999999999999979 0.00999999999999979 0.0 959 -960 0.00383996963500977 0.0 0.0 0.0 960 -961 0.00363612174987793 0.0 0.0 0.0 961 -962 0.00361013412475586 0.00999999999999979 0.00999999999999979 0.0 962 -963 0.00373411178588867 0.0 0.0 0.0 963 -964 0.00365495681762695 0.0 0.0 0.0 964 -965 0.0036311149597168 0.00999999999999979 0.00999999999999979 0.0 965 -966 0.00362300872802734 0.0 0.0 0.0 966 -967 0.00367403030395508 0.0100000000000016 0.0100000000000016 0.0 967 -968 0.00365304946899414 0.0 0.0 0.0 968 -969 0.00368213653564453 0.0 0.0 0.0 969 -970 0.0036468505859375 0.00999999999999979 0.00999999999999979 0.0 970 -971 0.00365900993347168 0.0 0.0 0.0 971 -972 0.00365519523620605 0.0 0.0 0.0 972 -973 0.00365710258483887 0.00999999999999979 0.00999999999999979 0.0 973 -974 0.00362801551818848 0.0 0.0 0.0 974 -975 0.00365090370178223 0.0 0.0 0.0 975 -976 0.00363993644714355 0.0 0.0 0.0 976 -977 0.00367403030395508 0.0 0.0 0.0 977 -978 0.0291531085968018 0.0299999999999994 0.0299999999999994 0.0 978 -979 0.00371599197387695 0.00999999999999979 0.00999999999999979 0.0 979 -980 0.00370097160339355 0.0 0.0 0.0 980 -981 0.00372910499572754 0.0 0.0 0.0 981 -982 0.00373220443725586 0.0100000000000016 0.0100000000000016 0.0 982 -983 0.00378298759460449 0.0 0.0 0.0 983 -984 0.00374412536621094 0.0 0.0 0.0 984 -985 0.00372099876403809 0.00999999999999979 0.00999999999999979 0.0 985 -986 0.00369501113891602 0.0 0.0 0.0 986 -987 0.0042259693145752 0.00999999999999979 0.00999999999999979 0.0 987 -988 0.00376200675964355 0.0 0.0 0.0 988 -989 0.00373697280883789 0.0 0.0 0.0 989 -990 0.00372409820556641 0.00999999999999979 0.00999999999999979 0.0 990 -991 0.00370192527770996 0.0 0.0 0.0 991 -992 0.00368189811706543 0.0 0.0 0.0 992 -993 0.00370502471923828 0.00999999999999979 0.00999999999999979 0.0 993 -994 0.00371217727661133 0.0 0.0 0.0 994 -995 0.0036919116973877 0.00999999999999979 0.00999999999999979 0.0 995 -996 0.00366711616516113 0.0 0.0 0.0 996 -997 0.00371313095092773 0.0 0.0 0.0 997 -998 0.00365209579467773 0.00999999999999979 0.00999999999999979 0.0 998 -999 0.00362896919250488 0.0 0.0 0.0 999 -1000 0.00367307662963867 0.0 0.0 0.0 1000 diff --git a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log b/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log deleted file mode 100644 index d8a6aa3..0000000 --- a/lib/mcollective/vendor/json/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log +++ /dev/null @@ -1,82 +0,0 @@ -========================== 2009-04-01T16:46:41 CEST =========================== -Benchmarking on ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]. -Running 'ParserBenchmarkYAML' for 1000 iterations/method (compare_time=real) -=============================================================================== - -This first run is only for warmup. -ParserBenchmarkYAML#parser: - real total user system -sum 4.506546021 4.490000000 4.480000000 0.010000000 -min 0.003598928 0.000000000 0.000000000 0.000000000 -std- 0.000288588 -0.001817113 -0.001826296 -0.000306228 -mean 0.004506546 0.004490000 0.004480000 0.000010000 -std+ 0.008724504 0.010797113 0.010786296 0.000326228 -max 0.042540073 0.040000000 0.040000000 0.010000000 -std 0.004217958 0.006307113 0.006306296 0.000316228 -std% 93.596247306 140.470232048 140.765535944 3162.277660168 -harm 0.003882332 nan nan nan -geo 0.004019118 0.000000000 0.000000000 0.000000000 -q1 0.003660917 0.000000000 0.000000000 0.000000000 -med 0.003705978 0.000000000 0.000000000 0.000000000 -q3 0.003748715 0.010000000 0.010000000 0.000000000 - 1000 221.89943 0.004506546 - calls calls/sec secs/call - - 0.04059 -| - 0.03670 -| - 0.03280 -| - 0.02891 -|* - 0.02502 -| - 0.02112 -| - 0.01723 -| - 0.01333 -| - 0.00944 -| - 0.00555 -|************************************************** - -Outliers detected with box plot algo (median=0.00371, iqr=0.00009, factor=3.00): -high=56 very_high=119 - -Ljung-Box statistics: q=433.20488 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -ParserBenchmarkYAML#parser: - real total user system -sum 4.454077959 4.430000000 4.420000000 0.010000000 -min 0.003582954 0.000000000 0.000000000 0.000000000 -std- 0.000263948 -0.001903657 -0.001912749 -0.000306228 -mean 0.004454078 0.004430000 0.004420000 0.000010000 -std+ 0.008644208 0.010763657 0.010752749 0.000326228 -max 0.035927057 0.040000000 0.040000000 0.010000000 -std 0.004190130 0.006333657 0.006332749 0.000316228 -std% 94.074019869 142.971948832 143.274853190 3162.277660168 -harm 0.003836471 nan nan nan -geo 0.003968258 0.000000000 0.000000000 0.000000000 -q1 0.003650367 0.000000000 0.000000000 0.000000000 -med 0.003690004 0.000000000 0.000000000 0.000000000 -q3 0.003731966 0.010000000 0.010000000 0.000000000 - 1000 224.51336 0.004454078 - calls calls/sec secs/call - - 0.03431 -| - 0.03108 -|* - 0.02784 -|* - 0.02461 -| - 0.02137 -| - 0.01814 -| - 0.01490 -| - 0.01167 -| - 0.00843 -| - 0.00520 -|************************************************** - -Outliers detected with box plot algo (median=0.00369, iqr=0.00008, factor=3.00): -high=58 very_high=100 - -Ljung-Box statistics: q=451.12745 (alpha=0.05, df=50). -1.00000 >= 0.95000 => Autocorrelation was detected. - -No initial data truncated. - => System may have been in a steady state from the beginning. -========================== 2009-04-01T16:46:54 CEST =========================== - -Writing measurement data file '/data/scm/json/benchmarks/data/ParserBenchmarkYAML#parser.dat'. -Writing autocorrelation plot file '/data/scm/json/benchmarks/data/ParserBenchmarkYAML#parser-autocorrelation.dat'. diff --git a/lib/mcollective/vendor/json/benchmarks/data/.keep b/lib/mcollective/vendor/json/benchmarks/data/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/lib/mcollective/vendor/json/benchmarks/generator2_benchmark.rb b/lib/mcollective/vendor/json/benchmarks/generator2_benchmark.rb deleted file mode 100755 index 9885143..0000000 --- a/lib/mcollective/vendor/json/benchmarks/generator2_benchmark.rb +++ /dev/null @@ -1,222 +0,0 @@ -#!/usr/bin/env ruby -# CODING: UTF-8 - -require 'rbconfig' -RUBY_PATH=File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']) -RAKE_PATH=File.join(Config::CONFIG['bindir'], 'rake') -require 'bullshit' -case ARGV.first -when 'ext' - require 'json/ext' -when 'pure' - require 'json/pure' -when 'rails' - require 'active_support' -when 'yajl' - require 'yajl' - require 'yajl/json_gem' - require 'stringio' -end - -module JSON - def self.[](*) end -end - -module Generator2BenchmarkCommon - include JSON - - def setup - @big = eval File.read(File.join(File.dirname(__FILE__), 'ohai.ruby')) - end - - def generic_reset_method - @result and @result.size >= 16 or raise @result.to_s - end -end - -module JSONGeneratorCommon - include Generator2BenchmarkCommon - - def benchmark_generator_fast - @result = JSON.fast_generate(@big) - end - - alias reset_benchmark_generator_fast generic_reset_method - - def benchmark_generator_safe - @result = JSON.generate(@big) - end - - alias reset_benchmark_generator_safe generic_reset_method - - def benchmark_generator_pretty - @result = JSON.pretty_generate(@big) - end - - alias reset_benchmark_generator_pretty generic_reset_method - - def benchmark_generator_ascii - @result = JSON.generate(@big, :ascii_only => true) - end - - alias reset_benchmark_generator_ascii generic_reset_method -end - -class Generator2BenchmarkExt < Bullshit::RepeatCase - include JSONGeneratorCommon - - warmup yes - iterations 2000 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes -end - -class Generator2BenchmarkPure < Bullshit::RepeatCase - include JSONGeneratorCommon - - warmup yes - iterations 400 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes -end - -class Generator2BenchmarkRails < Bullshit::RepeatCase - include Generator2BenchmarkCommon - - warmup yes - iterations 400 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def benchmark_generator - @result = ActiveSupport::JSON.encode @big - end - - alias reset_benchmark_generator generic_reset_method -end - -class Generator2BenchmarkYajl < Bullshit::RepeatCase - include Generator2BenchmarkCommon - - warmup yes - iterations 2000 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def benchmark_generator - output = StringIO.new - Yajl::Encoder.new.encode(@big, output) - @result = output.string - end - - def benchmark_generator_gem_api - @result = @big.to_json - end - - def reset_benchmark_generator - generic_reset_method - end -end - -if $0 == __FILE__ - Bullshit::Case.autorun false - - case ARGV.first - when 'ext' - Generator2BenchmarkExt.run - when 'pure' - Generator2BenchmarkPure.run - when 'rails' - Generator2BenchmarkRails.run - when 'yajl' - Generator2BenchmarkYajl.run - else - system "#{RAKE_PATH} clean" - system "#{RUBY_PATH} #$0 rails" - system "#{RUBY_PATH} #$0 pure" - system "#{RAKE_PATH} compile_ext" - system "#{RUBY_PATH} #$0 ext" - system "#{RUBY_PATH} #$0 yajl" - Bullshit.compare do - output_filename File.join(File.dirname(__FILE__), 'data', 'Generator2BenchmarkComparison.log') - - benchmark Generator2BenchmarkExt, :generator_fast, :load => yes - benchmark Generator2BenchmarkExt, :generator_safe, :load => yes - benchmark Generator2BenchmarkExt, :generator_pretty, :load => yes - benchmark Generator2BenchmarkExt, :generator_ascii, :load => yes - benchmark Generator2BenchmarkPure, :generator_fast, :load => yes - benchmark Generator2BenchmarkPure, :generator_safe, :load => yes - benchmark Generator2BenchmarkPure, :generator_pretty, :load => yes - benchmark Generator2BenchmarkPure, :generator_ascii, :load => yes - benchmark Generator2BenchmarkRails, :generator, :load => yes - benchmark Generator2BenchmarkYajl, :generator, :load => yes - benchmark Generator2BenchmarkYajl, :generator_gem_api, :load => yes - end - end -end - diff --git a/lib/mcollective/vendor/json/benchmarks/generator_benchmark.rb b/lib/mcollective/vendor/json/benchmarks/generator_benchmark.rb deleted file mode 100755 index 83fa577..0000000 --- a/lib/mcollective/vendor/json/benchmarks/generator_benchmark.rb +++ /dev/null @@ -1,224 +0,0 @@ -#!/usr/bin/env ruby -# CODING: UTF-8 - -require 'rbconfig' -RUBY_PATH=File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']) -RAKE_PATH=File.join(Config::CONFIG['bindir'], 'rake') -require 'bullshit' -case ARGV.first -when 'ext' - require 'json/ext' -when 'pure' - require 'json/pure' -when 'rails' - require 'active_support' -when 'yajl' - require 'yajl' - require 'yajl/json_gem' - require 'stringio' -end - -module JSON - def self.[](*) end -end - -module GeneratorBenchmarkCommon - include JSON - - def setup - a = [ nil, false, true, "fÖßÄr", [ "n€st€d", true ], { "fooß" => "bär", "quux" => true } ] - puts a.to_json if a.respond_to?(:to_json) - @big = a * 100 - end - - def generic_reset_method - @result and @result.size > 2 + 6 * @big.size or raise @result.to_s - end -end - -module JSONGeneratorCommon - include GeneratorBenchmarkCommon - - def benchmark_generator_fast - @result = JSON.fast_generate(@big) - end - - alias reset_benchmark_generator_fast generic_reset_method - - def benchmark_generator_safe - @result = JSON.generate(@big) - end - - alias reset_benchmark_generator_safe generic_reset_method - - def benchmark_generator_pretty - @result = JSON.pretty_generate(@big) - end - - alias reset_benchmark_generator_pretty generic_reset_method - - def benchmark_generator_ascii - @result = JSON.generate(@big, :ascii_only => true) - end - - alias reset_benchmark_generator_ascii generic_reset_method -end - -class GeneratorBenchmarkExt < Bullshit::RepeatCase - include JSONGeneratorCommon - - warmup yes - iterations 2000 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes -end - -class GeneratorBenchmarkPure < Bullshit::RepeatCase - include JSONGeneratorCommon - - warmup yes - iterations 400 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes -end - -class GeneratorBenchmarkRails < Bullshit::RepeatCase - include GeneratorBenchmarkCommon - - warmup yes - iterations 400 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def benchmark_generator - @result = ActiveSupport::JSON.encode @big - end - - alias reset_benchmark_generator generic_reset_method -end - -class GeneratorBenchmarkYajl < Bullshit::RepeatCase - include GeneratorBenchmarkCommon - - warmup yes - iterations 2000 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def benchmark_generator - output = StringIO.new - Yajl::Encoder.new.encode(@big, output) - @result = output.string - end - - def benchmark_generator_gem_api - @result = @big.to_json - end - - def reset_benchmark_generator - generic_reset_method - end -end - -if $0 == __FILE__ - Bullshit::Case.autorun false - - case ARGV.first - when 'ext' - GeneratorBenchmarkExt.run - when 'pure' - GeneratorBenchmarkPure.run - when 'rails' - GeneratorBenchmarkRails.run - when 'yajl' - GeneratorBenchmarkYajl.run - else - system "#{RAKE_PATH} clean" - system "#{RUBY_PATH} #$0 rails" - system "#{RUBY_PATH} #$0 pure" - system "#{RAKE_PATH} compile_ext" - system "#{RUBY_PATH} #$0 ext" - system "#{RUBY_PATH} #$0 yajl" - Bullshit.compare do - output_filename File.join(File.dirname(__FILE__), 'data', 'GeneratorBenchmarkComparison.log') - - benchmark GeneratorBenchmarkExt, :generator_fast, :load => yes - benchmark GeneratorBenchmarkExt, :generator_safe, :load => yes - benchmark GeneratorBenchmarkExt, :generator_pretty, :load => yes - benchmark GeneratorBenchmarkExt, :generator_ascii, :load => yes - benchmark GeneratorBenchmarkPure, :generator_fast, :load => yes - benchmark GeneratorBenchmarkPure, :generator_safe, :load => yes - benchmark GeneratorBenchmarkPure, :generator_pretty, :load => yes - benchmark GeneratorBenchmarkPure, :generator_ascii, :load => yes - benchmark GeneratorBenchmarkRails, :generator, :load => yes - benchmark GeneratorBenchmarkYajl, :generator, :load => yes - benchmark GeneratorBenchmarkYajl, :generator_gem_api, :load => yes - end - end -end - diff --git a/lib/mcollective/vendor/json/benchmarks/ohai.json b/lib/mcollective/vendor/json/benchmarks/ohai.json deleted file mode 100644 index 584bdbd..0000000 --- a/lib/mcollective/vendor/json/benchmarks/ohai.json +++ /dev/null @@ -1,1216 +0,0 @@ -{ - "command": { - "ps": "ps -ef" - }, - "kernel": { - "modules": { - "org.virtualbox.kext.VBoxDrv": { - "size": 118784, - "version": "2.2.0", - "index": "114", - "refcount": "3" - }, - "com.cisco.nke.ipsec": { - "size": 454656, - "version": "2.0.1", - "index": "111", - "refcount": "0" - }, - "com.apple.driver.AppleAPIC": { - "size": 12288, - "version": "1.4", - "index": "26", - "refcount": "0" - }, - "com.apple.driver.AirPort.Atheros": { - "size": 593920, - "version": "318.8.3", - "index": "88", - "refcount": "0" - }, - "com.apple.driver.AppleIntelCPUPowerManagement": { - "size": 102400, - "version": "59.0.1", - "index": "22", - "refcount": "0" - }, - "com.apple.iokit.IOStorageFamily": { - "size": 98304, - "version": "1.5.5", - "index": "44", - "refcount": "9" - }, - "com.apple.iokit.IOATAPIProtocolTransport": { - "size": 16384, - "version": "1.5.2", - "index": "52", - "refcount": "0" - }, - "com.apple.iokit.IOPCIFamily": { - "size": 65536, - "version": "2.5", - "index": "17", - "refcount": "18" - }, - "com.apple.driver.AppleHPET": { - "size": 12288, - "version": "1.3", - "index": "33", - "refcount": "0" - }, - "com.apple.driver.AppleUSBHub": { - "size": 49152, - "version": "3.2.7", - "index": "47", - "refcount": "0" - }, - "com.apple.iokit.IOFireWireFamily": { - "size": 258048, - "version": "3.4.6", - "index": "49", - "refcount": "2" - }, - "com.apple.driver.AppleUSBComposite": { - "size": 16384, - "version": "3.2.0", - "index": "60", - "refcount": "1" - }, - "com.apple.driver.AppleIntelPIIXATA": { - "size": 36864, - "version": "2.0.0", - "index": "41", - "refcount": "0" - }, - "com.apple.driver.AppleSmartBatteryManager": { - "size": 28672, - "version": "158.6.0", - "index": "32", - "refcount": "0" - }, - "com.apple.filesystems.udf": { - "size": 233472, - "version": "2.0.2", - "index": "119", - "refcount": "0" - }, - "com.apple.iokit.IOSMBusFamily": { - "size": 12288, - "version": "1.1", - "index": "27", - "refcount": "2" - }, - "com.apple.iokit.IOACPIFamily": { - "size": 16384, - "version": "1.2.0", - "index": "18", - "refcount": "10" - }, - "foo.tap": { - "size": 24576, - "version": "1.0", - "index": "113", - "refcount": "0" - }, - "com.vmware.kext.vmx86": { - "size": 864256, - "version": "2.0.4", - "index": "104", - "refcount": "0" - }, - "com.apple.iokit.CHUDUtils": { - "size": 28672, - "version": "200", - "index": "98", - "refcount": "0" - }, - "org.virtualbox.kext.VBoxNetAdp": { - "size": 8192, - "version": "2.2.0", - "index": "117", - "refcount": "0" - }, - "com.apple.filesystems.autofs": { - "size": 45056, - "version": "2.0.1", - "index": "109", - "refcount": "0" - }, - "com.vmware.kext.vmnet": { - "size": 36864, - "version": "2.0.4", - "index": "108", - "refcount": "0" - }, - "com.apple.driver.AppleACPIButtons": { - "size": 16384, - "version": "1.2.4", - "index": "30", - "refcount": "0" - }, - "com.apple.driver.AppleFWOHCI": { - "size": 139264, - "version": "3.7.2", - "index": "50", - "refcount": "0" - }, - "com.apple.iokit.IOSCSIArchitectureModelFamily": { - "size": 102400, - "version": "2.0.5", - "index": "51", - "refcount": "4" - }, - "com.apple.iokit.IOSCSIBlockCommandsDevice": { - "size": 90112, - "version": "2.0.5", - "index": "57", - "refcount": "1" - }, - "com.apple.driver.AppleACPIPCI": { - "size": 12288, - "version": "1.2.4", - "index": "31", - "refcount": "0" - }, - "com.apple.security.seatbelt": { - "size": 98304, - "version": "107.10", - "index": "25", - "refcount": "0" - }, - "com.apple.driver.AppleUpstreamUserClient": { - "size": 16384, - "version": "2.7.2", - "index": "100", - "refcount": "0" - }, - "com.apple.kext.OSvKernDSPLib": { - "size": 12288, - "version": "1.1", - "index": "79", - "refcount": "1" - }, - "com.apple.iokit.IOBDStorageFamily": { - "size": 20480, - "version": "1.5", - "index": "58", - "refcount": "1" - }, - "com.apple.iokit.IOGraphicsFamily": { - "size": 118784, - "version": "1.7.1", - "index": "70", - "refcount": "5" - }, - "com.apple.iokit.IONetworkingFamily": { - "size": 90112, - "version": "1.6.1", - "index": "82", - "refcount": "4" - }, - "com.apple.iokit.IOATAFamily": { - "size": 53248, - "version": "2.0.0", - "index": "40", - "refcount": "2" - }, - "com.apple.iokit.IOUSBHIDDriver": { - "size": 20480, - "version": "3.2.2", - "index": "63", - "refcount": "2" - }, - "org.virtualbox.kext.VBoxUSB": { - "size": 28672, - "version": "2.2.0", - "index": "115", - "refcount": "0" - }, - "com.vmware.kext.vmioplug": { - "size": 24576, - "version": "2.0.4", - "index": "107", - "refcount": "0" - }, - "com.apple.security.TMSafetyNet": { - "size": 12288, - "version": "3", - "index": "23", - "refcount": "0" - }, - "com.apple.iokit.IONDRVSupport": { - "size": 57344, - "version": "1.7.1", - "index": "71", - "refcount": "3" - }, - "com.apple.BootCache": { - "size": 20480, - "version": "30.3", - "index": "20", - "refcount": "0" - }, - "com.apple.iokit.IOUSBUserClient": { - "size": 8192, - "version": "3.2.4", - "index": "46", - "refcount": "1" - }, - "com.apple.iokit.IOSCSIMultimediaCommandsDevice": { - "size": 90112, - "version": "2.0.5", - "index": "59", - "refcount": "0" - }, - "com.apple.driver.AppleIRController": { - "size": 20480, - "version": "110", - "index": "78", - "refcount": "0" - }, - "com.apple.driver.AudioIPCDriver": { - "size": 16384, - "version": "1.0.5", - "index": "81", - "refcount": "0" - }, - "org.virtualbox.kext.VBoxNetFlt": { - "size": 16384, - "version": "2.2.0", - "index": "116", - "refcount": "0" - }, - "com.apple.driver.AppleLPC": { - "size": 12288, - "version": "1.2.11", - "index": "73", - "refcount": "0" - }, - "com.apple.iokit.CHUDKernLib": { - "size": 20480, - "version": "196", - "index": "93", - "refcount": "2" - }, - "com.apple.iokit.CHUDProf": { - "size": 49152, - "version": "207", - "index": "97", - "refcount": "0" - }, - "com.apple.NVDAResman": { - "size": 2478080, - "version": "5.3.6", - "index": "90", - "refcount": "2" - }, - "com.apple.driver.AppleACPIEC": { - "size": 20480, - "version": "1.2.4", - "index": "28", - "refcount": "0" - }, - "foo.tun": { - "size": 24576, - "version": "1.0", - "index": "118", - "refcount": "0" - }, - "com.apple.iokit.IOSerialFamily": { - "size": 36864, - "version": "9.3", - "index": "102", - "refcount": "1" - }, - "com.apple.GeForce": { - "size": 622592, - "version": "5.3.6", - "index": "96", - "refcount": "0" - }, - "com.apple.iokit.IOCDStorageFamily": { - "size": 32768, - "version": "1.5", - "index": "55", - "refcount": "3" - }, - "com.apple.driver.AppleUSBEHCI": { - "size": 73728, - "version": "3.2.5", - "index": "39", - "refcount": "0" - }, - "com.apple.nvidia.nv50hal": { - "size": 2445312, - "version": "5.3.6", - "index": "91", - "refcount": "0" - }, - "com.apple.driver.AppleSMBIOS": { - "size": 16384, - "version": "1.1.1", - "index": "29", - "refcount": "0" - }, - "com.apple.driver.AppleBacklight": { - "size": 16384, - "version": "1.4.4", - "index": "72", - "refcount": "0" - }, - "com.apple.driver.AppleACPIPlatform": { - "size": 253952, - "version": "1.2.4", - "index": "19", - "refcount": "3" - }, - "com.apple.iokit.SCSITaskUserClient": { - "size": 24576, - "version": "2.0.5", - "index": "54", - "refcount": "0" - }, - "com.apple.iokit.IOHIDFamily": { - "size": 233472, - "version": "1.5.3", - "index": "21", - "refcount": "7" - }, - "com.apple.driver.DiskImages": { - "size": 65536, - "version": "195.2.2", - "index": "101", - "refcount": "0" - }, - "com.apple.iokit.IODVDStorageFamily": { - "size": 24576, - "version": "1.5", - "index": "56", - "refcount": "2" - }, - "com.apple.driver.XsanFilter": { - "size": 20480, - "version": "2.7.91", - "index": "53", - "refcount": "0" - }, - "com.apple.driver.AppleEFIRuntime": { - "size": 12288, - "version": "1.2.0", - "index": "35", - "refcount": "1" - }, - "com.apple.driver.AppleRTC": { - "size": 20480, - "version": "1.2.3", - "index": "34", - "refcount": "0" - }, - "com.apple.iokit.IOFireWireIP": { - "size": 36864, - "version": "1.7.6", - "index": "83", - "refcount": "0" - }, - "com.vmware.kext.vmci": { - "size": 45056, - "version": "2.0.4", - "index": "106", - "refcount": "0" - }, - "com.apple.iokit.IO80211Family": { - "size": 126976, - "version": "215.1", - "index": "87", - "refcount": "1" - }, - "com.apple.nke.applicationfirewall": { - "size": 32768, - "version": "1.0.77", - "index": "24", - "refcount": "0" - }, - "com.apple.iokit.IOAHCIBlockStorage": { - "size": 69632, - "version": "1.2.0", - "index": "48", - "refcount": "0" - }, - "com.apple.driver.AppleUSBUHCI": { - "size": 57344, - "version": "3.2.5", - "index": "38", - "refcount": "0" - }, - "com.apple.iokit.IOAHCIFamily": { - "size": 24576, - "version": "1.5.0", - "index": "42", - "refcount": "2" - }, - "com.apple.driver.AppleAHCIPort": { - "size": 53248, - "version": "1.5.2", - "index": "43", - "refcount": "0" - }, - "com.apple.driver.AppleEFINVRAM": { - "size": 24576, - "version": "1.2.0", - "index": "36", - "refcount": "0" - }, - "com.apple.iokit.IOUSBFamily": { - "size": 167936, - "version": "3.2.7", - "index": "37", - "refcount": "13" - }, - "com.apple.driver.AppleUSBMergeNub": { - "size": 12288, - "version": "3.2.4", - "index": "61", - "refcount": "0" - } - }, - "machine": "i386", - "name": "Darwin", - "os": "Darwin", - "version": "Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1\/RELEASE_I386", - "release": "9.6.0" - }, - "platform_version": "10.5.6", - "platform": "mac_os_x", - "ipaddress": "192.168.88.1", - "keys": { - "ssh": { - "host_dsa_public": "private", - "host_rsa_public": "private" - } - }, - "network": { - "settings": { - "net.inet6.ip6.forwarding": "0", - "net.inet.ip.dummynet.debug": "0", - "net.inet.ip.rtexpire": "10", - "net.inet6.ipsec6.esp_trans_deflev": "1", - "net.inet.tcp.tcbhashsize": "4096", - "net.key.esp_auth": "0", - "net.inet6.ip6.hlim": "64", - "net.inet.ip.fw.dyn_fin_lifetime": "1", - "net.inet.ip.fw.dyn_udp_lifetime": "10", - "net.inet.icmp.bmcastecho": "1", - "net.athforceBias": "2 2", - "net.athbgscan": "1 1", - "net.inet.tcp.reass.maxsegments": "2048", - "net.inet6.ip6.auto_flowlabel": "1", - "net.inet6.ip6.rtmaxcache": "128", - "net.inet.tcp.sendspace": "131072", - "net.inet.tcp.keepinit": "75000", - "net.inet.ip.dummynet.max_chain_len": "16", - "net.inet.tcp.rfc1644": "0", - "net.inet.ip.fw.curr_dyn_buckets": "256", - "net.inet.ip.dummynet.ready_heap": "0", - "net.inet.ip.portrange.first": "49152", - "net.inet.tcp.background_io_trigger": "5", - "net.link.ether.inet.host_down_time": "20", - "net.inet6.ipsec6.def_policy": "1", - "net.inet6.ipsec6.ecn": "0", - "net.inet.ip.fastforwarding": "0", - "net.athaddbaignore": "0 0", - "net.inet6.ip6.v6only": "0", - "net.inet.tcp.sack": "1", - "net.inet6.ip6.rtexpire": "3600", - "net.link.ether.inet.proxyall": "0", - "net.inet6.ip6.keepfaith": "0", - "net.key.spi_trycnt": "1000", - "net.link.ether.inet.prune_intvl": "300", - "net.inet.tcp.ecn_initiate_out": "0", - "net.inet.ip.fw.dyn_rst_lifetime": "1", - "net.local.stream.sendspace": "8192", - "net.inet.tcp.socket_unlocked_on_output": "1", - "net.inet.ip.fw.verbose_limit": "0", - "net.local.dgram.recvspace": "4096", - "net.inet.ipsec.debug": "0", - "net.link.ether.inet.log_arp_warnings": "0", - "net.inet.tcp.ecn_negotiate_in": "0", - "net.inet.tcp.rfc3465": "1", - "net.inet.tcp.icmp_may_rst": "1", - "net.link.ether.inet.sendllconflict": "0", - "net.inet.ipsec.ah_offsetmask": "0", - "net.key.blockacq_count": "10", - "net.inet.tcp.delayed_ack": "3", - "net.inet.ip.fw.verbose": "2", - "net.inet.ip.fw.dyn_count": "0", - "net.inet.tcp.slowlink_wsize": "8192", - "net.inet6.ip6.fw.enable": "1", - "net.inet.ip.portrange.hilast": "65535", - "net.inet.icmp.maskrepl": "0", - "net.link.ether.inet.apple_hwcksum_rx": "1", - "net.inet.tcp.drop_synfin": "1", - "net.key.spi_maxval": "268435455", - "net.inet.ipsec.ecn": "0", - "net.inet.ip.fw.dyn_keepalive": "1", - "net.key.int_random": "60", - "net.key.debug": "0", - "net.inet.ip.dummynet.curr_time": "0", - "net.inet.udp.blackhole": "0", - "net.athaggrqmin": "1 1", - "net.athppmenable": "1 1", - "net.inet.ip.fw.dyn_syn_lifetime": "20", - "net.inet.tcp.keepidle": "7200000", - "net.inet6.ip6.tempvltime": "604800", - "net.inet.tcp.recvspace": "358400", - "net.inet.tcp.keepintvl": "75000", - "net.inet.udp.maxdgram": "9216", - "net.inet.ip.maxchainsent": "0", - "net.inet.ipsec.esp_net_deflev": "1", - "net.inet6.icmp6.nd6_useloopback": "1", - "net.inet.tcp.slowstart_flightsize": "1", - "net.inet.ip.fw.debug": "0", - "net.inet.ip.linklocal.in.allowbadttl": "1", - "net.key.spi_minval": "256", - "net.inet.ip.forwarding": "0", - "net.inet.tcp.v6mssdflt": "1024", - "net.key.larval_lifetime": "30", - "net.inet6.ip6.fw.verbose_limit": "0", - "net.inet.ip.dummynet.red_lookup_depth": "256", - "net.inet.tcp.pcbcount": "36", - "net.inet.ip.fw.dyn_ack_lifetime": "300", - "net.inet.ip.portrange.lowlast": "600", - "net.athCCAThreshold": "28 28", - "net.link.ether.inet.useloopback": "1", - "net.athqdepth": "0 0", - "net.inet.ip.ttl": "64", - "net.inet.ip.rtmaxcache": "128", - "net.inet.ipsec.bypass": "0", - "net.inet6.icmp6.nd6_debug": "0", - "net.inet.ip.use_route_genid": "1", - "net.inet6.icmp6.rediraccept": "1", - "net.inet.ip.fw.static_count": "1", - "net.inet6.ip6.fw.debug": "0", - "net.inet.udp.pcbcount": "104", - "net.inet.ipsec.esp_randpad": "-1", - "net.inet6.icmp6.nd6_maxnudhint": "0", - "net.inet.tcp.always_keepalive": "0", - "net.inet.udp.checksum": "1", - "net.link.ether.inet.keep_announcements": "1", - "net.athfixedDropThresh": "150 150", - "net.inet6.ip6.kame_version": "20010528\/apple-darwin", - "net.inet.ip.fw.dyn_max": "4096", - "net.inet.udp.log_in_vain": "0", - "net.inet6.icmp6.nd6_mmaxtries": "3", - "net.inet.ip.rtminexpire": "10", - "net.inet.ip.fw.dyn_buckets": "256", - "net.inet6.ip6.accept_rtadv": "0", - "net.inet6.ip6.rr_prune": "5", - "net.key.ah_keymin": "128", - "net.inet.ip.redirect": "1", - "net.inet.tcp.sack_globalmaxholes": "65536", - "net.inet.ip.keepfaith": "0", - "net.inet.ip.dummynet.expire": "1", - "net.inet.ip.gifttl": "30", - "net.inet.ip.portrange.last": "65535", - "net.inet.ipsec.ah_net_deflev": "1", - "net.inet6.icmp6.nd6_delay": "5", - "net.inet.tcp.packetchain": "50", - "net.inet6.ip6.hdrnestlimit": "50", - "net.inet.tcp.newreno": "0", - "net.inet6.ip6.dad_count": "1", - "net.inet6.ip6.auto_linklocal": "1", - "net.inet6.ip6.temppltime": "86400", - "net.inet.tcp.strict_rfc1948": "0", - "net.athdupie": "1 1", - "net.inet.ip.dummynet.red_max_pkt_size": "1500", - "net.inet.ip.maxfrags": "2048", - "net.inet.tcp.log_in_vain": "0", - "net.inet.tcp.rfc1323": "1", - "net.inet.ip.subnets_are_local": "0", - "net.inet.ip.dummynet.search_steps": "0", - "net.inet.icmp.icmplim": "250", - "net.link.ether.inet.apple_hwcksum_tx": "1", - "net.inet6.icmp6.redirtimeout": "600", - "net.inet.ipsec.ah_cleartos": "1", - "net.inet6.ip6.log_interval": "5", - "net.link.ether.inet.max_age": "1200", - "net.inet.ip.fw.enable": "1", - "net.inet6.ip6.redirect": "1", - "net.athaggrfmax": "28 28", - "net.inet.ip.maxfragsperpacket": "128", - "net.inet6.ip6.use_deprecated": "1", - "net.link.generic.system.dlil_input_sanity_check": "0", - "net.inet.tcp.sack_globalholes": "0", - "net.inet.tcp.reass.cursegments": "0", - "net.inet6.icmp6.nodeinfo": "3", - "net.local.inflight": "0", - "net.inet.ip.dummynet.hash_size": "64", - "net.inet.ip.dummynet.red_avg_pkt_size": "512", - "net.inet.ipsec.dfbit": "0", - "net.inet.tcp.reass.overflows": "0", - "net.inet.tcp.rexmt_thresh": "2", - "net.inet6.ip6.maxfrags": "8192", - "net.inet6.ip6.rtminexpire": "10", - "net.inet6.ipsec6.esp_net_deflev": "1", - "net.inet.tcp.blackhole": "0", - "net.key.esp_keymin": "256", - "net.inet.ip.check_interface": "0", - "net.inet.tcp.minmssoverload": "0", - "net.link.ether.inet.maxtries": "5", - "net.inet.tcp.do_tcpdrain": "0", - "net.inet.ipsec.esp_port": "4500", - "net.inet6.ipsec6.ah_net_deflev": "1", - "net.inet.ip.dummynet.extract_heap": "0", - "net.inet.tcp.path_mtu_discovery": "1", - "net.inet.ip.intr_queue_maxlen": "50", - "net.inet.ipsec.def_policy": "1", - "net.inet.ip.fw.autoinc_step": "100", - "net.inet.ip.accept_sourceroute": "0", - "net.inet.raw.maxdgram": "8192", - "net.inet.ip.maxfragpackets": "1024", - "net.inet.ip.fw.one_pass": "0", - "net.appletalk.routermix": "2000", - "net.inet.tcp.tcp_lq_overflow": "1", - "net.link.generic.system.ifcount": "9", - "net.link.ether.inet.send_conflicting_probes": "1", - "net.inet.tcp.background_io_enabled": "1", - "net.inet6.ipsec6.debug": "0", - "net.inet.tcp.win_scale_factor": "3", - "net.key.natt_keepalive_interval": "20", - "net.inet.tcp.msl": "15000", - "net.inet.ip.portrange.hifirst": "49152", - "net.inet.ipsec.ah_trans_deflev": "1", - "net.inet.tcp.rtt_min": "1", - "net.inet6.ip6.defmcasthlim": "1", - "net.inet6.icmp6.nd6_prune": "1", - "net.inet6.ip6.fw.verbose": "0", - "net.inet.ip.portrange.lowfirst": "1023", - "net.inet.tcp.maxseg_unacked": "8", - "net.local.dgram.maxdgram": "2048", - "net.key.blockacq_lifetime": "20", - "net.inet.tcp.sack_maxholes": "128", - "net.inet6.ip6.maxfragpackets": "1024", - "net.inet6.ip6.use_tempaddr": "0", - "net.athpowermode": "0 0", - "net.inet.udp.recvspace": "73728", - "net.inet.tcp.isn_reseed_interval": "0", - "net.inet.tcp.local_slowstart_flightsize": "8", - "net.inet.ip.dummynet.searches": "0", - "net.inet.ip.intr_queue_drops": "0", - "net.link.generic.system.multi_threaded_input": "1", - "net.inet.raw.recvspace": "8192", - "net.inet.ipsec.esp_trans_deflev": "1", - "net.key.prefered_oldsa": "0", - "net.local.stream.recvspace": "8192", - "net.inet.tcp.sockthreshold": "64", - "net.inet6.icmp6.nd6_umaxtries": "3", - "net.pstimeout": "20 20", - "net.inet.ip.sourceroute": "0", - "net.inet.ip.fw.dyn_short_lifetime": "5", - "net.inet.tcp.minmss": "216", - "net.inet6.ip6.gifhlim": "0", - "net.athvendorie": "1 1", - "net.inet.ip.check_route_selfref": "1", - "net.inet6.icmp6.errppslimit": "100", - "net.inet.tcp.mssdflt": "512", - "net.inet.icmp.log_redirect": "0", - "net.inet6.ipsec6.ah_trans_deflev": "1", - "net.inet6.ipsec6.esp_randpad": "-1", - "net.inet.icmp.drop_redirect": "0", - "net.inet.icmp.timestamp": "0", - "net.inet.ip.random_id": "1" - }, - "interfaces": { - "vmnet1": { - "flags": [ - "UP", - "BROADCAST", - "SMART", - "RUNNING", - "SIMPLEX", - "MULTICAST" - ], - "addresses": [ - { - "broadcast": "192.168.88.255", - "netmask": "255.255.255.0", - "family": "inet", - "address": "192.168.88.1" - }, - { - "family": "lladdr", - "address": "private" - } - ], - "number": "1", - "mtu": "1500", - "type": "vmnet", - "encapsulation": "Ethernet" - }, - "stf0": { - "flags": [ - - ], - "number": "0", - "mtu": "1280", - "type": "stf", - "encapsulation": "6to4" - }, - "vboxnet0": { - "flags": [ - "BROADCAST", - "RUNNING", - "SIMPLEX", - "MULTICAST" - ], - "addresses": [ - { - "family": "lladdr", - "address": "private" - } - ], - "number": "0", - "mtu": "1500", - "type": "vboxnet", - "encapsulation": "Ethernet" - }, - "lo0": { - "flags": [ - "UP", - "LOOPBACK", - "RUNNING", - "MULTICAST" - ], - "addresses": [ - { - "scope": "Link", - "prefixlen": "64", - "family": "inet6", - "address": "fe80::1" - }, - { - "netmask": "255.0.0.0", - "family": "inet", - "address": "127.0.0.1" - }, - { - "scope": "Node", - "prefixlen": "128", - "family": "inet6", - "address": "::1" - }, - { - "scope": "Node", - "prefixlen": "128", - "family": "inet6", - "address": "private" - } - ], - "number": "0", - "mtu": "16384", - "type": "lo", - "encapsulation": "Loopback" - }, - "vboxn": { - "counters": { - "tx": { - "bytes": "0", - "packets": "0", - "collisions": "0", - "compressed": 0, - "carrier": 0, - "drop": 0, - "errors": "0", - "overrun": 0 - }, - "rx": { - "bytes": "0", - "packets": "0", - "compressed": 0, - "drop": 0, - "errors": "0", - "overrun": 0, - "frame": 0, - "multicast": 0 - } - } - }, - "gif0": { - "flags": [ - "POINTOPOINT", - "MULTICAST" - ], - "number": "0", - "mtu": "1280", - "type": "gif", - "encapsulation": "IPIP" - }, - "vmnet": { - "counters": { - "tx": { - "bytes": "0", - "packets": "0", - "collisions": "0", - "compressed": 0, - "carrier": 0, - "drop": 0, - "errors": "0", - "overrun": 0 - }, - "rx": { - "bytes": "0", - "packets": "0", - "compressed": 0, - "drop": 0, - "errors": "0", - "overrun": 0, - "frame": 0, - "multicast": 0 - } - } - }, - "vmnet8": { - "flags": [ - "UP", - "BROADCAST", - "SMART", - "RUNNING", - "SIMPLEX", - "MULTICAST" - ], - "addresses": [ - { - "broadcast": "192.168.237.255", - "netmask": "255.255.255.0", - "family": "inet", - "address": "192.168.237.1" - }, - { - "family": "lladdr", - "address": "private" - } - ], - "number": "8", - "mtu": "1500", - "type": "vmnet", - "encapsulation": "Ethernet" - }, - "en0": { - "status": "inactive", - "flags": [ - "UP", - "BROADCAST", - "SMART", - "RUNNING", - "SIMPLEX", - "MULTICAST" - ], - "addresses": [ - { - "family": "lladdr", - "address": "private" - } - ], - "number": "0", - "mtu": "1500", - "media": { - "supported": [ - { - "autoselect": { - "options": [ - - ] - } - }, - { - "10baseT\/UTP": { - "options": [ - "half-duplex" - ] - } - }, - { - "10baseT\/UTP": { - "options": [ - "full-duplex" - ] - } - }, - { - "10baseT\/UTP": { - "options": [ - "full-duplex", - "hw-loopback" - ] - } - }, - { - "10baseT\/UTP": { - "options": [ - "full-duplex", - "flow-control" - ] - } - }, - { - "100baseTX": { - "options": [ - "half-duplex" - ] - } - }, - { - "100baseTX": { - "options": [ - "full-duplex" - ] - } - }, - { - "100baseTX": { - "options": [ - "full-duplex", - "hw-loopback" - ] - } - }, - { - "100baseTX": { - "options": [ - "full-duplex", - "flow-control" - ] - } - }, - { - "1000baseT": { - "options": [ - "full-duplex" - ] - } - }, - { - "1000baseT": { - "options": [ - "full-duplex", - "hw-loopback" - ] - } - }, - { - "1000baseT": { - "options": [ - "full-duplex", - "flow-control" - ] - } - }, - { - "none": { - "options": [ - - ] - } - } - ], - "selected": [ - { - "autoselect": { - "options": [ - - ] - } - } - ] - }, - "type": "en", - "counters": { - "tx": { - "bytes": "342", - "packets": "0", - "collisions": "0", - "compressed": 0, - "carrier": 0, - "drop": 0, - "errors": "0", - "overrun": 0 - }, - "rx": { - "bytes": "0", - "packets": "0", - "compressed": 0, - "drop": 0, - "errors": "0", - "overrun": 0, - "frame": 0, - "multicast": 0 - } - }, - "encapsulation": "Ethernet" - }, - "en1": { - "status": "active", - "flags": [ - "UP", - "BROADCAST", - "SMART", - "RUNNING", - "SIMPLEX", - "MULTICAST" - ], - "addresses": [ - { - "scope": "Link", - "prefixlen": "64", - "family": "inet6", - "address": "private" - }, - { - "broadcast": "192.168.1.255", - "netmask": "255.255.255.0", - "family": "inet", - "address": "192.168.1.4" - }, - { - "family": "lladdr", - "address": "private" - } - ], - "number": "1", - "mtu": "1500", - "media": { - "supported": [ - { - "autoselect": { - "options": [ - - ] - } - } - ], - "selected": [ - { - "autoselect": { - "options": [ - - ] - } - } - ] - }, - "type": "en", - "counters": { - "tx": { - "bytes": "449206298", - "packets": "7041789", - "collisions": "0", - "compressed": 0, - "carrier": 0, - "drop": 0, - "errors": "95", - "overrun": 0 - }, - "rx": { - "bytes": "13673879120", - "packets": "19966002", - "compressed": 0, - "drop": 0, - "errors": "1655893", - "overrun": 0, - "frame": 0, - "multicast": 0 - } - }, - "arp": { - "192.168.1.7": "private" - }, - "encapsulation": "Ethernet" - }, - "fw0": { - "status": "inactive", - "flags": [ - "UP", - "BROADCAST", - "SMART", - "RUNNING", - "SIMPLEX", - "MULTICAST" - ], - "addresses": [ - { - "family": "lladdr", - "address": "private" - } - ], - "number": "0", - "mtu": "4078", - "media": { - "supported": [ - { - "autoselect": { - "options": [ - "full-duplex" - ] - } - } - ], - "selected": [ - { - "autoselect": { - "options": [ - "full-duplex" - ] - } - } - ] - }, - "type": "fw", - "counters": { - "tx": { - "bytes": "346", - "packets": "0", - "collisions": "0", - "compressed": 0, - "carrier": 0, - "drop": 0, - "errors": "0", - "overrun": 0 - }, - "rx": { - "bytes": "0", - "packets": "0", - "compressed": 0, - "drop": 0, - "errors": "0", - "overrun": 0, - "frame": 0, - "multicast": 0 - } - }, - "encapsulation": "1394" - } - } - }, - "fqdn": "local.local", - "ohai_time": 1240624355.08575, - "domain": "local", - "os": "darwin", - "platform_build": "9G55", - "os_version": "9.6.0", - "hostname": "local", - "macaddress": "private", - "languages": { - "ruby": { - "target_os": "darwin9.0", - "platform": "universal-darwin9.0", - "host_vendor": "apple", - "target_vendor": "apple", - "target_cpu": "i686", - "host_os": "darwin9.0", - "host_cpu": "i686", - "version": "1.8.6", - "host": "i686-apple-darwin9.0", - "target": "i686-apple-darwin9.0", - "release_date": "2008-03-03" - } - } -} diff --git a/lib/mcollective/vendor/json/benchmarks/ohai.ruby b/lib/mcollective/vendor/json/benchmarks/ohai.ruby deleted file mode 100644 index 36b4297..0000000 --- a/lib/mcollective/vendor/json/benchmarks/ohai.ruby +++ /dev/null @@ -1 +0,0 @@ -{"kernel"=>{"name"=>"Darwin", "machine"=>"i386", "modules"=>{"com.apple.driver.AppleAPIC"=>{"size"=>12288, "version"=>"1.4", "index"=>"26", "refcount"=>"0"}, "com.apple.driver.AirPort.Atheros"=>{"size"=>593920, "version"=>"318.8.3", "index"=>"88", "refcount"=>"0"}, "com.apple.driver.AppleIntelCPUPowerManagement"=>{"size"=>102400, "version"=>"59.0.1", "index"=>"22", "refcount"=>"0"}, "com.apple.iokit.IOStorageFamily"=>{"size"=>98304, "version"=>"1.5.5", "index"=>"44", "refcount"=>"9"}, "com.apple.iokit.IOATAPIProtocolTransport"=>{"size"=>16384, "version"=>"1.5.2", "index"=>"52", "refcount"=>"0"}, "com.apple.iokit.IOPCIFamily"=>{"size"=>65536, "version"=>"2.5", "index"=>"17", "refcount"=>"18"}, "org.virtualbox.kext.VBoxDrv"=>{"size"=>118784, "version"=>"2.2.0", "index"=>"114", "refcount"=>"3"}, "com.cisco.nke.ipsec"=>{"size"=>454656, "version"=>"2.0.1", "index"=>"111", "refcount"=>"0"}, "com.apple.driver.AppleHPET"=>{"size"=>12288, "version"=>"1.3", "index"=>"33", "refcount"=>"0"}, "com.apple.driver.AppleUSBHub"=>{"size"=>49152, "version"=>"3.2.7", "index"=>"47", "refcount"=>"0"}, "com.apple.iokit.IOFireWireFamily"=>{"size"=>258048, "version"=>"3.4.6", "index"=>"49", "refcount"=>"2"}, "com.apple.driver.AppleUSBComposite"=>{"size"=>16384, "version"=>"3.2.0", "index"=>"60", "refcount"=>"1"}, "com.apple.driver.AppleIntelPIIXATA"=>{"size"=>36864, "version"=>"2.0.0", "index"=>"41", "refcount"=>"0"}, "com.apple.driver.AppleSmartBatteryManager"=>{"size"=>28672, "version"=>"158.6.0", "index"=>"32", "refcount"=>"0"}, "com.apple.filesystems.udf"=>{"size"=>233472, "version"=>"2.0.2", "index"=>"119", "refcount"=>"0"}, "com.apple.iokit.IOSMBusFamily"=>{"size"=>12288, "version"=>"1.1", "index"=>"27", "refcount"=>"2"}, "com.apple.iokit.IOACPIFamily"=>{"size"=>16384, "version"=>"1.2.0", "index"=>"18", "refcount"=>"10"}, "foo.tap"=>{"size"=>24576, "version"=>"1.0", "index"=>"113", "refcount"=>"0"}, "com.vmware.kext.vmx86"=>{"size"=>864256, "version"=>"2.0.4", "index"=>"104", "refcount"=>"0"}, "com.apple.iokit.CHUDUtils"=>{"size"=>28672, "version"=>"200", "index"=>"98", "refcount"=>"0"}, "com.apple.driver.AppleACPIButtons"=>{"size"=>16384, "version"=>"1.2.4", "index"=>"30", "refcount"=>"0"}, "com.apple.driver.AppleFWOHCI"=>{"size"=>139264, "version"=>"3.7.2", "index"=>"50", "refcount"=>"0"}, "com.apple.iokit.IOSCSIArchitectureModelFamily"=>{"size"=>102400, "version"=>"2.0.5", "index"=>"51", "refcount"=>"4"}, "org.virtualbox.kext.VBoxNetAdp"=>{"size"=>8192, "version"=>"2.2.0", "index"=>"117", "refcount"=>"0"}, "com.apple.filesystems.autofs"=>{"size"=>45056, "version"=>"2.0.1", "index"=>"109", "refcount"=>"0"}, "com.vmware.kext.vmnet"=>{"size"=>36864, "version"=>"2.0.4", "index"=>"108", "refcount"=>"0"}, "com.apple.iokit.IOSCSIBlockCommandsDevice"=>{"size"=>90112, "version"=>"2.0.5", "index"=>"57", "refcount"=>"1"}, "com.apple.driver.AppleACPIPCI"=>{"size"=>12288, "version"=>"1.2.4", "index"=>"31", "refcount"=>"0"}, "com.apple.security.seatbelt"=>{"size"=>98304, "version"=>"107.10", "index"=>"25", "refcount"=>"0"}, "com.apple.driver.AppleUpstreamUserClient"=>{"size"=>16384, "version"=>"2.7.2", "index"=>"100", "refcount"=>"0"}, "com.apple.kext.OSvKernDSPLib"=>{"size"=>12288, "version"=>"1.1", "index"=>"79", "refcount"=>"1"}, "com.apple.iokit.IOBDStorageFamily"=>{"size"=>20480, "version"=>"1.5", "index"=>"58", "refcount"=>"1"}, "com.apple.iokit.IOGraphicsFamily"=>{"size"=>118784, "version"=>"1.7.1", "index"=>"70", "refcount"=>"5"}, "com.apple.iokit.IONetworkingFamily"=>{"size"=>90112, "version"=>"1.6.1", "index"=>"82", "refcount"=>"4"}, "com.apple.iokit.IOATAFamily"=>{"size"=>53248, "version"=>"2.0.0", "index"=>"40", "refcount"=>"2"}, "com.apple.iokit.IOUSBHIDDriver"=>{"size"=>20480, "version"=>"3.2.2", "index"=>"63", "refcount"=>"2"}, "org.virtualbox.kext.VBoxUSB"=>{"size"=>28672, "version"=>"2.2.0", "index"=>"115", "refcount"=>"0"}, "com.apple.security.TMSafetyNet"=>{"size"=>12288, "version"=>"3", "index"=>"23", "refcount"=>"0"}, "com.apple.iokit.IONDRVSupport"=>{"size"=>57344, "version"=>"1.7.1", "index"=>"71", "refcount"=>"3"}, "com.apple.BootCache"=>{"size"=>20480, "version"=>"30.3", "index"=>"20", "refcount"=>"0"}, "com.vmware.kext.vmioplug"=>{"size"=>24576, "version"=>"2.0.4", "index"=>"107", "refcount"=>"0"}, "com.apple.iokit.IOUSBUserClient"=>{"size"=>8192, "version"=>"3.2.4", "index"=>"46", "refcount"=>"1"}, "com.apple.iokit.IOSCSIMultimediaCommandsDevice"=>{"size"=>90112, "version"=>"2.0.5", "index"=>"59", "refcount"=>"0"}, "com.apple.driver.AppleIRController"=>{"size"=>20480, "version"=>"110", "index"=>"78", "refcount"=>"0"}, "com.apple.driver.AudioIPCDriver"=>{"size"=>16384, "version"=>"1.0.5", "index"=>"81", "refcount"=>"0"}, "com.apple.driver.AppleLPC"=>{"size"=>12288, "version"=>"1.2.11", "index"=>"73", "refcount"=>"0"}, "org.virtualbox.kext.VBoxNetFlt"=>{"size"=>16384, "version"=>"2.2.0", "index"=>"116", "refcount"=>"0"}, "com.apple.iokit.CHUDKernLib"=>{"size"=>20480, "version"=>"196", "index"=>"93", "refcount"=>"2"}, "com.apple.iokit.CHUDProf"=>{"size"=>49152, "version"=>"207", "index"=>"97", "refcount"=>"0"}, "com.apple.NVDAResman"=>{"size"=>2478080, "version"=>"5.3.6", "index"=>"90", "refcount"=>"2"}, "com.apple.driver.AppleACPIEC"=>{"size"=>20480, "version"=>"1.2.4", "index"=>"28", "refcount"=>"0"}, "foo.tun"=>{"size"=>24576, "version"=>"1.0", "index"=>"118", "refcount"=>"0"}, "com.apple.iokit.IOSerialFamily"=>{"size"=>36864, "version"=>"9.3", "index"=>"102", "refcount"=>"1"}, "com.apple.GeForce"=>{"size"=>622592, "version"=>"5.3.6", "index"=>"96", "refcount"=>"0"}, "com.apple.iokit.IOCDStorageFamily"=>{"size"=>32768, "version"=>"1.5", "index"=>"55", "refcount"=>"3"}, "com.apple.driver.AppleUSBEHCI"=>{"size"=>73728, "version"=>"3.2.5", "index"=>"39", "refcount"=>"0"}, "com.apple.nvidia.nv50hal"=>{"size"=>2445312, "version"=>"5.3.6", "index"=>"91", "refcount"=>"0"}, "com.apple.driver.AppleSMBIOS"=>{"size"=>16384, "version"=>"1.1.1", "index"=>"29", "refcount"=>"0"}, "com.apple.driver.AppleBacklight"=>{"size"=>16384, "version"=>"1.4.4", "index"=>"72", "refcount"=>"0"}, "com.apple.driver.AppleACPIPlatform"=>{"size"=>253952, "version"=>"1.2.4", "index"=>"19", "refcount"=>"3"}, "com.apple.iokit.SCSITaskUserClient"=>{"size"=>24576, "version"=>"2.0.5", "index"=>"54", "refcount"=>"0"}, "com.apple.iokit.IOHIDFamily"=>{"size"=>233472, "version"=>"1.5.3", "index"=>"21", "refcount"=>"7"}, "com.apple.driver.DiskImages"=>{"size"=>65536, "version"=>"195.2.2", "index"=>"101", "refcount"=>"0"}, "com.apple.iokit.IODVDStorageFamily"=>{"size"=>24576, "version"=>"1.5", "index"=>"56", "refcount"=>"2"}, "com.apple.iokit.IOFireWireIP"=>{"size"=>36864, "version"=>"1.7.6", "index"=>"83", "refcount"=>"0"}, "com.apple.driver.AppleRTC"=>{"size"=>20480, "version"=>"1.2.3", "index"=>"34", "refcount"=>"0"}, "com.apple.driver.XsanFilter"=>{"size"=>20480, "version"=>"2.7.91", "index"=>"53", "refcount"=>"0"}, "com.apple.driver.AppleEFIRuntime"=>{"size"=>12288, "version"=>"1.2.0", "index"=>"35", "refcount"=>"1"}, "com.apple.iokit.IOAHCIBlockStorage"=>{"size"=>69632, "version"=>"1.2.0", "index"=>"48", "refcount"=>"0"}, "com.apple.nke.applicationfirewall"=>{"size"=>32768, "version"=>"1.0.77", "index"=>"24", "refcount"=>"0"}, "com.apple.iokit.IO80211Family"=>{"size"=>126976, "version"=>"215.1", "index"=>"87", "refcount"=>"1"}, "com.vmware.kext.vmci"=>{"size"=>45056, "version"=>"2.0.4", "index"=>"106", "refcount"=>"0"}, "com.apple.iokit.IOAHCIFamily"=>{"size"=>24576, "version"=>"1.5.0", "index"=>"42", "refcount"=>"2"}, "com.apple.driver.AppleUSBUHCI"=>{"size"=>57344, "version"=>"3.2.5", "index"=>"38", "refcount"=>"0"}, "com.apple.driver.AppleUSBMergeNub"=>{"size"=>12288, "version"=>"3.2.4", "index"=>"61", "refcount"=>"0"}, "com.apple.iokit.IOUSBFamily"=>{"size"=>167936, "version"=>"3.2.7", "index"=>"37", "refcount"=>"13"}, "com.apple.driver.AppleEFINVRAM"=>{"size"=>24576, "version"=>"1.2.0", "index"=>"36", "refcount"=>"0"}, "com.apple.driver.AppleAHCIPort"=>{"size"=>53248, "version"=>"1.5.2", "index"=>"43", "refcount"=>"0"}}, "os"=>"Darwin", "version"=>"Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386", "release"=>"9.6.0"}, "command"=>{"ps"=>"ps -ef"}, "platform"=>"mac_os_x", "platform_version"=>"10.5.6", "keys"=>{"ssh"=>{"host_dsa_public"=>"private", "host_rsa_public"=>"private"}}, "ipaddress"=>"192.168.88.1", "fqdn"=>"local.local", "network"=>{"settings"=>{"net.inet6.ip6.forwarding"=>"0", "net.inet.ip.dummynet.debug"=>"0", "net.inet.ip.rtexpire"=>"10", "net.inet6.ipsec6.esp_trans_deflev"=>"1", "net.inet.tcp.tcbhashsize"=>"4096", "net.key.esp_auth"=>"0", "net.inet6.ip6.hlim"=>"64", "net.inet.ip.fw.dyn_fin_lifetime"=>"1", "net.inet.ip.fw.dyn_udp_lifetime"=>"10", "net.inet.icmp.bmcastecho"=>"1", "net.athbgscan"=>"1 1", "net.inet.tcp.reass.maxsegments"=>"2048", "net.athforceBias"=>"2 2", "net.inet6.ip6.auto_flowlabel"=>"1", "net.inet6.ip6.rtmaxcache"=>"128", "net.inet.tcp.sendspace"=>"131072", "net.inet.tcp.keepinit"=>"75000", "net.inet.ip.dummynet.max_chain_len"=>"16", "net.inet.tcp.rfc1644"=>"0", "net.inet.ip.fw.curr_dyn_buckets"=>"256", "net.inet.ip.dummynet.ready_heap"=>"0", "net.inet.ip.portrange.first"=>"49152", "net.inet.tcp.background_io_trigger"=>"5", "net.link.ether.inet.host_down_time"=>"20", "net.inet6.ipsec6.def_policy"=>"1", "net.inet6.ipsec6.ecn"=>"0", "net.inet.ip.fastforwarding"=>"0", "net.inet6.ip6.v6only"=>"0", "net.inet.tcp.sack"=>"1", "net.inet6.ip6.rtexpire"=>"3600", "net.link.ether.inet.proxyall"=>"0", "net.athaddbaignore"=>"0 0", "net.inet6.ip6.keepfaith"=>"0", "net.key.spi_trycnt"=>"1000", "net.link.ether.inet.prune_intvl"=>"300", "net.inet.tcp.ecn_initiate_out"=>"0", "net.inet.ip.fw.dyn_rst_lifetime"=>"1", "net.local.stream.sendspace"=>"8192", "net.inet.tcp.socket_unlocked_on_output"=>"1", "net.inet.ip.fw.verbose_limit"=>"0", "net.local.dgram.recvspace"=>"4096", "net.inet.ipsec.debug"=>"0", "net.link.ether.inet.log_arp_warnings"=>"0", "net.inet.tcp.ecn_negotiate_in"=>"0", "net.inet.tcp.rfc3465"=>"1", "net.inet.tcp.icmp_may_rst"=>"1", "net.link.ether.inet.sendllconflict"=>"0", "net.inet.ipsec.ah_offsetmask"=>"0", "net.key.blockacq_count"=>"10", "net.inet.tcp.delayed_ack"=>"3", "net.inet.ip.fw.verbose"=>"2", "net.inet.ip.fw.dyn_count"=>"0", "net.inet.tcp.slowlink_wsize"=>"8192", "net.inet6.ip6.fw.enable"=>"1", "net.inet.ip.portrange.hilast"=>"65535", "net.inet.icmp.maskrepl"=>"0", "net.link.ether.inet.apple_hwcksum_rx"=>"1", "net.inet.tcp.drop_synfin"=>"1", "net.key.spi_maxval"=>"268435455", "net.inet.ipsec.ecn"=>"0", "net.inet.ip.fw.dyn_keepalive"=>"1", "net.key.int_random"=>"60", "net.key.debug"=>"0", "net.inet.ip.dummynet.curr_time"=>"0", "net.inet.udp.blackhole"=>"0", "net.athaggrqmin"=>"1 1", "net.inet.ip.fw.dyn_syn_lifetime"=>"20", "net.inet.tcp.keepidle"=>"7200000", "net.inet6.ip6.tempvltime"=>"604800", "net.inet.tcp.recvspace"=>"358400", "net.inet.udp.maxdgram"=>"9216", "net.inet.tcp.keepintvl"=>"75000", "net.inet.ip.maxchainsent"=>"0", "net.athppmenable"=>"1 1", "net.inet.ipsec.esp_net_deflev"=>"1", "net.inet6.icmp6.nd6_useloopback"=>"1", "net.inet.tcp.slowstart_flightsize"=>"1", "net.inet.ip.fw.debug"=>"0", "net.inet.ip.linklocal.in.allowbadttl"=>"1", "net.key.spi_minval"=>"256", "net.inet.ip.forwarding"=>"0", "net.inet.tcp.v6mssdflt"=>"1024", "net.key.larval_lifetime"=>"30", "net.inet6.ip6.fw.verbose_limit"=>"0", "net.inet.ip.dummynet.red_lookup_depth"=>"256", "net.inet.tcp.pcbcount"=>"36", "net.inet.ip.fw.dyn_ack_lifetime"=>"300", "net.athCCAThreshold"=>"28 28", "net.inet.ip.portrange.lowlast"=>"600", "net.link.ether.inet.useloopback"=>"1", "net.athqdepth"=>"0 0", "net.inet.ip.ttl"=>"64", "net.inet.ip.rtmaxcache"=>"128", "net.inet.ipsec.bypass"=>"0", "net.inet6.icmp6.nd6_debug"=>"0", "net.inet.ip.use_route_genid"=>"1", "net.inet6.icmp6.rediraccept"=>"1", "net.inet.ip.fw.static_count"=>"1", "net.inet6.ip6.fw.debug"=>"0", "net.inet.udp.pcbcount"=>"104", "net.inet.ipsec.esp_randpad"=>"-1", "net.inet6.icmp6.nd6_maxnudhint"=>"0", "net.inet.tcp.always_keepalive"=>"0", "net.inet.udp.checksum"=>"1", "net.link.ether.inet.keep_announcements"=>"1", "net.athfixedDropThresh"=>"150 150", "net.inet6.ip6.kame_version"=>"20010528/apple-darwin", "net.inet.ip.fw.dyn_max"=>"4096", "net.inet.udp.log_in_vain"=>"0", "net.inet6.icmp6.nd6_mmaxtries"=>"3", "net.inet.ip.rtminexpire"=>"10", "net.inet.ip.fw.dyn_buckets"=>"256", "net.inet6.ip6.accept_rtadv"=>"0", "net.inet6.ip6.rr_prune"=>"5", "net.key.ah_keymin"=>"128", "net.inet.ip.redirect"=>"1", "net.inet.tcp.sack_globalmaxholes"=>"65536", "net.inet.ip.keepfaith"=>"0", "net.inet.ip.dummynet.expire"=>"1", "net.inet.ip.gifttl"=>"30", "net.inet.ip.portrange.last"=>"65535", "net.inet.ipsec.ah_net_deflev"=>"1", "net.inet6.icmp6.nd6_delay"=>"5", "net.inet.tcp.packetchain"=>"50", "net.inet6.ip6.hdrnestlimit"=>"50", "net.inet.tcp.newreno"=>"0", "net.inet6.ip6.dad_count"=>"1", "net.inet6.ip6.auto_linklocal"=>"1", "net.inet6.ip6.temppltime"=>"86400", "net.inet.tcp.strict_rfc1948"=>"0", "net.inet.ip.dummynet.red_max_pkt_size"=>"1500", "net.inet.ip.maxfrags"=>"2048", "net.inet.tcp.log_in_vain"=>"0", "net.athdupie"=>"1 1", "net.inet.tcp.rfc1323"=>"1", "net.inet.ip.subnets_are_local"=>"0", "net.inet.ip.dummynet.search_steps"=>"0", "net.inet.icmp.icmplim"=>"250", "net.link.ether.inet.apple_hwcksum_tx"=>"1", "net.inet6.icmp6.redirtimeout"=>"600", "net.inet.ipsec.ah_cleartos"=>"1", "net.inet6.ip6.log_interval"=>"5", "net.link.ether.inet.max_age"=>"1200", "net.inet.ip.fw.enable"=>"1", "net.inet6.ip6.redirect"=>"1", "net.athaggrfmax"=>"28 28", "net.inet.ip.maxfragsperpacket"=>"128", "net.inet6.ip6.use_deprecated"=>"1", "net.link.generic.system.dlil_input_sanity_check"=>"0", "net.inet.tcp.sack_globalholes"=>"0", "net.inet.tcp.reass.cursegments"=>"0", "net.inet6.icmp6.nodeinfo"=>"3", "net.local.inflight"=>"0", "net.inet.ip.dummynet.hash_size"=>"64", "net.inet.ip.dummynet.red_avg_pkt_size"=>"512", "net.inet.ipsec.dfbit"=>"0", "net.inet.tcp.reass.overflows"=>"0", "net.inet.tcp.rexmt_thresh"=>"2", "net.inet6.ip6.maxfrags"=>"8192", "net.inet6.ip6.rtminexpire"=>"10", "net.inet6.ipsec6.esp_net_deflev"=>"1", "net.inet.tcp.blackhole"=>"0", "net.key.esp_keymin"=>"256", "net.inet.ip.check_interface"=>"0", "net.inet.tcp.minmssoverload"=>"0", "net.link.ether.inet.maxtries"=>"5", "net.inet.tcp.do_tcpdrain"=>"0", "net.inet.ipsec.esp_port"=>"4500", "net.inet6.ipsec6.ah_net_deflev"=>"1", "net.inet.ip.dummynet.extract_heap"=>"0", "net.inet.tcp.path_mtu_discovery"=>"1", "net.inet.ip.intr_queue_maxlen"=>"50", "net.inet.ipsec.def_policy"=>"1", "net.inet.ip.fw.autoinc_step"=>"100", "net.inet.ip.accept_sourceroute"=>"0", "net.inet.raw.maxdgram"=>"8192", "net.inet.ip.maxfragpackets"=>"1024", "net.inet.ip.fw.one_pass"=>"0", "net.appletalk.routermix"=>"2000", "net.inet.tcp.tcp_lq_overflow"=>"1", "net.link.generic.system.ifcount"=>"9", "net.link.ether.inet.send_conflicting_probes"=>"1", "net.inet.tcp.background_io_enabled"=>"1", "net.inet6.ipsec6.debug"=>"0", "net.inet.tcp.win_scale_factor"=>"3", "net.key.natt_keepalive_interval"=>"20", "net.inet.tcp.msl"=>"15000", "net.inet.ip.portrange.hifirst"=>"49152", "net.inet.ipsec.ah_trans_deflev"=>"1", "net.inet.tcp.rtt_min"=>"1", "net.inet6.ip6.defmcasthlim"=>"1", "net.inet6.icmp6.nd6_prune"=>"1", "net.inet6.ip6.fw.verbose"=>"0", "net.inet.ip.portrange.lowfirst"=>"1023", "net.inet.tcp.maxseg_unacked"=>"8", "net.local.dgram.maxdgram"=>"2048", "net.key.blockacq_lifetime"=>"20", "net.inet.tcp.sack_maxholes"=>"128", "net.inet6.ip6.maxfragpackets"=>"1024", "net.inet6.ip6.use_tempaddr"=>"0", "net.athpowermode"=>"0 0", "net.inet.udp.recvspace"=>"73728", "net.inet.tcp.isn_reseed_interval"=>"0", "net.inet.tcp.local_slowstart_flightsize"=>"8", "net.inet.ip.dummynet.searches"=>"0", "net.inet.ip.intr_queue_drops"=>"0", "net.link.generic.system.multi_threaded_input"=>"1", "net.inet.raw.recvspace"=>"8192", "net.inet.ipsec.esp_trans_deflev"=>"1", "net.key.prefered_oldsa"=>"0", "net.local.stream.recvspace"=>"8192", "net.inet.tcp.sockthreshold"=>"64", "net.inet6.icmp6.nd6_umaxtries"=>"3", "net.pstimeout"=>"20 20", "net.inet.ip.sourceroute"=>"0", "net.inet.ip.fw.dyn_short_lifetime"=>"5", "net.inet.tcp.minmss"=>"216", "net.inet6.ip6.gifhlim"=>"0", "net.athvendorie"=>"1 1", "net.inet.ip.check_route_selfref"=>"1", "net.inet.icmp.log_redirect"=>"0", "net.inet6.icmp6.errppslimit"=>"100", "net.inet.tcp.mssdflt"=>"512", "net.inet.icmp.drop_redirect"=>"0", "net.inet6.ipsec6.esp_randpad"=>"-1", "net.inet6.ipsec6.ah_trans_deflev"=>"1", "net.inet.ip.random_id"=>"1", "net.inet.icmp.timestamp"=>"0"}, "interfaces"=>{"stf0"=>{"flags"=>[], "number"=>"0", "mtu"=>"1280", "type"=>"stf", "encapsulation"=>"6to4"}, "vmnet1"=>{"flags"=>["UP", "BROADCAST", "SMART", "RUNNING", "SIMPLEX", "MULTICAST"], "number"=>"1", "addresses"=>[{"broadcast"=>"192.168.88.255", "netmask"=>"255.255.255.0", "family"=>"inet", "address"=>"192.168.88.1"}, {"family"=>"lladdr", "address"=>"private"}], "mtu"=>"1500", "type"=>"vmnet", "encapsulation"=>"Ethernet"}, "vboxnet0"=>{"flags"=>["BROADCAST", "RUNNING", "SIMPLEX", "MULTICAST"], "number"=>"0", "addresses"=>[{"family"=>"lladdr", "address"=>"private"}], "mtu"=>"1500", "type"=>"vboxnet", "encapsulation"=>"Ethernet"}, "lo0"=>{"flags"=>["UP", "LOOPBACK", "RUNNING", "MULTICAST"], "number"=>"0", "addresses"=>[{"scope"=>"Link", "prefixlen"=>"64", "family"=>"inet6", "address"=>"fe80::1"}, {"netmask"=>"255.0.0.0", "family"=>"inet", "address"=>"127.0.0.1"}, {"scope"=>"Node", "prefixlen"=>"128", "family"=>"inet6", "address"=>"::1"}, {"scope"=>"Node", "prefixlen"=>"128", "family"=>"inet6", "address"=>"private"}], "mtu"=>"16384", "type"=>"lo", "encapsulation"=>"Loopback"}, "vboxn"=>{"counters"=>{"tx"=>{"packets"=>"0", "bytes"=>"0", "compressed"=>0, "collisions"=>"0", "carrier"=>0, "errors"=>"0", "drop"=>0, "overrun"=>0}, "rx"=>{"packets"=>"0", "bytes"=>"0", "compressed"=>0, "errors"=>"0", "drop"=>0, "overrun"=>0, "multicast"=>0, "frame"=>0}}}, "gif0"=>{"flags"=>["POINTOPOINT", "MULTICAST"], "number"=>"0", "mtu"=>"1280", "type"=>"gif", "encapsulation"=>"IPIP"}, "vmnet"=>{"counters"=>{"tx"=>{"packets"=>"0", "bytes"=>"0", "compressed"=>0, "collisions"=>"0", "carrier"=>0, "errors"=>"0", "drop"=>0, "overrun"=>0}, "rx"=>{"packets"=>"0", "bytes"=>"0", "compressed"=>0, "errors"=>"0", "drop"=>0, "overrun"=>0, "multicast"=>0, "frame"=>0}}}, "en0"=>{"flags"=>["UP", "BROADCAST", "SMART", "RUNNING", "SIMPLEX", "MULTICAST"], "status"=>"inactive", "number"=>"0", "addresses"=>[{"family"=>"lladdr", "address"=>"private"}], "mtu"=>"1500", "type"=>"en", "media"=>{"supported"=>[{"autoselect"=>{"options"=>[]}}, {"10baseT/UTP"=>{"options"=>["half-duplex"]}}, {"10baseT/UTP"=>{"options"=>["full-duplex"]}}, {"10baseT/UTP"=>{"options"=>["full-duplex", "hw-loopback"]}}, {"10baseT/UTP"=>{"options"=>["full-duplex", "flow-control"]}}, {"100baseTX"=>{"options"=>["half-duplex"]}}, {"100baseTX"=>{"options"=>["full-duplex"]}}, {"100baseTX"=>{"options"=>["full-duplex", "hw-loopback"]}}, {"100baseTX"=>{"options"=>["full-duplex", "flow-control"]}}, {"1000baseT"=>{"options"=>["full-duplex"]}}, {"1000baseT"=>{"options"=>["full-duplex", "hw-loopback"]}}, {"1000baseT"=>{"options"=>["full-duplex", "flow-control"]}}, {"none"=>{"options"=>[]}}], "selected"=>[{"autoselect"=>{"options"=>[]}}]}, "counters"=>{"tx"=>{"packets"=>"0", "bytes"=>"342", "compressed"=>0, "collisions"=>"0", "carrier"=>0, "errors"=>"0", "drop"=>0, "overrun"=>0}, "rx"=>{"packets"=>"0", "bytes"=>"0", "compressed"=>0, "errors"=>"0", "drop"=>0, "overrun"=>0, "multicast"=>0, "frame"=>0}}, "encapsulation"=>"Ethernet"}, "vmnet8"=>{"flags"=>["UP", "BROADCAST", "SMART", "RUNNING", "SIMPLEX", "MULTICAST"], "number"=>"8", "addresses"=>[{"broadcast"=>"192.168.237.255", "netmask"=>"255.255.255.0", "family"=>"inet", "address"=>"192.168.237.1"}, {"family"=>"lladdr", "address"=>"private"}], "mtu"=>"1500", "type"=>"vmnet", "encapsulation"=>"Ethernet"}, "en1"=>{"flags"=>["UP", "BROADCAST", "SMART", "RUNNING", "SIMPLEX", "MULTICAST"], "status"=>"active", "number"=>"1", "addresses"=>[{"scope"=>"Link", "prefixlen"=>"64", "family"=>"inet6", "address"=>"private"}, {"broadcast"=>"192.168.1.255", "netmask"=>"255.255.255.0", "family"=>"inet", "address"=>"192.168.1.4"}, {"family"=>"lladdr", "address"=>"private"}], "mtu"=>"1500", "type"=>"en", "media"=>{"supported"=>[{"autoselect"=>{"options"=>[]}}], "selected"=>[{"autoselect"=>{"options"=>[]}}]}, "counters"=>{"tx"=>{"packets"=>"7041789", "bytes"=>"449206298", "compressed"=>0, "collisions"=>"0", "carrier"=>0, "errors"=>"95", "drop"=>0, "overrun"=>0}, "rx"=>{"packets"=>"19966002", "bytes"=>"13673879120", "compressed"=>0, "errors"=>"1655893", "drop"=>0, "overrun"=>0, "multicast"=>0, "frame"=>0}}, "encapsulation"=>"Ethernet", "arp"=>{"192.168.1.7"=>"private"}}, "fw0"=>{"flags"=>["UP", "BROADCAST", "SMART", "RUNNING", "SIMPLEX", "MULTICAST"], "status"=>"inactive", "number"=>"0", "addresses"=>[{"family"=>"lladdr", "address"=>"private"}], "mtu"=>"4078", "type"=>"fw", "media"=>{"supported"=>[{"autoselect"=>{"options"=>["full-duplex"]}}], "selected"=>[{"autoselect"=>{"options"=>["full-duplex"]}}]}, "counters"=>{"tx"=>{"packets"=>"0", "bytes"=>"346", "compressed"=>0, "collisions"=>"0", "carrier"=>0, "errors"=>"0", "drop"=>0, "overrun"=>0}, "rx"=>{"packets"=>"0", "bytes"=>"0", "compressed"=>0, "errors"=>"0", "drop"=>0, "overrun"=>0, "multicast"=>0, "frame"=>0}}, "encapsulation"=>"1394"}}}, "os"=>"darwin", "domain"=>"local", "ohai_time"=>1240624355.08575, "platform_build"=>"9G55", "os_version"=>"9.6.0", "hostname"=>"local", "languages"=>{"ruby"=>{"target_os"=>"darwin9.0", "platform"=>"universal-darwin9.0", "host_vendor"=>"apple", "target_cpu"=>"i686", "target_vendor"=>"apple", "host_os"=>"darwin9.0", "version"=>"1.8.6", "host_cpu"=>"i686", "host"=>"i686-apple-darwin9.0", "release_date"=>"2008-03-03", "target"=>"i686-apple-darwin9.0"}}, "macaddress"=>"private"} diff --git a/lib/mcollective/vendor/json/benchmarks/parser2_benchmark.rb b/lib/mcollective/vendor/json/benchmarks/parser2_benchmark.rb deleted file mode 100755 index 95a510d..0000000 --- a/lib/mcollective/vendor/json/benchmarks/parser2_benchmark.rb +++ /dev/null @@ -1,251 +0,0 @@ -#!/usr/bin/env ruby -# CODING: UTF-8 - -require 'rbconfig' -RUBY_PATH=File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']) -RAKE_PATH=File.join(Config::CONFIG['bindir'], 'rake') -require 'bullshit' -case ARGV.first -when 'ext' - require 'json/ext' -when 'pure' - require 'json/pure' -when 'yaml' - require 'yaml' - require 'json/pure' -when 'rails' - require 'active_support' - require 'json/pure' -when 'yajl' - require 'yajl' - require 'json/pure' -else - require 'json/pure' -end - -module Parser2BenchmarkCommon - include JSON - - def setup - @big = @json = File.read(File.join(File.dirname(__FILE__), 'ohai.json')) - end - - def generic_reset_method - @result == @big or raise "not equal" - end -end - -class Parser2BenchmarkExt < Bullshit::RepeatCase - include Parser2BenchmarkCommon - - warmup yes - iterations 2000 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def benchmark_parser - @result = JSON.parse(@json) - end - - alias reset_parser generic_reset_method - - def benchmark_parser_symbolic - @result = JSON.parse(@json, :symbolize_names => true) - end - - alias reset_parser_symbolc generic_reset_method -end - -class Parser2BenchmarkPure < Bullshit::RepeatCase - include Parser2BenchmarkCommon - - warmup yes - iterations 400 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def benchmark_parser - @result = JSON.parse(@json) - end - - alias reset_parser generic_reset_method - - def benchmark_parser_symbolic - @result = JSON.parse(@json, :symbolize_names => true) - end - - alias reset_parser_symbolc generic_reset_method -end - -class Parser2BenchmarkYAML < Bullshit::RepeatCase - warmup yes - iterations 400 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def setup - @big = @json = File.read(File.join(File.dirname(__FILE__), 'ohai.json')) - end - - def benchmark_parser - @result = YAML.load(@json) - end - - def generic_reset_method - @result == @big or raise "not equal" - end -end - -class Parser2BenchmarkRails < Bullshit::RepeatCase - warmup yes - iterations 400 - - truncate_data do - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def setup - a = [ nil, false, true, "fÖß\nÄr", [ "n€st€d", true ], { "fooß" => "bär", "qu\r\nux" => true } ] - @big = a * 100 - @json = JSON.generate(@big) - end - - def benchmark_parser - @result = ActiveSupport::JSON.decode(@json) - end - - def generic_reset_method - @result == @big or raise "not equal" - end -end - -class Parser2BenchmarkYajl < Bullshit::RepeatCase - warmup yes - iterations 2000 - - truncate_data do - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def setup - @big = @json = File.read(File.join(File.dirname(__FILE__), 'ohai.json')) - end - - def benchmark_parser - @result = Yajl::Parser.new.parse(@json) - end - - def generic_reset_method - @result == @big or raise "not equal" - end -end - -if $0 == __FILE__ - Bullshit::Case.autorun false - - case ARGV.first - when 'ext' - Parser2BenchmarkExt.run - when 'pure' - Parser2BenchmarkPure.run - when 'yaml' - Parser2BenchmarkYAML.run - when 'rails' - Parser2BenchmarkRails.run - when 'yajl' - Parser2BenchmarkYajl.run - else - system "#{RAKE_PATH} clean" - system "#{RUBY_PATH} #$0 yaml" - system "#{RUBY_PATH} #$0 rails" - system "#{RUBY_PATH} #$0 pure" - system "#{RAKE_PATH} compile_ext" - system "#{RUBY_PATH} #$0 ext" - system "#{RUBY_PATH} #$0 yajl" - Bullshit.compare do - output_filename File.join(File.dirname(__FILE__), 'data', 'Parser2BenchmarkComparison.log') - - benchmark Parser2BenchmarkExt, :parser, :load => yes - benchmark Parser2BenchmarkExt, :parser_symbolic, :load => yes - benchmark Parser2BenchmarkPure, :parser, :load => yes - benchmark Parser2BenchmarkPure, :parser_symbolic, :load => yes - benchmark Parser2BenchmarkYAML, :parser, :load => yes - benchmark Parser2BenchmarkRails, :parser, :load => yes - benchmark Parser2BenchmarkYajl, :parser, :load => yes - end - end -end diff --git a/lib/mcollective/vendor/json/benchmarks/parser_benchmark.rb b/lib/mcollective/vendor/json/benchmarks/parser_benchmark.rb deleted file mode 100755 index 9ce7e25..0000000 --- a/lib/mcollective/vendor/json/benchmarks/parser_benchmark.rb +++ /dev/null @@ -1,259 +0,0 @@ -#!/usr/bin/env ruby -# CODING: UTF-8 - -require 'rbconfig' -RUBY_PATH=File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']) -RAKE_PATH=File.join(Config::CONFIG['bindir'], 'rake') -require 'bullshit' -case ARGV.first -when 'ext' - require 'json/ext' -when 'pure' - require 'json/pure' -when 'yaml' - require 'yaml' - require 'json/pure' -when 'rails' - require 'active_support' - require 'json/pure' -when 'yajl' - require 'yajl' - require 'json/pure' -else - require 'json/pure' -end - -module ParserBenchmarkCommon - include JSON - - def setup - a = [ nil, false, true, "fÖß\nÄr", [ "n€st€d", true ], { "fooß" => "bär", "qu\r\nux" => true } ] - @big = a * 100 - @json = JSON.generate(@big) - end - - def generic_reset_method - @result == @big or raise "not equal" - end -end - -class ParserBenchmarkExt < Bullshit::RepeatCase - include ParserBenchmarkCommon - - warmup yes - iterations 2000 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def benchmark_parser - @result = JSON.parse(@json) - end - - alias reset_parser generic_reset_method - - def benchmark_parser_symbolic - @result = JSON.parse(@json, :symbolize_names => true) - end - - alias reset_parser_symbolc generic_reset_method -end - -class ParserBenchmarkPure < Bullshit::RepeatCase - include ParserBenchmarkCommon - - warmup yes - iterations 400 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def benchmark_parser - @result = JSON.parse(@json) - end - - alias reset_parser generic_reset_method - - def benchmark_parser_symbolic - @result = JSON.parse(@json, :symbolize_names => true) - end - - alias reset_parser_symbolc generic_reset_method -end - -class ParserBenchmarkYAML < Bullshit::RepeatCase - warmup yes - iterations 400 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def setup - a = [ nil, false, true, "fÖß\nÄr", [ "n€st€d", true ], { "fooß" => "bär", "qu\r\nux" => true } ] - @big = a * 100 - @json = JSON.pretty_generate(@big) - end - - def benchmark_parser - @result = YAML.load(@json) - end - - def generic_reset_method - @result == @big or raise "not equal" - end -end - -class ParserBenchmarkRails < Bullshit::RepeatCase - warmup yes - iterations 400 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def setup - a = [ nil, false, true, "fÖß\nÄr", [ "n€st€d", true ], { "fooß" => "bär", "qu\r\nux" => true } ] - @big = a * 100 - @json = JSON.generate(@big) - end - - def benchmark_parser - @result = ActiveSupport::JSON.decode(@json) - end - - def generic_reset_method - @result == @big or raise "not equal" - end -end - -class ParserBenchmarkYajl < Bullshit::RepeatCase - warmup yes - iterations 2000 - - truncate_data do - enabled false - alpha_level 0.05 - window_size 50 - slope_angle 0.1 - end - - autocorrelation do - alpha_level 0.05 - max_lags 50 - file yes - end - - output_dir File.join(File.dirname(__FILE__), 'data') - output_filename benchmark_name + '.log' - data_file yes - histogram yes - - def setup - a = [ nil, false, true, "fÖß\nÄr", [ "n€st€d", true ], { "fooß" => "bär", "qu\r\nux" => true } ] - @big = a * 100 - @json = JSON.generate(@big) - end - - def benchmark_parser - @result = Yajl::Parser.new.parse(@json) - end - - def generic_reset_method - @result == @big or raise "not equal" - end -end - -if $0 == __FILE__ - Bullshit::Case.autorun false - - case ARGV.first - when 'ext' - ParserBenchmarkExt.run - when 'pure' - ParserBenchmarkPure.run - when 'yaml' - ParserBenchmarkYAML.run - when 'rails' - ParserBenchmarkRails.run - when 'yajl' - ParserBenchmarkYajl.run - else - system "#{RAKE_PATH} clean" - system "#{RUBY_PATH} #$0 yaml" - system "#{RUBY_PATH} #$0 rails" - system "#{RUBY_PATH} #$0 pure" - system "#{RAKE_PATH} compile_ext" - system "#{RUBY_PATH} #$0 ext" - system "#{RUBY_PATH} #$0 yajl" - Bullshit.compare do - output_filename File.join(File.dirname(__FILE__), 'data', 'ParserBenchmarkComparison.log') - - benchmark ParserBenchmarkExt, :parser, :load => yes - benchmark ParserBenchmarkExt, :parser_symbolic, :load => yes - benchmark ParserBenchmarkPure, :parser, :load => yes - benchmark ParserBenchmarkPure, :parser_symbolic, :load => yes - benchmark ParserBenchmarkYAML, :parser, :load => yes - benchmark ParserBenchmarkRails, :parser, :load => yes - benchmark ParserBenchmarkYajl, :parser, :load => yes - end - end -end diff --git a/lib/mcollective/vendor/json/bin/edit_json.rb b/lib/mcollective/vendor/json/bin/edit_json.rb deleted file mode 100755 index 04a8189..0000000 --- a/lib/mcollective/vendor/json/bin/edit_json.rb +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env ruby -require 'json/editor' - -filename, encoding = ARGV -JSON::Editor.start(encoding) do |window| - if filename - window.file_open(filename) - end -end diff --git a/lib/mcollective/vendor/json/bin/prettify_json.rb b/lib/mcollective/vendor/json/bin/prettify_json.rb deleted file mode 100755 index 5e1f806..0000000 --- a/lib/mcollective/vendor/json/bin/prettify_json.rb +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env ruby - -require 'json' -require 'fileutils' -include FileUtils - -# Parses the argument array _args_, according to the pattern _s_, to -# retrieve the single character command line options from it. If _s_ is -# 'xy:' an option '-x' without an option argument is searched, and an -# option '-y foo' with an option argument ('foo'). -# -# An option hash is returned with all found options set to true or the -# found option argument. -def go(s, args = ARGV) - b, v = s.scan(/(.)(:?)/).inject([{},{}]) { |t,(o,a)| - t[a.empty? ? 0 : 1][o] = a.empty? ? false : nil - t - } - while a = args.shift - a !~ /\A-(.+)/ and args.unshift a and break - p = $1 - until p == '' - o = p.slice!(0, 1) - if v.key?(o) - v[o] = if p == '' then args.shift or break 1 else p end - break - elsif b.key?(o) - b[o] = true - else - args.unshift a - break 1 - end - end and break - end - b.merge(v) -end - -opts = go 'slhi:', args = ARGV.dup -if opts['h'] || opts['l'] && opts['s'] - puts <<EOT -Usage: #{File.basename($0)} [OPTION] [FILE] - -If FILE is skipped, this scripts waits for input from STDIN. Otherwise -FILE is opened, read, and used as input for the prettifier. - -OPTION can be - -s to output the shortest possible JSON (precludes -l) - -l to output a longer, better formatted JSON (precludes -s) - -i EXT prettifies FILE in place, saving a backup to FILE.EXT - -h this help -EOT - exit 0 -end - -filename = nil -json = JSON[ - if args.empty? - STDIN.read - else - File.read filename = args.first - end -] - -output = if opts['s'] - JSON.fast_generate json -else # default is -l - JSON.pretty_generate json -end - -if opts['i'] && filename - cp filename, "#{filename}.#{opts['i']}" - File.open(filename, 'w') { |f| f.puts output } -else - puts output -end diff --git a/lib/mcollective/vendor/json/data/example.json b/lib/mcollective/vendor/json/data/example.json deleted file mode 100644 index 88b4e82..0000000 --- a/lib/mcollective/vendor/json/data/example.json +++ /dev/null @@ -1 +0,0 @@ -{"a":2,"b":3.141,"TIME":"2007-03-14T11:52:40","c":"c","d":[1,"b",3.14],"COUNT":666,"e":{"foo":"bar"},"foo":"B\u00e4r","g":"\u677e\u672c\u884c\u5f18","h":1000.0,"bar":"\u00a9 \u2260 \u20ac!","i":0.001,"j":"\ud840\udc01"} diff --git a/lib/mcollective/vendor/json/data/index.html b/lib/mcollective/vendor/json/data/index.html deleted file mode 100644 index abe6fdb..0000000 --- a/lib/mcollective/vendor/json/data/index.html +++ /dev/null @@ -1,38 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> - <head> - <title>Javascript Example</title> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <script src="prototype.js" type="text/javascript"></script> - </head> - - <body> - <h1>Fetching object from server</h1> - <div id="list"> - Wait...<br/> - <noscript><p>Switch on Javascript!</p></noscript> - </div> - <script type="text/javascript"> - <!-- - function pollJSON() { - new Ajax.Request('/json', - { - method: 'get', - onSuccess: function(transport) { - var response = transport.responseText || "no response text"; - response = eval("(" + response + ")"); - var text = ""; - for (var k in response) { - text = text + "<b>" + k + "</b>: " + response[k] + "<br/>" - } - $("list").update(text); - }, - onFailure: function() { alert('Something went wrong...') } - }); - } - new PeriodicalExecuter(pollJSON, 1); - --> - </script> - </body> -</html> diff --git a/lib/mcollective/vendor/json/data/prototype.js b/lib/mcollective/vendor/json/data/prototype.js deleted file mode 100644 index 5c73462..0000000 --- a/lib/mcollective/vendor/json/data/prototype.js +++ /dev/null @@ -1,4184 +0,0 @@ -/* Prototype JavaScript framework, version 1.6.0 - * (c) 2005-2007 Sam Stephenson - * - * Prototype is freely distributable under the terms of an MIT-style license. - * For details, see the Prototype web site: http://www.prototypejs.org/ - * - *--------------------------------------------------------------------------*/ - -var Prototype = { - Version: '1.6.0', - - Browser: { - IE: !!(window.attachEvent && !window.opera), - Opera: !!window.opera, - WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, - Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1, - MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) - }, - - BrowserFeatures: { - XPath: !!document.evaluate, - ElementExtensions: !!window.HTMLElement, - SpecificElementExtensions: - document.createElement('div').__proto__ && - document.createElement('div').__proto__ !== - document.createElement('form').__proto__ - }, - - ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>', - JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, - - emptyFunction: function() { }, - K: function(x) { return x } -}; - -if (Prototype.Browser.MobileSafari) - Prototype.BrowserFeatures.SpecificElementExtensions = false; - -if (Prototype.Browser.WebKit) - Prototype.BrowserFeatures.XPath = false; - -/* Based on Alex Arnell's inheritance implementation. */ -var Class = { - create: function() { - var parent = null, properties = $A(arguments); - if (Object.isFunction(properties[0])) - parent = properties.shift(); - - function klass() { - this.initialize.apply(this, arguments); - } - - Object.extend(klass, Class.Methods); - klass.superclass = parent; - klass.subclasses = []; - - if (parent) { - var subclass = function() { }; - subclass.prototype = parent.prototype; - klass.prototype = new subclass; - parent.subclasses.push(klass); - } - - for (var i = 0; i < properties.length; i++) - klass.addMethods(properties[i]); - - if (!klass.prototype.initialize) - klass.prototype.initialize = Prototype.emptyFunction; - - klass.prototype.constructor = klass; - - return klass; - } -}; - -Class.Methods = { - addMethods: function(source) { - var ancestor = this.superclass && this.superclass.prototype; - var properties = Object.keys(source); - - if (!Object.keys({ toString: true }).length) - properties.push("toString", "valueOf"); - - for (var i = 0, length = properties.length; i < length; i++) { - var property = properties[i], value = source[property]; - if (ancestor && Object.isFunction(value) && - value.argumentNames().first() == "$super") { - var method = value, value = Object.extend((function(m) { - return function() { return ancestor[m].apply(this, arguments) }; - })(property).wrap(method), { - valueOf: function() { return method }, - toString: function() { return method.toString() } - }); - } - this.prototype[property] = value; - } - - return this; - } -}; - -var Abstract = { }; - -Object.extend = function(destination, source) { - for (var property in source) - destination[property] = source[property]; - return destination; -}; - -Object.extend(Object, { - inspect: function(object) { - try { - if (object === undefined) return 'undefined'; - if (object === null) return 'null'; - return object.inspect ? object.inspect() : object.toString(); - } catch (e) { - if (e instanceof RangeError) return '...'; - throw e; - } - }, - - toJSON: function(object) { - var type = typeof object; - switch (type) { - case 'undefined': - case 'function': - case 'unknown': return; - case 'boolean': return object.toString(); - } - - if (object === null) return 'null'; - if (object.toJSON) return object.toJSON(); - if (Object.isElement(object)) return; - - var results = []; - for (var property in object) { - var value = Object.toJSON(object[property]); - if (value !== undefined) - results.push(property.toJSON() + ': ' + value); - } - - return '{' + results.join(', ') + '}'; - }, - - toQueryString: function(object) { - return $H(object).toQueryString(); - }, - - toHTML: function(object) { - return object && object.toHTML ? object.toHTML() : String.interpret(object); - }, - - keys: function(object) { - var keys = []; - for (var property in object) - keys.push(property); - return keys; - }, - - values: function(object) { - var values = []; - for (var property in object) - values.push(object[property]); - return values; - }, - - clone: function(object) { - return Object.extend({ }, object); - }, - - isElement: function(object) { - return object && object.nodeType == 1; - }, - - isArray: function(object) { - return object && object.constructor === Array; - }, - - isHash: function(object) { - return object instanceof Hash; - }, - - isFunction: function(object) { - return typeof object == "function"; - }, - - isString: function(object) { - return typeof object == "string"; - }, - - isNumber: function(object) { - return typeof object == "number"; - }, - - isUndefined: function(object) { - return typeof object == "undefined"; - } -}); - -Object.extend(Function.prototype, { - argumentNames: function() { - var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip"); - return names.length == 1 && !names[0] ? [] : names; - }, - - bind: function() { - if (arguments.length < 2 && arguments[0] === undefined) return this; - var __method = this, args = $A(arguments), object = args.shift(); - return function() { - return __method.apply(object, args.concat($A(arguments))); - } - }, - - bindAsEventListener: function() { - var __method = this, args = $A(arguments), object = args.shift(); - return function(event) { - return __method.apply(object, [event || window.event].concat(args)); - } - }, - - curry: function() { - if (!arguments.length) return this; - var __method = this, args = $A(arguments); - return function() { - return __method.apply(this, args.concat($A(arguments))); - } - }, - - delay: function() { - var __method = this, args = $A(arguments), timeout = args.shift() * 1000; - return window.setTimeout(function() { - return __method.apply(__method, args); - }, timeout); - }, - - wrap: function(wrapper) { - var __method = this; - return function() { - return wrapper.apply(this, [__method.bind(this)].concat($A(arguments))); - } - }, - - methodize: function() { - if (this._methodized) return this._methodized; - var __method = this; - return this._methodized = function() { - return __method.apply(null, [this].concat($A(arguments))); - }; - } -}); - -Function.prototype.defer = Function.prototype.delay.curry(0.01); - -Date.prototype.toJSON = function() { - return '"' + this.getUTCFullYear() + '-' + - (this.getUTCMonth() + 1).toPaddedString(2) + '-' + - this.getUTCDate().toPaddedString(2) + 'T' + - this.getUTCHours().toPaddedString(2) + ':' + - this.getUTCMinutes().toPaddedString(2) + ':' + - this.getUTCSeconds().toPaddedString(2) + 'Z"'; -}; - -var Try = { - these: function() { - var returnValue; - - for (var i = 0, length = arguments.length; i < length; i++) { - var lambda = arguments[i]; - try { - returnValue = lambda(); - break; - } catch (e) { } - } - - return returnValue; - } -}; - -RegExp.prototype.match = RegExp.prototype.test; - -RegExp.escape = function(str) { - return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); -}; - -/*--------------------------------------------------------------------------*/ - -var PeriodicalExecuter = Class.create({ - initialize: function(callback, frequency) { - this.callback = callback; - this.frequency = frequency; - this.currentlyExecuting = false; - - this.registerCallback(); - }, - - registerCallback: function() { - this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - execute: function() { - this.callback(this); - }, - - stop: function() { - if (!this.timer) return; - clearInterval(this.timer); - this.timer = null; - }, - - onTimerEvent: function() { - if (!this.currentlyExecuting) { - try { - this.currentlyExecuting = true; - this.execute(); - } finally { - this.currentlyExecuting = false; - } - } - } -}); -Object.extend(String, { - interpret: function(value) { - return value == null ? '' : String(value); - }, - specialChar: { - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '\\': '\\\\' - } -}); - -Object.extend(String.prototype, { - gsub: function(pattern, replacement) { - var result = '', source = this, match; - replacement = arguments.callee.prepareReplacement(replacement); - - while (source.length > 0) { - if (match = source.match(pattern)) { - result += source.slice(0, match.index); - result += String.interpret(replacement(match)); - source = source.slice(match.index + match[0].length); - } else { - result += source, source = ''; - } - } - return result; - }, - - sub: function(pattern, replacement, count) { - replacement = this.gsub.prepareReplacement(replacement); - count = count === undefined ? 1 : count; - - return this.gsub(pattern, function(match) { - if (--count < 0) return match[0]; - return replacement(match); - }); - }, - - scan: function(pattern, iterator) { - this.gsub(pattern, iterator); - return String(this); - }, - - truncate: function(length, truncation) { - length = length || 30; - truncation = truncation === undefined ? '...' : truncation; - return this.length > length ? - this.slice(0, length - truncation.length) + truncation : String(this); - }, - - strip: function() { - return this.replace(/^\s+/, '').replace(/\s+$/, ''); - }, - - stripTags: function() { - return this.replace(/<\/?[^>]+>/gi, ''); - }, - - stripScripts: function() { - return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); - }, - - extractScripts: function() { - var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); - var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); - return (this.match(matchAll) || []).map(function(scriptTag) { - return (scriptTag.match(matchOne) || ['', ''])[1]; - }); - }, - - evalScripts: function() { - return this.extractScripts().map(function(script) { return eval(script) }); - }, - - escapeHTML: function() { - var self = arguments.callee; - self.text.data = this; - return self.div.innerHTML; - }, - - unescapeHTML: function() { - var div = new Element('div'); - div.innerHTML = this.stripTags(); - return div.childNodes[0] ? (div.childNodes.length > 1 ? - $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) : - div.childNodes[0].nodeValue) : ''; - }, - - toQueryParams: function(separator) { - var match = this.strip().match(/([^?#]*)(#.*)?$/); - if (!match) return { }; - - return match[1].split(separator || '&').inject({ }, function(hash, pair) { - if ((pair = pair.split('='))[0]) { - var key = decodeURIComponent(pair.shift()); - var value = pair.length > 1 ? pair.join('=') : pair[0]; - if (value != undefined) value = decodeURIComponent(value); - - if (key in hash) { - if (!Object.isArray(hash[key])) hash[key] = [hash[key]]; - hash[key].push(value); - } - else hash[key] = value; - } - return hash; - }); - }, - - toArray: function() { - return this.split(''); - }, - - succ: function() { - return this.slice(0, this.length - 1) + - String.fromCharCode(this.charCodeAt(this.length - 1) + 1); - }, - - times: function(count) { - return count < 1 ? '' : new Array(count + 1).join(this); - }, - - camelize: function() { - var parts = this.split('-'), len = parts.length; - if (len == 1) return parts[0]; - - var camelized = this.charAt(0) == '-' - ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) - : parts[0]; - - for (var i = 1; i < len; i++) - camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); - - return camelized; - }, - - capitalize: function() { - return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); - }, - - underscore: function() { - return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase(); - }, - - dasherize: function() { - return this.gsub(/_/,'-'); - }, - - inspect: function(useDoubleQuotes) { - var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) { - var character = String.specialChar[match[0]]; - return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16); - }); - if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"'; - return "'" + escapedString.replace(/'/g, '\\\'') + "'"; - }, - - toJSON: function() { - return this.inspect(true); - }, - - unfilterJSON: function(filter) { - return this.sub(filter || Prototype.JSONFilter, '#{1}'); - }, - - isJSON: function() { - var str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''); - return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str); - }, - - evalJSON: function(sanitize) { - var json = this.unfilterJSON(); - try { - if (!sanitize || json.isJSON()) return eval('(' + json + ')'); - } catch (e) { } - throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); - }, - - include: function(pattern) { - return this.indexOf(pattern) > -1; - }, - - startsWith: function(pattern) { - return this.indexOf(pattern) === 0; - }, - - endsWith: function(pattern) { - var d = this.length - pattern.length; - return d >= 0 && this.lastIndexOf(pattern) === d; - }, - - empty: function() { - return this == ''; - }, - - blank: function() { - return /^\s*$/.test(this); - }, - - interpolate: function(object, pattern) { - return new Template(this, pattern).evaluate(object); - } -}); - -if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, { - escapeHTML: function() { - return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); - }, - unescapeHTML: function() { - return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); - } -}); - -String.prototype.gsub.prepareReplacement = function(replacement) { - if (Object.isFunction(replacement)) return replacement; - var template = new Template(replacement); - return function(match) { return template.evaluate(match) }; -}; - -String.prototype.parseQuery = String.prototype.toQueryParams; - -Object.extend(String.prototype.escapeHTML, { - div: document.createElement('div'), - text: document.createTextNode('') -}); - -with (String.prototype.escapeHTML) div.appendChild(text); - -var Template = Class.create({ - initialize: function(template, pattern) { - this.template = template.toString(); - this.pattern = pattern || Template.Pattern; - }, - - evaluate: function(object) { - if (Object.isFunction(object.toTemplateReplacements)) - object = object.toTemplateReplacements(); - - return this.template.gsub(this.pattern, function(match) { - if (object == null) return ''; - - var before = match[1] || ''; - if (before == '\\') return match[2]; - - var ctx = object, expr = match[3]; - var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/, match = pattern.exec(expr); - if (match == null) return before; - - while (match != null) { - var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1]; - ctx = ctx[comp]; - if (null == ctx || '' == match[3]) break; - expr = expr.substring('[' == match[3] ? match[1].length : match[0].length); - match = pattern.exec(expr); - } - - return before + String.interpret(ctx); - }.bind(this)); - } -}); -Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; - -var $break = { }; - -var Enumerable = { - each: function(iterator, context) { - var index = 0; - iterator = iterator.bind(context); - try { - this._each(function(value) { - iterator(value, index++); - }); - } catch (e) { - if (e != $break) throw e; - } - return this; - }, - - eachSlice: function(number, iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var index = -number, slices = [], array = this.toArray(); - while ((index += number) < array.length) - slices.push(array.slice(index, index+number)); - return slices.collect(iterator, context); - }, - - all: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var result = true; - this.each(function(value, index) { - result = result && !!iterator(value, index); - if (!result) throw $break; - }); - return result; - }, - - any: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var result = false; - this.each(function(value, index) { - if (result = !!iterator(value, index)) - throw $break; - }); - return result; - }, - - collect: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var results = []; - this.each(function(value, index) { - results.push(iterator(value, index)); - }); - return results; - }, - - detect: function(iterator, context) { - iterator = iterator.bind(context); - var result; - this.each(function(value, index) { - if (iterator(value, index)) { - result = value; - throw $break; - } - }); - return result; - }, - - findAll: function(iterator, context) { - iterator = iterator.bind(context); - var results = []; - this.each(function(value, index) { - if (iterator(value, index)) - results.push(value); - }); - return results; - }, - - grep: function(filter, iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var results = []; - - if (Object.isString(filter)) - filter = new RegExp(filter); - - this.each(function(value, index) { - if (filter.match(value)) - results.push(iterator(value, index)); - }); - return results; - }, - - include: function(object) { - if (Object.isFunction(this.indexOf)) - if (this.indexOf(object) != -1) return true; - - var found = false; - this.each(function(value) { - if (value == object) { - found = true; - throw $break; - } - }); - return found; - }, - - inGroupsOf: function(number, fillWith) { - fillWith = fillWith === undefined ? null : fillWith; - return this.eachSlice(number, function(slice) { - while(slice.length < number) slice.push(fillWith); - return slice; - }); - }, - - inject: function(memo, iterator, context) { - iterator = iterator.bind(context); - this.each(function(value, index) { - memo = iterator(memo, value, index); - }); - return memo; - }, - - invoke: function(method) { - var args = $A(arguments).slice(1); - return this.map(function(value) { - return value[method].apply(value, args); - }); - }, - - max: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var result; - this.each(function(value, index) { - value = iterator(value, index); - if (result == undefined || value >= result) - result = value; - }); - return result; - }, - - min: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var result; - this.each(function(value, index) { - value = iterator(value, index); - if (result == undefined || value < result) - result = value; - }); - return result; - }, - - partition: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; - var trues = [], falses = []; - this.each(function(value, index) { - (iterator(value, index) ? - trues : falses).push(value); - }); - return [trues, falses]; - }, - - pluck: function(property) { - var results = []; - this.each(function(value) { - results.push(value[property]); - }); - return results; - }, - - reject: function(iterator, context) { - iterator = iterator.bind(context); - var results = []; - this.each(function(value, index) { - if (!iterator(value, index)) - results.push(value); - }); - return results; - }, - - sortBy: function(iterator, context) { - iterator = iterator.bind(context); - return this.map(function(value, index) { - return {value: value, criteria: iterator(value, index)}; - }).sort(function(left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }).pluck('value'); - }, - - toArray: function() { - return this.map(); - }, - - zip: function() { - var iterator = Prototype.K, args = $A(arguments); - if (Object.isFunction(args.last())) - iterator = args.pop(); - - var collections = [this].concat(args).map($A); - return this.map(function(value, index) { - return iterator(collections.pluck(index)); - }); - }, - - size: function() { - return this.toArray().length; - }, - - inspect: function() { - return '#<Enumerable:' + this.toArray().inspect() + '>'; - } -}; - -Object.extend(Enumerable, { - map: Enumerable.collect, - find: Enumerable.detect, - select: Enumerable.findAll, - filter: Enumerable.findAll, - member: Enumerable.include, - entries: Enumerable.toArray, - every: Enumerable.all, - some: Enumerable.any -}); -function $A(iterable) { - if (!iterable) return []; - if (iterable.toArray) return iterable.toArray(); - var length = iterable.length, results = new Array(length); - while (length--) results[length] = iterable[length]; - return results; -} - -if (Prototype.Browser.WebKit) { - function $A(iterable) { - if (!iterable) return []; - if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') && - iterable.toArray) return iterable.toArray(); - var length = iterable.length, results = new Array(length); - while (length--) results[length] = iterable[length]; - return results; - } -} - -Array.from = $A; - -Object.extend(Array.prototype, Enumerable); - -if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse; - -Object.extend(Array.prototype, { - _each: function(iterator) { - for (var i = 0, length = this.length; i < length; i++) - iterator(this[i]); - }, - - clear: function() { - this.length = 0; - return this; - }, - - first: function() { - return this[0]; - }, - - last: function() { - return this[this.length - 1]; - }, - - compact: function() { - return this.select(function(value) { - return value != null; - }); - }, - - flatten: function() { - return this.inject([], function(array, value) { - return array.concat(Object.isArray(value) ? - value.flatten() : [value]); - }); - }, - - without: function() { - var values = $A(arguments); - return this.select(function(value) { - return !values.include(value); - }); - }, - - reverse: function(inline) { - return (inline !== false ? this : this.toArray())._reverse(); - }, - - reduce: function() { - return this.length > 1 ? this : this[0]; - }, - - uniq: function(sorted) { - return this.inject([], function(array, value, index) { - if (0 == index || (sorted ? array.last() != value : !array.include(value))) - array.push(value); - return array; - }); - }, - - intersect: function(array) { - return this.uniq().findAll(function(item) { - return array.detect(function(value) { return item === value }); - }); - }, - - clone: function() { - return [].concat(this); - }, - - size: function() { - return this.length; - }, - - inspect: function() { - return '[' + this.map(Object.inspect).join(', ') + ']'; - }, - - toJSON: function() { - var results = []; - this.each(function(object) { - var value = Object.toJSON(object); - if (value !== undefined) results.push(value); - }); - return '[' + results.join(', ') + ']'; - } -}); - -// use native browser JS 1.6 implementation if available -if (Object.isFunction(Array.prototype.forEach)) - Array.prototype._each = Array.prototype.forEach; - -if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) { - i || (i = 0); - var length = this.length; - if (i < 0) i = length + i; - for (; i < length; i++) - if (this[i] === item) return i; - return -1; -}; - -if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) { - i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1; - var n = this.slice(0, i).reverse().indexOf(item); - return (n < 0) ? n : i - n - 1; -}; - -Array.prototype.toArray = Array.prototype.clone; - -function $w(string) { - if (!Object.isString(string)) return []; - string = string.strip(); - return string ? string.split(/\s+/) : []; -} - -if (Prototype.Browser.Opera){ - Array.prototype.concat = function() { - var array = []; - for (var i = 0, length = this.length; i < length; i++) array.push(this[i]); - for (var i = 0, length = arguments.length; i < length; i++) { - if (Object.isArray(arguments[i])) { - for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++) - array.push(arguments[i][j]); - } else { - array.push(arguments[i]); - } - } - return array; - }; -} -Object.extend(Number.prototype, { - toColorPart: function() { - return this.toPaddedString(2, 16); - }, - - succ: function() { - return this + 1; - }, - - times: function(iterator) { - $R(0, this, true).each(iterator); - return this; - }, - - toPaddedString: function(length, radix) { - var string = this.toString(radix || 10); - return '0'.times(length - string.length) + string; - }, - - toJSON: function() { - return isFinite(this) ? this.toString() : 'null'; - } -}); - -$w('abs round ceil floor').each(function(method){ - Number.prototype[method] = Math[method].methodize(); -}); -function $H(object) { - return new Hash(object); -}; - -var Hash = Class.create(Enumerable, (function() { - if (function() { - var i = 0, Test = function(value) { this.key = value }; - Test.prototype.key = 'foo'; - for (var property in new Test('bar')) i++; - return i > 1; - }()) { - function each(iterator) { - var cache = []; - for (var key in this._object) { - var value = this._object[key]; - if (cache.include(key)) continue; - cache.push(key); - var pair = [key, value]; - pair.key = key; - pair.value = value; - iterator(pair); - } - } - } else { - function each(iterator) { - for (var key in this._object) { - var value = this._object[key], pair = [key, value]; - pair.key = key; - pair.value = value; - iterator(pair); - } - } - } - - function toQueryPair(key, value) { - if (Object.isUndefined(value)) return key; - return key + '=' + encodeURIComponent(String.interpret(value)); - } - - return { - initialize: function(object) { - this._object = Object.isHash(object) ? object.toObject() : Object.clone(object); - }, - - _each: each, - - set: function(key, value) { - return this._object[key] = value; - }, - - get: function(key) { - return this._object[key]; - }, - - unset: function(key) { - var value = this._object[key]; - delete this._object[key]; - return value; - }, - - toObject: function() { - return Object.clone(this._object); - }, - - keys: function() { - return this.pluck('key'); - }, - - values: function() { - return this.pluck('value'); - }, - - index: function(value) { - var match = this.detect(function(pair) { - return pair.value === value; - }); - return match && match.key; - }, - - merge: function(object) { - return this.clone().update(object); - }, - - update: function(object) { - return new Hash(object).inject(this, function(result, pair) { - result.set(pair.key, pair.value); - return result; - }); - }, - - toQueryString: function() { - return this.map(function(pair) { - var key = encodeURIComponent(pair.key), values = pair.value; - - if (values && typeof values == 'object') { - if (Object.isArray(values)) - return values.map(toQueryPair.curry(key)).join('&'); - } - return toQueryPair(key, values); - }).join('&'); - }, - - inspect: function() { - return '#<Hash:{' + this.map(function(pair) { - return pair.map(Object.inspect).join(': '); - }).join(', ') + '}>'; - }, - - toJSON: function() { - return Object.toJSON(this.toObject()); - }, - - clone: function() { - return new Hash(this); - } - } -})()); - -Hash.prototype.toTemplateReplacements = Hash.prototype.toObject; -Hash.from = $H; -var ObjectRange = Class.create(Enumerable, { - initialize: function(start, end, exclusive) { - this.start = start; - this.end = end; - this.exclusive = exclusive; - }, - - _each: function(iterator) { - var value = this.start; - while (this.include(value)) { - iterator(value); - value = value.succ(); - } - }, - - include: function(value) { - if (value < this.start) - return false; - if (this.exclusive) - return value < this.end; - return value <= this.end; - } -}); - -var $R = function(start, end, exclusive) { - return new ObjectRange(start, end, exclusive); -}; - -var Ajax = { - getTransport: function() { - return Try.these( - function() {return new XMLHttpRequest()}, - function() {return new ActiveXObject('Msxml2.XMLHTTP')}, - function() {return new ActiveXObject('Microsoft.XMLHTTP')} - ) || false; - }, - - activeRequestCount: 0 -}; - -Ajax.Responders = { - responders: [], - - _each: function(iterator) { - this.responders._each(iterator); - }, - - register: function(responder) { - if (!this.include(responder)) - this.responders.push(responder); - }, - - unregister: function(responder) { - this.responders = this.responders.without(responder); - }, - - dispatch: function(callback, request, transport, json) { - this.each(function(responder) { - if (Object.isFunction(responder[callback])) { - try { - responder[callback].apply(responder, [request, transport, json]); - } catch (e) { } - } - }); - } -}; - -Object.extend(Ajax.Responders, Enumerable); - -Ajax.Responders.register({ - onCreate: function() { Ajax.activeRequestCount++ }, - onComplete: function() { Ajax.activeRequestCount-- } -}); - -Ajax.Base = Class.create({ - initialize: function(options) { - this.options = { - method: 'post', - asynchronous: true, - contentType: 'application/x-www-form-urlencoded', - encoding: 'UTF-8', - parameters: '', - evalJSON: true, - evalJS: true - }; - Object.extend(this.options, options || { }); - - this.options.method = this.options.method.toLowerCase(); - if (Object.isString(this.options.parameters)) - this.options.parameters = this.options.parameters.toQueryParams(); - } -}); - -Ajax.Request = Class.create(Ajax.Base, { - _complete: false, - - initialize: function($super, url, options) { - $super(options); - this.transport = Ajax.getTransport(); - this.request(url); - }, - - request: function(url) { - this.url = url; - this.method = this.options.method; - var params = Object.clone(this.options.parameters); - - if (!['get', 'post'].include(this.method)) { - // simulate other verbs over post - params['_method'] = this.method; - this.method = 'post'; - } - - this.parameters = params; - - if (params = Object.toQueryString(params)) { - // when GET, append parameters to URL - if (this.method == 'get') - this.url += (this.url.include('?') ? '&' : '?') + params; - else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) - params += '&_='; - } - - try { - var response = new Ajax.Response(this); - if (this.options.onCreate) this.options.onCreate(response); - Ajax.Responders.dispatch('onCreate', this, response); - - this.transport.open(this.method.toUpperCase(), this.url, - this.options.asynchronous); - - if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); - - this.transport.onreadystatechange = this.onStateChange.bind(this); - this.setRequestHeaders(); - - this.body = this.method == 'post' ? (this.options.postBody || params) : null; - this.transport.send(this.body); - - /* Force Firefox to handle ready state 4 for synchronous requests */ - if (!this.options.asynchronous && this.transport.overrideMimeType) - this.onStateChange(); - - } - catch (e) { - this.dispatchException(e); - } - }, - - onStateChange: function() { - var readyState = this.transport.readyState; - if (readyState > 1 && !((readyState == 4) && this._complete)) - this.respondToReadyState(this.transport.readyState); - }, - - setRequestHeaders: function() { - var headers = { - 'X-Requested-With': 'XMLHttpRequest', - 'X-Prototype-Version': Prototype.Version, - 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' - }; - - if (this.method == 'post') { - headers['Content-type'] = this.options.contentType + - (this.options.encoding ? '; charset=' + this.options.encoding : ''); - - /* Force "Connection: close" for older Mozilla browsers to work - * around a bug where XMLHttpRequest sends an incorrect - * Content-length header. See Mozilla Bugzilla #246651. - */ - if (this.transport.overrideMimeType && - (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) - headers['Connection'] = 'close'; - } - - // user-defined headers - if (typeof this.options.requestHeaders == 'object') { - var extras = this.options.requestHeaders; - - if (Object.isFunction(extras.push)) - for (var i = 0, length = extras.length; i < length; i += 2) - headers[extras[i]] = extras[i+1]; - else - $H(extras).each(function(pair) { headers[pair.key] = pair.value }); - } - - for (var name in headers) - this.transport.setRequestHeader(name, headers[name]); - }, - - success: function() { - var status = this.getStatus(); - return !status || (status >= 200 && status < 300); - }, - - getStatus: function() { - try { - return this.transport.status || 0; - } catch (e) { return 0 } - }, - - respondToReadyState: function(readyState) { - var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this); - - if (state == 'Complete') { - try { - this._complete = true; - (this.options['on' + response.status] - || this.options['on' + (this.success() ? 'Success' : 'Failure')] - || Prototype.emptyFunction)(response, response.headerJSON); - } catch (e) { - this.dispatchException(e); - } - - var contentType = response.getHeader('Content-type'); - if (this.options.evalJS == 'force' - || (this.options.evalJS && contentType - && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) - this.evalResponse(); - } - - try { - (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON); - Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON); - } catch (e) { - this.dispatchException(e); - } - - if (state == 'Complete') { - // avoid memory leak in MSIE: clean up - this.transport.onreadystatechange = Prototype.emptyFunction; - } - }, - - getHeader: function(name) { - try { - return this.transport.getResponseHeader(name); - } catch (e) { return null } - }, - - evalResponse: function() { - try { - return eval((this.transport.responseText || '').unfilterJSON()); - } catch (e) { - this.dispatchException(e); - } - }, - - dispatchException: function(exception) { - (this.options.onException || Prototype.emptyFunction)(this, exception); - Ajax.Responders.dispatch('onException', this, exception); - } -}); - -Ajax.Request.Events = - ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; - -Ajax.Response = Class.create({ - initialize: function(request){ - this.request = request; - var transport = this.transport = request.transport, - readyState = this.readyState = transport.readyState; - - if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) { - this.status = this.getStatus(); - this.statusText = this.getStatusText(); - this.responseText = String.interpret(transport.responseText); - this.headerJSON = this._getHeaderJSON(); - } - - if(readyState == 4) { - var xml = transport.responseXML; - this.responseXML = xml === undefined ? null : xml; - this.responseJSON = this._getResponseJSON(); - } - }, - - status: 0, - statusText: '', - - getStatus: Ajax.Request.prototype.getStatus, - - getStatusText: function() { - try { - return this.transport.statusText || ''; - } catch (e) { return '' } - }, - - getHeader: Ajax.Request.prototype.getHeader, - - getAllHeaders: function() { - try { - return this.getAllResponseHeaders(); - } catch (e) { return null } - }, - - getResponseHeader: function(name) { - return this.transport.getResponseHeader(name); - }, - - getAllResponseHeaders: function() { - return this.transport.getAllResponseHeaders(); - }, - - _getHeaderJSON: function() { - var json = this.getHeader('X-JSON'); - if (!json) return null; - json = decodeURIComponent(escape(json)); - try { - return json.evalJSON(this.request.options.sanitizeJSON); - } catch (e) { - this.request.dispatchException(e); - } - }, - - _getResponseJSON: function() { - var options = this.request.options; - if (!options.evalJSON || (options.evalJSON != 'force' && - !(this.getHeader('Content-type') || '').include('application/json'))) - return null; - try { - return this.transport.responseText.evalJSON(options.sanitizeJSON); - } catch (e) { - this.request.dispatchException(e); - } - } -}); - -Ajax.Updater = Class.create(Ajax.Request, { - initialize: function($super, container, url, options) { - this.container = { - success: (container.success || container), - failure: (container.failure || (container.success ? null : container)) - }; - - options = options || { }; - var onComplete = options.onComplete; - options.onComplete = (function(response, param) { - this.updateContent(response.responseText); - if (Object.isFunction(onComplete)) onComplete(response, param); - }).bind(this); - - $super(url, options); - }, - - updateContent: function(responseText) { - var receiver = this.container[this.success() ? 'success' : 'failure'], - options = this.options; - - if (!options.evalScripts) responseText = responseText.stripScripts(); - - if (receiver = $(receiver)) { - if (options.insertion) { - if (Object.isString(options.insertion)) { - var insertion = { }; insertion[options.insertion] = responseText; - receiver.insert(insertion); - } - else options.insertion(receiver, responseText); - } - else receiver.update(responseText); - } - - if (this.success()) { - if (this.onComplete) this.onComplete.bind(this).defer(); - } - } -}); - -Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { - initialize: function($super, container, url, options) { - $super(options); - this.onComplete = this.options.onComplete; - - this.frequency = (this.options.frequency || 2); - this.decay = (this.options.decay || 1); - - this.updater = { }; - this.container = container; - this.url = url; - - this.start(); - }, - - start: function() { - this.options.onComplete = this.updateComplete.bind(this); - this.onTimerEvent(); - }, - - stop: function() { - this.updater.options.onComplete = undefined; - clearTimeout(this.timer); - (this.onComplete || Prototype.emptyFunction).apply(this, arguments); - }, - - updateComplete: function(response) { - if (this.options.decay) { - this.decay = (response.responseText == this.lastText ? - this.decay * this.options.decay : 1); - - this.lastText = response.responseText; - } - this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency); - }, - - onTimerEvent: function() { - this.updater = new Ajax.Updater(this.container, this.url, this.options); - } -}); -function $(element) { - if (arguments.length > 1) { - for (var i = 0, elements = [], length = arguments.length; i < length; i++) - elements.push($(arguments[i])); - return elements; - } - if (Object.isString(element)) - element = document.getElementById(element); - return Element.extend(element); -} - -if (Prototype.BrowserFeatures.XPath) { - document._getElementsByXPath = function(expression, parentElement) { - var results = []; - var query = document.evaluate(expression, $(parentElement) || document, - null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); - for (var i = 0, length = query.snapshotLength; i < length; i++) - results.push(Element.extend(query.snapshotItem(i))); - return results; - }; -} - -/*--------------------------------------------------------------------------*/ - -if (!window.Node) var Node = { }; - -if (!Node.ELEMENT_NODE) { - // DOM level 2 ECMAScript Language Binding - Object.extend(Node, { - ELEMENT_NODE: 1, - ATTRIBUTE_NODE: 2, - TEXT_NODE: 3, - CDATA_SECTION_NODE: 4, - ENTITY_REFERENCE_NODE: 5, - ENTITY_NODE: 6, - PROCESSING_INSTRUCTION_NODE: 7, - COMMENT_NODE: 8, - DOCUMENT_NODE: 9, - DOCUMENT_TYPE_NODE: 10, - DOCUMENT_FRAGMENT_NODE: 11, - NOTATION_NODE: 12 - }); -} - -(function() { - var element = this.Element; - this.Element = function(tagName, attributes) { - attributes = attributes || { }; - tagName = tagName.toLowerCase(); - var cache = Element.cache; - if (Prototype.Browser.IE && attributes.name) { - tagName = '<' + tagName + ' name="' + attributes.name + '">'; - delete attributes.name; - return Element.writeAttribute(document.createElement(tagName), attributes); - } - if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName)); - return Element.writeAttribute(cache[tagName].cloneNode(false), attributes); - }; - Object.extend(this.Element, element || { }); -}).call(window); - -Element.cache = { }; - -Element.Methods = { - visible: function(element) { - return $(element).style.display != 'none'; - }, - - toggle: function(element) { - element = $(element); - Element[Element.visible(element) ? 'hide' : 'show'](element); - return element; - }, - - hide: function(element) { - $(element).style.display = 'none'; - return element; - }, - - show: function(element) { - $(element).style.display = ''; - return element; - }, - - remove: function(element) { - element = $(element); - element.parentNode.removeChild(element); - return element; - }, - - update: function(element, content) { - element = $(element); - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) return element.update().insert(content); - content = Object.toHTML(content); - element.innerHTML = content.stripScripts(); - content.evalScripts.bind(content).defer(); - return element; - }, - - replace: function(element, content) { - element = $(element); - if (content && content.toElement) content = content.toElement(); - else if (!Object.isElement(content)) { - content = Object.toHTML(content); - var range = element.ownerDocument.createRange(); - range.selectNode(element); - content.evalScripts.bind(content).defer(); - content = range.createContextualFragment(content.stripScripts()); - } - element.parentNode.replaceChild(content, element); - return element; - }, - - insert: function(element, insertions) { - element = $(element); - - if (Object.isString(insertions) || Object.isNumber(insertions) || - Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) - insertions = {bottom:insertions}; - - var content, t, range; - - for (position in insertions) { - content = insertions[position]; - position = position.toLowerCase(); - t = Element._insertionTranslations[position]; - - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) { - t.insert(element, content); - continue; - } - - content = Object.toHTML(content); - - range = element.ownerDocument.createRange(); - t.initializeRange(element, range); - t.insert(element, range.createContextualFragment(content.stripScripts())); - - content.evalScripts.bind(content).defer(); - } - - return element; - }, - - wrap: function(element, wrapper, attributes) { - element = $(element); - if (Object.isElement(wrapper)) - $(wrapper).writeAttribute(attributes || { }); - else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes); - else wrapper = new Element('div', wrapper); - if (element.parentNode) - element.parentNode.replaceChild(wrapper, element); - wrapper.appendChild(element); - return wrapper; - }, - - inspect: function(element) { - element = $(element); - var result = '<' + element.tagName.toLowerCase(); - $H({'id': 'id', 'className': 'class'}).each(function(pair) { - var property = pair.first(), attribute = pair.last(); - var value = (element[property] || '').toString(); - if (value) result += ' ' + attribute + '=' + value.inspect(true); - }); - return result + '>'; - }, - - recursivelyCollect: function(element, property) { - element = $(element); - var elements = []; - while (element = element[property]) - if (element.nodeType == 1) - elements.push(Element.extend(element)); - return elements; - }, - - ancestors: function(element) { - return $(element).recursivelyCollect('parentNode'); - }, - - descendants: function(element) { - return $A($(element).getElementsByTagName('*')).each(Element.extend); - }, - - firstDescendant: function(element) { - element = $(element).firstChild; - while (element && element.nodeType != 1) element = element.nextSibling; - return $(element); - }, - - immediateDescendants: function(element) { - if (!(element = $(element).firstChild)) return []; - while (element && element.nodeType != 1) element = element.nextSibling; - if (element) return [element].concat($(element).nextSiblings()); - return []; - }, - - previousSiblings: function(element) { - return $(element).recursivelyCollect('previousSibling'); - }, - - nextSiblings: function(element) { - return $(element).recursivelyCollect('nextSibling'); - }, - - siblings: function(element) { - element = $(element); - return element.previousSiblings().reverse().concat(element.nextSiblings()); - }, - - match: function(element, selector) { - if (Object.isString(selector)) - selector = new Selector(selector); - return selector.match($(element)); - }, - - up: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return $(element.parentNode); - var ancestors = element.ancestors(); - return expression ? Selector.findElement(ancestors, expression, index) : - ancestors[index || 0]; - }, - - down: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return element.firstDescendant(); - var descendants = element.descendants(); - return expression ? Selector.findElement(descendants, expression, index) : - descendants[index || 0]; - }, - - previous: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element)); - var previousSiblings = element.previousSiblings(); - return expression ? Selector.findElement(previousSiblings, expression, index) : - previousSiblings[index || 0]; - }, - - next: function(element, expression, index) { - element = $(element); - if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element)); - var nextSiblings = element.nextSiblings(); - return expression ? Selector.findElement(nextSiblings, expression, index) : - nextSiblings[index || 0]; - }, - - select: function() { - var args = $A(arguments), element = $(args.shift()); - return Selector.findChildElements(element, args); - }, - - adjacent: function() { - var args = $A(arguments), element = $(args.shift()); - return Selector.findChildElements(element.parentNode, args).without(element); - }, - - identify: function(element) { - element = $(element); - var id = element.readAttribute('id'), self = arguments.callee; - if (id) return id; - do { id = 'anonymous_element_' + self.counter++ } while ($(id)); - element.writeAttribute('id', id); - return id; - }, - - readAttribute: function(element, name) { - element = $(element); - if (Prototype.Browser.IE) { - var t = Element._attributeTranslations.read; - if (t.values[name]) return t.values[name](element, name); - if (t.names[name]) name = t.names[name]; - if (name.include(':')) { - return (!element.attributes || !element.attributes[name]) ? null : - element.attributes[name].value; - } - } - return element.getAttribute(name); - }, - - writeAttribute: function(element, name, value) { - element = $(element); - var attributes = { }, t = Element._attributeTranslations.write; - - if (typeof name == 'object') attributes = name; - else attributes[name] = value === undefined ? true : value; - - for (var attr in attributes) { - var name = t.names[attr] || attr, value = attributes[attr]; - if (t.values[attr]) name = t.values[attr](element, value); - if (value === false || value === null) - element.removeAttribute(name); - else if (value === true) - element.setAttribute(name, name); - else element.setAttribute(name, value); - } - return element; - }, - - getHeight: function(element) { - return $(element).getDimensions().height; - }, - - getWidth: function(element) { - return $(element).getDimensions().width; - }, - - classNames: function(element) { - return new Element.ClassNames(element); - }, - - hasClassName: function(element, className) { - if (!(element = $(element))) return; - var elementClassName = element.className; - return (elementClassName.length > 0 && (elementClassName == className || - new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); - }, - - addClassName: function(element, className) { - if (!(element = $(element))) return; - if (!element.hasClassName(className)) - element.className += (element.className ? ' ' : '') + className; - return element; - }, - - removeClassName: function(element, className) { - if (!(element = $(element))) return; - element.className = element.className.replace( - new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip(); - return element; - }, - - toggleClassName: function(element, className) { - if (!(element = $(element))) return; - return element[element.hasClassName(className) ? - 'removeClassName' : 'addClassName'](className); - }, - - // removes whitespace-only text node children - cleanWhitespace: function(element) { - element = $(element); - var node = element.firstChild; - while (node) { - var nextNode = node.nextSibling; - if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) - element.removeChild(node); - node = nextNode; - } - return element; - }, - - empty: function(element) { - return $(element).innerHTML.blank(); - }, - - descendantOf: function(element, ancestor) { - element = $(element), ancestor = $(ancestor); - - if (element.compareDocumentPosition) - return (element.compareDocumentPosition(ancestor) & 8) === 8; - - if (element.sourceIndex && !Prototype.Browser.Opera) { - var e = element.sourceIndex, a = ancestor.sourceIndex, - nextAncestor = ancestor.nextSibling; - if (!nextAncestor) { - do { ancestor = ancestor.parentNode; } - while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode); - } - if (nextAncestor) return (e > a && e < nextAncestor.sourceIndex); - } - - while (element = element.parentNode) - if (element == ancestor) return true; - return false; - }, - - scrollTo: function(element) { - element = $(element); - var pos = element.cumulativeOffset(); - window.scrollTo(pos[0], pos[1]); - return element; - }, - - getStyle: function(element, style) { - element = $(element); - style = style == 'float' ? 'cssFloat' : style.camelize(); - var value = element.style[style]; - if (!value) { - var css = document.defaultView.getComputedStyle(element, null); - value = css ? css[style] : null; - } - if (style == 'opacity') return value ? parseFloat(value) : 1.0; - return value == 'auto' ? null : value; - }, - - getOpacity: function(element) { - return $(element).getStyle('opacity'); - }, - - setStyle: function(element, styles) { - element = $(element); - var elementStyle = element.style, match; - if (Object.isString(styles)) { - element.style.cssText += ';' + styles; - return styles.include('opacity') ? - element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; - } - for (var property in styles) - if (property == 'opacity') element.setOpacity(styles[property]); - else - elementStyle[(property == 'float' || property == 'cssFloat') ? - (elementStyle.styleFloat === undefined ? 'cssFloat' : 'styleFloat') : - property] = styles[property]; - - return element; - }, - - setOpacity: function(element, value) { - element = $(element); - element.style.opacity = (value == 1 || value === '') ? '' : - (value < 0.00001) ? 0 : value; - return element; - }, - - getDimensions: function(element) { - element = $(element); - var display = $(element).getStyle('display'); - if (display != 'none' && display != null) // Safari bug - return {width: element.offsetWidth, height: element.offsetHeight}; - - // All *Width and *Height properties give 0 on elements with display none, - // so enable the element temporarily - var els = element.style; - var originalVisibility = els.visibility; - var originalPosition = els.position; - var originalDisplay = els.display; - els.visibility = 'hidden'; - els.position = 'absolute'; - els.display = 'block'; - var originalWidth = element.clientWidth; - var originalHeight = element.clientHeight; - els.display = originalDisplay; - els.position = originalPosition; - els.visibility = originalVisibility; - return {width: originalWidth, height: originalHeight}; - }, - - makePositioned: function(element) { - element = $(element); - var pos = Element.getStyle(element, 'position'); - if (pos == 'static' || !pos) { - element._madePositioned = true; - element.style.position = 'relative'; - // Opera returns the offset relative to the positioning context, when an - // element is position relative but top and left have not been defined - if (window.opera) { - element.style.top = 0; - element.style.left = 0; - } - } - return element; - }, - - undoPositioned: function(element) { - element = $(element); - if (element._madePositioned) { - element._madePositioned = undefined; - element.style.position = - element.style.top = - element.style.left = - element.style.bottom = - element.style.right = ''; - } - return element; - }, - - makeClipping: function(element) { - element = $(element); - if (element._overflow) return element; - element._overflow = Element.getStyle(element, 'overflow') || 'auto'; - if (element._overflow !== 'hidden') - element.style.overflow = 'hidden'; - return element; - }, - - undoClipping: function(element) { - element = $(element); - if (!element._overflow) return element; - element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; - element._overflow = null; - return element; - }, - - cumulativeOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - } while (element); - return Element._returnOffset(valueL, valueT); - }, - - positionedOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - if (element) { - if (element.tagName == 'BODY') break; - var p = Element.getStyle(element, 'position'); - if (p == 'relative' || p == 'absolute') break; - } - } while (element); - return Element._returnOffset(valueL, valueT); - }, - - absolutize: function(element) { - element = $(element); - if (element.getStyle('position') == 'absolute') return; - // Position.prepare(); // To be done manually by Scripty when it needs it. - - var offsets = element.positionedOffset(); - var top = offsets[1]; - var left = offsets[0]; - var width = element.clientWidth; - var height = element.clientHeight; - - element._originalLeft = left - parseFloat(element.style.left || 0); - element._originalTop = top - parseFloat(element.style.top || 0); - element._originalWidth = element.style.width; - element._originalHeight = element.style.height; - - element.style.position = 'absolute'; - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.width = width + 'px'; - element.style.height = height + 'px'; - return element; - }, - - relativize: function(element) { - element = $(element); - if (element.getStyle('position') == 'relative') return; - // Position.prepare(); // To be done manually by Scripty when it needs it. - - element.style.position = 'relative'; - var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); - var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); - - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.height = element._originalHeight; - element.style.width = element._originalWidth; - return element; - }, - - cumulativeScrollOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.scrollTop || 0; - valueL += element.scrollLeft || 0; - element = element.parentNode; - } while (element); - return Element._returnOffset(valueL, valueT); - }, - - getOffsetParent: function(element) { - if (element.offsetParent) return $(element.offsetParent); - if (element == document.body) return $(element); - - while ((element = element.parentNode) && element != document.body) - if (Element.getStyle(element, 'position') != 'static') - return $(element); - - return $(document.body); - }, - - viewportOffset: function(forElement) { - var valueT = 0, valueL = 0; - - var element = forElement; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - - // Safari fix - if (element.offsetParent == document.body && - Element.getStyle(element, 'position') == 'absolute') break; - - } while (element = element.offsetParent); - - element = forElement; - do { - if (!Prototype.Browser.Opera || element.tagName == 'BODY') { - valueT -= element.scrollTop || 0; - valueL -= element.scrollLeft || 0; - } - } while (element = element.parentNode); - - return Element._returnOffset(valueL, valueT); - }, - - clonePosition: function(element, source) { - var options = Object.extend({ - setLeft: true, - setTop: true, - setWidth: true, - setHeight: true, - offsetTop: 0, - offsetLeft: 0 - }, arguments[2] || { }); - - // find page position of source - source = $(source); - var p = source.viewportOffset(); - - // find coordinate system to use - element = $(element); - var delta = [0, 0]; - var parent = null; - // delta [0,0] will do fine with position: fixed elements, - // position:absolute needs offsetParent deltas - if (Element.getStyle(element, 'position') == 'absolute') { - parent = element.getOffsetParent(); - delta = parent.viewportOffset(); - } - - // correct by body offsets (fixes Safari) - if (parent == document.body) { - delta[0] -= document.body.offsetLeft; - delta[1] -= document.body.offsetTop; - } - - // set position - if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; - if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; - if (options.setWidth) element.style.width = source.offsetWidth + 'px'; - if (options.setHeight) element.style.height = source.offsetHeight + 'px'; - return element; - } -}; - -Element.Methods.identify.counter = 1; - -Object.extend(Element.Methods, { - getElementsBySelector: Element.Methods.select, - childElements: Element.Methods.immediateDescendants -}); - -Element._attributeTranslations = { - write: { - names: { - className: 'class', - htmlFor: 'for' - }, - values: { } - } -}; - - -if (!document.createRange || Prototype.Browser.Opera) { - Element.Methods.insert = function(element, insertions) { - element = $(element); - - if (Object.isString(insertions) || Object.isNumber(insertions) || - Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) - insertions = { bottom: insertions }; - - var t = Element._insertionTranslations, content, position, pos, tagName; - - for (position in insertions) { - content = insertions[position]; - position = position.toLowerCase(); - pos = t[position]; - - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) { - pos.insert(element, content); - continue; - } - - content = Object.toHTML(content); - tagName = ((position == 'before' || position == 'after') - ? element.parentNode : element).tagName.toUpperCase(); - - if (t.tags[tagName]) { - var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); - if (position == 'top' || position == 'after') fragments.reverse(); - fragments.each(pos.insert.curry(element)); - } - else element.insertAdjacentHTML(pos.adjacency, content.stripScripts()); - - content.evalScripts.bind(content).defer(); - } - - return element; - }; -} - -if (Prototype.Browser.Opera) { - Element.Methods._getStyle = Element.Methods.getStyle; - Element.Methods.getStyle = function(element, style) { - switch(style) { - case 'left': - case 'top': - case 'right': - case 'bottom': - if (Element._getStyle(element, 'position') == 'static') return null; - default: return Element._getStyle(element, style); - } - }; - Element.Methods._readAttribute = Element.Methods.readAttribute; - Element.Methods.readAttribute = function(element, attribute) { - if (attribute == 'title') return element.title; - return Element._readAttribute(element, attribute); - }; -} - -else if (Prototype.Browser.IE) { - $w('positionedOffset getOffsetParent viewportOffset').each(function(method) { - Element.Methods[method] = Element.Methods[method].wrap( - function(proceed, element) { - element = $(element); - var position = element.getStyle('position'); - if (position != 'static') return proceed(element); - element.setStyle({ position: 'relative' }); - var value = proceed(element); - element.setStyle({ position: position }); - return value; - } - ); - }); - - Element.Methods.getStyle = function(element, style) { - element = $(element); - style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); - var value = element.style[style]; - if (!value && element.currentStyle) value = element.currentStyle[style]; - - if (style == 'opacity') { - if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) - if (value[1]) return parseFloat(value[1]) / 100; - return 1.0; - } - - if (value == 'auto') { - if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none')) - return element['offset' + style.capitalize()] + 'px'; - return null; - } - return value; - }; - - Element.Methods.setOpacity = function(element, value) { - function stripAlpha(filter){ - return filter.replace(/alpha\([^\)]*\)/gi,''); - } - element = $(element); - var currentStyle = element.currentStyle; - if ((currentStyle && !currentStyle.hasLayout) || - (!currentStyle && element.style.zoom == 'normal')) - element.style.zoom = 1; - - var filter = element.getStyle('filter'), style = element.style; - if (value == 1 || value === '') { - (filter = stripAlpha(filter)) ? - style.filter = filter : style.removeAttribute('filter'); - return element; - } else if (value < 0.00001) value = 0; - style.filter = stripAlpha(filter) + - 'alpha(opacity=' + (value * 100) + ')'; - return element; - }; - - Element._attributeTranslations = { - read: { - names: { - 'class': 'className', - 'for': 'htmlFor' - }, - values: { - _getAttr: function(element, attribute) { - return element.getAttribute(attribute, 2); - }, - _getAttrNode: function(element, attribute) { - var node = element.getAttributeNode(attribute); - return node ? node.value : ""; - }, - _getEv: function(element, attribute) { - var attribute = element.getAttribute(attribute); - return attribute ? attribute.toString().slice(23, -2) : null; - }, - _flag: function(element, attribute) { - return $(element).hasAttribute(attribute) ? attribute : null; - }, - style: function(element) { - return element.style.cssText.toLowerCase(); - }, - title: function(element) { - return element.title; - } - } - } - }; - - Element._attributeTranslations.write = { - names: Object.clone(Element._attributeTranslations.read.names), - values: { - checked: function(element, value) { - element.checked = !!value; - }, - - style: function(element, value) { - element.style.cssText = value ? value : ''; - } - } - }; - - Element._attributeTranslations.has = {}; - - $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + - 'encType maxLength readOnly longDesc').each(function(attr) { - Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; - Element._attributeTranslations.has[attr.toLowerCase()] = attr; - }); - - (function(v) { - Object.extend(v, { - href: v._getAttr, - src: v._getAttr, - type: v._getAttr, - action: v._getAttrNode, - disabled: v._flag, - checked: v._flag, - readonly: v._flag, - multiple: v._flag, - onload: v._getEv, - onunload: v._getEv, - onclick: v._getEv, - ondblclick: v._getEv, - onmousedown: v._getEv, - onmouseup: v._getEv, - onmouseover: v._getEv, - onmousemove: v._getEv, - onmouseout: v._getEv, - onfocus: v._getEv, - onblur: v._getEv, - onkeypress: v._getEv, - onkeydown: v._getEv, - onkeyup: v._getEv, - onsubmit: v._getEv, - onreset: v._getEv, - onselect: v._getEv, - onchange: v._getEv - }); - })(Element._attributeTranslations.read.values); -} - -else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) { - Element.Methods.setOpacity = function(element, value) { - element = $(element); - element.style.opacity = (value == 1) ? 0.999999 : - (value === '') ? '' : (value < 0.00001) ? 0 : value; - return element; - }; -} - -else if (Prototype.Browser.WebKit) { - Element.Methods.setOpacity = function(element, value) { - element = $(element); - element.style.opacity = (value == 1 || value === '') ? '' : - (value < 0.00001) ? 0 : value; - - if (value == 1) - if(element.tagName == 'IMG' && element.width) { - element.width++; element.width--; - } else try { - var n = document.createTextNode(' '); - element.appendChild(n); - element.removeChild(n); - } catch (e) { } - - return element; - }; - - // Safari returns margins on body which is incorrect if the child is absolutely - // positioned. For performance reasons, redefine Position.cumulativeOffset for - // KHTML/WebKit only. - Element.Methods.cumulativeOffset = function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - if (element.offsetParent == document.body) - if (Element.getStyle(element, 'position') == 'absolute') break; - - element = element.offsetParent; - } while (element); - - return Element._returnOffset(valueL, valueT); - }; -} - -if (Prototype.Browser.IE || Prototype.Browser.Opera) { - // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements - Element.Methods.update = function(element, content) { - element = $(element); - - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) return element.update().insert(content); - - content = Object.toHTML(content); - var tagName = element.tagName.toUpperCase(); - - if (tagName in Element._insertionTranslations.tags) { - $A(element.childNodes).each(function(node) { element.removeChild(node) }); - Element._getContentFromAnonymousElement(tagName, content.stripScripts()) - .each(function(node) { element.appendChild(node) }); - } - else element.innerHTML = content.stripScripts(); - - content.evalScripts.bind(content).defer(); - return element; - }; -} - -if (document.createElement('div').outerHTML) { - Element.Methods.replace = function(element, content) { - element = $(element); - - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) { - element.parentNode.replaceChild(content, element); - return element; - } - - content = Object.toHTML(content); - var parent = element.parentNode, tagName = parent.tagName.toUpperCase(); - - if (Element._insertionTranslations.tags[tagName]) { - var nextSibling = element.next(); - var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); - parent.removeChild(element); - if (nextSibling) - fragments.each(function(node) { parent.insertBefore(node, nextSibling) }); - else - fragments.each(function(node) { parent.appendChild(node) }); - } - else element.outerHTML = content.stripScripts(); - - content.evalScripts.bind(content).defer(); - return element; - }; -} - -Element._returnOffset = function(l, t) { - var result = [l, t]; - result.left = l; - result.top = t; - return result; -}; - -Element._getContentFromAnonymousElement = function(tagName, html) { - var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; - div.innerHTML = t[0] + html + t[1]; - t[2].times(function() { div = div.firstChild }); - return $A(div.childNodes); -}; - -Element._insertionTranslations = { - before: { - adjacency: 'beforeBegin', - insert: function(element, node) { - element.parentNode.insertBefore(node, element); - }, - initializeRange: function(element, range) { - range.setStartBefore(element); - } - }, - top: { - adjacency: 'afterBegin', - insert: function(element, node) { - element.insertBefore(node, element.firstChild); - }, - initializeRange: function(element, range) { - range.selectNodeContents(element); - range.collapse(true); - } - }, - bottom: { - adjacency: 'beforeEnd', - insert: function(element, node) { - element.appendChild(node); - } - }, - after: { - adjacency: 'afterEnd', - insert: function(element, node) { - element.parentNode.insertBefore(node, element.nextSibling); - }, - initializeRange: function(element, range) { - range.setStartAfter(element); - } - }, - tags: { - TABLE: ['<table>', '</table>', 1], - TBODY: ['<table><tbody>', '</tbody></table>', 2], - TR: ['<table><tbody><tr>', '</tr></tbody></table>', 3], - TD: ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4], - SELECT: ['<select>', '</select>', 1] - } -}; - -(function() { - this.bottom.initializeRange = this.top.initializeRange; - Object.extend(this.tags, { - THEAD: this.tags.TBODY, - TFOOT: this.tags.TBODY, - TH: this.tags.TD - }); -}).call(Element._insertionTranslations); - -Element.Methods.Simulated = { - hasAttribute: function(element, attribute) { - attribute = Element._attributeTranslations.has[attribute] || attribute; - var node = $(element).getAttributeNode(attribute); - return node && node.specified; - } -}; - -Element.Methods.ByTag = { }; - -Object.extend(Element, Element.Methods); - -if (!Prototype.BrowserFeatures.ElementExtensions && - document.createElement('div').__proto__) { - window.HTMLElement = { }; - window.HTMLElement.prototype = document.createElement('div').__proto__; - Prototype.BrowserFeatures.ElementExtensions = true; -} - -Element.extend = (function() { - if (Prototype.BrowserFeatures.SpecificElementExtensions) - return Prototype.K; - - var Methods = { }, ByTag = Element.Methods.ByTag; - - var extend = Object.extend(function(element) { - if (!element || element._extendedByPrototype || - element.nodeType != 1 || element == window) return element; - - var methods = Object.clone(Methods), - tagName = element.tagName, property, value; - - // extend methods for specific tags - if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); - - for (property in methods) { - value = methods[property]; - if (Object.isFunction(value) && !(property in element)) - element[property] = value.methodize(); - } - - element._extendedByPrototype = Prototype.emptyFunction; - return element; - - }, { - refresh: function() { - // extend methods for all tags (Safari doesn't need this) - if (!Prototype.BrowserFeatures.ElementExtensions) { - Object.extend(Methods, Element.Methods); - Object.extend(Methods, Element.Methods.Simulated); - } - } - }); - - extend.refresh(); - return extend; -})(); - -Element.hasAttribute = function(element, attribute) { - if (element.hasAttribute) return element.hasAttribute(attribute); - return Element.Methods.Simulated.hasAttribute(element, attribute); -}; - -Element.addMethods = function(methods) { - var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag; - - if (!methods) { - Object.extend(Form, Form.Methods); - Object.extend(Form.Element, Form.Element.Methods); - Object.extend(Element.Methods.ByTag, { - "FORM": Object.clone(Form.Methods), - "INPUT": Object.clone(Form.Element.Methods), - "SELECT": Object.clone(Form.Element.Methods), - "TEXTAREA": Object.clone(Form.Element.Methods) - }); - } - - if (arguments.length == 2) { - var tagName = methods; - methods = arguments[1]; - } - - if (!tagName) Object.extend(Element.Methods, methods || { }); - else { - if (Object.isArray(tagName)) tagName.each(extend); - else extend(tagName); - } - - function extend(tagName) { - tagName = tagName.toUpperCase(); - if (!Element.Methods.ByTag[tagName]) - Element.Methods.ByTag[tagName] = { }; - Object.extend(Element.Methods.ByTag[tagName], methods); - } - - function copy(methods, destination, onlyIfAbsent) { - onlyIfAbsent = onlyIfAbsent || false; - for (var property in methods) { - var value = methods[property]; - if (!Object.isFunction(value)) continue; - if (!onlyIfAbsent || !(property in destination)) - destination[property] = value.methodize(); - } - } - - function findDOMClass(tagName) { - var klass; - var trans = { - "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", - "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList", - "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading", - "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", - "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION": - "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD": - "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR": - "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": - "FrameSet", "IFRAME": "IFrame" - }; - if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element'; - if (window[klass]) return window[klass]; - klass = 'HTML' + tagName + 'Element'; - if (window[klass]) return window[klass]; - klass = 'HTML' + tagName.capitalize() + 'Element'; - if (window[klass]) return window[klass]; - - window[klass] = { }; - window[klass].prototype = document.createElement(tagName).__proto__; - return window[klass]; - } - - if (F.ElementExtensions) { - copy(Element.Methods, HTMLElement.prototype); - copy(Element.Methods.Simulated, HTMLElement.prototype, true); - } - - if (F.SpecificElementExtensions) { - for (var tag in Element.Methods.ByTag) { - var klass = findDOMClass(tag); - if (Object.isUndefined(klass)) continue; - copy(T[tag], klass.prototype); - } - } - - Object.extend(Element, Element.Methods); - delete Element.ByTag; - - if (Element.extend.refresh) Element.extend.refresh(); - Element.cache = { }; -}; - -document.viewport = { - getDimensions: function() { - var dimensions = { }; - $w('width height').each(function(d) { - var D = d.capitalize(); - dimensions[d] = self['inner' + D] || - (document.documentElement['client' + D] || document.body['client' + D]); - }); - return dimensions; - }, - - getWidth: function() { - return this.getDimensions().width; - }, - - getHeight: function() { - return this.getDimensions().height; - }, - - getScrollOffsets: function() { - return Element._returnOffset( - window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, - window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); - } -}; -/* Portions of the Selector class are derived from Jack Slocum’s DomQuery, - * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style - * license. Please see http://www.yui-ext.com/ for more information. */ - -var Selector = Class.create({ - initialize: function(expression) { - this.expression = expression.strip(); - this.compileMatcher(); - }, - - compileMatcher: function() { - // Selectors with namespaced attributes can't use the XPath version - if (Prototype.BrowserFeatures.XPath && !(/(\[[\w-]*?:|:checked)/).test(this.expression)) - return this.compileXPathMatcher(); - - var e = this.expression, ps = Selector.patterns, h = Selector.handlers, - c = Selector.criteria, le, p, m; - - if (Selector._cache[e]) { - this.matcher = Selector._cache[e]; - return; - } - - this.matcher = ["this.matcher = function(root) {", - "var r = root, h = Selector.handlers, c = false, n;"]; - - while (e && le != e && (/\S/).test(e)) { - le = e; - for (var i in ps) { - p = ps[i]; - if (m = e.match(p)) { - this.matcher.push(Object.isFunction(c[i]) ? c[i](m) : - new Template(c[i]).evaluate(m)); - e = e.replace(m[0], ''); - break; - } - } - } - - this.matcher.push("return h.unique(n);\n}"); - eval(this.matcher.join('\n')); - Selector._cache[this.expression] = this.matcher; - }, - - compileXPathMatcher: function() { - var e = this.expression, ps = Selector.patterns, - x = Selector.xpath, le, m; - - if (Selector._cache[e]) { - this.xpath = Selector._cache[e]; return; - } - - this.matcher = ['.//*']; - while (e && le != e && (/\S/).test(e)) { - le = e; - for (var i in ps) { - if (m = e.match(ps[i])) { - this.matcher.push(Object.isFunction(x[i]) ? x[i](m) : - new Template(x[i]).evaluate(m)); - e = e.replace(m[0], ''); - break; - } - } - } - - this.xpath = this.matcher.join(''); - Selector._cache[this.expression] = this.xpath; - }, - - findElements: function(root) { - root = root || document; - if (this.xpath) return document._getElementsByXPath(this.xpath, root); - return this.matcher(root); - }, - - match: function(element) { - this.tokens = []; - - var e = this.expression, ps = Selector.patterns, as = Selector.assertions; - var le, p, m; - - while (e && le !== e && (/\S/).test(e)) { - le = e; - for (var i in ps) { - p = ps[i]; - if (m = e.match(p)) { - // use the Selector.assertions methods unless the selector - // is too complex. - if (as[i]) { - this.tokens.push([i, Object.clone(m)]); - e = e.replace(m[0], ''); - } else { - // reluctantly do a document-wide search - // and look for a match in the array - return this.findElements(document).include(element); - } - } - } - } - - var match = true, name, matches; - for (var i = 0, token; token = this.tokens[i]; i++) { - name = token[0], matches = token[1]; - if (!Selector.assertions[name](element, matches)) { - match = false; break; - } - } - - return match; - }, - - toString: function() { - return this.expression; - }, - - inspect: function() { - return "#<Selector:" + this.expression.inspect() + ">"; - } -}); - -Object.extend(Selector, { - _cache: { }, - - xpath: { - descendant: "//*", - child: "/*", - adjacent: "/following-sibling::*[1]", - laterSibling: '/following-sibling::*', - tagName: function(m) { - if (m[1] == '*') return ''; - return "[local-name()='" + m[1].toLowerCase() + - "' or local-name()='" + m[1].toUpperCase() + "']"; - }, - className: "[contains(concat(' ', @class, ' '), ' #{1} ')]", - id: "[@id='#{1}']", - attrPresence: "[@#{1}]", - attr: function(m) { - m[3] = m[5] || m[6]; - return new Template(Selector.xpath.operators[m[2]]).evaluate(m); - }, - pseudo: function(m) { - var h = Selector.xpath.pseudos[m[1]]; - if (!h) return ''; - if (Object.isFunction(h)) return h(m); - return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m); - }, - operators: { - '=': "[@#{1}='#{3}']", - '!=': "[@#{1}!='#{3}']", - '^=': "[starts-with(@#{1}, '#{3}')]", - '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']", - '*=': "[contains(@#{1}, '#{3}')]", - '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]", - '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]" - }, - pseudos: { - 'first-child': '[not(preceding-sibling::*)]', - 'last-child': '[not(following-sibling::*)]', - 'only-child': '[not(preceding-sibling::* or following-sibling::*)]', - 'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]", - 'checked': "[@checked]", - 'disabled': "[@disabled]", - 'enabled': "[not(@disabled)]", - 'not': function(m) { - var e = m[6], p = Selector.patterns, - x = Selector.xpath, le, m, v; - - var exclusion = []; - while (e && le != e && (/\S/).test(e)) { - le = e; - for (var i in p) { - if (m = e.match(p[i])) { - v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m); - exclusion.push("(" + v.substring(1, v.length - 1) + ")"); - e = e.replace(m[0], ''); - break; - } - } - } - return "[not(" + exclusion.join(" and ") + ")]"; - }, - 'nth-child': function(m) { - return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m); - }, - 'nth-last-child': function(m) { - return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m); - }, - 'nth-of-type': function(m) { - return Selector.xpath.pseudos.nth("position() ", m); - }, - 'nth-last-of-type': function(m) { - return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m); - }, - 'first-of-type': function(m) { - m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m); - }, - 'last-of-type': function(m) { - m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m); - }, - 'only-of-type': function(m) { - var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m); - }, - nth: function(fragment, m) { - var mm, formula = m[6], predicate; - if (formula == 'even') formula = '2n+0'; - if (formula == 'odd') formula = '2n+1'; - if (mm = formula.match(/^(\d+)$/)) // digit only - return '[' + fragment + "= " + mm[1] + ']'; - if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b - if (mm[1] == "-") mm[1] = -1; - var a = mm[1] ? Number(mm[1]) : 1; - var b = mm[2] ? Number(mm[2]) : 0; - predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " + - "((#{fragment} - #{b}) div #{a} >= 0)]"; - return new Template(predicate).evaluate({ - fragment: fragment, a: a, b: b }); - } - } - } - }, - - criteria: { - tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', - className: 'n = h.className(n, r, "#{1}", c); c = false;', - id: 'n = h.id(n, r, "#{1}", c); c = false;', - attrPresence: 'n = h.attrPresence(n, r, "#{1}"); c = false;', - attr: function(m) { - m[3] = (m[5] || m[6]); - return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = false;').evaluate(m); - }, - pseudo: function(m) { - if (m[6]) m[6] = m[6].replace(/"/g, '\\"'); - return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m); - }, - descendant: 'c = "descendant";', - child: 'c = "child";', - adjacent: 'c = "adjacent";', - laterSibling: 'c = "laterSibling";' - }, - - patterns: { - // combinators must be listed first - // (and descendant needs to be last combinator) - laterSibling: /^\s*~\s*/, - child: /^\s*>\s*/, - adjacent: /^\s*\+\s*/, - descendant: /^\s/, - - // selectors follow - tagName: /^\s*(\*|[\w\-]+)(\b|$)?/, - id: /^#([\w\-\*]+)(\b|$)/, - className: /^\.([\w\-\*]+)(\b|$)/, - pseudo: /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s)|(?=:))/, - attrPresence: /^\[([\w]+)\]/, - attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ - }, - - // for Selector.match and Element#match - assertions: { - tagName: function(element, matches) { - return matches[1].toUpperCase() == element.tagName.toUpperCase(); - }, - - className: function(element, matches) { - return Element.hasClassName(element, matches[1]); - }, - - id: function(element, matches) { - return element.id === matches[1]; - }, - - attrPresence: function(element, matches) { - return Element.hasAttribute(element, matches[1]); - }, - - attr: function(element, matches) { - var nodeValue = Element.readAttribute(element, matches[1]); - return Selector.operators[matches[2]](nodeValue, matches[3]); - } - }, - - handlers: { - // UTILITY FUNCTIONS - // joins two collections - concat: function(a, b) { - for (var i = 0, node; node = b[i]; i++) - a.push(node); - return a; - }, - - // marks an array of nodes for counting - mark: function(nodes) { - for (var i = 0, node; node = nodes[i]; i++) - node._counted = true; - return nodes; - }, - - unmark: function(nodes) { - for (var i = 0, node; node = nodes[i]; i++) - node._counted = undefined; - return nodes; - }, - - // mark each child node with its position (for nth calls) - // "ofType" flag indicates whether we're indexing for nth-of-type - // rather than nth-child - index: function(parentNode, reverse, ofType) { - parentNode._counted = true; - if (reverse) { - for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) { - var node = nodes[i]; - if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++; - } - } else { - for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++) - if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++; - } - }, - - // filters out duplicates and extends all nodes - unique: function(nodes) { - if (nodes.length == 0) return nodes; - var results = [], n; - for (var i = 0, l = nodes.length; i < l; i++) - if (!(n = nodes[i])._counted) { - n._counted = true; - results.push(Element.extend(n)); - } - return Selector.handlers.unmark(results); - }, - - // COMBINATOR FUNCTIONS - descendant: function(nodes) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) - h.concat(results, node.getElementsByTagName('*')); - return results; - }, - - child: function(nodes) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) { - for (var j = 0, children = [], child; child = node.childNodes[j]; j++) - if (child.nodeType == 1 && child.tagName != '!') results.push(child); - } - return results; - }, - - adjacent: function(nodes) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - var next = this.nextElementSibling(node); - if (next) results.push(next); - } - return results; - }, - - laterSibling: function(nodes) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) - h.concat(results, Element.nextSiblings(node)); - return results; - }, - - nextElementSibling: function(node) { - while (node = node.nextSibling) - if (node.nodeType == 1) return node; - return null; - }, - - previousElementSibling: function(node) { - while (node = node.previousSibling) - if (node.nodeType == 1) return node; - return null; - }, - - // TOKEN FUNCTIONS - tagName: function(nodes, root, tagName, combinator) { - tagName = tagName.toUpperCase(); - var results = [], h = Selector.handlers; - if (nodes) { - if (combinator) { - // fastlane for ordinary descendant combinators - if (combinator == "descendant") { - for (var i = 0, node; node = nodes[i]; i++) - h.concat(results, node.getElementsByTagName(tagName)); - return results; - } else nodes = this[combinator](nodes); - if (tagName == "*") return nodes; - } - for (var i = 0, node; node = nodes[i]; i++) - if (node.tagName.toUpperCase() == tagName) results.push(node); - return results; - } else return root.getElementsByTagName(tagName); - }, - - id: function(nodes, root, id, combinator) { - var targetNode = $(id), h = Selector.handlers; - if (!targetNode) return []; - if (!nodes && root == document) return [targetNode]; - if (nodes) { - if (combinator) { - if (combinator == 'child') { - for (var i = 0, node; node = nodes[i]; i++) - if (targetNode.parentNode == node) return [targetNode]; - } else if (combinator == 'descendant') { - for (var i = 0, node; node = nodes[i]; i++) - if (Element.descendantOf(targetNode, node)) return [targetNode]; - } else if (combinator == 'adjacent') { - for (var i = 0, node; node = nodes[i]; i++) - if (Selector.handlers.previousElementSibling(targetNode) == node) - return [targetNode]; - } else nodes = h[combinator](nodes); - } - for (var i = 0, node; node = nodes[i]; i++) - if (node == targetNode) return [targetNode]; - return []; - } - return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : []; - }, - - className: function(nodes, root, className, combinator) { - if (nodes && combinator) nodes = this[combinator](nodes); - return Selector.handlers.byClassName(nodes, root, className); - }, - - byClassName: function(nodes, root, className) { - if (!nodes) nodes = Selector.handlers.descendant([root]); - var needle = ' ' + className + ' '; - for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) { - nodeClassName = node.className; - if (nodeClassName.length == 0) continue; - if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle)) - results.push(node); - } - return results; - }, - - attrPresence: function(nodes, root, attr) { - if (!nodes) nodes = root.getElementsByTagName("*"); - var results = []; - for (var i = 0, node; node = nodes[i]; i++) - if (Element.hasAttribute(node, attr)) results.push(node); - return results; - }, - - attr: function(nodes, root, attr, value, operator) { - if (!nodes) nodes = root.getElementsByTagName("*"); - var handler = Selector.operators[operator], results = []; - for (var i = 0, node; node = nodes[i]; i++) { - var nodeValue = Element.readAttribute(node, attr); - if (nodeValue === null) continue; - if (handler(nodeValue, value)) results.push(node); - } - return results; - }, - - pseudo: function(nodes, name, value, root, combinator) { - if (nodes && combinator) nodes = this[combinator](nodes); - if (!nodes) nodes = root.getElementsByTagName("*"); - return Selector.pseudos[name](nodes, value, root); - } - }, - - pseudos: { - 'first-child': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - if (Selector.handlers.previousElementSibling(node)) continue; - results.push(node); - } - return results; - }, - 'last-child': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - if (Selector.handlers.nextElementSibling(node)) continue; - results.push(node); - } - return results; - }, - 'only-child': function(nodes, value, root) { - var h = Selector.handlers; - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (!h.previousElementSibling(node) && !h.nextElementSibling(node)) - results.push(node); - return results; - }, - 'nth-child': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root); - }, - 'nth-last-child': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root, true); - }, - 'nth-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root, false, true); - }, - 'nth-last-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, formula, root, true, true); - }, - 'first-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, "1", root, false, true); - }, - 'last-of-type': function(nodes, formula, root) { - return Selector.pseudos.nth(nodes, "1", root, true, true); - }, - 'only-of-type': function(nodes, formula, root) { - var p = Selector.pseudos; - return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root); - }, - - // handles the an+b logic - getIndices: function(a, b, total) { - if (a == 0) return b > 0 ? [b] : []; - return $R(1, total).inject([], function(memo, i) { - if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i); - return memo; - }); - }, - - // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type - nth: function(nodes, formula, root, reverse, ofType) { - if (nodes.length == 0) return []; - if (formula == 'even') formula = '2n+0'; - if (formula == 'odd') formula = '2n+1'; - var h = Selector.handlers, results = [], indexed = [], m; - h.mark(nodes); - for (var i = 0, node; node = nodes[i]; i++) { - if (!node.parentNode._counted) { - h.index(node.parentNode, reverse, ofType); - indexed.push(node.parentNode); - } - } - if (formula.match(/^\d+$/)) { // just a number - formula = Number(formula); - for (var i = 0, node; node = nodes[i]; i++) - if (node.nodeIndex == formula) results.push(node); - } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b - if (m[1] == "-") m[1] = -1; - var a = m[1] ? Number(m[1]) : 1; - var b = m[2] ? Number(m[2]) : 0; - var indices = Selector.pseudos.getIndices(a, b, nodes.length); - for (var i = 0, node, l = indices.length; node = nodes[i]; i++) { - for (var j = 0; j < l; j++) - if (node.nodeIndex == indices[j]) results.push(node); - } - } - h.unmark(nodes); - h.unmark(indexed); - return results; - }, - - 'empty': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) { - // IE treats comments as element nodes - if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue; - results.push(node); - } - return results; - }, - - 'not': function(nodes, selector, root) { - var h = Selector.handlers, selectorType, m; - var exclusions = new Selector(selector).findElements(root); - h.mark(exclusions); - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (!node._counted) results.push(node); - h.unmark(exclusions); - return results; - }, - - 'enabled': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (!node.disabled) results.push(node); - return results; - }, - - 'disabled': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (node.disabled) results.push(node); - return results; - }, - - 'checked': function(nodes, value, root) { - for (var i = 0, results = [], node; node = nodes[i]; i++) - if (node.checked) results.push(node); - return results; - } - }, - - operators: { - '=': function(nv, v) { return nv == v; }, - '!=': function(nv, v) { return nv != v; }, - '^=': function(nv, v) { return nv.startsWith(v); }, - '$=': function(nv, v) { return nv.endsWith(v); }, - '*=': function(nv, v) { return nv.include(v); }, - '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); }, - '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); } - }, - - matchElements: function(elements, expression) { - var matches = new Selector(expression).findElements(), h = Selector.handlers; - h.mark(matches); - for (var i = 0, results = [], element; element = elements[i]; i++) - if (element._counted) results.push(element); - h.unmark(matches); - return results; - }, - - findElement: function(elements, expression, index) { - if (Object.isNumber(expression)) { - index = expression; expression = false; - } - return Selector.matchElements(elements, expression || '*')[index || 0]; - }, - - findChildElements: function(element, expressions) { - var exprs = expressions.join(','), expressions = []; - exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { - expressions.push(m[1].strip()); - }); - var results = [], h = Selector.handlers; - for (var i = 0, l = expressions.length, selector; i < l; i++) { - selector = new Selector(expressions[i].strip()); - h.concat(results, selector.findElements(element)); - } - return (l > 1) ? h.unique(results) : results; - } -}); - -function $$() { - return Selector.findChildElements(document, $A(arguments)); -} -var Form = { - reset: function(form) { - $(form).reset(); - return form; - }, - - serializeElements: function(elements, options) { - if (typeof options != 'object') options = { hash: !!options }; - else if (options.hash === undefined) options.hash = true; - var key, value, submitted = false, submit = options.submit; - - var data = elements.inject({ }, function(result, element) { - if (!element.disabled && element.name) { - key = element.name; value = $(element).getValue(); - if (value != null && (element.type != 'submit' || (!submitted && - submit !== false && (!submit || key == submit) && (submitted = true)))) { - if (key in result) { - // a key is already present; construct an array of values - if (!Object.isArray(result[key])) result[key] = [result[key]]; - result[key].push(value); - } - else result[key] = value; - } - } - return result; - }); - - return options.hash ? data : Object.toQueryString(data); - } -}; - -Form.Methods = { - serialize: function(form, options) { - return Form.serializeElements(Form.getElements(form), options); - }, - - getElements: function(form) { - return $A($(form).getElementsByTagName('*')).inject([], - function(elements, child) { - if (Form.Element.Serializers[child.tagName.toLowerCase()]) - elements.push(Element.extend(child)); - return elements; - } - ); - }, - - getInputs: function(form, typeName, name) { - form = $(form); - var inputs = form.getElementsByTagName('input'); - - if (!typeName && !name) return $A(inputs).map(Element.extend); - - for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { - var input = inputs[i]; - if ((typeName && input.type != typeName) || (name && input.name != name)) - continue; - matchingInputs.push(Element.extend(input)); - } - - return matchingInputs; - }, - - disable: function(form) { - form = $(form); - Form.getElements(form).invoke('disable'); - return form; - }, - - enable: function(form) { - form = $(form); - Form.getElements(form).invoke('enable'); - return form; - }, - - findFirstElement: function(form) { - var elements = $(form).getElements().findAll(function(element) { - return 'hidden' != element.type && !element.disabled; - }); - var firstByIndex = elements.findAll(function(element) { - return element.hasAttribute('tabIndex') && element.tabIndex >= 0; - }).sortBy(function(element) { return element.tabIndex }).first(); - - return firstByIndex ? firstByIndex : elements.find(function(element) { - return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); - }); - }, - - focusFirstElement: function(form) { - form = $(form); - form.findFirstElement().activate(); - return form; - }, - - request: function(form, options) { - form = $(form), options = Object.clone(options || { }); - - var params = options.parameters, action = form.readAttribute('action') || ''; - if (action.blank()) action = window.location.href; - options.parameters = form.serialize(true); - - if (params) { - if (Object.isString(params)) params = params.toQueryParams(); - Object.extend(options.parameters, params); - } - - if (form.hasAttribute('method') && !options.method) - options.method = form.method; - - return new Ajax.Request(action, options); - } -}; - -/*--------------------------------------------------------------------------*/ - -Form.Element = { - focus: function(element) { - $(element).focus(); - return element; - }, - - select: function(element) { - $(element).select(); - return element; - } -}; - -Form.Element.Methods = { - serialize: function(element) { - element = $(element); - if (!element.disabled && element.name) { - var value = element.getValue(); - if (value != undefined) { - var pair = { }; - pair[element.name] = value; - return Object.toQueryString(pair); - } - } - return ''; - }, - - getValue: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - return Form.Element.Serializers[method](element); - }, - - setValue: function(element, value) { - element = $(element); - var method = element.tagName.toLowerCase(); - Form.Element.Serializers[method](element, value); - return element; - }, - - clear: function(element) { - $(element).value = ''; - return element; - }, - - present: function(element) { - return $(element).value != ''; - }, - - activate: function(element) { - element = $(element); - try { - element.focus(); - if (element.select && (element.tagName.toLowerCase() != 'input' || - !['button', 'reset', 'submit'].include(element.type))) - element.select(); - } catch (e) { } - return element; - }, - - disable: function(element) { - element = $(element); - element.blur(); - element.disabled = true; - return element; - }, - - enable: function(element) { - element = $(element); - element.disabled = false; - return element; - } -}; - -/*--------------------------------------------------------------------------*/ - -var Field = Form.Element; -var $F = Form.Element.Methods.getValue; - -/*--------------------------------------------------------------------------*/ - -Form.Element.Serializers = { - input: function(element, value) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - return Form.Element.Serializers.inputSelector(element, value); - default: - return Form.Element.Serializers.textarea(element, value); - } - }, - - inputSelector: function(element, value) { - if (value === undefined) return element.checked ? element.value : null; - else element.checked = !!value; - }, - - textarea: function(element, value) { - if (value === undefined) return element.value; - else element.value = value; - }, - - select: function(element, index) { - if (index === undefined) - return this[element.type == 'select-one' ? - 'selectOne' : 'selectMany'](element); - else { - var opt, value, single = !Object.isArray(index); - for (var i = 0, length = element.length; i < length; i++) { - opt = element.options[i]; - value = this.optionValue(opt); - if (single) { - if (value == index) { - opt.selected = true; - return; - } - } - else opt.selected = index.include(value); - } - } - }, - - selectOne: function(element) { - var index = element.selectedIndex; - return index >= 0 ? this.optionValue(element.options[index]) : null; - }, - - selectMany: function(element) { - var values, length = element.length; - if (!length) return null; - - for (var i = 0, values = []; i < length; i++) { - var opt = element.options[i]; - if (opt.selected) values.push(this.optionValue(opt)); - } - return values; - }, - - optionValue: function(opt) { - // extend element because hasAttribute may not be native - return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text; - } -}; - -/*--------------------------------------------------------------------------*/ - -Abstract.TimedObserver = Class.create(PeriodicalExecuter, { - initialize: function($super, element, frequency, callback) { - $super(callback, frequency); - this.element = $(element); - this.lastValue = this.getValue(); - }, - - execute: function() { - var value = this.getValue(); - if (Object.isString(this.lastValue) && Object.isString(value) ? - this.lastValue != value : String(this.lastValue) != String(value)) { - this.callback(this.element, value); - this.lastValue = value; - } - } -}); - -Form.Element.Observer = Class.create(Abstract.TimedObserver, { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.Observer = Class.create(Abstract.TimedObserver, { - getValue: function() { - return Form.serialize(this.element); - } -}); - -/*--------------------------------------------------------------------------*/ - -Abstract.EventObserver = Class.create({ - initialize: function(element, callback) { - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - if (this.element.tagName.toLowerCase() == 'form') - this.registerFormCallbacks(); - else - this.registerCallback(this.element); - }, - - onElementEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - }, - - registerFormCallbacks: function() { - Form.getElements(this.element).each(this.registerCallback, this); - }, - - registerCallback: function(element) { - if (element.type) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - Event.observe(element, 'click', this.onElementEvent.bind(this)); - break; - default: - Event.observe(element, 'change', this.onElementEvent.bind(this)); - break; - } - } - } -}); - -Form.Element.EventObserver = Class.create(Abstract.EventObserver, { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.EventObserver = Class.create(Abstract.EventObserver, { - getValue: function() { - return Form.serialize(this.element); - } -}); -if (!window.Event) var Event = { }; - -Object.extend(Event, { - KEY_BACKSPACE: 8, - KEY_TAB: 9, - KEY_RETURN: 13, - KEY_ESC: 27, - KEY_LEFT: 37, - KEY_UP: 38, - KEY_RIGHT: 39, - KEY_DOWN: 40, - KEY_DELETE: 46, - KEY_HOME: 36, - KEY_END: 35, - KEY_PAGEUP: 33, - KEY_PAGEDOWN: 34, - KEY_INSERT: 45, - - cache: { }, - - relatedTarget: function(event) { - var element; - switch(event.type) { - case 'mouseover': element = event.fromElement; break; - case 'mouseout': element = event.toElement; break; - default: return null; - } - return Element.extend(element); - } -}); - -Event.Methods = (function() { - var isButton; - - if (Prototype.Browser.IE) { - var buttonMap = { 0: 1, 1: 4, 2: 2 }; - isButton = function(event, code) { - return event.button == buttonMap[code]; - }; - - } else if (Prototype.Browser.WebKit) { - isButton = function(event, code) { - switch (code) { - case 0: return event.which == 1 && !event.metaKey; - case 1: return event.which == 1 && event.metaKey; - default: return false; - } - }; - - } else { - isButton = function(event, code) { - return event.which ? (event.which === code + 1) : (event.button === code); - }; - } - - return { - isLeftClick: function(event) { return isButton(event, 0) }, - isMiddleClick: function(event) { return isButton(event, 1) }, - isRightClick: function(event) { return isButton(event, 2) }, - - element: function(event) { - var node = Event.extend(event).target; - return Element.extend(node.nodeType == Node.TEXT_NODE ? node.parentNode : node); - }, - - findElement: function(event, expression) { - var element = Event.element(event); - return element.match(expression) ? element : element.up(expression); - }, - - pointer: function(event) { - return { - x: event.pageX || (event.clientX + - (document.documentElement.scrollLeft || document.body.scrollLeft)), - y: event.pageY || (event.clientY + - (document.documentElement.scrollTop || document.body.scrollTop)) - }; - }, - - pointerX: function(event) { return Event.pointer(event).x }, - pointerY: function(event) { return Event.pointer(event).y }, - - stop: function(event) { - Event.extend(event); - event.preventDefault(); - event.stopPropagation(); - event.stopped = true; - } - }; -})(); - -Event.extend = (function() { - var methods = Object.keys(Event.Methods).inject({ }, function(m, name) { - m[name] = Event.Methods[name].methodize(); - return m; - }); - - if (Prototype.Browser.IE) { - Object.extend(methods, { - stopPropagation: function() { this.cancelBubble = true }, - preventDefault: function() { this.returnValue = false }, - inspect: function() { return "[object Event]" } - }); - - return function(event) { - if (!event) return false; - if (event._extendedByPrototype) return event; - - event._extendedByPrototype = Prototype.emptyFunction; - var pointer = Event.pointer(event); - Object.extend(event, { - target: event.srcElement, - relatedTarget: Event.relatedTarget(event), - pageX: pointer.x, - pageY: pointer.y - }); - return Object.extend(event, methods); - }; - - } else { - Event.prototype = Event.prototype || document.createEvent("HTMLEvents").__proto__; - Object.extend(Event.prototype, methods); - return Prototype.K; - } -})(); - -Object.extend(Event, (function() { - var cache = Event.cache; - - function getEventID(element) { - if (element._eventID) return element._eventID; - arguments.callee.id = arguments.callee.id || 1; - return element._eventID = ++arguments.callee.id; - } - - function getDOMEventName(eventName) { - if (eventName && eventName.include(':')) return "dataavailable"; - return eventName; - } - - function getCacheForID(id) { - return cache[id] = cache[id] || { }; - } - - function getWrappersForEventName(id, eventName) { - var c = getCacheForID(id); - return c[eventName] = c[eventName] || []; - } - - function createWrapper(element, eventName, handler) { - var id = getEventID(element); - var c = getWrappersForEventName(id, eventName); - if (c.pluck("handler").include(handler)) return false; - - var wrapper = function(event) { - if (!Event || !Event.extend || - (event.eventName && event.eventName != eventName)) - return false; - - Event.extend(event); - handler.call(element, event) - }; - - wrapper.handler = handler; - c.push(wrapper); - return wrapper; - } - - function findWrapper(id, eventName, handler) { - var c = getWrappersForEventName(id, eventName); - return c.find(function(wrapper) { return wrapper.handler == handler }); - } - - function destroyWrapper(id, eventName, handler) { - var c = getCacheForID(id); - if (!c[eventName]) return false; - c[eventName] = c[eventName].without(findWrapper(id, eventName, handler)); - } - - function destroyCache() { - for (var id in cache) - for (var eventName in cache[id]) - cache[id][eventName] = null; - } - - if (window.attachEvent) { - window.attachEvent("onunload", destroyCache); - } - - return { - observe: function(element, eventName, handler) { - element = $(element); - var name = getDOMEventName(eventName); - - var wrapper = createWrapper(element, eventName, handler); - if (!wrapper) return element; - - if (element.addEventListener) { - element.addEventListener(name, wrapper, false); - } else { - element.attachEvent("on" + name, wrapper); - } - - return element; - }, - - stopObserving: function(element, eventName, handler) { - element = $(element); - var id = getEventID(element), name = getDOMEventName(eventName); - - if (!handler && eventName) { - getWrappersForEventName(id, eventName).each(function(wrapper) { - element.stopObserving(eventName, wrapper.handler); - }); - return element; - - } else if (!eventName) { - Object.keys(getCacheForID(id)).each(function(eventName) { - element.stopObserving(eventName); - }); - return element; - } - - var wrapper = findWrapper(id, eventName, handler); - if (!wrapper) return element; - - if (element.removeEventListener) { - element.removeEventListener(name, wrapper, false); - } else { - element.detachEvent("on" + name, wrapper); - } - - destroyWrapper(id, eventName, handler); - - return element; - }, - - fire: function(element, eventName, memo) { - element = $(element); - if (element == document && document.createEvent && !element.dispatchEvent) - element = document.documentElement; - - if (document.createEvent) { - var event = document.createEvent("HTMLEvents"); - event.initEvent("dataavailable", true, true); - } else { - var event = document.createEventObject(); - event.eventType = "ondataavailable"; - } - - event.eventName = eventName; - event.memo = memo || { }; - - if (document.createEvent) { - element.dispatchEvent(event); - } else { - element.fireEvent(event.eventType, event); - } - - return event; - } - }; -})()); - -Object.extend(Event, Event.Methods); - -Element.addMethods({ - fire: Event.fire, - observe: Event.observe, - stopObserving: Event.stopObserving -}); - -Object.extend(document, { - fire: Element.Methods.fire.methodize(), - observe: Element.Methods.observe.methodize(), - stopObserving: Element.Methods.stopObserving.methodize() -}); - -(function() { - /* Support for the DOMContentLoaded event is based on work by Dan Webb, - Matthias Miller, Dean Edwards and John Resig. */ - - var timer, fired = false; - - function fireContentLoadedEvent() { - if (fired) return; - if (timer) window.clearInterval(timer); - document.fire("dom:loaded"); - fired = true; - } - - if (document.addEventListener) { - if (Prototype.Browser.WebKit) { - timer = window.setInterval(function() { - if (/loaded|complete/.test(document.readyState)) - fireContentLoadedEvent(); - }, 0); - - Event.observe(window, "load", fireContentLoadedEvent); - - } else { - document.addEventListener("DOMContentLoaded", - fireContentLoadedEvent, false); - } - - } else { - document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>"); - $("__onDOMContentLoaded").onreadystatechange = function() { - if (this.readyState == "complete") { - this.onreadystatechange = null; - fireContentLoadedEvent(); - } - }; - } -})(); -/*------------------------------- DEPRECATED -------------------------------*/ - -Hash.toQueryString = Object.toQueryString; - -var Toggle = { display: Element.toggle }; - -Element.Methods.childOf = Element.Methods.descendantOf; - -var Insertion = { - Before: function(element, content) { - return Element.insert(element, {before:content}); - }, - - Top: function(element, content) { - return Element.insert(element, {top:content}); - }, - - Bottom: function(element, content) { - return Element.insert(element, {bottom:content}); - }, - - After: function(element, content) { - return Element.insert(element, {after:content}); - } -}; - -var $continue = new Error('"throw $continue" is deprecated, use "return" instead'); - -// This should be moved to script.aculo.us; notice the deprecated methods -// further below, that map to the newer Element methods. -var Position = { - // set to true if needed, warning: firefox performance problems - // NOT neeeded for page scrolling, only if draggable contained in - // scrollable elements - includeScrollOffsets: false, - - // must be called before calling withinIncludingScrolloffset, every time the - // page is scrolled - prepare: function() { - this.deltaX = window.pageXOffset - || document.documentElement.scrollLeft - || document.body.scrollLeft - || 0; - this.deltaY = window.pageYOffset - || document.documentElement.scrollTop - || document.body.scrollTop - || 0; - }, - - // caches x/y coordinate pair to use with overlap - within: function(element, x, y) { - if (this.includeScrollOffsets) - return this.withinIncludingScrolloffsets(element, x, y); - this.xcomp = x; - this.ycomp = y; - this.offset = Element.cumulativeOffset(element); - - return (y >= this.offset[1] && - y < this.offset[1] + element.offsetHeight && - x >= this.offset[0] && - x < this.offset[0] + element.offsetWidth); - }, - - withinIncludingScrolloffsets: function(element, x, y) { - var offsetcache = Element.cumulativeScrollOffset(element); - - this.xcomp = x + offsetcache[0] - this.deltaX; - this.ycomp = y + offsetcache[1] - this.deltaY; - this.offset = Element.cumulativeOffset(element); - - return (this.ycomp >= this.offset[1] && - this.ycomp < this.offset[1] + element.offsetHeight && - this.xcomp >= this.offset[0] && - this.xcomp < this.offset[0] + element.offsetWidth); - }, - - // within must be called directly before - overlap: function(mode, element) { - if (!mode) return 0; - if (mode == 'vertical') - return ((this.offset[1] + element.offsetHeight) - this.ycomp) / - element.offsetHeight; - if (mode == 'horizontal') - return ((this.offset[0] + element.offsetWidth) - this.xcomp) / - element.offsetWidth; - }, - - // Deprecation layer -- use newer Element methods now (1.5.2). - - cumulativeOffset: Element.Methods.cumulativeOffset, - - positionedOffset: Element.Methods.positionedOffset, - - absolutize: function(element) { - Position.prepare(); - return Element.absolutize(element); - }, - - relativize: function(element) { - Position.prepare(); - return Element.relativize(element); - }, - - realOffset: Element.Methods.cumulativeScrollOffset, - - offsetParent: Element.Methods.getOffsetParent, - - page: Element.Methods.viewportOffset, - - clone: function(source, target, options) { - options = options || { }; - return Element.clonePosition(target, source, options); - } -}; - -/*--------------------------------------------------------------------------*/ - -if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){ - function iter(name) { - return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]"; - } - - instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ? - function(element, className) { - className = className.toString().strip(); - var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className); - return cond ? document._getElementsByXPath('.//*' + cond, element) : []; - } : function(element, className) { - className = className.toString().strip(); - var elements = [], classNames = (/\s/.test(className) ? $w(className) : null); - if (!classNames && !className) return elements; - - var nodes = $(element).getElementsByTagName('*'); - className = ' ' + className + ' '; - - for (var i = 0, child, cn; child = nodes[i]; i++) { - if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) || - (classNames && classNames.all(function(name) { - return !name.toString().blank() && cn.include(' ' + name + ' '); - })))) - elements.push(Element.extend(child)); - } - return elements; - }; - - return function(className, parentElement) { - return $(parentElement || document.body).getElementsByClassName(className); - }; -}(Element.Methods); - -/*--------------------------------------------------------------------------*/ - -Element.ClassNames = Class.create(); -Element.ClassNames.prototype = { - initialize: function(element) { - this.element = $(element); - }, - - _each: function(iterator) { - this.element.className.split(/\s+/).select(function(name) { - return name.length > 0; - })._each(iterator); - }, - - set: function(className) { - this.element.className = className; - }, - - add: function(classNameToAdd) { - if (this.include(classNameToAdd)) return; - this.set($A(this).concat(classNameToAdd).join(' ')); - }, - - remove: function(classNameToRemove) { - if (!this.include(classNameToRemove)) return; - this.set($A(this).without(classNameToRemove).join(' ')); - }, - - toString: function() { - return $A(this).join(' '); - } -}; - -Object.extend(Element.ClassNames.prototype, Enumerable); - -/*--------------------------------------------------------------------------*/ - -Element.addMethods(); \ No newline at end of file diff --git a/lib/mcollective/vendor/json/diagrams/.keep b/lib/mcollective/vendor/json/diagrams/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/lib/mcollective/vendor/json/ext/json/ext/generator/extconf.rb b/lib/mcollective/vendor/json/ext/json/ext/generator/extconf.rb deleted file mode 100644 index 149f22c..0000000 --- a/lib/mcollective/vendor/json/ext/json/ext/generator/extconf.rb +++ /dev/null @@ -1,20 +0,0 @@ -require 'mkmf' -require 'rbconfig' - -unless $CFLAGS.gsub!(/ -O[\dsz]?/, ' -O3') - $CFLAGS << ' -O3' -end -if CONFIG['CC'] =~ /gcc/ - $CFLAGS << ' -Wall' - #unless $CFLAGS.gsub!(/ -O[\dsz]?/, ' -O0 -ggdb') - # $CFLAGS << ' -O0 -ggdb' - #end -end - -if RUBY_VERSION < "1.9" - have_header("re.h") -else - have_header("ruby/re.h") - have_header("ruby/encoding.h") -end -create_makefile 'json/ext/generator' diff --git a/lib/mcollective/vendor/json/ext/json/ext/generator/generator.c b/lib/mcollective/vendor/json/ext/json/ext/generator/generator.c deleted file mode 100644 index 6505882..0000000 --- a/lib/mcollective/vendor/json/ext/json/ext/generator/generator.c +++ /dev/null @@ -1,1417 +0,0 @@ -#include "generator.h" - -#ifdef HAVE_RUBY_ENCODING_H -static VALUE CEncoding_UTF_8; -static ID i_encoding, i_encode; -#endif - -static VALUE mJSON, mExt, mGenerator, cState, mGeneratorMethods, mObject, - mHash, mArray, mFixnum, mBignum, mFloat, mString, mString_Extend, - mTrueClass, mFalseClass, mNilClass, eGeneratorError, - eNestingError, CRegexp_MULTILINE, CJSON_SAFE_STATE_PROTOTYPE, - i_SAFE_STATE_PROTOTYPE; - -static ID i_to_s, i_to_json, i_new, i_indent, i_space, i_space_before, - i_object_nl, i_array_nl, i_max_nesting, i_allow_nan, i_ascii_only, - i_pack, i_unpack, i_create_id, i_extend, i_key_p, i_aref, i_send, - i_respond_to_p, i_match, i_keys, i_depth, i_dup; - -/* - * Copyright 2001-2004 Unicode, Inc. - * - * Disclaimer - * - * This source code is provided as is by Unicode, Inc. No claims are - * made as to fitness for any particular purpose. No warranties of any - * kind are expressed or implied. The recipient agrees to determine - * applicability of information provided. If this file has been - * purchased on magnetic or optical media from Unicode, Inc., the - * sole remedy for any claim will be exchange of defective media - * within 90 days of receipt. - * - * Limitations on Rights to Redistribute This Code - * - * Unicode, Inc. hereby grants the right to freely use the information - * supplied in this file in the creation of products supporting the - * Unicode Standard, and to make copies of this file in any form - * for internal or external distribution as long as this notice - * remains attached. - */ - -/* - * Index into the table below with the first byte of a UTF-8 sequence to - * get the number of trailing bytes that are supposed to follow it. - * Note that *legal* UTF-8 values can't have 4 or 5-bytes. The table is - * left as-is for anyone who may want to do such conversion, which was - * allowed in earlier algorithms. - */ -static const char trailingBytesForUTF8[256] = { - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5 -}; - -/* - * Magic values subtracted from a buffer value during UTF8 conversion. - * This table contains as many values as there might be trailing bytes - * in a UTF-8 sequence. - */ -static const UTF32 offsetsFromUTF8[6] = { 0x00000000UL, 0x00003080UL, 0x000E2080UL, - 0x03C82080UL, 0xFA082080UL, 0x82082080UL }; - -/* - * Utility routine to tell whether a sequence of bytes is legal UTF-8. - * This must be called with the length pre-determined by the first byte. - * If not calling this from ConvertUTF8to*, then the length can be set by: - * length = trailingBytesForUTF8[*source]+1; - * and the sequence is illegal right away if there aren't that many bytes - * available. - * If presented with a length > 4, this returns 0. The Unicode - * definition of UTF-8 goes up to 4-byte sequences. - */ -static unsigned char isLegalUTF8(const UTF8 *source, unsigned long length) -{ - UTF8 a; - const UTF8 *srcptr = source+length; - switch (length) { - default: return 0; - /* Everything else falls through when "1"... */ - case 4: if ((a = (*--srcptr)) < 0x80 || a > 0xBF) return 0; - case 3: if ((a = (*--srcptr)) < 0x80 || a > 0xBF) return 0; - case 2: if ((a = (*--srcptr)) > 0xBF) return 0; - - switch (*source) { - /* no fall-through in this inner switch */ - case 0xE0: if (a < 0xA0) return 0; break; - case 0xED: if (a > 0x9F) return 0; break; - case 0xF0: if (a < 0x90) return 0; break; - case 0xF4: if (a > 0x8F) return 0; break; - default: if (a < 0x80) return 0; - } - - case 1: if (*source >= 0x80 && *source < 0xC2) return 0; - } - if (*source > 0xF4) return 0; - return 1; -} - -/* Escapes the UTF16 character and stores the result in the buffer buf. */ -static void unicode_escape(char *buf, UTF16 character) -{ - const char *digits = "0123456789abcdef"; - - buf[2] = digits[character >> 12]; - buf[3] = digits[(character >> 8) & 0xf]; - buf[4] = digits[(character >> 4) & 0xf]; - buf[5] = digits[character & 0xf]; -} - -/* Escapes the UTF16 character and stores the result in the buffer buf, then - * the buffer buf іs appended to the FBuffer buffer. */ -static void unicode_escape_to_buffer(FBuffer *buffer, char buf[6], UTF16 - character) -{ - unicode_escape(buf, character); - fbuffer_append(buffer, buf, 6); -} - -/* Converts string to a JSON string in FBuffer buffer, where all but the ASCII - * and control characters are JSON escaped. */ -static void convert_UTF8_to_JSON_ASCII(FBuffer *buffer, VALUE string) -{ - const UTF8 *source = (UTF8 *) RSTRING_PTR(string); - const UTF8 *sourceEnd = source + RSTRING_LEN(string); - char buf[6] = { '\\', 'u' }; - - while (source < sourceEnd) { - UTF32 ch = 0; - unsigned short extraBytesToRead = trailingBytesForUTF8[*source]; - if (source + extraBytesToRead >= sourceEnd) { - rb_raise(rb_path2class("JSON::GeneratorError"), - "partial character in source, but hit end"); - } - if (!isLegalUTF8(source, extraBytesToRead+1)) { - rb_raise(rb_path2class("JSON::GeneratorError"), - "source sequence is illegal/malformed utf-8"); - } - /* - * The cases all fall through. See "Note A" below. - */ - switch (extraBytesToRead) { - case 5: ch += *source++; ch <<= 6; /* remember, illegal UTF-8 */ - case 4: ch += *source++; ch <<= 6; /* remember, illegal UTF-8 */ - case 3: ch += *source++; ch <<= 6; - case 2: ch += *source++; ch <<= 6; - case 1: ch += *source++; ch <<= 6; - case 0: ch += *source++; - } - ch -= offsetsFromUTF8[extraBytesToRead]; - - if (ch <= UNI_MAX_BMP) { /* Target is a character <= 0xFFFF */ - /* UTF-16 surrogate values are illegal in UTF-32 */ - if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END) { -#if UNI_STRICT_CONVERSION - source -= (extraBytesToRead+1); /* return to the illegal value itself */ - rb_raise(rb_path2class("JSON::GeneratorError"), - "source sequence is illegal/malformed utf-8"); -#else - unicode_escape_to_buffer(buffer, buf, UNI_REPLACEMENT_CHAR); -#endif - } else { - /* normal case */ - if (ch >= 0x20 && ch <= 0x7f) { - switch (ch) { - case '\\': - fbuffer_append(buffer, "\\\\", 2); - break; - case '"': - fbuffer_append(buffer, "\\\"", 2); - break; - default: - fbuffer_append_char(buffer, (char)ch); - break; - } - } else { - switch (ch) { - case '\n': - fbuffer_append(buffer, "\\n", 2); - break; - case '\r': - fbuffer_append(buffer, "\\r", 2); - break; - case '\t': - fbuffer_append(buffer, "\\t", 2); - break; - case '\f': - fbuffer_append(buffer, "\\f", 2); - break; - case '\b': - fbuffer_append(buffer, "\\b", 2); - break; - default: - unicode_escape_to_buffer(buffer, buf, (UTF16) ch); - break; - } - } - } - } else if (ch > UNI_MAX_UTF16) { -#if UNI_STRICT_CONVERSION - source -= (extraBytesToRead+1); /* return to the start */ - rb_raise(rb_path2class("JSON::GeneratorError"), - "source sequence is illegal/malformed utf8"); -#else - unicode_escape_to_buffer(buffer, buf, UNI_REPLACEMENT_CHAR); -#endif - } else { - /* target is a character in range 0xFFFF - 0x10FFFF. */ - ch -= halfBase; - unicode_escape_to_buffer(buffer, buf, (UTF16)((ch >> halfShift) + UNI_SUR_HIGH_START)); - unicode_escape_to_buffer(buffer, buf, (UTF16)((ch & halfMask) + UNI_SUR_LOW_START)); - } - } -} - -/* Converts string to a JSON string in FBuffer buffer, where only the - * characters required by the JSON standard are JSON escaped. The remaining - * characters (should be UTF8) are just passed through and appended to the - * result. */ -static void convert_UTF8_to_JSON(FBuffer *buffer, VALUE string) -{ - const char *ptr = RSTRING_PTR(string), *p; - unsigned long len = RSTRING_LEN(string), start = 0, end = 0; - const char *escape = NULL; - int escape_len; - unsigned char c; - char buf[6] = { '\\', 'u' }; - - for (start = 0, end = 0; end < len;) { - p = ptr + end; - c = (unsigned char) *p; - if (c < 0x20) { - switch (c) { - case '\n': - escape = "\\n"; - escape_len = 2; - break; - case '\r': - escape = "\\r"; - escape_len = 2; - break; - case '\t': - escape = "\\t"; - escape_len = 2; - break; - case '\f': - escape = "\\f"; - escape_len = 2; - break; - case '\b': - escape = "\\b"; - escape_len = 2; - break; - default: - unicode_escape(buf, (UTF16) *p); - escape = buf; - escape_len = 6; - break; - } - } else { - switch (c) { - case '\\': - escape = "\\\\"; - escape_len = 2; - break; - case '"': - escape = "\\\""; - escape_len = 2; - break; - default: - end++; - continue; - break; - } - } - fbuffer_append(buffer, ptr + start, end - start); - fbuffer_append(buffer, escape, escape_len); - start = ++end; - escape = NULL; - } - fbuffer_append(buffer, ptr + start, end - start); -} - -static char *fstrndup(const char *ptr, unsigned long len) { - char *result; - if (len <= 0) return NULL; - result = ALLOC_N(char, len); - memccpy(result, ptr, 0, len); - return result; -} - -/* fbuffer implementation */ - -static FBuffer *fbuffer_alloc() -{ - FBuffer *fb = ALLOC(FBuffer); - memset((void *) fb, 0, sizeof(FBuffer)); - fb->initial_length = FBUFFER_INITIAL_LENGTH; - return fb; -} - -static FBuffer *fbuffer_alloc_with_length(unsigned long initial_length) -{ - FBuffer *fb; - assert(initial_length > 0); - fb = ALLOC(FBuffer); - memset((void *) fb, 0, sizeof(FBuffer)); - fb->initial_length = initial_length; - return fb; -} - -static void fbuffer_free(FBuffer *fb) -{ - if (fb->ptr) ruby_xfree(fb->ptr); - ruby_xfree(fb); -} - -static void fbuffer_free_only_buffer(FBuffer *fb) -{ - ruby_xfree(fb); -} - -static void fbuffer_clear(FBuffer *fb) -{ - fb->len = 0; -} - -static void fbuffer_inc_capa(FBuffer *fb, unsigned long requested) -{ - unsigned long required; - - if (!fb->ptr) { - fb->ptr = ALLOC_N(char, fb->initial_length); - fb->capa = fb->initial_length; - } - - for (required = fb->capa; requested > required - fb->len; required <<= 1); - - if (required > fb->capa) { - REALLOC_N(fb->ptr, char, required); - fb->capa = required; - } -} - -static void fbuffer_append(FBuffer *fb, const char *newstr, unsigned long len) -{ - if (len > 0) { - fbuffer_inc_capa(fb, len); - MEMCPY(fb->ptr + fb->len, newstr, char, len); - fb->len += len; - } -} - -static void fbuffer_append_char(FBuffer *fb, char newchr) -{ - fbuffer_inc_capa(fb, 1); - *(fb->ptr + fb->len) = newchr; - fb->len++; -} - -static void freverse(char *start, char *end) -{ - char c; - - while (end > start) { - c = *end, *end-- = *start, *start++ = c; - } -} - -static long fltoa(long number, char *buf) -{ - static char digits[] = "0123456789"; - long sign = number; - char* tmp = buf; - - if (sign < 0) number = -number; - do *tmp++ = digits[number % 10]; while (number /= 10); - if (sign < 0) *tmp++ = '-'; - freverse(buf, tmp - 1); - return tmp - buf; -} - -static void fbuffer_append_long(FBuffer *fb, long number) -{ - char buf[20]; - unsigned long len = fltoa(number, buf); - fbuffer_append(fb, buf, len); -} - -static FBuffer *fbuffer_dup(FBuffer *fb) -{ - unsigned long len = fb->len; - FBuffer *result; - - if (len > 0) { - result = fbuffer_alloc_with_length(len); - fbuffer_append(result, FBUFFER_PAIR(fb)); - } else { - result = fbuffer_alloc(); - } - return result; -} - -/* - * Document-module: JSON::Ext::Generator - * - * This is the JSON generator implemented as a C extension. It can be - * configured to be used by setting - * - * JSON.generator = JSON::Ext::Generator - * - * with the method generator= in JSON. - * - */ - -/* - * call-seq: to_json(state = nil) - * - * Returns a JSON string containing a JSON object, that is generated from - * this Hash instance. - * _state_ is a JSON::State object, that can also be used to configure the - * produced JSON string output further. - */ -static VALUE mHash_to_json(int argc, VALUE *argv, VALUE self) -{ - GENERATE_JSON(object); -} - -/* - * call-seq: to_json(state = nil) - * - * Returns a JSON string containing a JSON array, that is generated from - * this Array instance. - * _state_ is a JSON::State object, that can also be used to configure the - * produced JSON string output further. - */ -static VALUE mArray_to_json(int argc, VALUE *argv, VALUE self) { - GENERATE_JSON(array); -} - -/* - * call-seq: to_json(*) - * - * Returns a JSON string representation for this Integer number. - */ -static VALUE mFixnum_to_json(int argc, VALUE *argv, VALUE self) -{ - GENERATE_JSON(fixnum); -} - -/* - * call-seq: to_json(*) - * - * Returns a JSON string representation for this Integer number. - */ -static VALUE mBignum_to_json(int argc, VALUE *argv, VALUE self) -{ - GENERATE_JSON(bignum); -} - -/* - * call-seq: to_json(*) - * - * Returns a JSON string representation for this Float number. - */ -static VALUE mFloat_to_json(int argc, VALUE *argv, VALUE self) -{ - GENERATE_JSON(float); -} - -/* - * call-seq: String.included(modul) - * - * Extends _modul_ with the String::Extend module. - */ -static VALUE mString_included_s(VALUE self, VALUE modul) { - VALUE result = rb_funcall(modul, i_extend, 1, mString_Extend); - return result; -} - -/* - * call-seq: to_json(*) - * - * This string should be encoded with UTF-8 A call to this method - * returns a JSON string encoded with UTF16 big endian characters as - * \u????. - */ -static VALUE mString_to_json(int argc, VALUE *argv, VALUE self) -{ - GENERATE_JSON(string); -} - -/* - * call-seq: to_json_raw_object() - * - * This method creates a raw object hash, that can be nested into - * other data structures and will be generated as a raw string. This - * method should be used, if you want to convert raw strings to JSON - * instead of UTF-8 strings, e. g. binary data. - */ -static VALUE mString_to_json_raw_object(VALUE self) -{ - VALUE ary; - VALUE result = rb_hash_new(); - rb_hash_aset(result, rb_funcall(mJSON, i_create_id, 0), rb_class_name(rb_obj_class(self))); - ary = rb_funcall(self, i_unpack, 1, rb_str_new2("C*")); - rb_hash_aset(result, rb_str_new2("raw"), ary); - return result; -} - -/* - * call-seq: to_json_raw(*args) - * - * This method creates a JSON text from the result of a call to - * to_json_raw_object of this String. - */ -static VALUE mString_to_json_raw(int argc, VALUE *argv, VALUE self) -{ - VALUE obj = mString_to_json_raw_object(self); - Check_Type(obj, T_HASH); - return mHash_to_json(argc, argv, obj); -} - -/* - * call-seq: json_create(o) - * - * Raw Strings are JSON Objects (the raw bytes are stored in an array for the - * key "raw"). The Ruby String can be created by this module method. - */ -static VALUE mString_Extend_json_create(VALUE self, VALUE o) -{ - VALUE ary; - Check_Type(o, T_HASH); - ary = rb_hash_aref(o, rb_str_new2("raw")); - return rb_funcall(ary, i_pack, 1, rb_str_new2("C*")); -} - -/* - * call-seq: to_json(*) - * - * Returns a JSON string for true: 'true'. - */ -static VALUE mTrueClass_to_json(int argc, VALUE *argv, VALUE self) -{ - GENERATE_JSON(true); -} - -/* - * call-seq: to_json(*) - * - * Returns a JSON string for false: 'false'. - */ -static VALUE mFalseClass_to_json(int argc, VALUE *argv, VALUE self) -{ - GENERATE_JSON(false); -} - -/* - * call-seq: to_json(*) - * - */ -static VALUE mNilClass_to_json(int argc, VALUE *argv, VALUE self) -{ - GENERATE_JSON(null); -} - -/* - * call-seq: to_json(*) - * - * Converts this object to a string (calling #to_s), converts - * it to a JSON string, and returns the result. This is a fallback, if no - * special method #to_json was defined for some object. - */ -static VALUE mObject_to_json(int argc, VALUE *argv, VALUE self) -{ - VALUE state; - VALUE string = rb_funcall(self, i_to_s, 0); - rb_scan_args(argc, argv, "01", &state); - Check_Type(string, T_STRING); - state = cState_from_state_s(cState, state); - return cState_partial_generate(state, string); -} - -static void State_free(JSON_Generator_State *state) -{ - if (state->indent) ruby_xfree(state->indent); - if (state->space) ruby_xfree(state->space); - if (state->space_before) ruby_xfree(state->space_before); - if (state->object_nl) ruby_xfree(state->object_nl); - if (state->array_nl) ruby_xfree(state->array_nl); - if (state->array_delim) fbuffer_free(state->array_delim); - if (state->object_delim) fbuffer_free(state->object_delim); - if (state->object_delim2) fbuffer_free(state->object_delim2); - ruby_xfree(state); -} - -static JSON_Generator_State *State_allocate() -{ - JSON_Generator_State *state = ALLOC(JSON_Generator_State); - MEMZERO(state, JSON_Generator_State, 1); - return state; -} - -static VALUE cState_s_allocate(VALUE klass) -{ - JSON_Generator_State *state = State_allocate(); - return Data_Wrap_Struct(klass, NULL, State_free, state); -} - -/* - * call-seq: configure(opts) - * - * Configure this State instance with the Hash _opts_, and return - * itself. - */ -static VALUE cState_configure(VALUE self, VALUE opts) -{ - VALUE tmp; - GET_STATE(self); - tmp = rb_convert_type(opts, T_HASH, "Hash", "to_hash"); - if (NIL_P(tmp)) tmp = rb_convert_type(opts, T_HASH, "Hash", "to_h"); - if (NIL_P(tmp)) { - rb_raise(rb_eArgError, "opts has to be hash like or convertable into a hash"); - } - opts = tmp; - tmp = rb_hash_aref(opts, ID2SYM(i_indent)); - if (RTEST(tmp)) { - unsigned long len; - Check_Type(tmp, T_STRING); - len = RSTRING_LEN(tmp); - state->indent = fstrndup(RSTRING_PTR(tmp), len); - state->indent_len = len; - } - tmp = rb_hash_aref(opts, ID2SYM(i_space)); - if (RTEST(tmp)) { - unsigned long len; - Check_Type(tmp, T_STRING); - len = RSTRING_LEN(tmp); - state->space = fstrndup(RSTRING_PTR(tmp), len); - state->space_len = len; - } - tmp = rb_hash_aref(opts, ID2SYM(i_space_before)); - if (RTEST(tmp)) { - unsigned long len; - Check_Type(tmp, T_STRING); - len = RSTRING_LEN(tmp); - state->space_before = fstrndup(RSTRING_PTR(tmp), len); - state->space_before_len = len; - } - tmp = rb_hash_aref(opts, ID2SYM(i_array_nl)); - if (RTEST(tmp)) { - unsigned long len; - Check_Type(tmp, T_STRING); - len = RSTRING_LEN(tmp); - state->array_nl = fstrndup(RSTRING_PTR(tmp), len); - state->array_nl_len = len; - } - tmp = rb_hash_aref(opts, ID2SYM(i_object_nl)); - if (RTEST(tmp)) { - unsigned long len; - Check_Type(tmp, T_STRING); - len = RSTRING_LEN(tmp); - state->object_nl = fstrndup(RSTRING_PTR(tmp), len); - state->object_nl_len = len; - } - tmp = ID2SYM(i_max_nesting); - state->max_nesting = 19; - if (option_given_p(opts, tmp)) { - VALUE max_nesting = rb_hash_aref(opts, tmp); - if (RTEST(max_nesting)) { - Check_Type(max_nesting, T_FIXNUM); - state->max_nesting = FIX2LONG(max_nesting); - } else { - state->max_nesting = 0; - } - } - tmp = ID2SYM(i_depth); - state->depth = 0; - if (option_given_p(opts, tmp)) { - VALUE depth = rb_hash_aref(opts, tmp); - if (RTEST(depth)) { - Check_Type(depth, T_FIXNUM); - state->depth = FIX2LONG(depth); - } else { - state->depth = 0; - } - } - tmp = rb_hash_aref(opts, ID2SYM(i_allow_nan)); - state->allow_nan = RTEST(tmp); - tmp = rb_hash_aref(opts, ID2SYM(i_ascii_only)); - state->ascii_only = RTEST(tmp); - return self; -} - -/* - * call-seq: to_h - * - * Returns the configuration instance variables as a hash, that can be - * passed to the configure method. - */ -static VALUE cState_to_h(VALUE self) -{ - VALUE result = rb_hash_new(); - GET_STATE(self); - rb_hash_aset(result, ID2SYM(i_indent), rb_str_new(state->indent, state->indent_len)); - rb_hash_aset(result, ID2SYM(i_space), rb_str_new(state->space, state->space_len)); - rb_hash_aset(result, ID2SYM(i_space_before), rb_str_new(state->space_before, state->space_before_len)); - rb_hash_aset(result, ID2SYM(i_object_nl), rb_str_new(state->object_nl, state->object_nl_len)); - rb_hash_aset(result, ID2SYM(i_array_nl), rb_str_new(state->array_nl, state->array_nl_len)); - rb_hash_aset(result, ID2SYM(i_allow_nan), state->allow_nan ? Qtrue : Qfalse); - rb_hash_aset(result, ID2SYM(i_ascii_only), state->ascii_only ? Qtrue : Qfalse); - rb_hash_aset(result, ID2SYM(i_max_nesting), LONG2FIX(state->max_nesting)); - rb_hash_aset(result, ID2SYM(i_depth), LONG2FIX(state->depth)); - return result; -} - -/* -* call-seq: [](name) -* -* Return the value returned by method +name+. -*/ -static VALUE cState_aref(VALUE self, VALUE name) -{ - GET_STATE(self); - if (RTEST(rb_funcall(self, i_respond_to_p, 1, name))) { - return rb_funcall(self, i_send, 1, name); - } else { - return Qnil; - } -} - -static void generate_json_object(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj) -{ - char *object_nl = state->object_nl; - long object_nl_len = state->object_nl_len; - char *indent = state->indent; - long indent_len = state->indent_len; - long max_nesting = state->max_nesting; - char *delim = FBUFFER_PTR(state->object_delim); - long delim_len = FBUFFER_LEN(state->object_delim); - char *delim2 = FBUFFER_PTR(state->object_delim2); - long delim2_len = FBUFFER_LEN(state->object_delim2); - long depth = ++state->depth; - int i, j; - VALUE key, key_to_s, keys; - if (max_nesting != 0 && depth > max_nesting) { - fbuffer_free(buffer); - rb_raise(eNestingError, "nesting of %ld is too deep", --state->depth); - } - fbuffer_append_char(buffer, '{'); - keys = rb_funcall(obj, i_keys, 0); - for(i = 0; i < RARRAY_LEN(keys); i++) { - if (i > 0) fbuffer_append(buffer, delim, delim_len); - if (object_nl) { - fbuffer_append(buffer, object_nl, object_nl_len); - } - if (indent) { - for (j = 0; j < depth; j++) { - fbuffer_append(buffer, indent, indent_len); - } - } - key = rb_ary_entry(keys, i); - key_to_s = rb_funcall(key, i_to_s, 0); - Check_Type(key_to_s, T_STRING); - generate_json(buffer, Vstate, state, key_to_s); - fbuffer_append(buffer, delim2, delim2_len); - generate_json(buffer, Vstate, state, rb_hash_aref(obj, key)); - } - depth = --state->depth; - if (object_nl) { - fbuffer_append(buffer, object_nl, object_nl_len); - if (indent) { - for (j = 0; j < depth; j++) { - fbuffer_append(buffer, indent, indent_len); - } - } - } - fbuffer_append_char(buffer, '}'); -} - -static void generate_json_array(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj) -{ - char *array_nl = state->array_nl; - long array_nl_len = state->array_nl_len; - char *indent = state->indent; - long indent_len = state->indent_len; - long max_nesting = state->max_nesting; - char *delim = FBUFFER_PTR(state->array_delim); - long delim_len = FBUFFER_LEN(state->array_delim); - long depth = ++state->depth; - int i, j; - if (max_nesting != 0 && depth > max_nesting) { - fbuffer_free(buffer); - rb_raise(eNestingError, "nesting of %ld is too deep", --state->depth); - } - fbuffer_append_char(buffer, '['); - if (array_nl) fbuffer_append(buffer, array_nl, array_nl_len); - for(i = 0; i < RARRAY_LEN(obj); i++) { - if (i > 0) fbuffer_append(buffer, delim, delim_len); - if (indent) { - for (j = 0; j < depth; j++) { - fbuffer_append(buffer, indent, indent_len); - } - } - generate_json(buffer, Vstate, state, rb_ary_entry(obj, i)); - } - state->depth = --depth; - if (array_nl) { - fbuffer_append(buffer, array_nl, array_nl_len); - if (indent) { - for (j = 0; j < depth; j++) { - fbuffer_append(buffer, indent, indent_len); - } - } - } - fbuffer_append_char(buffer, ']'); -} - -static void generate_json_string(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj) -{ - fbuffer_append_char(buffer, '"'); -#ifdef HAVE_RUBY_ENCODING_H - obj = rb_funcall(obj, i_encode, 1, CEncoding_UTF_8); -#endif - if (state->ascii_only) { - convert_UTF8_to_JSON_ASCII(buffer, obj); - } else { - convert_UTF8_to_JSON(buffer, obj); - } - fbuffer_append_char(buffer, '"'); -} - -static void generate_json_null(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj) -{ - fbuffer_append(buffer, "null", 4); -} - -static void generate_json_false(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj) -{ - fbuffer_append(buffer, "false", 5); -} - -static void generate_json_true(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj) -{ - fbuffer_append(buffer, "true", 4); -} - -static void generate_json_fixnum(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj) -{ - fbuffer_append_long(buffer, FIX2LONG(obj)); -} - -static void generate_json_bignum(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj) -{ - VALUE tmp = rb_funcall(obj, i_to_s, 0); - fbuffer_append(buffer, RSTRING_PAIR(tmp)); -} - -static void generate_json_float(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj) -{ - double value = RFLOAT_VALUE(obj); - char allow_nan = state->allow_nan; - VALUE tmp = rb_funcall(obj, i_to_s, 0); - if (!allow_nan) { - if (isinf(value)) { - fbuffer_free(buffer); - rb_raise(eGeneratorError, "%u: %s not allowed in JSON", __LINE__, StringValueCStr(tmp)); - } else if (isnan(value)) { - fbuffer_free(buffer); - rb_raise(eGeneratorError, "%u: %s not allowed in JSON", __LINE__, StringValueCStr(tmp)); - } - } - fbuffer_append(buffer, RSTRING_PAIR(tmp)); -} - -static void generate_json(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj) -{ - VALUE tmp; - VALUE klass = CLASS_OF(obj); - if (klass == rb_cHash) { - generate_json_object(buffer, Vstate, state, obj); - } else if (klass == rb_cArray) { - generate_json_array(buffer, Vstate, state, obj); - } else if (klass == rb_cString) { - generate_json_string(buffer, Vstate, state, obj); - } else if (obj == Qnil) { - generate_json_null(buffer, Vstate, state, obj); - } else if (obj == Qfalse) { - generate_json_false(buffer, Vstate, state, obj); - } else if (obj == Qtrue) { - generate_json_true(buffer, Vstate, state, obj); - } else if (klass == rb_cFixnum) { - generate_json_fixnum(buffer, Vstate, state, obj); - } else if (klass == rb_cBignum) { - generate_json_bignum(buffer, Vstate, state, obj); - } else if (klass == rb_cFloat) { - generate_json_float(buffer, Vstate, state, obj); - } else if (rb_respond_to(obj, i_to_json)) { - tmp = rb_funcall(obj, i_to_json, 1, Vstate); - Check_Type(tmp, T_STRING); - fbuffer_append(buffer, RSTRING_PAIR(tmp)); - } else { - tmp = rb_funcall(obj, i_to_s, 0); - Check_Type(tmp, T_STRING); - generate_json(buffer, Vstate, state, tmp); - } -} - -static FBuffer *cState_prepare_buffer(VALUE self) -{ - FBuffer *buffer = fbuffer_alloc(); - GET_STATE(self); - - if (state->object_delim) { - fbuffer_clear(state->object_delim); - } else { - state->object_delim = fbuffer_alloc_with_length(16); - } - fbuffer_append_char(state->object_delim, ','); - if (state->object_delim2) { - fbuffer_clear(state->object_delim2); - } else { - state->object_delim2 = fbuffer_alloc_with_length(16); - } - fbuffer_append_char(state->object_delim2, ':'); - if (state->space) fbuffer_append(state->object_delim2, state->space, state->space_len); - - if (state->array_delim) { - fbuffer_clear(state->array_delim); - } else { - state->array_delim = fbuffer_alloc_with_length(16); - } - fbuffer_append_char(state->array_delim, ','); - if (state->array_nl) fbuffer_append(state->array_delim, state->array_nl, state->array_nl_len); - return buffer; -} - -static VALUE fbuffer_to_s(FBuffer *fb) -{ - VALUE result = rb_str_new(FBUFFER_PAIR(fb)); - fbuffer_free(fb); - FORCE_UTF8(result); - return result; -} - -static VALUE cState_partial_generate(VALUE self, VALUE obj) -{ - FBuffer *buffer = cState_prepare_buffer(self); - GET_STATE(self); - generate_json(buffer, self, state, obj); - return fbuffer_to_s(buffer); -} - -/* - * call-seq: generate(obj) - * - * Generates a valid JSON document from object +obj+ and returns the - * result. If no valid JSON document can be created this method raises a - * GeneratorError exception. - */ -static VALUE cState_generate(VALUE self, VALUE obj) -{ - VALUE result = cState_partial_generate(self, obj); - VALUE re, args[2]; - args[0] = rb_str_new2("\\A\\s*(?:\\[.*\\]|\\{.*\\})\\s*\\Z"); - args[1] = CRegexp_MULTILINE; - re = rb_class_new_instance(2, args, rb_cRegexp); - if (NIL_P(rb_funcall(re, i_match, 1, result))) { - rb_raise(eGeneratorError, "only generation of JSON objects or arrays allowed"); - } - return result; -} - -/* - * call-seq: new(opts = {}) - * - * Instantiates a new State object, configured by _opts_. - * - * _opts_ can have the following keys: - * - * * *indent*: a string used to indent levels (default: ''), - * * *space*: a string that is put after, a : or , delimiter (default: ''), - * * *space_before*: a string that is put before a : pair delimiter (default: ''), - * * *object_nl*: a string that is put at the end of a JSON object (default: ''), - * * *array_nl*: a string that is put at the end of a JSON array (default: ''), - * * *allow_nan*: true if NaN, Infinity, and -Infinity should be - * generated, otherwise an exception is thrown, if these values are - * encountered. This options defaults to false. - */ -static VALUE cState_initialize(int argc, VALUE *argv, VALUE self) -{ - VALUE opts; - GET_STATE(self); - state->max_nesting = 19; - rb_scan_args(argc, argv, "01", &opts); - if (!NIL_P(opts)) cState_configure(self, opts); - return self; -} - -/* - * call-seq: initialize_copy(orig) - * - * Initializes this object from orig if it to be duplicated/cloned and returns - * it. -*/ -static VALUE cState_init_copy(VALUE obj, VALUE orig) -{ - JSON_Generator_State *objState, *origState; - - Data_Get_Struct(obj, JSON_Generator_State, objState); - Data_Get_Struct(orig, JSON_Generator_State, origState); - if (!objState) rb_raise(rb_eArgError, "unallocated JSON::State"); - - MEMCPY(objState, origState, JSON_Generator_State, 1); - objState->indent = fstrndup(origState->indent, origState->indent_len); - objState->space = fstrndup(origState->space, origState->space_len); - objState->space_before = fstrndup(origState->space_before, origState->space_before_len); - objState->object_nl = fstrndup(origState->object_nl, origState->object_nl_len); - objState->array_nl = fstrndup(origState->array_nl, origState->array_nl_len); - if (origState->array_delim) objState->array_delim = fbuffer_dup(origState->array_delim); - if (origState->object_delim) objState->object_delim = fbuffer_dup(origState->object_delim); - if (origState->object_delim2) objState->object_delim2 = fbuffer_dup(origState->object_delim2); - return obj; -} - -/* - * call-seq: from_state(opts) - * - * Creates a State object from _opts_, which ought to be Hash to create a - * new State instance configured by _opts_, something else to create an - * unconfigured instance. If _opts_ is a State object, it is just returned. - */ -static VALUE cState_from_state_s(VALUE self, VALUE opts) -{ - if (rb_obj_is_kind_of(opts, self)) { - return opts; - } else if (rb_obj_is_kind_of(opts, rb_cHash)) { - return rb_funcall(self, i_new, 1, opts); - } else { - if (NIL_P(CJSON_SAFE_STATE_PROTOTYPE)) { - CJSON_SAFE_STATE_PROTOTYPE = rb_const_get(mJSON, i_SAFE_STATE_PROTOTYPE); - } - return rb_funcall(CJSON_SAFE_STATE_PROTOTYPE, i_dup, 0); - } -} - -/* - * call-seq: indent() - * - * This string is used to indent levels in the JSON text. - */ -static VALUE cState_indent(VALUE self) -{ - GET_STATE(self); - return state->indent ? rb_str_new2(state->indent) : rb_str_new2(""); -} - -/* - * call-seq: indent=(indent) - * - * This string is used to indent levels in the JSON text. - */ -static VALUE cState_indent_set(VALUE self, VALUE indent) -{ - unsigned long len; - GET_STATE(self); - Check_Type(indent, T_STRING); - len = RSTRING_LEN(indent); - if (len == 0) { - if (state->indent) { - ruby_xfree(state->indent); - state->indent = NULL; - state->indent_len = 0; - } - } else { - if (state->indent) ruby_xfree(state->indent); - state->indent = strdup(RSTRING_PTR(indent)); - state->indent_len = len; - } - return Qnil; -} - -/* - * call-seq: space() - * - * This string is used to insert a space between the tokens in a JSON - * string. - */ -static VALUE cState_space(VALUE self) -{ - GET_STATE(self); - return state->space ? rb_str_new2(state->space) : rb_str_new2(""); -} - -/* - * call-seq: space=(space) - * - * This string is used to insert a space between the tokens in a JSON - * string. - */ -static VALUE cState_space_set(VALUE self, VALUE space) -{ - unsigned long len; - GET_STATE(self); - Check_Type(space, T_STRING); - len = RSTRING_LEN(space); - if (len == 0) { - if (state->space) { - ruby_xfree(state->space); - state->space = NULL; - state->space_len = 0; - } - } else { - if (state->space) ruby_xfree(state->space); - state->space = strdup(RSTRING_PTR(space)); - state->space_len = len; - } - return Qnil; -} - -/* - * call-seq: space_before() - * - * This string is used to insert a space before the ':' in JSON objects. - */ -static VALUE cState_space_before(VALUE self) -{ - GET_STATE(self); - return state->space_before ? rb_str_new2(state->space_before) : rb_str_new2(""); -} - -/* - * call-seq: space_before=(space_before) - * - * This string is used to insert a space before the ':' in JSON objects. - */ -static VALUE cState_space_before_set(VALUE self, VALUE space_before) -{ - unsigned long len; - GET_STATE(self); - Check_Type(space_before, T_STRING); - len = RSTRING_LEN(space_before); - if (len == 0) { - if (state->space_before) { - ruby_xfree(state->space_before); - state->space_before = NULL; - state->space_before_len = 0; - } - } else { - if (state->space_before) ruby_xfree(state->space_before); - state->space_before = strdup(RSTRING_PTR(space_before)); - state->space_before_len = len; - } - return Qnil; -} - -/* - * call-seq: object_nl() - * - * This string is put at the end of a line that holds a JSON object (or - * Hash). - */ -static VALUE cState_object_nl(VALUE self) -{ - GET_STATE(self); - return state->object_nl ? rb_str_new2(state->object_nl) : rb_str_new2(""); -} - -/* - * call-seq: object_nl=(object_nl) - * - * This string is put at the end of a line that holds a JSON object (or - * Hash). - */ -static VALUE cState_object_nl_set(VALUE self, VALUE object_nl) -{ - unsigned long len; - GET_STATE(self); - Check_Type(object_nl, T_STRING); - len = RSTRING_LEN(object_nl); - if (len == 0) { - if (state->object_nl) { - ruby_xfree(state->object_nl); - state->object_nl = NULL; - } - } else { - if (state->object_nl) ruby_xfree(state->object_nl); - state->object_nl = strdup(RSTRING_PTR(object_nl)); - state->object_nl_len = len; - } - return Qnil; -} - -/* - * call-seq: array_nl() - * - * This string is put at the end of a line that holds a JSON array. - */ -static VALUE cState_array_nl(VALUE self) -{ - GET_STATE(self); - return state->array_nl ? rb_str_new2(state->array_nl) : rb_str_new2(""); -} - -/* - * call-seq: array_nl=(array_nl) - * - * This string is put at the end of a line that holds a JSON array. - */ -static VALUE cState_array_nl_set(VALUE self, VALUE array_nl) -{ - unsigned long len; - GET_STATE(self); - Check_Type(array_nl, T_STRING); - len = RSTRING_LEN(array_nl); - if (len == 0) { - if (state->array_nl) { - ruby_xfree(state->array_nl); - state->array_nl = NULL; - } - } else { - if (state->array_nl) ruby_xfree(state->array_nl); - state->array_nl = strdup(RSTRING_PTR(array_nl)); - state->array_nl_len = len; - } - return Qnil; -} - - -/* -* call-seq: check_circular? -* -* Returns true, if circular data structures should be checked, -* otherwise returns false. -*/ -static VALUE cState_check_circular_p(VALUE self) -{ - GET_STATE(self); - return state->max_nesting ? Qtrue : Qfalse; -} - -/* - * call-seq: max_nesting - * - * This integer returns the maximum level of data structure nesting in - * the generated JSON, max_nesting = 0 if no maximum is checked. - */ -static VALUE cState_max_nesting(VALUE self) -{ - GET_STATE(self); - return LONG2FIX(state->max_nesting); -} - -/* - * call-seq: max_nesting=(depth) - * - * This sets the maximum level of data structure nesting in the generated JSON - * to the integer depth, max_nesting = 0 if no maximum should be checked. - */ -static VALUE cState_max_nesting_set(VALUE self, VALUE depth) -{ - GET_STATE(self); - Check_Type(depth, T_FIXNUM); - return state->max_nesting = FIX2LONG(depth); -} - -/* - * call-seq: allow_nan? - * - * Returns true, if NaN, Infinity, and -Infinity should be generated, otherwise - * returns false. - */ -static VALUE cState_allow_nan_p(VALUE self) -{ - GET_STATE(self); - return state->allow_nan ? Qtrue : Qfalse; -} - -/* - * call-seq: ascii_only? - * - * Returns true, if NaN, Infinity, and -Infinity should be generated, otherwise - * returns false. - */ -static VALUE cState_ascii_only_p(VALUE self) -{ - GET_STATE(self); - return state->ascii_only ? Qtrue : Qfalse; -} - -/* - * call-seq: depth - * - * This integer returns the current depth of data structure nesting. - */ -static VALUE cState_depth(VALUE self) -{ - GET_STATE(self); - return LONG2FIX(state->depth); -} - -/* - * call-seq: depth=(depth) - * - * This sets the maximum level of data structure nesting in the generated JSON - * to the integer depth, max_nesting = 0 if no maximum should be checked. - */ -static VALUE cState_depth_set(VALUE self, VALUE depth) -{ - GET_STATE(self); - Check_Type(depth, T_FIXNUM); - return state->depth = FIX2LONG(depth); -} - -/* - * - */ -void Init_generator() -{ - rb_require("json/common"); - - mJSON = rb_define_module("JSON"); - mExt = rb_define_module_under(mJSON, "Ext"); - mGenerator = rb_define_module_under(mExt, "Generator"); - - eGeneratorError = rb_path2class("JSON::GeneratorError"); - eNestingError = rb_path2class("JSON::NestingError"); - - cState = rb_define_class_under(mGenerator, "State", rb_cObject); - rb_define_alloc_func(cState, cState_s_allocate); - rb_define_singleton_method(cState, "from_state", cState_from_state_s, 1); - rb_define_method(cState, "initialize", cState_initialize, -1); - rb_define_method(cState, "initialize_copy", cState_init_copy, 1); - rb_define_method(cState, "indent", cState_indent, 0); - rb_define_method(cState, "indent=", cState_indent_set, 1); - rb_define_method(cState, "space", cState_space, 0); - rb_define_method(cState, "space=", cState_space_set, 1); - rb_define_method(cState, "space_before", cState_space_before, 0); - rb_define_method(cState, "space_before=", cState_space_before_set, 1); - rb_define_method(cState, "object_nl", cState_object_nl, 0); - rb_define_method(cState, "object_nl=", cState_object_nl_set, 1); - rb_define_method(cState, "array_nl", cState_array_nl, 0); - rb_define_method(cState, "array_nl=", cState_array_nl_set, 1); - rb_define_method(cState, "max_nesting", cState_max_nesting, 0); - rb_define_method(cState, "max_nesting=", cState_max_nesting_set, 1); - rb_define_method(cState, "check_circular?", cState_check_circular_p, 0); - rb_define_method(cState, "allow_nan?", cState_allow_nan_p, 0); - rb_define_method(cState, "ascii_only?", cState_ascii_only_p, 0); - rb_define_method(cState, "depth", cState_depth, 0); - rb_define_method(cState, "depth=", cState_depth_set, 1); - rb_define_method(cState, "configure", cState_configure, 1); - rb_define_method(cState, "to_h", cState_to_h, 0); - rb_define_method(cState, "[]", cState_aref, 1); - rb_define_method(cState, "generate", cState_generate, 1); - - mGeneratorMethods = rb_define_module_under(mGenerator, "GeneratorMethods"); - mObject = rb_define_module_under(mGeneratorMethods, "Object"); - rb_define_method(mObject, "to_json", mObject_to_json, -1); - mHash = rb_define_module_under(mGeneratorMethods, "Hash"); - rb_define_method(mHash, "to_json", mHash_to_json, -1); - mArray = rb_define_module_under(mGeneratorMethods, "Array"); - rb_define_method(mArray, "to_json", mArray_to_json, -1); - mFixnum = rb_define_module_under(mGeneratorMethods, "Fixnum"); - rb_define_method(mFixnum, "to_json", mFixnum_to_json, -1); - mBignum = rb_define_module_under(mGeneratorMethods, "Bignum"); - rb_define_method(mBignum, "to_json", mBignum_to_json, -1); - mFloat = rb_define_module_under(mGeneratorMethods, "Float"); - rb_define_method(mFloat, "to_json", mFloat_to_json, -1); - mString = rb_define_module_under(mGeneratorMethods, "String"); - rb_define_singleton_method(mString, "included", mString_included_s, 1); - rb_define_method(mString, "to_json", mString_to_json, -1); - rb_define_method(mString, "to_json_raw", mString_to_json_raw, -1); - rb_define_method(mString, "to_json_raw_object", mString_to_json_raw_object, 0); - mString_Extend = rb_define_module_under(mString, "Extend"); - rb_define_method(mString_Extend, "json_create", mString_Extend_json_create, 1); - mTrueClass = rb_define_module_under(mGeneratorMethods, "TrueClass"); - rb_define_method(mTrueClass, "to_json", mTrueClass_to_json, -1); - mFalseClass = rb_define_module_under(mGeneratorMethods, "FalseClass"); - rb_define_method(mFalseClass, "to_json", mFalseClass_to_json, -1); - mNilClass = rb_define_module_under(mGeneratorMethods, "NilClass"); - rb_define_method(mNilClass, "to_json", mNilClass_to_json, -1); - - CRegexp_MULTILINE = rb_const_get(rb_cRegexp, rb_intern("MULTILINE")); - i_to_s = rb_intern("to_s"); - i_to_json = rb_intern("to_json"); - i_new = rb_intern("new"); - i_indent = rb_intern("indent"); - i_space = rb_intern("space"); - i_space_before = rb_intern("space_before"); - i_object_nl = rb_intern("object_nl"); - i_array_nl = rb_intern("array_nl"); - i_max_nesting = rb_intern("max_nesting"); - i_allow_nan = rb_intern("allow_nan"); - i_ascii_only = rb_intern("ascii_only"); - i_depth = rb_intern("depth"); - i_pack = rb_intern("pack"); - i_unpack = rb_intern("unpack"); - i_create_id = rb_intern("create_id"); - i_extend = rb_intern("extend"); - i_key_p = rb_intern("key?"); - i_aref = rb_intern("[]"); - i_send = rb_intern("__send__"); - i_respond_to_p = rb_intern("respond_to?"); - i_match = rb_intern("match"); - i_keys = rb_intern("keys"); - i_dup = rb_intern("dup"); -#ifdef HAVE_RUBY_ENCODING_H - CEncoding_UTF_8 = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-8")); - i_encoding = rb_intern("encoding"); - i_encode = rb_intern("encode"); -#endif - i_SAFE_STATE_PROTOTYPE = rb_intern("SAFE_STATE_PROTOTYPE"); - CJSON_SAFE_STATE_PROTOTYPE = Qnil; -} diff --git a/lib/mcollective/vendor/json/ext/json/ext/generator/generator.h b/lib/mcollective/vendor/json/ext/json/ext/generator/generator.h deleted file mode 100644 index e47f507..0000000 --- a/lib/mcollective/vendor/json/ext/json/ext/generator/generator.h +++ /dev/null @@ -1,197 +0,0 @@ -#ifndef _GENERATOR_H_ -#define _GENERATOR_H_ - -#include <string.h> -#include <assert.h> -#include <math.h> - -#include "ruby.h" - -#if HAVE_RUBY_RE_H -#include "ruby/re.h" -#endif - -#if HAVE_RE_H -#include "re.h" -#endif - -#ifdef HAVE_RUBY_ENCODING_H -#include "ruby/encoding.h" -#define FORCE_UTF8(obj) rb_enc_associate((obj), rb_utf8_encoding()) -#else -#define FORCE_UTF8(obj) -#endif - -#define option_given_p(opts, key) RTEST(rb_funcall(opts, i_key_p, 1, key)) - -#ifndef RHASH_SIZE -#define RHASH_SIZE(hsh) (RHASH(hsh)->tbl->num_entries) -#endif - -#ifndef RFLOAT_VALUE -#define RFLOAT_VALUE(val) (RFLOAT(val)->value) -#endif - -#ifndef RARRAY_PTR -#define RARRAY_PTR(ARRAY) RARRAY(ARRAY)->ptr -#endif -#ifndef RARRAY_LEN -#define RARRAY_LEN(ARRAY) RARRAY(ARRAY)->len -#endif -#ifndef RSTRING_PTR -#define RSTRING_PTR(string) RSTRING(string)->ptr -#endif -#ifndef RSTRING_LEN -#define RSTRING_LEN(string) RSTRING(string)->len -#endif - -#define RSTRING_PAIR(string) RSTRING_PTR(string), RSTRING_LEN(string) - -/* fbuffer implementation */ - -typedef struct FBufferStruct { - unsigned long initial_length; - char *ptr; - unsigned long len; - unsigned long capa; -} FBuffer; - -#define FBUFFER_INITIAL_LENGTH 4096 - -#define FBUFFER_PTR(fb) (fb->ptr) -#define FBUFFER_LEN(fb) (fb->len) -#define FBUFFER_CAPA(fb) (fb->capa) -#define FBUFFER_PAIR(fb) FBUFFER_PTR(fb), FBUFFER_LEN(fb) - -static char *fstrndup(const char *ptr, unsigned long len); -static FBuffer *fbuffer_alloc(); -static FBuffer *fbuffer_alloc_with_length(unsigned long initial_length); -static void fbuffer_free(FBuffer *fb); -static void fbuffer_free_only_buffer(FBuffer *fb); -static void fbuffer_clear(FBuffer *fb); -static void fbuffer_append(FBuffer *fb, const char *newstr, unsigned long len); -static void fbuffer_append_long(FBuffer *fb, long number); -static void fbuffer_append_char(FBuffer *fb, char newchr); -static FBuffer *fbuffer_dup(FBuffer *fb); -static VALUE fbuffer_to_s(FBuffer *fb); - -/* unicode defintions */ - -#define UNI_STRICT_CONVERSION 1 - -typedef unsigned long UTF32; /* at least 32 bits */ -typedef unsigned short UTF16; /* at least 16 bits */ -typedef unsigned char UTF8; /* typically 8 bits */ - -#define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD -#define UNI_MAX_BMP (UTF32)0x0000FFFF -#define UNI_MAX_UTF16 (UTF32)0x0010FFFF -#define UNI_MAX_UTF32 (UTF32)0x7FFFFFFF -#define UNI_MAX_LEGAL_UTF32 (UTF32)0x0010FFFF - -#define UNI_SUR_HIGH_START (UTF32)0xD800 -#define UNI_SUR_HIGH_END (UTF32)0xDBFF -#define UNI_SUR_LOW_START (UTF32)0xDC00 -#define UNI_SUR_LOW_END (UTF32)0xDFFF - -static const int halfShift = 10; /* used for shifting by 10 bits */ - -static const UTF32 halfBase = 0x0010000UL; -static const UTF32 halfMask = 0x3FFUL; - -static unsigned char isLegalUTF8(const UTF8 *source, unsigned long length); -static void unicode_escape(char *buf, UTF16 character); -static void unicode_escape_to_buffer(FBuffer *buffer, char buf[6], UTF16 character); -static void convert_UTF8_to_JSON_ASCII(FBuffer *buffer, VALUE string); -static void convert_UTF8_to_JSON(FBuffer *buffer, VALUE string); - -/* ruby api and some helpers */ - -typedef struct JSON_Generator_StateStruct { - char *indent; - long indent_len; - char *space; - long space_len; - char *space_before; - long space_before_len; - char *object_nl; - long object_nl_len; - char *array_nl; - long array_nl_len; - FBuffer *array_delim; - FBuffer *object_delim; - FBuffer *object_delim2; - long max_nesting; - char allow_nan; - char ascii_only; - long depth; -} JSON_Generator_State; - -#define GET_STATE(self) \ - JSON_Generator_State *state; \ - Data_Get_Struct(self, JSON_Generator_State, state) - -#define GENERATE_JSON(type) \ - FBuffer *buffer; \ - VALUE Vstate; \ - JSON_Generator_State *state; \ - \ - rb_scan_args(argc, argv, "01", &Vstate); \ - Vstate = cState_from_state_s(cState, Vstate); \ - Data_Get_Struct(Vstate, JSON_Generator_State, state); \ - buffer = cState_prepare_buffer(Vstate); \ - generate_json_##type(buffer, Vstate, state, self); \ - return fbuffer_to_s(buffer) - -static VALUE mHash_to_json(int argc, VALUE *argv, VALUE self); -static VALUE mArray_to_json(int argc, VALUE *argv, VALUE self); -static VALUE mFixnum_to_json(int argc, VALUE *argv, VALUE self); -static VALUE mBignum_to_json(int argc, VALUE *argv, VALUE self); -static VALUE mFloat_to_json(int argc, VALUE *argv, VALUE self); -static VALUE mString_included_s(VALUE self, VALUE modul); -static VALUE mString_to_json(int argc, VALUE *argv, VALUE self); -static VALUE mString_to_json_raw_object(VALUE self); -static VALUE mString_to_json_raw(int argc, VALUE *argv, VALUE self); -static VALUE mString_Extend_json_create(VALUE self, VALUE o); -static VALUE mTrueClass_to_json(int argc, VALUE *argv, VALUE self); -static VALUE mFalseClass_to_json(int argc, VALUE *argv, VALUE self); -static VALUE mNilClass_to_json(int argc, VALUE *argv, VALUE self); -static VALUE mObject_to_json(int argc, VALUE *argv, VALUE self); -static void State_free(JSON_Generator_State *state); -static JSON_Generator_State *State_allocate(); -static VALUE cState_s_allocate(VALUE klass); -static VALUE cState_configure(VALUE self, VALUE opts); -static VALUE cState_to_h(VALUE self); -static void generate_json(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj); -static void generate_json_object(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj); -static void generate_json_array(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj); -static void generate_json_string(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj); -static void generate_json_null(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj); -static void generate_json_false(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj); -static void generate_json_true(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj); -static void generate_json_fixnum(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj); -static void generate_json_bignum(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj); -static void generate_json_float(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj); -static VALUE cState_partial_generate(VALUE self, VALUE obj); -static VALUE cState_generate(VALUE self, VALUE obj); -static VALUE cState_initialize(int argc, VALUE *argv, VALUE self); -static VALUE cState_from_state_s(VALUE self, VALUE opts); -static VALUE cState_indent(VALUE self); -static VALUE cState_indent_set(VALUE self, VALUE indent); -static VALUE cState_space(VALUE self); -static VALUE cState_space_set(VALUE self, VALUE space); -static VALUE cState_space_before(VALUE self); -static VALUE cState_space_before_set(VALUE self, VALUE space_before); -static VALUE cState_object_nl(VALUE self); -static VALUE cState_object_nl_set(VALUE self, VALUE object_nl); -static VALUE cState_array_nl(VALUE self); -static VALUE cState_array_nl_set(VALUE self, VALUE array_nl); -static VALUE cState_max_nesting(VALUE self); -static VALUE cState_max_nesting_set(VALUE self, VALUE depth); -static VALUE cState_allow_nan_p(VALUE self); -static VALUE cState_ascii_only_p(VALUE self); -static VALUE cState_depth(VALUE self); -static VALUE cState_depth_set(VALUE self, VALUE depth); -static FBuffer *cState_prepare_buffer(VALUE self); - -#endif diff --git a/lib/mcollective/vendor/json/ext/json/ext/parser/extconf.rb b/lib/mcollective/vendor/json/ext/json/ext/parser/extconf.rb deleted file mode 100644 index d2438cd..0000000 --- a/lib/mcollective/vendor/json/ext/json/ext/parser/extconf.rb +++ /dev/null @@ -1,16 +0,0 @@ -require 'mkmf' -require 'rbconfig' - -unless $CFLAGS.gsub!(/ -O[\dsz]?/, ' -O3') - $CFLAGS << ' -O3' -end -if CONFIG['CC'] =~ /gcc/ - $CFLAGS << ' -Wall' - #unless $CFLAGS.gsub!(/ -O[\dsz]?/, ' -O0 -ggdb') - # $CFLAGS << ' -O0 -ggdb' - #end -end - -have_header("re.h") -have_header("ruby/st.h") -create_makefile 'json/ext/parser' diff --git a/lib/mcollective/vendor/json/ext/json/ext/parser/parser.c b/lib/mcollective/vendor/json/ext/json/ext/parser/parser.c deleted file mode 100644 index c125f82..0000000 --- a/lib/mcollective/vendor/json/ext/json/ext/parser/parser.c +++ /dev/null @@ -1,1969 +0,0 @@ - -#line 1 "parser.rl" -#include "parser.h" - -/* unicode */ - -static const char digit_values[256] = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, - -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1 -}; - -static UTF32 unescape_unicode(const unsigned char *p) -{ - char b; - UTF32 result = 0; - b = digit_values[p[0]]; - if (b < 0) return UNI_REPLACEMENT_CHAR; - result = (result << 4) | b; - b = digit_values[p[1]]; - result = (result << 4) | b; - if (b < 0) return UNI_REPLACEMENT_CHAR; - b = digit_values[p[2]]; - result = (result << 4) | b; - if (b < 0) return UNI_REPLACEMENT_CHAR; - b = digit_values[p[3]]; - result = (result << 4) | b; - if (b < 0) return UNI_REPLACEMENT_CHAR; - return result; -} - -static int convert_UTF32_to_UTF8(char *buf, UTF32 ch) -{ - int len = 1; - if (ch <= 0x7F) { - buf[0] = (char) ch; - } else if (ch <= 0x07FF) { - buf[0] = (char) ((ch >> 6) | 0xC0); - buf[1] = (char) ((ch & 0x3F) | 0x80); - len++; - } else if (ch <= 0xFFFF) { - buf[0] = (char) ((ch >> 12) | 0xE0); - buf[1] = (char) (((ch >> 6) & 0x3F) | 0x80); - buf[2] = (char) ((ch & 0x3F) | 0x80); - len += 2; - } else if (ch <= 0x1fffff) { - buf[0] =(char) ((ch >> 18) | 0xF0); - buf[1] =(char) (((ch >> 12) & 0x3F) | 0x80); - buf[2] =(char) (((ch >> 6) & 0x3F) | 0x80); - buf[3] =(char) ((ch & 0x3F) | 0x80); - len += 3; - } else { - buf[0] = '?'; - } - return len; -} - -#ifdef HAVE_RUBY_ENCODING_H -static VALUE CEncoding_ASCII_8BIT, CEncoding_UTF_8, CEncoding_UTF_16BE, - CEncoding_UTF_16LE, CEncoding_UTF_32BE, CEncoding_UTF_32LE; -static ID i_encoding, i_encode, i_encode_bang, i_force_encoding; -#else -static ID i_iconv; -#endif - -static VALUE mJSON, mExt, cParser, eParserError, eNestingError; -static VALUE CNaN, CInfinity, CMinusInfinity; - -static ID i_json_creatable_p, i_json_create, i_create_id, i_create_additions, - i_chr, i_max_nesting, i_allow_nan, i_symbolize_names, i_object_class, - i_array_class, i_key_p, i_deep_const_get, i_match, i_match_string; - - -#line 108 "parser.rl" - - - -#line 90 "parser.c" -static const int JSON_object_start = 1; -static const int JSON_object_first_final = 27; -static const int JSON_object_error = 0; - -static const int JSON_object_en_main = 1; - - -#line 144 "parser.rl" - - -static char *JSON_parse_object(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - VALUE last_name = Qnil; - VALUE object_class = json->object_class; - - if (json->max_nesting && json->current_nesting > json->max_nesting) { - rb_raise(eNestingError, "nesting of %d is too deep", json->current_nesting); - } - - *result = NIL_P(object_class) ? rb_hash_new() : rb_class_new_instance(0, 0, object_class); - - -#line 114 "parser.c" - { - cs = JSON_object_start; - } - -#line 159 "parser.rl" - -#line 121 "parser.c" - { - if ( p == pe ) - goto _test_eof; - switch ( cs ) - { -case 1: - if ( (*p) == 123 ) - goto st2; - goto st0; -st0: -cs = 0; - goto _out; -st2: - if ( ++p == pe ) - goto _test_eof2; -case 2: - switch( (*p) ) { - case 13: goto st2; - case 32: goto st2; - case 34: goto tr2; - case 47: goto st23; - case 125: goto tr4; - } - if ( 9 <= (*p) && (*p) <= 10 ) - goto st2; - goto st0; -tr2: -#line 127 "parser.rl" - { - char *np; - json->parsing_name = 1; - np = JSON_parse_string(json, p, pe, &last_name); - json->parsing_name = 0; - if (np == NULL) { p--; {p++; cs = 3; goto _out;} } else {p = (( np))-1;} - } - goto st3; -st3: - if ( ++p == pe ) - goto _test_eof3; -case 3: -#line 162 "parser.c" - switch( (*p) ) { - case 13: goto st3; - case 32: goto st3; - case 47: goto st4; - case 58: goto st8; - } - if ( 9 <= (*p) && (*p) <= 10 ) - goto st3; - goto st0; -st4: - if ( ++p == pe ) - goto _test_eof4; -case 4: - switch( (*p) ) { - case 42: goto st5; - case 47: goto st7; - } - goto st0; -st5: - if ( ++p == pe ) - goto _test_eof5; -case 5: - if ( (*p) == 42 ) - goto st6; - goto st5; -st6: - if ( ++p == pe ) - goto _test_eof6; -case 6: - switch( (*p) ) { - case 42: goto st6; - case 47: goto st3; - } - goto st5; -st7: - if ( ++p == pe ) - goto _test_eof7; -case 7: - if ( (*p) == 10 ) - goto st3; - goto st7; -st8: - if ( ++p == pe ) - goto _test_eof8; -case 8: - switch( (*p) ) { - case 13: goto st8; - case 32: goto st8; - case 34: goto tr11; - case 45: goto tr11; - case 47: goto st19; - case 73: goto tr11; - case 78: goto tr11; - case 91: goto tr11; - case 102: goto tr11; - case 110: goto tr11; - case 116: goto tr11; - case 123: goto tr11; - } - if ( (*p) > 10 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr11; - } else if ( (*p) >= 9 ) - goto st8; - goto st0; -tr11: -#line 116 "parser.rl" - { - VALUE v = Qnil; - char *np = JSON_parse_value(json, p, pe, &v); - if (np == NULL) { - p--; {p++; cs = 9; goto _out;} - } else { - rb_hash_aset(*result, last_name, v); - {p = (( np))-1;} - } - } - goto st9; -st9: - if ( ++p == pe ) - goto _test_eof9; -case 9: -#line 245 "parser.c" - switch( (*p) ) { - case 13: goto st9; - case 32: goto st9; - case 44: goto st10; - case 47: goto st15; - case 125: goto tr4; - } - if ( 9 <= (*p) && (*p) <= 10 ) - goto st9; - goto st0; -st10: - if ( ++p == pe ) - goto _test_eof10; -case 10: - switch( (*p) ) { - case 13: goto st10; - case 32: goto st10; - case 34: goto tr2; - case 47: goto st11; - } - if ( 9 <= (*p) && (*p) <= 10 ) - goto st10; - goto st0; -st11: - if ( ++p == pe ) - goto _test_eof11; -case 11: - switch( (*p) ) { - case 42: goto st12; - case 47: goto st14; - } - goto st0; -st12: - if ( ++p == pe ) - goto _test_eof12; -case 12: - if ( (*p) == 42 ) - goto st13; - goto st12; -st13: - if ( ++p == pe ) - goto _test_eof13; -case 13: - switch( (*p) ) { - case 42: goto st13; - case 47: goto st10; - } - goto st12; -st14: - if ( ++p == pe ) - goto _test_eof14; -case 14: - if ( (*p) == 10 ) - goto st10; - goto st14; -st15: - if ( ++p == pe ) - goto _test_eof15; -case 15: - switch( (*p) ) { - case 42: goto st16; - case 47: goto st18; - } - goto st0; -st16: - if ( ++p == pe ) - goto _test_eof16; -case 16: - if ( (*p) == 42 ) - goto st17; - goto st16; -st17: - if ( ++p == pe ) - goto _test_eof17; -case 17: - switch( (*p) ) { - case 42: goto st17; - case 47: goto st9; - } - goto st16; -st18: - if ( ++p == pe ) - goto _test_eof18; -case 18: - if ( (*p) == 10 ) - goto st9; - goto st18; -tr4: -#line 135 "parser.rl" - { p--; {p++; cs = 27; goto _out;} } - goto st27; -st27: - if ( ++p == pe ) - goto _test_eof27; -case 27: -#line 341 "parser.c" - goto st0; -st19: - if ( ++p == pe ) - goto _test_eof19; -case 19: - switch( (*p) ) { - case 42: goto st20; - case 47: goto st22; - } - goto st0; -st20: - if ( ++p == pe ) - goto _test_eof20; -case 20: - if ( (*p) == 42 ) - goto st21; - goto st20; -st21: - if ( ++p == pe ) - goto _test_eof21; -case 21: - switch( (*p) ) { - case 42: goto st21; - case 47: goto st8; - } - goto st20; -st22: - if ( ++p == pe ) - goto _test_eof22; -case 22: - if ( (*p) == 10 ) - goto st8; - goto st22; -st23: - if ( ++p == pe ) - goto _test_eof23; -case 23: - switch( (*p) ) { - case 42: goto st24; - case 47: goto st26; - } - goto st0; -st24: - if ( ++p == pe ) - goto _test_eof24; -case 24: - if ( (*p) == 42 ) - goto st25; - goto st24; -st25: - if ( ++p == pe ) - goto _test_eof25; -case 25: - switch( (*p) ) { - case 42: goto st25; - case 47: goto st2; - } - goto st24; -st26: - if ( ++p == pe ) - goto _test_eof26; -case 26: - if ( (*p) == 10 ) - goto st2; - goto st26; - } - _test_eof2: cs = 2; goto _test_eof; - _test_eof3: cs = 3; goto _test_eof; - _test_eof4: cs = 4; goto _test_eof; - _test_eof5: cs = 5; goto _test_eof; - _test_eof6: cs = 6; goto _test_eof; - _test_eof7: cs = 7; goto _test_eof; - _test_eof8: cs = 8; goto _test_eof; - _test_eof9: cs = 9; goto _test_eof; - _test_eof10: cs = 10; goto _test_eof; - _test_eof11: cs = 11; goto _test_eof; - _test_eof12: cs = 12; goto _test_eof; - _test_eof13: cs = 13; goto _test_eof; - _test_eof14: cs = 14; goto _test_eof; - _test_eof15: cs = 15; goto _test_eof; - _test_eof16: cs = 16; goto _test_eof; - _test_eof17: cs = 17; goto _test_eof; - _test_eof18: cs = 18; goto _test_eof; - _test_eof27: cs = 27; goto _test_eof; - _test_eof19: cs = 19; goto _test_eof; - _test_eof20: cs = 20; goto _test_eof; - _test_eof21: cs = 21; goto _test_eof; - _test_eof22: cs = 22; goto _test_eof; - _test_eof23: cs = 23; goto _test_eof; - _test_eof24: cs = 24; goto _test_eof; - _test_eof25: cs = 25; goto _test_eof; - _test_eof26: cs = 26; goto _test_eof; - - _test_eof: {} - _out: {} - } - -#line 160 "parser.rl" - - if (cs >= JSON_object_first_final) { - if (json->create_additions) { - VALUE klassname = rb_hash_aref(*result, json->create_id); - if (!NIL_P(klassname)) { - VALUE klass = rb_funcall(mJSON, i_deep_const_get, 1, klassname); - if (RTEST(rb_funcall(klass, i_json_creatable_p, 0))) { - *result = rb_funcall(klass, i_json_create, 1, *result); - } - } - } - return p + 1; - } else { - return NULL; - } -} - - -#line 458 "parser.c" -static const int JSON_value_start = 1; -static const int JSON_value_first_final = 21; -static const int JSON_value_error = 0; - -static const int JSON_value_en_main = 1; - - -#line 258 "parser.rl" - - -static char *JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - - -#line 474 "parser.c" - { - cs = JSON_value_start; - } - -#line 265 "parser.rl" - -#line 481 "parser.c" - { - if ( p == pe ) - goto _test_eof; - switch ( cs ) - { -case 1: - switch( (*p) ) { - case 34: goto tr0; - case 45: goto tr2; - case 73: goto st2; - case 78: goto st9; - case 91: goto tr5; - case 102: goto st11; - case 110: goto st15; - case 116: goto st18; - case 123: goto tr9; - } - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2; - goto st0; -st0: -cs = 0; - goto _out; -tr0: -#line 206 "parser.rl" - { - char *np = JSON_parse_string(json, p, pe, result); - if (np == NULL) { p--; {p++; cs = 21; goto _out;} } else {p = (( np))-1;} - } - goto st21; -tr2: -#line 211 "parser.rl" - { - char *np; - if(pe > p + 9 && !strncmp(MinusInfinity, p, 9)) { - if (json->allow_nan) { - *result = CMinusInfinity; - {p = (( p + 10))-1;} - p--; {p++; cs = 21; goto _out;} - } else { - rb_raise(eParserError, "%u: unexpected token at '%s'", __LINE__, p); - } - } - np = JSON_parse_float(json, p, pe, result); - if (np != NULL) {p = (( np))-1;} - np = JSON_parse_integer(json, p, pe, result); - if (np != NULL) {p = (( np))-1;} - p--; {p++; cs = 21; goto _out;} - } - goto st21; -tr5: -#line 229 "parser.rl" - { - char *np; - json->current_nesting++; - np = JSON_parse_array(json, p, pe, result); - json->current_nesting--; - if (np == NULL) { p--; {p++; cs = 21; goto _out;} } else {p = (( np))-1;} - } - goto st21; -tr9: -#line 237 "parser.rl" - { - char *np; - json->current_nesting++; - np = JSON_parse_object(json, p, pe, result); - json->current_nesting--; - if (np == NULL) { p--; {p++; cs = 21; goto _out;} } else {p = (( np))-1;} - } - goto st21; -tr16: -#line 199 "parser.rl" - { - if (json->allow_nan) { - *result = CInfinity; - } else { - rb_raise(eParserError, "%u: unexpected token at '%s'", __LINE__, p - 8); - } - } - goto st21; -tr18: -#line 192 "parser.rl" - { - if (json->allow_nan) { - *result = CNaN; - } else { - rb_raise(eParserError, "%u: unexpected token at '%s'", __LINE__, p - 2); - } - } - goto st21; -tr22: -#line 186 "parser.rl" - { - *result = Qfalse; - } - goto st21; -tr25: -#line 183 "parser.rl" - { - *result = Qnil; - } - goto st21; -tr28: -#line 189 "parser.rl" - { - *result = Qtrue; - } - goto st21; -st21: - if ( ++p == pe ) - goto _test_eof21; -case 21: -#line 245 "parser.rl" - { p--; {p++; cs = 21; goto _out;} } -#line 596 "parser.c" - goto st0; -st2: - if ( ++p == pe ) - goto _test_eof2; -case 2: - if ( (*p) == 110 ) - goto st3; - goto st0; -st3: - if ( ++p == pe ) - goto _test_eof3; -case 3: - if ( (*p) == 102 ) - goto st4; - goto st0; -st4: - if ( ++p == pe ) - goto _test_eof4; -case 4: - if ( (*p) == 105 ) - goto st5; - goto st0; -st5: - if ( ++p == pe ) - goto _test_eof5; -case 5: - if ( (*p) == 110 ) - goto st6; - goto st0; -st6: - if ( ++p == pe ) - goto _test_eof6; -case 6: - if ( (*p) == 105 ) - goto st7; - goto st0; -st7: - if ( ++p == pe ) - goto _test_eof7; -case 7: - if ( (*p) == 116 ) - goto st8; - goto st0; -st8: - if ( ++p == pe ) - goto _test_eof8; -case 8: - if ( (*p) == 121 ) - goto tr16; - goto st0; -st9: - if ( ++p == pe ) - goto _test_eof9; -case 9: - if ( (*p) == 97 ) - goto st10; - goto st0; -st10: - if ( ++p == pe ) - goto _test_eof10; -case 10: - if ( (*p) == 78 ) - goto tr18; - goto st0; -st11: - if ( ++p == pe ) - goto _test_eof11; -case 11: - if ( (*p) == 97 ) - goto st12; - goto st0; -st12: - if ( ++p == pe ) - goto _test_eof12; -case 12: - if ( (*p) == 108 ) - goto st13; - goto st0; -st13: - if ( ++p == pe ) - goto _test_eof13; -case 13: - if ( (*p) == 115 ) - goto st14; - goto st0; -st14: - if ( ++p == pe ) - goto _test_eof14; -case 14: - if ( (*p) == 101 ) - goto tr22; - goto st0; -st15: - if ( ++p == pe ) - goto _test_eof15; -case 15: - if ( (*p) == 117 ) - goto st16; - goto st0; -st16: - if ( ++p == pe ) - goto _test_eof16; -case 16: - if ( (*p) == 108 ) - goto st17; - goto st0; -st17: - if ( ++p == pe ) - goto _test_eof17; -case 17: - if ( (*p) == 108 ) - goto tr25; - goto st0; -st18: - if ( ++p == pe ) - goto _test_eof18; -case 18: - if ( (*p) == 114 ) - goto st19; - goto st0; -st19: - if ( ++p == pe ) - goto _test_eof19; -case 19: - if ( (*p) == 117 ) - goto st20; - goto st0; -st20: - if ( ++p == pe ) - goto _test_eof20; -case 20: - if ( (*p) == 101 ) - goto tr28; - goto st0; - } - _test_eof21: cs = 21; goto _test_eof; - _test_eof2: cs = 2; goto _test_eof; - _test_eof3: cs = 3; goto _test_eof; - _test_eof4: cs = 4; goto _test_eof; - _test_eof5: cs = 5; goto _test_eof; - _test_eof6: cs = 6; goto _test_eof; - _test_eof7: cs = 7; goto _test_eof; - _test_eof8: cs = 8; goto _test_eof; - _test_eof9: cs = 9; goto _test_eof; - _test_eof10: cs = 10; goto _test_eof; - _test_eof11: cs = 11; goto _test_eof; - _test_eof12: cs = 12; goto _test_eof; - _test_eof13: cs = 13; goto _test_eof; - _test_eof14: cs = 14; goto _test_eof; - _test_eof15: cs = 15; goto _test_eof; - _test_eof16: cs = 16; goto _test_eof; - _test_eof17: cs = 17; goto _test_eof; - _test_eof18: cs = 18; goto _test_eof; - _test_eof19: cs = 19; goto _test_eof; - _test_eof20: cs = 20; goto _test_eof; - - _test_eof: {} - _out: {} - } - -#line 266 "parser.rl" - - if (cs >= JSON_value_first_final) { - return p; - } else { - return NULL; - } -} - - -#line 767 "parser.c" -static const int JSON_integer_start = 1; -static const int JSON_integer_first_final = 5; -static const int JSON_integer_error = 0; - -static const int JSON_integer_en_main = 1; - - -#line 282 "parser.rl" - - -static char *JSON_parse_integer(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - - -#line 783 "parser.c" - { - cs = JSON_integer_start; - } - -#line 289 "parser.rl" - json->memo = p; - -#line 791 "parser.c" - { - if ( p == pe ) - goto _test_eof; - switch ( cs ) - { -case 1: - switch( (*p) ) { - case 45: goto st2; - case 48: goto st3; - } - if ( 49 <= (*p) && (*p) <= 57 ) - goto st4; - goto st0; -st0: -cs = 0; - goto _out; -st2: - if ( ++p == pe ) - goto _test_eof2; -case 2: - if ( (*p) == 48 ) - goto st3; - if ( 49 <= (*p) && (*p) <= 57 ) - goto st4; - goto st0; -st3: - if ( ++p == pe ) - goto _test_eof3; -case 3: - if ( 48 <= (*p) && (*p) <= 57 ) - goto st0; - goto tr4; -tr4: -#line 279 "parser.rl" - { p--; {p++; cs = 5; goto _out;} } - goto st5; -st5: - if ( ++p == pe ) - goto _test_eof5; -case 5: -#line 832 "parser.c" - goto st0; -st4: - if ( ++p == pe ) - goto _test_eof4; -case 4: - if ( 48 <= (*p) && (*p) <= 57 ) - goto st4; - goto tr4; - } - _test_eof2: cs = 2; goto _test_eof; - _test_eof3: cs = 3; goto _test_eof; - _test_eof5: cs = 5; goto _test_eof; - _test_eof4: cs = 4; goto _test_eof; - - _test_eof: {} - _out: {} - } - -#line 291 "parser.rl" - - if (cs >= JSON_integer_first_final) { - long len = p - json->memo; - *result = rb_Integer(rb_str_new(json->memo, len)); - return p + 1; - } else { - return NULL; - } -} - - -#line 863 "parser.c" -static const int JSON_float_start = 1; -static const int JSON_float_first_final = 10; -static const int JSON_float_error = 0; - -static const int JSON_float_en_main = 1; - - -#line 313 "parser.rl" - - -static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - - -#line 879 "parser.c" - { - cs = JSON_float_start; - } - -#line 320 "parser.rl" - json->memo = p; - -#line 887 "parser.c" - { - if ( p == pe ) - goto _test_eof; - switch ( cs ) - { -case 1: - switch( (*p) ) { - case 45: goto st2; - case 48: goto st3; - } - if ( 49 <= (*p) && (*p) <= 57 ) - goto st9; - goto st0; -st0: -cs = 0; - goto _out; -st2: - if ( ++p == pe ) - goto _test_eof2; -case 2: - if ( (*p) == 48 ) - goto st3; - if ( 49 <= (*p) && (*p) <= 57 ) - goto st9; - goto st0; -st3: - if ( ++p == pe ) - goto _test_eof3; -case 3: - switch( (*p) ) { - case 46: goto st4; - case 69: goto st6; - case 101: goto st6; - } - goto st0; -st4: - if ( ++p == pe ) - goto _test_eof4; -case 4: - if ( 48 <= (*p) && (*p) <= 57 ) - goto st5; - goto st0; -st5: - if ( ++p == pe ) - goto _test_eof5; -case 5: - switch( (*p) ) { - case 69: goto st6; - case 101: goto st6; - } - if ( (*p) > 46 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto st5; - } else if ( (*p) >= 45 ) - goto st0; - goto tr7; -tr7: -#line 307 "parser.rl" - { p--; {p++; cs = 10; goto _out;} } - goto st10; -st10: - if ( ++p == pe ) - goto _test_eof10; -case 10: -#line 952 "parser.c" - goto st0; -st6: - if ( ++p == pe ) - goto _test_eof6; -case 6: - switch( (*p) ) { - case 43: goto st7; - case 45: goto st7; - } - if ( 48 <= (*p) && (*p) <= 57 ) - goto st8; - goto st0; -st7: - if ( ++p == pe ) - goto _test_eof7; -case 7: - if ( 48 <= (*p) && (*p) <= 57 ) - goto st8; - goto st0; -st8: - if ( ++p == pe ) - goto _test_eof8; -case 8: - switch( (*p) ) { - case 69: goto st0; - case 101: goto st0; - } - if ( (*p) > 46 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto st8; - } else if ( (*p) >= 45 ) - goto st0; - goto tr7; -st9: - if ( ++p == pe ) - goto _test_eof9; -case 9: - switch( (*p) ) { - case 46: goto st4; - case 69: goto st6; - case 101: goto st6; - } - if ( 48 <= (*p) && (*p) <= 57 ) - goto st9; - goto st0; - } - _test_eof2: cs = 2; goto _test_eof; - _test_eof3: cs = 3; goto _test_eof; - _test_eof4: cs = 4; goto _test_eof; - _test_eof5: cs = 5; goto _test_eof; - _test_eof10: cs = 10; goto _test_eof; - _test_eof6: cs = 6; goto _test_eof; - _test_eof7: cs = 7; goto _test_eof; - _test_eof8: cs = 8; goto _test_eof; - _test_eof9: cs = 9; goto _test_eof; - - _test_eof: {} - _out: {} - } - -#line 322 "parser.rl" - - if (cs >= JSON_float_first_final) { - long len = p - json->memo; - *result = rb_Float(rb_str_new(json->memo, len)); - return p + 1; - } else { - return NULL; - } -} - - - -#line 1026 "parser.c" -static const int JSON_array_start = 1; -static const int JSON_array_first_final = 17; -static const int JSON_array_error = 0; - -static const int JSON_array_en_main = 1; - - -#line 358 "parser.rl" - - -static char *JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - VALUE array_class = json->array_class; - - if (json->max_nesting && json->current_nesting > json->max_nesting) { - rb_raise(eNestingError, "nesting of %d is too deep", json->current_nesting); - } - *result = NIL_P(array_class) ? rb_ary_new() : rb_class_new_instance(0, 0, array_class); - - -#line 1048 "parser.c" - { - cs = JSON_array_start; - } - -#line 371 "parser.rl" - -#line 1055 "parser.c" - { - if ( p == pe ) - goto _test_eof; - switch ( cs ) - { -case 1: - if ( (*p) == 91 ) - goto st2; - goto st0; -st0: -cs = 0; - goto _out; -st2: - if ( ++p == pe ) - goto _test_eof2; -case 2: - switch( (*p) ) { - case 13: goto st2; - case 32: goto st2; - case 34: goto tr2; - case 45: goto tr2; - case 47: goto st13; - case 73: goto tr2; - case 78: goto tr2; - case 91: goto tr2; - case 93: goto tr4; - case 102: goto tr2; - case 110: goto tr2; - case 116: goto tr2; - case 123: goto tr2; - } - if ( (*p) > 10 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2; - } else if ( (*p) >= 9 ) - goto st2; - goto st0; -tr2: -#line 339 "parser.rl" - { - VALUE v = Qnil; - char *np = JSON_parse_value(json, p, pe, &v); - if (np == NULL) { - p--; {p++; cs = 3; goto _out;} - } else { - rb_ary_push(*result, v); - {p = (( np))-1;} - } - } - goto st3; -st3: - if ( ++p == pe ) - goto _test_eof3; -case 3: -#line 1110 "parser.c" - switch( (*p) ) { - case 13: goto st3; - case 32: goto st3; - case 44: goto st4; - case 47: goto st9; - case 93: goto tr4; - } - if ( 9 <= (*p) && (*p) <= 10 ) - goto st3; - goto st0; -st4: - if ( ++p == pe ) - goto _test_eof4; -case 4: - switch( (*p) ) { - case 13: goto st4; - case 32: goto st4; - case 34: goto tr2; - case 45: goto tr2; - case 47: goto st5; - case 73: goto tr2; - case 78: goto tr2; - case 91: goto tr2; - case 102: goto tr2; - case 110: goto tr2; - case 116: goto tr2; - case 123: goto tr2; - } - if ( (*p) > 10 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2; - } else if ( (*p) >= 9 ) - goto st4; - goto st0; -st5: - if ( ++p == pe ) - goto _test_eof5; -case 5: - switch( (*p) ) { - case 42: goto st6; - case 47: goto st8; - } - goto st0; -st6: - if ( ++p == pe ) - goto _test_eof6; -case 6: - if ( (*p) == 42 ) - goto st7; - goto st6; -st7: - if ( ++p == pe ) - goto _test_eof7; -case 7: - switch( (*p) ) { - case 42: goto st7; - case 47: goto st4; - } - goto st6; -st8: - if ( ++p == pe ) - goto _test_eof8; -case 8: - if ( (*p) == 10 ) - goto st4; - goto st8; -st9: - if ( ++p == pe ) - goto _test_eof9; -case 9: - switch( (*p) ) { - case 42: goto st10; - case 47: goto st12; - } - goto st0; -st10: - if ( ++p == pe ) - goto _test_eof10; -case 10: - if ( (*p) == 42 ) - goto st11; - goto st10; -st11: - if ( ++p == pe ) - goto _test_eof11; -case 11: - switch( (*p) ) { - case 42: goto st11; - case 47: goto st3; - } - goto st10; -st12: - if ( ++p == pe ) - goto _test_eof12; -case 12: - if ( (*p) == 10 ) - goto st3; - goto st12; -tr4: -#line 350 "parser.rl" - { p--; {p++; cs = 17; goto _out;} } - goto st17; -st17: - if ( ++p == pe ) - goto _test_eof17; -case 17: -#line 1217 "parser.c" - goto st0; -st13: - if ( ++p == pe ) - goto _test_eof13; -case 13: - switch( (*p) ) { - case 42: goto st14; - case 47: goto st16; - } - goto st0; -st14: - if ( ++p == pe ) - goto _test_eof14; -case 14: - if ( (*p) == 42 ) - goto st15; - goto st14; -st15: - if ( ++p == pe ) - goto _test_eof15; -case 15: - switch( (*p) ) { - case 42: goto st15; - case 47: goto st2; - } - goto st14; -st16: - if ( ++p == pe ) - goto _test_eof16; -case 16: - if ( (*p) == 10 ) - goto st2; - goto st16; - } - _test_eof2: cs = 2; goto _test_eof; - _test_eof3: cs = 3; goto _test_eof; - _test_eof4: cs = 4; goto _test_eof; - _test_eof5: cs = 5; goto _test_eof; - _test_eof6: cs = 6; goto _test_eof; - _test_eof7: cs = 7; goto _test_eof; - _test_eof8: cs = 8; goto _test_eof; - _test_eof9: cs = 9; goto _test_eof; - _test_eof10: cs = 10; goto _test_eof; - _test_eof11: cs = 11; goto _test_eof; - _test_eof12: cs = 12; goto _test_eof; - _test_eof17: cs = 17; goto _test_eof; - _test_eof13: cs = 13; goto _test_eof; - _test_eof14: cs = 14; goto _test_eof; - _test_eof15: cs = 15; goto _test_eof; - _test_eof16: cs = 16; goto _test_eof; - - _test_eof: {} - _out: {} - } - -#line 372 "parser.rl" - - if(cs >= JSON_array_first_final) { - return p + 1; - } else { - rb_raise(eParserError, "%u: unexpected token at '%s'", __LINE__, p); - return NULL; - } -} - -static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd) -{ - char *p = string, *pe = string, *unescape; - int unescape_len; - - while (pe < stringEnd) { - if (*pe == '\\') { - unescape = (char *) "?"; - unescape_len = 1; - if (pe > p) rb_str_buf_cat(result, p, pe - p); - switch (*++pe) { - case 'n': - unescape = (char *) "\n"; - break; - case 'r': - unescape = (char *) "\r"; - break; - case 't': - unescape = (char *) "\t"; - break; - case '"': - unescape = (char *) "\""; - break; - case '\\': - unescape = (char *) "\\"; - break; - case 'b': - unescape = (char *) "\b"; - break; - case 'f': - unescape = (char *) "\f"; - break; - case 'u': - if (pe > stringEnd - 4) { - return Qnil; - } else { - char buf[4]; - UTF32 ch = unescape_unicode((unsigned char *) ++pe); - pe += 3; - if (UNI_SUR_HIGH_START == (ch & 0xFC00)) { - pe++; - if (pe > stringEnd - 6) return Qnil; - if (pe[0] == '\\' && pe[1] == 'u') { - UTF32 sur = unescape_unicode((unsigned char *) pe + 2); - ch = (((ch & 0x3F) << 10) | ((((ch >> 6) & 0xF) + 1) << 16) - | (sur & 0x3FF)); - pe += 5; - } else { - unescape = (char *) "?"; - break; - } - } - unescape_len = convert_UTF32_to_UTF8(buf, ch); - unescape = buf; - } - break; - default: - p = pe; - continue; - } - rb_str_buf_cat(result, unescape, unescape_len); - p = ++pe; - } else { - pe++; - } - } - rb_str_buf_cat(result, p, pe - p); - return result; -} - - -#line 1354 "parser.c" -static const int JSON_string_start = 1; -static const int JSON_string_first_final = 8; -static const int JSON_string_error = 0; - -static const int JSON_string_en_main = 1; - - -#line 471 "parser.rl" - - -static int -match_i(VALUE regexp, VALUE klass, VALUE memo) -{ - if (regexp == Qundef) return ST_STOP; - if (RTEST(rb_funcall(klass, i_json_creatable_p, 0)) && - RTEST(rb_funcall(regexp, i_match, 1, rb_ary_entry(memo, 0)))) { - rb_ary_push(memo, klass); - return ST_STOP; - } - return ST_CONTINUE; -} - -static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - VALUE match_string; - - *result = rb_str_buf_new(0); - -#line 1384 "parser.c" - { - cs = JSON_string_start; - } - -#line 492 "parser.rl" - json->memo = p; - -#line 1392 "parser.c" - { - if ( p == pe ) - goto _test_eof; - switch ( cs ) - { -case 1: - if ( (*p) == 34 ) - goto st2; - goto st0; -st0: -cs = 0; - goto _out; -st2: - if ( ++p == pe ) - goto _test_eof2; -case 2: - switch( (*p) ) { - case 34: goto tr2; - case 92: goto st3; - } - if ( 0 <= (*p) && (*p) <= 31 ) - goto st0; - goto st2; -tr2: -#line 457 "parser.rl" - { - *result = json_string_unescape(*result, json->memo + 1, p); - if (NIL_P(*result)) { - p--; - {p++; cs = 8; goto _out;} - } else { - FORCE_UTF8(*result); - {p = (( p + 1))-1;} - } - } -#line 468 "parser.rl" - { p--; {p++; cs = 8; goto _out;} } - goto st8; -st8: - if ( ++p == pe ) - goto _test_eof8; -case 8: -#line 1435 "parser.c" - goto st0; -st3: - if ( ++p == pe ) - goto _test_eof3; -case 3: - if ( (*p) == 117 ) - goto st4; - if ( 0 <= (*p) && (*p) <= 31 ) - goto st0; - goto st2; -st4: - if ( ++p == pe ) - goto _test_eof4; -case 4: - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto st5; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto st5; - } else - goto st5; - goto st0; -st5: - if ( ++p == pe ) - goto _test_eof5; -case 5: - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto st6; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto st6; - } else - goto st6; - goto st0; -st6: - if ( ++p == pe ) - goto _test_eof6; -case 6: - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto st7; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto st7; - } else - goto st7; - goto st0; -st7: - if ( ++p == pe ) - goto _test_eof7; -case 7: - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto st2; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto st2; - } else - goto st2; - goto st0; - } - _test_eof2: cs = 2; goto _test_eof; - _test_eof8: cs = 8; goto _test_eof; - _test_eof3: cs = 3; goto _test_eof; - _test_eof4: cs = 4; goto _test_eof; - _test_eof5: cs = 5; goto _test_eof; - _test_eof6: cs = 6; goto _test_eof; - _test_eof7: cs = 7; goto _test_eof; - - _test_eof: {} - _out: {} - } - -#line 494 "parser.rl" - - if (json->create_additions && RTEST(match_string = json->match_string)) { - VALUE klass; - VALUE memo = rb_ary_new2(2); - rb_ary_push(memo, *result); - rb_hash_foreach(match_string, match_i, memo); - klass = rb_ary_entry(memo, 1); - if (RTEST(klass)) { - *result = rb_funcall(klass, i_json_create, 1, *result); - } - } - - if (json->symbolize_names && json->parsing_name) { - *result = rb_str_intern(*result); - } - if (cs >= JSON_string_first_final) { - return p + 1; - } else { - return NULL; - } -} - - - -#line 1536 "parser.c" -static const int JSON_start = 1; -static const int JSON_first_final = 10; -static const int JSON_error = 0; - -static const int JSON_en_main = 1; - - -#line 542 "parser.rl" - - -/* - * Document-class: JSON::Ext::Parser - * - * This is the JSON parser implemented as a C extension. It can be configured - * to be used by setting - * - * JSON.parser = JSON::Ext::Parser - * - * with the method parser= in JSON. - * - */ - -static VALUE convert_encoding(VALUE source) -{ - char *ptr = RSTRING_PTR(source); - long len = RSTRING_LEN(source); - if (len < 2) { - rb_raise(eParserError, "A JSON text must at least contain two octets!"); - } -#ifdef HAVE_RUBY_ENCODING_H - { - VALUE encoding = rb_funcall(source, i_encoding, 0); - if (encoding == CEncoding_ASCII_8BIT) { - if (len >= 4 && ptr[0] == 0 && ptr[1] == 0 && ptr[2] == 0) { - source = rb_str_dup(source); - rb_funcall(source, i_force_encoding, 1, CEncoding_UTF_32BE); - source = rb_funcall(source, i_encode_bang, 1, CEncoding_UTF_8); - } else if (len >= 4 && ptr[0] == 0 && ptr[2] == 0) { - source = rb_str_dup(source); - rb_funcall(source, i_force_encoding, 1, CEncoding_UTF_16BE); - source = rb_funcall(source, i_encode_bang, 1, CEncoding_UTF_8); - } else if (len >= 4 && ptr[1] == 0 && ptr[2] == 0 && ptr[3] == 0) { - source = rb_str_dup(source); - rb_funcall(source, i_force_encoding, 1, CEncoding_UTF_32LE); - source = rb_funcall(source, i_encode_bang, 1, CEncoding_UTF_8); - } else if (len >= 4 && ptr[1] == 0 && ptr[3] == 0) { - source = rb_str_dup(source); - rb_funcall(source, i_force_encoding, 1, CEncoding_UTF_16LE); - source = rb_funcall(source, i_encode_bang, 1, CEncoding_UTF_8); - } else { - FORCE_UTF8(source); - } - } else { - source = rb_funcall(source, i_encode, 1, CEncoding_UTF_8); - } - } -#else - if (len >= 4 && ptr[0] == 0 && ptr[1] == 0 && ptr[2] == 0) { - source = rb_funcall(mJSON, i_iconv, 3, rb_str_new2("utf-8"), rb_str_new2("utf-32be"), source); - } else if (len >= 4 && ptr[0] == 0 && ptr[2] == 0) { - source = rb_funcall(mJSON, i_iconv, 3, rb_str_new2("utf-8"), rb_str_new2("utf-16be"), source); - } else if (len >= 4 && ptr[1] == 0 && ptr[2] == 0 && ptr[3] == 0) { - source = rb_funcall(mJSON, i_iconv, 3, rb_str_new2("utf-8"), rb_str_new2("utf-32le"), source); - } else if (len >= 4 && ptr[1] == 0 && ptr[3] == 0) { - source = rb_funcall(mJSON, i_iconv, 3, rb_str_new2("utf-8"), rb_str_new2("utf-16le"), source); - } -#endif - return source; -} - -/* - * call-seq: new(source, opts => {}) - * - * Creates a new JSON::Ext::Parser instance for the string _source_. - * - * Creates a new JSON::Ext::Parser instance for the string _source_. - * - * It will be configured by the _opts_ hash. _opts_ can have the following - * keys: - * - * _opts_ can have the following keys: - * * *max_nesting*: The maximum depth of nesting allowed in the parsed data - * structures. Disable depth checking with :max_nesting => false|nil|0, it - * defaults to 19. - * * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in - * defiance of RFC 4627 to be parsed by the Parser. This option defaults to - * false. - * * *symbolize_names*: If set to true, returns symbols for the names - * (keys) in a JSON object. Otherwise strings are returned, which is also - * the default. - * * *create_additions*: If set to false, the Parser doesn't create - * additions even if a matchin class and create_id was found. This option - * defaults to true. - * * *object_class*: Defaults to Hash - * * *array_class*: Defaults to Array - */ -static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self) -{ - char *ptr; - long len; - VALUE source, opts; - GET_PARSER; - rb_scan_args(argc, argv, "11", &source, &opts); - source = convert_encoding(StringValue(source)); - ptr = RSTRING_PTR(source); - len = RSTRING_LEN(source); - if (!NIL_P(opts)) { - opts = rb_convert_type(opts, T_HASH, "Hash", "to_hash"); - if (NIL_P(opts)) { - rb_raise(rb_eArgError, "opts needs to be like a hash"); - } else { - VALUE tmp = ID2SYM(i_max_nesting); - if (option_given_p(opts, tmp)) { - VALUE max_nesting = rb_hash_aref(opts, tmp); - if (RTEST(max_nesting)) { - Check_Type(max_nesting, T_FIXNUM); - json->max_nesting = FIX2INT(max_nesting); - } else { - json->max_nesting = 0; - } - } else { - json->max_nesting = 19; - } - tmp = ID2SYM(i_allow_nan); - if (option_given_p(opts, tmp)) { - json->allow_nan = RTEST(rb_hash_aref(opts, tmp)) ? 1 : 0; - } else { - json->allow_nan = 0; - } - tmp = ID2SYM(i_symbolize_names); - if (option_given_p(opts, tmp)) { - json->symbolize_names = RTEST(rb_hash_aref(opts, tmp)) ? 1 : 0; - } else { - json->symbolize_names = 0; - } - tmp = ID2SYM(i_create_additions); - if (option_given_p(opts, tmp)) { - json->create_additions = RTEST(rb_hash_aref(opts, tmp)); - } else { - json->create_additions = 1; - } - tmp = ID2SYM(i_create_id); - if (option_given_p(opts, tmp)) { - json->create_id = rb_hash_aref(opts, tmp); - } else { - json->create_id = rb_funcall(mJSON, i_create_id, 0); - } - tmp = ID2SYM(i_object_class); - if (option_given_p(opts, tmp)) { - json->object_class = rb_hash_aref(opts, tmp); - } else { - json->object_class = Qnil; - } - tmp = ID2SYM(i_array_class); - if (option_given_p(opts, tmp)) { - json->array_class = rb_hash_aref(opts, tmp); - } else { - json->array_class = Qnil; - } - tmp = ID2SYM(i_match_string); - if (option_given_p(opts, tmp)) { - VALUE match_string = rb_hash_aref(opts, tmp); - json->match_string = RTEST(match_string) ? match_string : Qnil; - } else { - json->match_string = Qnil; - } - } - } else { - json->max_nesting = 19; - json->allow_nan = 0; - json->create_additions = 1; - json->create_id = rb_funcall(mJSON, i_create_id, 0); - json->object_class = Qnil; - json->array_class = Qnil; - } - json->current_nesting = 0; - json->len = len; - json->source = ptr; - json->Vsource = source; - return self; -} - -/* - * call-seq: parse() - * - * Parses the current JSON text _source_ and returns the complete data - * structure as a result. - */ -static VALUE cParser_parse(VALUE self) -{ - char *p, *pe; - int cs = EVIL; - VALUE result = Qnil; - GET_PARSER; - - -#line 1733 "parser.c" - { - cs = JSON_start; - } - -#line 730 "parser.rl" - p = json->source; - pe = p + json->len; - -#line 1742 "parser.c" - { - if ( p == pe ) - goto _test_eof; - switch ( cs ) - { -st1: - if ( ++p == pe ) - goto _test_eof1; -case 1: - switch( (*p) ) { - case 13: goto st1; - case 32: goto st1; - case 47: goto st2; - case 91: goto tr3; - case 123: goto tr4; - } - if ( 9 <= (*p) && (*p) <= 10 ) - goto st1; - goto st0; -st0: -cs = 0; - goto _out; -st2: - if ( ++p == pe ) - goto _test_eof2; -case 2: - switch( (*p) ) { - case 42: goto st3; - case 47: goto st5; - } - goto st0; -st3: - if ( ++p == pe ) - goto _test_eof3; -case 3: - if ( (*p) == 42 ) - goto st4; - goto st3; -st4: - if ( ++p == pe ) - goto _test_eof4; -case 4: - switch( (*p) ) { - case 42: goto st4; - case 47: goto st1; - } - goto st3; -st5: - if ( ++p == pe ) - goto _test_eof5; -case 5: - if ( (*p) == 10 ) - goto st1; - goto st5; -tr3: -#line 531 "parser.rl" - { - char *np; - json->current_nesting = 1; - np = JSON_parse_array(json, p, pe, &result); - if (np == NULL) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;} - } - goto st10; -tr4: -#line 524 "parser.rl" - { - char *np; - json->current_nesting = 1; - np = JSON_parse_object(json, p, pe, &result); - if (np == NULL) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;} - } - goto st10; -st10: - if ( ++p == pe ) - goto _test_eof10; -case 10: -#line 1819 "parser.c" - switch( (*p) ) { - case 13: goto st10; - case 32: goto st10; - case 47: goto st6; - } - if ( 9 <= (*p) && (*p) <= 10 ) - goto st10; - goto st0; -st6: - if ( ++p == pe ) - goto _test_eof6; -case 6: - switch( (*p) ) { - case 42: goto st7; - case 47: goto st9; - } - goto st0; -st7: - if ( ++p == pe ) - goto _test_eof7; -case 7: - if ( (*p) == 42 ) - goto st8; - goto st7; -st8: - if ( ++p == pe ) - goto _test_eof8; -case 8: - switch( (*p) ) { - case 42: goto st8; - case 47: goto st10; - } - goto st7; -st9: - if ( ++p == pe ) - goto _test_eof9; -case 9: - if ( (*p) == 10 ) - goto st10; - goto st9; - } - _test_eof1: cs = 1; goto _test_eof; - _test_eof2: cs = 2; goto _test_eof; - _test_eof3: cs = 3; goto _test_eof; - _test_eof4: cs = 4; goto _test_eof; - _test_eof5: cs = 5; goto _test_eof; - _test_eof10: cs = 10; goto _test_eof; - _test_eof6: cs = 6; goto _test_eof; - _test_eof7: cs = 7; goto _test_eof; - _test_eof8: cs = 8; goto _test_eof; - _test_eof9: cs = 9; goto _test_eof; - - _test_eof: {} - _out: {} - } - -#line 733 "parser.rl" - - if (cs >= JSON_first_final && p == pe) { - return result; - } else { - rb_raise(eParserError, "%u: unexpected token at '%s'", __LINE__, p); - return Qnil; - } -} - -static JSON_Parser *JSON_allocate() -{ - JSON_Parser *json = ALLOC(JSON_Parser); - MEMZERO(json, JSON_Parser, 1); - return json; -} - -static void JSON_mark(JSON_Parser *json) -{ - rb_gc_mark_maybe(json->Vsource); - rb_gc_mark_maybe(json->create_id); - rb_gc_mark_maybe(json->object_class); - rb_gc_mark_maybe(json->array_class); - rb_gc_mark_maybe(json->match_string); -} - -static void JSON_free(JSON_Parser *json) -{ - ruby_xfree(json); -} - -static VALUE cJSON_parser_s_allocate(VALUE klass) -{ - JSON_Parser *json = JSON_allocate(); - return Data_Wrap_Struct(klass, JSON_mark, JSON_free, json); -} - -/* - * call-seq: source() - * - * Returns a copy of the current _source_ string, that was used to construct - * this Parser. - */ -static VALUE cParser_source(VALUE self) -{ - GET_PARSER; - return rb_str_dup(json->Vsource); -} - -void Init_parser() -{ - rb_require("json/common"); - mJSON = rb_define_module("JSON"); - mExt = rb_define_module_under(mJSON, "Ext"); - cParser = rb_define_class_under(mExt, "Parser", rb_cObject); - eParserError = rb_path2class("JSON::ParserError"); - eNestingError = rb_path2class("JSON::NestingError"); - rb_define_alloc_func(cParser, cJSON_parser_s_allocate); - rb_define_method(cParser, "initialize", cParser_initialize, -1); - rb_define_method(cParser, "parse", cParser_parse, 0); - rb_define_method(cParser, "source", cParser_source, 0); - - CNaN = rb_const_get(mJSON, rb_intern("NaN")); - CInfinity = rb_const_get(mJSON, rb_intern("Infinity")); - CMinusInfinity = rb_const_get(mJSON, rb_intern("MinusInfinity")); - - i_json_creatable_p = rb_intern("json_creatable?"); - i_json_create = rb_intern("json_create"); - i_create_id = rb_intern("create_id"); - i_create_additions = rb_intern("create_additions"); - i_chr = rb_intern("chr"); - i_max_nesting = rb_intern("max_nesting"); - i_allow_nan = rb_intern("allow_nan"); - i_symbolize_names = rb_intern("symbolize_names"); - i_object_class = rb_intern("object_class"); - i_array_class = rb_intern("array_class"); - i_match = rb_intern("match"); - i_match_string = rb_intern("match_string"); - i_key_p = rb_intern("key?"); - i_deep_const_get = rb_intern("deep_const_get"); -#ifdef HAVE_RUBY_ENCODING_H - CEncoding_UTF_8 = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-8")); - CEncoding_UTF_16BE = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-16be")); - CEncoding_UTF_16LE = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-16le")); - CEncoding_UTF_32BE = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-32be")); - CEncoding_UTF_32LE = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-32le")); - CEncoding_ASCII_8BIT = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("ascii-8bit")); - i_encoding = rb_intern("encoding"); - i_encode = rb_intern("encode"); - i_encode_bang = rb_intern("encode!"); - i_force_encoding = rb_intern("force_encoding"); -#else - i_iconv = rb_intern("iconv"); -#endif -} diff --git a/lib/mcollective/vendor/json/ext/json/ext/parser/parser.h b/lib/mcollective/vendor/json/ext/json/ext/parser/parser.h deleted file mode 100644 index ed48035..0000000 --- a/lib/mcollective/vendor/json/ext/json/ext/parser/parser.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef _PARSER_H_ -#define _PARSER_H_ - -#include "ruby.h" - -#if HAVE_RE_H -#include "re.h" -#endif - -#ifdef HAVE_RUBY_ENCODING_H -#include "ruby/encoding.h" -#define FORCE_UTF8(obj) rb_enc_associate((obj), rb_utf8_encoding()) -#else -#define FORCE_UTF8(obj) -#endif -#ifdef HAVE_RUBY_ST_H -#include "ruby/st.h" -#else -#include "st.h" -#endif - -#define option_given_p(opts, key) RTEST(rb_funcall(opts, i_key_p, 1, key)) - -/* unicode */ - -typedef unsigned long UTF32; /* at least 32 bits */ -typedef unsigned short UTF16; /* at least 16 bits */ -typedef unsigned char UTF8; /* typically 8 bits */ - -#define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD -#define UNI_SUR_HIGH_START (UTF32)0xD800 -#define UNI_SUR_HIGH_END (UTF32)0xDBFF -#define UNI_SUR_LOW_START (UTF32)0xDC00 -#define UNI_SUR_LOW_END (UTF32)0xDFFF - -typedef struct JSON_ParserStruct { - VALUE Vsource; - char *source; - long len; - char *memo; - VALUE create_id; - int max_nesting; - int current_nesting; - int allow_nan; - int parsing_name; - int symbolize_names; - VALUE object_class; - VALUE array_class; - int create_additions; - VALUE match_string; -} JSON_Parser; - -#define GET_PARSER \ - JSON_Parser *json; \ - Data_Get_Struct(self, JSON_Parser, json) - -#define MinusInfinity "-Infinity" -#define EVIL 0x666 - -static UTF32 unescape_unicode(const unsigned char *p); -static int convert_UTF32_to_UTF8(char *buf, UTF32 ch); -static char *JSON_parse_object(JSON_Parser *json, char *p, char *pe, VALUE *result); -static char *JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *result); -static char *JSON_parse_integer(JSON_Parser *json, char *p, char *pe, VALUE *result); -static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *result); -static char *JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *result); -static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd); -static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *result); -static VALUE convert_encoding(VALUE source); -static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self); -static VALUE cParser_parse(VALUE self); -static JSON_Parser *JSON_allocate(); -static void JSON_mark(JSON_Parser *json); -static void JSON_free(JSON_Parser *json); -static VALUE cJSON_parser_s_allocate(VALUE klass); -static VALUE cParser_source(VALUE self); - -#endif diff --git a/lib/mcollective/vendor/json/ext/json/ext/parser/parser.rl b/lib/mcollective/vendor/json/ext/json/ext/parser/parser.rl deleted file mode 100644 index 5862698..0000000 --- a/lib/mcollective/vendor/json/ext/json/ext/parser/parser.rl +++ /dev/null @@ -1,826 +0,0 @@ -#include "parser.h" - -/* unicode */ - -static const char digit_values[256] = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, - -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1 -}; - -static UTF32 unescape_unicode(const unsigned char *p) -{ - char b; - UTF32 result = 0; - b = digit_values[p[0]]; - if (b < 0) return UNI_REPLACEMENT_CHAR; - result = (result << 4) | b; - b = digit_values[p[1]]; - result = (result << 4) | b; - if (b < 0) return UNI_REPLACEMENT_CHAR; - b = digit_values[p[2]]; - result = (result << 4) | b; - if (b < 0) return UNI_REPLACEMENT_CHAR; - b = digit_values[p[3]]; - result = (result << 4) | b; - if (b < 0) return UNI_REPLACEMENT_CHAR; - return result; -} - -static int convert_UTF32_to_UTF8(char *buf, UTF32 ch) -{ - int len = 1; - if (ch <= 0x7F) { - buf[0] = (char) ch; - } else if (ch <= 0x07FF) { - buf[0] = (char) ((ch >> 6) | 0xC0); - buf[1] = (char) ((ch & 0x3F) | 0x80); - len++; - } else if (ch <= 0xFFFF) { - buf[0] = (char) ((ch >> 12) | 0xE0); - buf[1] = (char) (((ch >> 6) & 0x3F) | 0x80); - buf[2] = (char) ((ch & 0x3F) | 0x80); - len += 2; - } else if (ch <= 0x1fffff) { - buf[0] =(char) ((ch >> 18) | 0xF0); - buf[1] =(char) (((ch >> 12) & 0x3F) | 0x80); - buf[2] =(char) (((ch >> 6) & 0x3F) | 0x80); - buf[3] =(char) ((ch & 0x3F) | 0x80); - len += 3; - } else { - buf[0] = '?'; - } - return len; -} - -#ifdef HAVE_RUBY_ENCODING_H -static VALUE CEncoding_ASCII_8BIT, CEncoding_UTF_8, CEncoding_UTF_16BE, - CEncoding_UTF_16LE, CEncoding_UTF_32BE, CEncoding_UTF_32LE; -static ID i_encoding, i_encode, i_encode_bang, i_force_encoding; -#else -static ID i_iconv; -#endif - -static VALUE mJSON, mExt, cParser, eParserError, eNestingError; -static VALUE CNaN, CInfinity, CMinusInfinity; - -static ID i_json_creatable_p, i_json_create, i_create_id, i_create_additions, - i_chr, i_max_nesting, i_allow_nan, i_symbolize_names, i_object_class, - i_array_class, i_key_p, i_deep_const_get, i_match, i_match_string; - -%%{ - machine JSON_common; - - cr = '\n'; - cr_neg = [^\n]; - ws = [ \t\r\n]; - c_comment = '/*' ( any* - (any* '*/' any* ) ) '*/'; - cpp_comment = '//' cr_neg* cr; - comment = c_comment | cpp_comment; - ignore = ws | comment; - name_separator = ':'; - value_separator = ','; - Vnull = 'null'; - Vfalse = 'false'; - Vtrue = 'true'; - VNaN = 'NaN'; - VInfinity = 'Infinity'; - VMinusInfinity = '-Infinity'; - begin_value = [nft"\-[{NI] | digit; - begin_object = '{'; - end_object = '}'; - begin_array = '['; - end_array = ']'; - begin_string = '"'; - begin_name = begin_string; - begin_number = digit | '-'; -}%% - -%%{ - machine JSON_object; - include JSON_common; - - write data; - - action parse_value { - VALUE v = Qnil; - char *np = JSON_parse_value(json, fpc, pe, &v); - if (np == NULL) { - fhold; fbreak; - } else { - rb_hash_aset(*result, last_name, v); - fexec np; - } - } - - action parse_name { - char *np; - json->parsing_name = 1; - np = JSON_parse_string(json, fpc, pe, &last_name); - json->parsing_name = 0; - if (np == NULL) { fhold; fbreak; } else fexec np; - } - - action exit { fhold; fbreak; } - - a_pair = ignore* begin_name >parse_name - ignore* name_separator ignore* - begin_value >parse_value; - - main := begin_object - (a_pair (ignore* value_separator a_pair)*)? - ignore* end_object @exit; -}%% - -static char *JSON_parse_object(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - VALUE last_name = Qnil; - VALUE object_class = json->object_class; - - if (json->max_nesting && json->current_nesting > json->max_nesting) { - rb_raise(eNestingError, "nesting of %d is too deep", json->current_nesting); - } - - *result = NIL_P(object_class) ? rb_hash_new() : rb_class_new_instance(0, 0, object_class); - - %% write init; - %% write exec; - - if (cs >= JSON_object_first_final) { - if (json->create_additions) { - VALUE klassname = rb_hash_aref(*result, json->create_id); - if (!NIL_P(klassname)) { - VALUE klass = rb_funcall(mJSON, i_deep_const_get, 1, klassname); - if (RTEST(rb_funcall(klass, i_json_creatable_p, 0))) { - *result = rb_funcall(klass, i_json_create, 1, *result); - } - } - } - return p + 1; - } else { - return NULL; - } -} - -%%{ - machine JSON_value; - include JSON_common; - - write data; - - action parse_null { - *result = Qnil; - } - action parse_false { - *result = Qfalse; - } - action parse_true { - *result = Qtrue; - } - action parse_nan { - if (json->allow_nan) { - *result = CNaN; - } else { - rb_raise(eParserError, "%u: unexpected token at '%s'", __LINE__, p - 2); - } - } - action parse_infinity { - if (json->allow_nan) { - *result = CInfinity; - } else { - rb_raise(eParserError, "%u: unexpected token at '%s'", __LINE__, p - 8); - } - } - action parse_string { - char *np = JSON_parse_string(json, fpc, pe, result); - if (np == NULL) { fhold; fbreak; } else fexec np; - } - - action parse_number { - char *np; - if(pe > fpc + 9 && !strncmp(MinusInfinity, fpc, 9)) { - if (json->allow_nan) { - *result = CMinusInfinity; - fexec p + 10; - fhold; fbreak; - } else { - rb_raise(eParserError, "%u: unexpected token at '%s'", __LINE__, p); - } - } - np = JSON_parse_float(json, fpc, pe, result); - if (np != NULL) fexec np; - np = JSON_parse_integer(json, fpc, pe, result); - if (np != NULL) fexec np; - fhold; fbreak; - } - - action parse_array { - char *np; - json->current_nesting++; - np = JSON_parse_array(json, fpc, pe, result); - json->current_nesting--; - if (np == NULL) { fhold; fbreak; } else fexec np; - } - - action parse_object { - char *np; - json->current_nesting++; - np = JSON_parse_object(json, fpc, pe, result); - json->current_nesting--; - if (np == NULL) { fhold; fbreak; } else fexec np; - } - - action exit { fhold; fbreak; } - -main := ( - Vnull @parse_null | - Vfalse @parse_false | - Vtrue @parse_true | - VNaN @parse_nan | - VInfinity @parse_infinity | - begin_number >parse_number | - begin_string >parse_string | - begin_array >parse_array | - begin_object >parse_object - ) %*exit; -}%% - -static char *JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - - %% write init; - %% write exec; - - if (cs >= JSON_value_first_final) { - return p; - } else { - return NULL; - } -} - -%%{ - machine JSON_integer; - - write data; - - action exit { fhold; fbreak; } - - main := '-'? ('0' | [1-9][0-9]*) (^[0-9] @exit); -}%% - -static char *JSON_parse_integer(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - - %% write init; - json->memo = p; - %% write exec; - - if (cs >= JSON_integer_first_final) { - long len = p - json->memo; - *result = rb_Integer(rb_str_new(json->memo, len)); - return p + 1; - } else { - return NULL; - } -} - -%%{ - machine JSON_float; - include JSON_common; - - write data; - - action exit { fhold; fbreak; } - - main := '-'? ( - (('0' | [1-9][0-9]*) '.' [0-9]+ ([Ee] [+\-]?[0-9]+)?) - | (('0' | [1-9][0-9]*) ([Ee] [+\-]?[0-9]+)) - ) (^[0-9Ee.\-] @exit ); -}%% - -static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - - %% write init; - json->memo = p; - %% write exec; - - if (cs >= JSON_float_first_final) { - long len = p - json->memo; - *result = rb_Float(rb_str_new(json->memo, len)); - return p + 1; - } else { - return NULL; - } -} - - -%%{ - machine JSON_array; - include JSON_common; - - write data; - - action parse_value { - VALUE v = Qnil; - char *np = JSON_parse_value(json, fpc, pe, &v); - if (np == NULL) { - fhold; fbreak; - } else { - rb_ary_push(*result, v); - fexec np; - } - } - - action exit { fhold; fbreak; } - - next_element = value_separator ignore* begin_value >parse_value; - - main := begin_array ignore* - ((begin_value >parse_value ignore*) - (ignore* next_element ignore*)*)? - end_array @exit; -}%% - -static char *JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - VALUE array_class = json->array_class; - - if (json->max_nesting && json->current_nesting > json->max_nesting) { - rb_raise(eNestingError, "nesting of %d is too deep", json->current_nesting); - } - *result = NIL_P(array_class) ? rb_ary_new() : rb_class_new_instance(0, 0, array_class); - - %% write init; - %% write exec; - - if(cs >= JSON_array_first_final) { - return p + 1; - } else { - rb_raise(eParserError, "%u: unexpected token at '%s'", __LINE__, p); - return NULL; - } -} - -static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd) -{ - char *p = string, *pe = string, *unescape; - int unescape_len; - - while (pe < stringEnd) { - if (*pe == '\\') { - unescape = (char *) "?"; - unescape_len = 1; - if (pe > p) rb_str_buf_cat(result, p, pe - p); - switch (*++pe) { - case 'n': - unescape = (char *) "\n"; - break; - case 'r': - unescape = (char *) "\r"; - break; - case 't': - unescape = (char *) "\t"; - break; - case '"': - unescape = (char *) "\""; - break; - case '\\': - unescape = (char *) "\\"; - break; - case 'b': - unescape = (char *) "\b"; - break; - case 'f': - unescape = (char *) "\f"; - break; - case 'u': - if (pe > stringEnd - 4) { - return Qnil; - } else { - char buf[4]; - UTF32 ch = unescape_unicode((unsigned char *) ++pe); - pe += 3; - if (UNI_SUR_HIGH_START == (ch & 0xFC00)) { - pe++; - if (pe > stringEnd - 6) return Qnil; - if (pe[0] == '\\' && pe[1] == 'u') { - UTF32 sur = unescape_unicode((unsigned char *) pe + 2); - ch = (((ch & 0x3F) << 10) | ((((ch >> 6) & 0xF) + 1) << 16) - | (sur & 0x3FF)); - pe += 5; - } else { - unescape = (char *) "?"; - break; - } - } - unescape_len = convert_UTF32_to_UTF8(buf, ch); - unescape = buf; - } - break; - default: - p = pe; - continue; - } - rb_str_buf_cat(result, unescape, unescape_len); - p = ++pe; - } else { - pe++; - } - } - rb_str_buf_cat(result, p, pe - p); - return result; -} - -%%{ - machine JSON_string; - include JSON_common; - - write data; - - action parse_string { - *result = json_string_unescape(*result, json->memo + 1, p); - if (NIL_P(*result)) { - fhold; - fbreak; - } else { - FORCE_UTF8(*result); - fexec p + 1; - } - } - - action exit { fhold; fbreak; } - - main := '"' ((^(["\\] | 0..0x1f) | '\\'["\\/bfnrt] | '\\u'[0-9a-fA-F]{4} | '\\'^(["\\/bfnrtu]|0..0x1f))* %parse_string) '"' @exit; -}%% - -static int -match_i(VALUE regexp, VALUE klass, VALUE memo) -{ - if (regexp == Qundef) return ST_STOP; - if (RTEST(rb_funcall(klass, i_json_creatable_p, 0)) && - RTEST(rb_funcall(regexp, i_match, 1, rb_ary_entry(memo, 0)))) { - rb_ary_push(memo, klass); - return ST_STOP; - } - return ST_CONTINUE; -} - -static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *result) -{ - int cs = EVIL; - VALUE match_string; - - *result = rb_str_buf_new(0); - %% write init; - json->memo = p; - %% write exec; - - if (json->create_additions && RTEST(match_string = json->match_string)) { - VALUE klass; - VALUE memo = rb_ary_new2(2); - rb_ary_push(memo, *result); - rb_hash_foreach(match_string, match_i, memo); - klass = rb_ary_entry(memo, 1); - if (RTEST(klass)) { - *result = rb_funcall(klass, i_json_create, 1, *result); - } - } - - if (json->symbolize_names && json->parsing_name) { - *result = rb_str_intern(*result); - } - if (cs >= JSON_string_first_final) { - return p + 1; - } else { - return NULL; - } -} - - -%%{ - machine JSON; - - write data; - - include JSON_common; - - action parse_object { - char *np; - json->current_nesting = 1; - np = JSON_parse_object(json, fpc, pe, &result); - if (np == NULL) { fhold; fbreak; } else fexec np; - } - - action parse_array { - char *np; - json->current_nesting = 1; - np = JSON_parse_array(json, fpc, pe, &result); - if (np == NULL) { fhold; fbreak; } else fexec np; - } - - main := ignore* ( - begin_object >parse_object | - begin_array >parse_array - ) ignore*; -}%% - -/* - * Document-class: JSON::Ext::Parser - * - * This is the JSON parser implemented as a C extension. It can be configured - * to be used by setting - * - * JSON.parser = JSON::Ext::Parser - * - * with the method parser= in JSON. - * - */ - -static VALUE convert_encoding(VALUE source) -{ - char *ptr = RSTRING_PTR(source); - long len = RSTRING_LEN(source); - if (len < 2) { - rb_raise(eParserError, "A JSON text must at least contain two octets!"); - } -#ifdef HAVE_RUBY_ENCODING_H - { - VALUE encoding = rb_funcall(source, i_encoding, 0); - if (encoding == CEncoding_ASCII_8BIT) { - if (len >= 4 && ptr[0] == 0 && ptr[1] == 0 && ptr[2] == 0) { - source = rb_str_dup(source); - rb_funcall(source, i_force_encoding, 1, CEncoding_UTF_32BE); - source = rb_funcall(source, i_encode_bang, 1, CEncoding_UTF_8); - } else if (len >= 4 && ptr[0] == 0 && ptr[2] == 0) { - source = rb_str_dup(source); - rb_funcall(source, i_force_encoding, 1, CEncoding_UTF_16BE); - source = rb_funcall(source, i_encode_bang, 1, CEncoding_UTF_8); - } else if (len >= 4 && ptr[1] == 0 && ptr[2] == 0 && ptr[3] == 0) { - source = rb_str_dup(source); - rb_funcall(source, i_force_encoding, 1, CEncoding_UTF_32LE); - source = rb_funcall(source, i_encode_bang, 1, CEncoding_UTF_8); - } else if (len >= 4 && ptr[1] == 0 && ptr[3] == 0) { - source = rb_str_dup(source); - rb_funcall(source, i_force_encoding, 1, CEncoding_UTF_16LE); - source = rb_funcall(source, i_encode_bang, 1, CEncoding_UTF_8); - } else { - FORCE_UTF8(source); - } - } else { - source = rb_funcall(source, i_encode, 1, CEncoding_UTF_8); - } - } -#else - if (len >= 4 && ptr[0] == 0 && ptr[1] == 0 && ptr[2] == 0) { - source = rb_funcall(mJSON, i_iconv, 3, rb_str_new2("utf-8"), rb_str_new2("utf-32be"), source); - } else if (len >= 4 && ptr[0] == 0 && ptr[2] == 0) { - source = rb_funcall(mJSON, i_iconv, 3, rb_str_new2("utf-8"), rb_str_new2("utf-16be"), source); - } else if (len >= 4 && ptr[1] == 0 && ptr[2] == 0 && ptr[3] == 0) { - source = rb_funcall(mJSON, i_iconv, 3, rb_str_new2("utf-8"), rb_str_new2("utf-32le"), source); - } else if (len >= 4 && ptr[1] == 0 && ptr[3] == 0) { - source = rb_funcall(mJSON, i_iconv, 3, rb_str_new2("utf-8"), rb_str_new2("utf-16le"), source); - } -#endif - return source; -} - -/* - * call-seq: new(source, opts => {}) - * - * Creates a new JSON::Ext::Parser instance for the string _source_. - * - * Creates a new JSON::Ext::Parser instance for the string _source_. - * - * It will be configured by the _opts_ hash. _opts_ can have the following - * keys: - * - * _opts_ can have the following keys: - * * *max_nesting*: The maximum depth of nesting allowed in the parsed data - * structures. Disable depth checking with :max_nesting => false|nil|0, it - * defaults to 19. - * * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in - * defiance of RFC 4627 to be parsed by the Parser. This option defaults to - * false. - * * *symbolize_names*: If set to true, returns symbols for the names - * (keys) in a JSON object. Otherwise strings are returned, which is also - * the default. - * * *create_additions*: If set to false, the Parser doesn't create - * additions even if a matchin class and create_id was found. This option - * defaults to true. - * * *object_class*: Defaults to Hash - * * *array_class*: Defaults to Array - */ -static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self) -{ - char *ptr; - long len; - VALUE source, opts; - GET_PARSER; - rb_scan_args(argc, argv, "11", &source, &opts); - source = convert_encoding(StringValue(source)); - ptr = RSTRING_PTR(source); - len = RSTRING_LEN(source); - if (!NIL_P(opts)) { - opts = rb_convert_type(opts, T_HASH, "Hash", "to_hash"); - if (NIL_P(opts)) { - rb_raise(rb_eArgError, "opts needs to be like a hash"); - } else { - VALUE tmp = ID2SYM(i_max_nesting); - if (option_given_p(opts, tmp)) { - VALUE max_nesting = rb_hash_aref(opts, tmp); - if (RTEST(max_nesting)) { - Check_Type(max_nesting, T_FIXNUM); - json->max_nesting = FIX2INT(max_nesting); - } else { - json->max_nesting = 0; - } - } else { - json->max_nesting = 19; - } - tmp = ID2SYM(i_allow_nan); - if (option_given_p(opts, tmp)) { - json->allow_nan = RTEST(rb_hash_aref(opts, tmp)) ? 1 : 0; - } else { - json->allow_nan = 0; - } - tmp = ID2SYM(i_symbolize_names); - if (option_given_p(opts, tmp)) { - json->symbolize_names = RTEST(rb_hash_aref(opts, tmp)) ? 1 : 0; - } else { - json->symbolize_names = 0; - } - tmp = ID2SYM(i_create_additions); - if (option_given_p(opts, tmp)) { - json->create_additions = RTEST(rb_hash_aref(opts, tmp)); - } else { - json->create_additions = 1; - } - tmp = ID2SYM(i_create_id); - if (option_given_p(opts, tmp)) { - json->create_id = rb_hash_aref(opts, tmp); - } else { - json->create_id = rb_funcall(mJSON, i_create_id, 0); - } - tmp = ID2SYM(i_object_class); - if (option_given_p(opts, tmp)) { - json->object_class = rb_hash_aref(opts, tmp); - } else { - json->object_class = Qnil; - } - tmp = ID2SYM(i_array_class); - if (option_given_p(opts, tmp)) { - json->array_class = rb_hash_aref(opts, tmp); - } else { - json->array_class = Qnil; - } - tmp = ID2SYM(i_match_string); - if (option_given_p(opts, tmp)) { - VALUE match_string = rb_hash_aref(opts, tmp); - json->match_string = RTEST(match_string) ? match_string : Qnil; - } else { - json->match_string = Qnil; - } - } - } else { - json->max_nesting = 19; - json->allow_nan = 0; - json->create_additions = 1; - json->create_id = rb_funcall(mJSON, i_create_id, 0); - json->object_class = Qnil; - json->array_class = Qnil; - } - json->current_nesting = 0; - json->len = len; - json->source = ptr; - json->Vsource = source; - return self; -} - -/* - * call-seq: parse() - * - * Parses the current JSON text _source_ and returns the complete data - * structure as a result. - */ -static VALUE cParser_parse(VALUE self) -{ - char *p, *pe; - int cs = EVIL; - VALUE result = Qnil; - GET_PARSER; - - %% write init; - p = json->source; - pe = p + json->len; - %% write exec; - - if (cs >= JSON_first_final && p == pe) { - return result; - } else { - rb_raise(eParserError, "%u: unexpected token at '%s'", __LINE__, p); - return Qnil; - } -} - -static JSON_Parser *JSON_allocate() -{ - JSON_Parser *json = ALLOC(JSON_Parser); - MEMZERO(json, JSON_Parser, 1); - return json; -} - -static void JSON_mark(JSON_Parser *json) -{ - rb_gc_mark_maybe(json->Vsource); - rb_gc_mark_maybe(json->create_id); - rb_gc_mark_maybe(json->object_class); - rb_gc_mark_maybe(json->array_class); - rb_gc_mark_maybe(json->match_string); -} - -static void JSON_free(JSON_Parser *json) -{ - ruby_xfree(json); -} - -static VALUE cJSON_parser_s_allocate(VALUE klass) -{ - JSON_Parser *json = JSON_allocate(); - return Data_Wrap_Struct(klass, JSON_mark, JSON_free, json); -} - -/* - * call-seq: source() - * - * Returns a copy of the current _source_ string, that was used to construct - * this Parser. - */ -static VALUE cParser_source(VALUE self) -{ - GET_PARSER; - return rb_str_dup(json->Vsource); -} - -void Init_parser() -{ - rb_require("json/common"); - mJSON = rb_define_module("JSON"); - mExt = rb_define_module_under(mJSON, "Ext"); - cParser = rb_define_class_under(mExt, "Parser", rb_cObject); - eParserError = rb_path2class("JSON::ParserError"); - eNestingError = rb_path2class("JSON::NestingError"); - rb_define_alloc_func(cParser, cJSON_parser_s_allocate); - rb_define_method(cParser, "initialize", cParser_initialize, -1); - rb_define_method(cParser, "parse", cParser_parse, 0); - rb_define_method(cParser, "source", cParser_source, 0); - - CNaN = rb_const_get(mJSON, rb_intern("NaN")); - CInfinity = rb_const_get(mJSON, rb_intern("Infinity")); - CMinusInfinity = rb_const_get(mJSON, rb_intern("MinusInfinity")); - - i_json_creatable_p = rb_intern("json_creatable?"); - i_json_create = rb_intern("json_create"); - i_create_id = rb_intern("create_id"); - i_create_additions = rb_intern("create_additions"); - i_chr = rb_intern("chr"); - i_max_nesting = rb_intern("max_nesting"); - i_allow_nan = rb_intern("allow_nan"); - i_symbolize_names = rb_intern("symbolize_names"); - i_object_class = rb_intern("object_class"); - i_array_class = rb_intern("array_class"); - i_match = rb_intern("match"); - i_match_string = rb_intern("match_string"); - i_key_p = rb_intern("key?"); - i_deep_const_get = rb_intern("deep_const_get"); -#ifdef HAVE_RUBY_ENCODING_H - CEncoding_UTF_8 = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-8")); - CEncoding_UTF_16BE = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-16be")); - CEncoding_UTF_16LE = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-16le")); - CEncoding_UTF_32BE = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-32be")); - CEncoding_UTF_32LE = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-32le")); - CEncoding_ASCII_8BIT = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("ascii-8bit")); - i_encoding = rb_intern("encoding"); - i_encode = rb_intern("encode"); - i_encode_bang = rb_intern("encode!"); - i_force_encoding = rb_intern("force_encoding"); -#else - i_iconv = rb_intern("iconv"); -#endif -} diff --git a/lib/mcollective/vendor/json/install.rb b/lib/mcollective/vendor/json/install.rb deleted file mode 100755 index adf77a0..0000000 --- a/lib/mcollective/vendor/json/install.rb +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env ruby - -require 'rbconfig' -require 'fileutils' -include FileUtils::Verbose - -include Config - -bindir = CONFIG["bindir"] -cd 'bin' do - filename = 'edit_json.rb' - #install(filename, bindir) -end -sitelibdir = CONFIG["sitelibdir"] -cd 'lib' do - install('json.rb', sitelibdir) - mkdir_p File.join(sitelibdir, 'json') - for file in Dir['json/**/*.{rb,xpm}'] - d = File.join(sitelibdir, file) - mkdir_p File.dirname(d) - install(file, d) - end - install(File.join('json', 'editor.rb'), File.join(sitelibdir,'json')) - install(File.join('json', 'json.xpm'), File.join(sitelibdir,'json')) -end -warn " *** Installed PURE ruby library." diff --git a/lib/mcollective/vendor/json/java/lib/bytelist-1.0.6.jar b/lib/mcollective/vendor/json/java/lib/bytelist-1.0.6.jar deleted file mode 100644 index 7918e7ccb059b448102825f51b04ad288cb65adb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10493 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	l9*b@p9lRK%4#JdkY#w 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 F{6ErLZD9Za diff --git a/lib/mcollective/vendor/json/java/lib/jcodings.jar b/lib/mcollective/vendor/json/java/lib/jcodings.jar deleted file mode 100644 index e33fc99c0bc4581ade7f2ad3a7d78a64bd3f054f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242327 zcmb5V19WB4vM!uX$4SSwZQHiZj&0i=+qP{dJGO1J!;bamymQWd_w;-3j`6Rt*4k@~ zUA5PkyS}Pf_05{{Qr|(Kfc|m(f}-I0Ul0GfL4JM8h$sutNXUxP$^T0X0x0xLtV!UO zsPyaW-(MH<e;1Pxkd+V>QBtOr5jBosfCkXRi$3yy^ha?jmj?>5ofqP>|Ekc=sK_ps zXe%82@LUfkZ|#Qb9_Gs34;Pf4BKGeZ*KZSVS`&BQk3NWqNzS(Ro6cQSg&;~JzG7No zR^NhvU5T5gv|SwvQ(J=W@t1fwV(6|xJ2hq@cX2i>BSm9?4LBH>RRnvjV!NpRX5x+q z2?b;1r_G@NVLk5_rr!pih)Y?60<lro|Gd3#JG)Z22>tJo0sXI$eGTTn4v?=WTL;ts z8vFk#@#9|-7KXM)<~F8||AQ#n-=fBDhQ@YI=C(Hff0PVuZ5*8pY@Gi4oBp;N>fdj2 zv@<p|H!(N-A6|s`w~n)uxz+z5kMy^^fuo_h`TwAR^0$JsjrrG~X8d0&{{)spU}>fG zHy|J+U?3o(zg2_`9F0Y7t&D`e^dy{&t!WLd3>+Q3<<}*F6_9m?(>gO+n8&rcPWdIK zMeqv%y`}yH{&4*YaIB0|z3gD#s&I&ZX2Aa_%<>w_@eKGoFLhTnt?F&#<p9~tNE3!j z0*kRH*wN-;3ekjc3N`S}RT(^v&JFj2OI^vnEa_W4kYC)>H1Pe@2NM!~+_3K5)E~>r zk{4Gs_%*5b-2f_O1)znSN{Jz4Bq}t^wcZryN!bEpXwq1sywvZo)TqO-W_<+kJ#Y+V z1fAEiGad8R8tRc?acgdA%s+jum`YEyc5V87;zb3P-H@m#iqF~tGaA-%hxSu{yliee z<ebHK*W74UoG920(;N~5n`z-w#bji3HoAXP#gtnwLZmmhaZO2k4zj=r6a{4f9$Y9O zA0mE43VP4|6!F7Im~S(Vbp+vv!l6{H=u_Aee7@XMxN!|P+@&e>1(gy7V*CJjp{zmR zMP{yzKdv((aS`_Jk0k$y;x2By#Ig8DVT<6ZL#g}A_kTOfKdt2h`YYk+%LgPdfq-!S zww8#^Kb=BY@Sk={QuowPP)X)Hwv?0=^7C**bw@6o0nU?|E2h9-OAhdF#y9T^*A&89 z=TH9`Pxu6)w*!rgGWhttj|~cnJm3i!)LGOtGix;~%h|>BxQ>hI^75iJ#{D<Pb9W-$ zuZEZDD_7s+Eyt_2N3QK>8;7^)8ayx{I-iRGr0X79c359>_$Q*i9PL`9kBb1qYc#R| zbOgvB82;`-u!mlNZ$Ywxgw*&>2(ZLXNU((1((FOCvDYwyq}Y<|k#_965P-O#0*D9* zF{Eq>_7FSjU3S1t&|nY}1Q}ws2zyv<kR9VLGC&c)2q+7hhbTevfG~wmMpA|Mfb<UX z0Z0NU0YC;U2C=mvcBH%1fYl&Vq$vXK&}(ggCV&&*@xzza;QKB&;5q0RAp`;qo|f2( z*ox4KR9m<;_1X(S5@Y~C1*igwg2o}}@U4hCW9>M0MS{?fbOl#r-6#x#>_82`4af`< zuNeWf02=`Mt|UMu$R2<T05PE3wE&DmCInFcm<{lDF#%K%%ZSxPo$=R{fC|VOg3jb? zPQZN-7DNqMr~kDmAOpgdbVIx~>>3rI1!+svnRN{dm<-Z_xFYV9!rN3O+mdmMfyV9i z)Y%!ZzSX|r1-wGGAo1oFgQMWi^}(H=a_<d@LE;g4WnM!9$RJ(ec|}?i?9g`SgQnqm zrJk^N?}F&yyTw~Gu1NqXkdN?}BwoSSDgf`GS4cScZqX;sT>$_a1RMe`sn>j%7;|)s zQ&&sYQ#8`H$cU|YVZu55MxHQXdS#55Vwo9KUt2yMs@yOlgis1wb!25&;xJKI^{pKz zhLqDJVvBe=5vmaS_DaSDrQYi7I>m#syAZ%?vMM7nO-&S4m?mR_lgHIbj}w)yCZ;ey zPna@Yd~mLgWwzb<)a<NNyj)ACzph%CcrzuEkl7o0dG%9H-qFa$lo&U{sF_pWg&IL> zT402VMk{=$^y+uweF*aq;_Oj(Hp;A#l#z%w^~TCNLKs~Xv0*t)0nsK-0!Mhajflo* zU49E24fqC%3|l65I7X52_9Z>4H&v*u0|;$cDXS;c)RdVRcRm?U(Vq&qw~FKm1rkD@ zv_KA-0GKh}2Wd$OK;_H~eB_~XI!`+_@I9%aPMt6@?X+fw^HHjRMnh6Y^@LqT13rch zPK>kgTz&n##rUZvjitPgsh(Vn8!X?XF7qwHlFj)9H5y!^(NJs<a|e;lVIbAUddkJG zsfg1+T!&i-)00G-C#<JDtPiDKrKjx3>L1IYg4y~yrGrsdy9#W${f`JkAB)F3Ay)vh z_yFg;qcsw1n<uoVv{HE;rJ|m-A9|%@HG0&5Mpa88n8o*yGs<~=``U8AMJ<b$Y7Cv_ z2yE3DW;snDi#ff#0VeP&2e9t=&Ln1~#P?N+?>^%@)0mVrLdHw_G*~0FSP<$V{7dqN z7(tukKf|WBs1$K)YADIy?<1;)-Z*V#<T1Z{65`y?3b*Icty-2D*%ISK5K}kNVnj%Z zjv%41@L@z%$D0yQ%8M!2=gl|Lo&Ht;S8K*dP<9A6JB=QYc9ha{P@!J54qs9k{goIj zoyy_?h;E<pTAjXD*1ToFl_}!RyC#gO0UX~^t5fs-*h{=+zBdOu6no`dV9(8K;+>bm z2rLmx&`i%xs$jA<ecz+BjoLQ#pw|BBZYK1DW}I5cx1gKDk(Re-`BouN33lwbh8eDF zh|V;Vt;Z%WGm3_v?G5}*HXm8ZcO=m29XE$#D?T4e7&K6Y1-It(XcX%8?$$UbWwX!J z_4<%g*$9Wy3f8A1aC=F?{HnCkS$UPK+zRKLrx?ELZ+@5Gev^4?m-1QXJJXyihEQub z0d24<8sMJdEH0r+w_S|q`o9;r_o2>L?<*2?wlZlIrjq4Xkgm(5T(<O^?gdqkC(fqr z?~lP0vwjq=T`H#S$1`cE$f_lEQN_+1cfBmWh|*~zLwOLl;p~Fu)%yJDFia_0XZrnd z^1cPCN@#iJR7mYP#9d1<SBGEE8UL&JfTo}_{w6J)x_GH}*aEiN8a8x|?s~fPkDDcM zy@zhDqM^BUTFJDAZWq6bh=_>qxaB>lb8@n~fSi(bS5PWLnzgB=_sV{SB|Z4aRAU;0 z>I2q$cf!z6f~a-+vF8}{fpb6Hp9ID9yWhX6zfRd<52V99Vb1i0X~QML$J&eIW_Cn5 zQKGE#@PyfFb;%)T)M;9YiP`DJX=I<{A-L<-#7bdX`|_HCj@E63P=dr2()gImWofdO zpbz_{l*e<lAtWfg_FcoLXsizjK8xTIpQNV5q4r7(6$(0Gfnq1kB&G7qCDKD_4CJM= z5*AwZ-4>N7mzpYTD!$*%DNUQIOl#IxMjchajcV&_0$LqMMzSsIdH|Q2W!g6v1#>hN zm%Or)(;nhi%tp-+Rhg99q(<0DZkEOgrup%)#-Wf(hV?Ph^yUTD`wTtwdj#);kepsP z1W}*KERy3k8qGS!HG)UYc&$R`bBDy_)8Djm)DT3HDa%PL*_^tz_Z6>mj)tR=cj6d- z78yK*G75Qo-(f5IZ=F%P!jnVBk^vykG~R+f`dqz5qog!*(8<^2U4`EOk44tKrun|H z1v+!d&{;b%1AAzqyKiN$-}I(np0xy0=zG%`-_f7A%-bdft_`1FClvWcWp|z!nGkP9 z@qi5B4(bf?4z2>fiS@Rj{eoVx2h!%2ADs+z%PsFK#smbaproI{&?*lWV~$l?q?U!; z(H9{UV~!Ffil&wS5<4B4E#^!RtH3lYuj3Y7WLJthwl5EtVeyYpkzroc;8s{9R!X`i zR!NXy2_~zcWKqFLDNna3H|JJabW(DcPB&0&lRzPLm$^+lU@My|q)Y%NRdJL*uG~#4 zH@UG=F{NsAhs~)v!&b@~Zz?}))itMOBcEh4?~c!y-j6K@1=lBFqik!H7@eHlD6~MJ zQ{~hfos@d=QZcYmuuyThQ?yZOilmdb*oRI^z7vr|yCaeOEosx8xUM4N7OWT=pTX58 zq>@Odbf)Ow$mUuWej{0=B54zSN2$V-DSvjjD49al#$m1)o?s#Em@|h-!lu_}sa$pF zEU9*@BB^%ABDs9)EP3u8ICuZ`tNt}=&IJ-|X+s&$q$*hM33D{0n-+7{9zHEpZBMXU zm5m~!ldiX@Dy}!GMIFz$MV{^%bKYJ(vE3@AwkWuvg^gVJaQXBw?Fa8?Az|==jOvgm zwNT{*u#UOlnE2nKW}pq!f1m*l;SqXl#KTB_Smwf2BXlBE`>pHKSOq)R;#3C>?@+FQ zs`W?Ay;5pJ+x9wN!&as+)(MOO?r*!dfIjhc`9d>x*z6kKGS?w|{bbB~Y1DyQeiCei z5be5PgS+ZOS`D4ng1+04O$Bw-qBifj+p*CGc-m2HM4<JvUIe|`p=`uRtVEyheA9-5 z+Y@zzVC(O9qvH;M>nnI-=MItU-*3gr?)APV#tp!EqU8=I(<k$R>bMrWX7+)d-l5yk zc%$JC?Fl`;iMbAl1E<5JU9rymMu$<bV{FKM!9d!t+yA`=J?Xlf0r~;Mxpo_(@0%e* zrwMi7a+K6gE<!L{Bs(^vqTNa>;ubS&FM=Ubr?HiPOO*9>^bLKd<%Qp4<nd1FLb>6P z<#o3`2rqqfpZ&feyMY%N9wuK%Ok@sVc!+M7YY6RHXJ6`R;0ehq{n+p7@JG<qF@smK z8Zk+exa^%{nYX6!uu*vdvJizIopBB;j6BtmR`6rV-c3x&-HK1Sm_U!1zb-+gU{>;3 z1{t?=Ir0jrhFQDvY61NdKKINJoaDXFi3|%ai0OLc`}H-i+kp{_Y1zJCAU+;=zZo{L z@oi&MIa&r2fKN)5zxW>7e6$2iawp}Q>V|e^`&1RA!#LS%H^jUdqHv1MGg`xdn^UHL z2FUbmC>*;P9<M<Vxq^(W)qW>&Cq&Y&KNmi<-wpd4Nql&N9rDCrzI1NV5dbj~!|eN8 z1<Fa=^|^Fzusn(Rdze+JaPz%Z9S89f-Af=JerSawvv2>-okM^xw`aEqERX&wz{hQm zxdWZ31D&b^ovZ_$u7f;TN7|1x(`;RY=`Euv;^;#s=*5+x#23x@`f7>xproQHB8hQn zgjAqlfa$lB1pTCB0GV6@2nph@kwgGRJV;Smsc0&brbMjwABXi>U$07Mu0b^<7mKaR zSx^1p-M1$sdQr>*97}If4%&MhzY-gejr){od%6quwo8ajmgGPzssrV*LuIe}=AKVY zgI<km&nHI5s;8QZa79>b4`H`PyDfs1Rno_ByNp1#ko8-4wN`5&@P2DqAI=R?sNnBz z#kmPN2*lYm>b=uY?X9YI_<Uq1M;?6wZ=E~(J_2^)V9*@IZlYjmXwa~SXrQ6?5j%EU zH0%L%@YthtkkNb4pb<~TeY0M1J87L_b})K`?8%Q%(fcR?`_CwSKf9&vfO{y}<J6$C z2VX(R>;-Fs9-(EA76X)?{PZavA(L+`1C-pec9?y1>^SvEPIdzWn4U2E9DIao18R`| z+!6@j;i3My%Lqv76sQefh6Zy>&}YFzfVnm4!}O7|Beg}z9JGa=I&uY>K5_*;zUB!y zzV-|_zGdyx<fT*}euQ4S^A2#>gtv-qNE-Hrk8U#mc@g^fD5x8~<^#lg@(Gf@iqCeH z_3H@=^NCfq|M9@ku-Dg=@yK_lVB%is^5ORM1wQ-(?mr8}DYS+r^siE${5ud3_TL5K zKgxJT0~=H0f7XZ2@iMlE0_ek^{Zq8b&5b`>_%)bC3u-B`^y<-QNG&kM<q=tUR-mCb z0f-wc{7FyN#H8AtZj3iOt51*%aE9;Gjk|?hX{Oo7qjwJ(t9ZWMKHu%IWWm6~%`XZS z5NmOT?U}2f(UZ=){k$@<Lx8cW$YFDEdM-ouQv_Uv<*JkZ1kC!-M<;q8CC&>lBak=7 z+izn%#P^e5%5kggxx+v9zXG4n7GluhSgCQCu~yW83`BN}zKh~J^NTz<nHnZ`7O)i? z!ry}fn<wQdRUVv}A<BX>(#7xF(``g7z^oeIuhF|<RSE!*S3Vwvfioyaux78<HVsxX z_81jA;qNivDKqBs4{wmUWgejiOerY}DQJFg3~`J#%>z~9_d9}CtQExfG{kaZ4OLq% zoEhtJHfQc*8jE#5PR3hiIGDIt;MGZ1HFWT=v3j?$KmSfV9!b&`n=&eS_-5Yb$IMIf z+R?7&uNsHrva;9*Ha4<PSiOU213yyW0<Lx+=`4DP(GyKgb|@UVwb1$_vm|CYhUcKP z2>lrXtrVm31zu~Ru(*D@)Mr+esWGZutNeK`xm%-ol7liaeB42MT~WJ8iBZbsEPUd2 za&UCIzCD0un1-rx?sJ#2vAj{IxqFnr7NIHReBk!!bL;TdUap@7UFCp;oSjAA6LR?o z$@u=Rk;NqZyljX$b$%u_{yxV{`u@nBM`ZVJg6O011QQMj$nT3C!ulIg|E3)N38*M_ zNH;7o6d$7B79{RCQZC5DYG<wXKgT69SqFJ8NO^yfSy+=rZDPw1#1%Dlg;7(?amuhu z`U4fsAVMK4=0cj6<$;jXxB&Y%Z>VvMdvA-iU18mAU6^&MF13E}PESltyl#I+doxu` zzde4B`POS($qJ#?mmpB;Hw{|*%*~>gdla$Y6_!q?bcf8Mmv>ar_-rWv(YJhhgC+1p z>J=fny|lx{{H_!5mJPOD62&*O6N>pZ0>=jnV0?m<c~4BwQMkJUdIR>6C@3j=Mq%kG zK4M#VOHSWbxbw95;Ge|%eogko#Ns=<QzKv&K=yvkcJ_H0>MQ>_jsFJyQPt<m{8WQy z5?K4qXV28HArdq#)SadHDXp9#XNVchW4gII>(wx@qy5ED3%wRSa4uV#({^xvsoKqA z?s{qu?>kFenzR-SFp^38ws?%jK65l4O{6o^wka-4e8(g)PkqMILTnnY6vpN-b)dh= zQH!*!G`1l;>z&SXkokiVX}$e8w#06Ee6*bY@#^wqFCXr7%%f5KQ)T*Tp*?a5n5XO2 zRm_hELZ=oqA~d6&bNcz>rm()-;*Y=^qMIdUZk{DhqeFRfPihyXJKCTogRz&%Mh12c zhMxx^``UW$zN83pzr&BEJx~+ES!|9llpjnT46DGA(ufHUwLIq^O0x=S6@%7w786`( zY}Erds(+2+uH~`*J}=&~HNMaQlgdcnY<!CBPq<O;hOl@Y5g;;XVk_uajAXGnIC4ZD zhv}4=MA!ICH5jxCwJ-#=kW^ygz;VSF$2T=nG9i@xRzY9`-7Y9o$Y_ozS9rHl<zn_b zFR3q*g*k1~#34EEf+wB6J~>Sy0f!=vK~jm$eoh|R16s@=O;$^KtOo=DHu08g4=o~h zNt}#C6t)`)LBq%x!t|Xe%m;E}7udmH*pOVRfrNYwX&TErO*y_#GCjxkC$+V8KMT=v zv=lKyJ>z?tRwTAW7&qi#!|Fm^wXy~5>00rMS7voSjd#K+h^xQUANp^EkaaPYW3G5q zM*Wym+)JIdydE)zt`m%;Gj%Ad+N72Tm4?Wwf2OYMs1<1#?i$6o%Ve6rrw~(n6$fXH zd`CMAKb>yNbI0S%<2H`e)ENy-aIY}s&R#bem^I;pgK)JRn7Cq&MsMq6fNw$EH)Csu zX;D6ysJn>(SwyIWNFAe&_+0UfVxID-e`Pq;264$)dWz1p4-)9AvKJ^H5gxtG8b@0T zbPjW2uN=`5ZRW~m527&acZ^WStTTfQ4YjARJv7?vXLzoLJ~t@K#LJW}nn9Mfl{U^S zDnHg%U?_1!MFFK^TVe8VCDGO)c*i)R=x0-kQnDUE3x4Ff@ahiJWzN1*7i~G(Teat1 z^OyK}qo78~!$Bardc%%)(|A~b)u6#}CZW}qNFxO~Dkik*1`xd*YUDObv2dIiQ0YnA zCJNzY>fuU|x^+d=qx6hC7b2Q6UoUxRB})-i`5+$M*9e%$7=Ak0U>|95U3F2?;dfm9 zWgW#+=4c9I8YFQLf7zyCpgUqRvPr~Ua4S5_J+O?s$tFy&5;vOhhm=s7QpiecBm6EP z7!G=ioRD>b%I(Gr7g`rDJMJzVr(o`C<wScv$_apaV7#K|HgG`^GPF5<l%r;rSSlhF z!R9K=w)?RoZ^D>D|02Dnq?y~3{cuL#`^I?@u*qo^;)26jb{b%V<59XQ9K&GIJYz`5 z@}0i40Vwih23(5;b-@4&J0DCXI6O;i{qcl;OmfCUjV=Cx2S$}Afhka6o*Sm17Jn97 zOKp#ZB&kx)w9>;pe$kb=m~9bD@g8V?^yr;)1B`C2FGvWJYH<~@-i=AdbfodPAKJ+c zEpu*{n*}L$X%~ULvY+epMu5Gjjxj4(zhVkdi(>n2Q1>L8xok)OB=+M4`2GI5GLBws za=;@isR1hTHB;^ZAcLt@-T<K$Qe;#2M{|Wv{UTDEGuy$ciYiqv2cLeO<e*3aAdFhq zm$zHpm#v$nQh$h9F{i;&(f2q+;)?Ji22;8_%)`SMLOCDlvNN(arq!LFd%@*)ugEaP zo947xE-2ldR7TUJJgLU2AIsooQC!z%skO7`a=FU*G8A|zjL2!(xc283n69p-JLH}% z79z|KJufVH&=H2ierRC6`K7kxWKcy=849X!&ZXX2>8Wb?s0e)&Nzk^2X=cS~e(x!C znLIeH=Z6P(32s|RqTpP&amNl%UGAdF0lB0KzrMv>Ar$TJzu7N)wK~A72k8)~>DhH9 z2SXpT@`n)zUU6q_5xnWHP$+piw}&1*OGORzK$rXO5qt0+$(5_^Ot_}FgXJh6rlYgJ zqgtnZlWTOr?3`^km(Oo<E)h^F=D(2*#Ej~OTS&-VrgTi`J|W8etpdvpwZ{BZfMARX ztgx0Vmgsp{z2n(-hO;6%%iUW;51LK@L{kg0luxzPC#eo+JriE66VgZ*nqfe+;m1`| zJK86U4!l#qi!OS`O!(;b^b7mokjNnn@S{@!-HnKld<8t8rpbBBQJztZbYyV77f#K= zSi!SE88vncSW$zYTubseP`(cO(5x!`twc_UqOE*EYSQr7V3av=@>ClTrW?q)&cKMH zeZ{Dyc~*t$Au)`bXDEJB8rjT^1e!5>CJS=uKwg>%Md@C?BOpnlLT)C+!Kl&$l-CvH z1q*<aQpVFeKQwFalFJP?z!M!GT8ZqCP?Bgo6hL@y5P@IjfJhP-BtdUKwi8^}?*XzL z%qCVQR#Js&*z6Ndl7?-CdW{GU)ehdL-y_u4ya?Q^258~$5@M4tbxy0aE~~JsQ+IBQ zqzWLy5WHz_h}GFfP4Pb?$urcV&fA}A9%HpX?D|93TG_gjfVP1WdBG<0O?|V>MI{u} zVFCUI{EE<yEPCS(qc)redj%Z)I1sbS5su8wt`&X0&z)bzm|x`*P61;K`%@wR1HPqs zo<&@;uBpbwS!GPb4XivoSnrs!b5-R|gyJPRA~=p$*Ul}6fT?yGV6b(JKkW%k>dqZK z!mLS^=%#KD>)n^vN5rxLEavVDlRf@=3@PI_zxQ5sEx5H`75PX<Dr&YQb-lXu#CRZ; zXPK*sreKoWE)!MiY>JPqP(Xu_RBQn|vynO3sk_5d1yW<4QtL2fl@LW3xC%7v-jzEm zB|>1uZ|$;Z?U%AI-j~vfXfqrao~irI6+)KjsnTGZVR#hnhM?qy@*WAkQjw_Jyfo@5 zHb?IIPNol06GpiVx0`i1xrDSrxOtplqC7WRrQbspTCD*k^O;pE#b}El%~kveC*D0& zU$#IEP!VemnayVu2xr}@^s+dB!Wl|=W^o0+=$I_65WkViVe!UnkP<MY$`M@+B~c`( zSQe{HNt^^FKmy}xaJFu7g}iH3d6yZGgmB-=>4~STGhr~lZ~=FA^eZtzq!L3?139@K zwKcKIQMgF~(IPPjlO#`6qEz9f7(w<|X}74yK~V0Ja>QyOwpy%uaF(I7OSsJB2h{Lm zAYc9-!w!XsD~H>vXyhJ>eE%BuMLKZ@>1ee?z2#nJr<YSe!yREqM;J~wTn)<A`1#2@ ze{;>SX~u6j5m=kYW(t}ntgGOPI<tjYPd_!3iS~vjC=(oB9-wjhA8gqm(gN?TF?qu! zCOO&bqOxSK)jZX;Wvh;JrQ<ioU`t`5_xyg={)|iD<EyID)9CG=oa)2Xp+73|)>iPX zOt|oeY+_F}!LW94FLyY-k}i)%#lW@u5Y~%`nx(|7(4w#Ryf1@BGT4wOjCBWY_p2GM zwpdYUqRGu}f!Hwgcp6FI6$mYEt%L;{STfy#Xrs(%V!E1YXAozhcxP7Z@m_X1?hff^ z!g0)uEgq!fupazke)nH=U{J0!)D?4sW3Kv`8G!FlqK4YA0(Vh=TW0$1(!g*Tk|o{( zJU!#tdK2|a$R_t!lmuJkKTk-ur|awPtPX*`f<IA&T5^Cc!jEmhG0;O60-mNLp0<uw zXtQb_1J?8!fzE94&G4^et2?nbGp_;Pht{zpLSB|v`(cT?^y?LnCk@Q134WS!fQ1XX zr2;OkA*#=V9Dvj%NXwP!vMN|=M`ojV(QTp|Lku}r)?BBgv06!UnWCW!X}YlLP3Mb{ zYISDjBsg0D$wYLSvx#5GXW7DNEj-aToOa&mVlLARoPT>Ig0Xe}e%k@G*$y#-0l7fn z_cogzdlc~JCwROb;WNqHd$o8GtvH<)$mut>ePpy;E>wm~>*_==T5(qz!BYXX!d&RN z%?Ny%HjHD@(`=DQ&kib*7VK761j#Eq5vW%D%@&9`A)BExT7J_n%`6*!8;$23LVi;n zYbtvI4>N@It;6ub4*V`pghJPS>lsl@RJ~3Q<%MR9QaVx3g`2(#DP|p2f`6RKdGwuP z4pCuOo#K=3>h6eR`7EV-g|BFMTvzzGapi>ZPyO*vy1KnLC#WK798Ew6q1YGwh>X;$ zp(L-h`qMjIiZW0{67dy5o`OXsc~HZ_iZL?%f<s;_dG1LIost&1BrG+E>EHiUl)hbD zujrvH=KUD`c_KIYdci*F+X2~I0BdkFspySMOM~h&C&CVMl>mT5sAEAcS0U@u6T<&9 z<Ax|{DX23lf8C1=Vku~kiQ<dvg#g!1w;T77NR(_@_-rXm{hdB)`5k~|l7U$b+ka7I z(E57<827z6&>elM?|$Rrj&ZpfnZIc96a2svHdgVp<1T&@1>o9u#zy0JO$06|Kj+5h z#gA_V&+HY`dv+EzILGHG{`w>!H;1-SxU5b6-dOPmya>8I$jR7QoDWp0{JjKU9%oLL zPJhf6$1drbAPzcaG-lfpMEjRbklW*Yr_zqlG3x%?sy|XZ-YicwpXyV1@aN?V=++@+ zB`Wmix(GW^Oh1y~(|NwURTq$q=d^$$hvuB%=b>d?n!ocq&9T9IFLL4!UB4fm<8+oB z;3<6F&0hO3+WuVG_aMsLRyEqAYVz(Vm3~Ph7C4_Q$v!YdoIjjo?sm$D!Kt{vsh`f~ z_U(r{<KnFG6wT~v5cb?-Uhm)ZUn3-5^v;Uy8or%1Cw(T1^#H0vWA60sRr#5`fO*3> z`A8xgO?fB#Z!s>zr~f8tb_nCQdB1utpuUJ2*1t>Y|J|h`VP$1(YG5T~X5e68=w$35 z^6&nYe=YCJ%Se5-VerUVn_!nnkI$hhG|r;RfL0~q5AdUJkPD6<KcVMzn(T3i`bud+ zfWG_rC_9--yVCCUy>lOLyk0&|52N{EEl?*~qqEc7n-N7wW>3V08G==;pTpsL{D$qX zLObovdYM%Z>6<{Y?RE<@MsC+B67E&;1h70B=5d|NCiIz&$`3ulta=!Z#9E3O_R0S- zBKNpEj+^<;tEf!j88^KcYngW7JE+Ya$F!DrSiy(Vfj8Mihig2?yUF=vF{Z~MBvB1y z`hmHNA4A!H@9P_XZ3RwB9rA+eK&HLON*p4&DaC4!0{6WI&+?2FODJ>R{YN{u5KUYm zxljzLd=dXDj&WqCyM~FB5h_J5fn@@Cxp1{X3ZW@zzb@s^yw<o@@i_inq}37<hpQEh zLL?*%qN1$WO}Qeep8urHYULMoUB9f+^wohx`Tw?vh=YTzgN(7Gqk*Zh<G)C>1TDD* ze&nyNDL{CxHt4}#ZsiWBY7Pr&5sg&BoXwgJjNGIZS7JP4gLwxz!v_Q2+qVz$ee*}b z6lyw|9**tIY$nr}$L%XVple88*}ezlPD1(uuIOcM%abjG3R(TWPNU^YR3?O_4eBuA zr?lQmN|AJixUBltajNU|UXQxT<}RUvOK&FTO{Ex=VJ?-4WL<w8V65+bja3YyNxiBz z=%}>lnsiHc7a^C-)7(-V0>?6Z<1=*(68)@|NBHBk-_o(#gBiZ}6r_ird!+juXt>OC z)oUfI`ttx&5ha^brH4{AEBUv8BuB)g7VD}_<im?tpP_q*?HrEq4mvrBaNS{d*|e6P zq`vX^pW%$kZ`7TE19uRW7qCeSsSJ(1f}lFC*7LL!;Xblz+(Tji=}`EcT!v!(FwcC$ zZvj%Qvnu1|gFJ{mTt*fqE$fzEA6o+cYz28SLR_iy!q|IS%<|EHoJAd<&$@@0+R+8+ z@*4k&;a^k@@#IeI#@~<uTjKfK<`;NtyoAKMf_RVEx9vwdb-|ju3_*RCm;uE|$lt=i z+xdP+5fjsHf?Q!2*Tfxp0Xp_C4U|3xA$g?VWw{s;SMmEv(Yi=W@fw(m^vd_BP#6o2 z5zhzMk1U7ZprG}GS^qdD^m-u=a~s`QgR)=e_3s5W?1YeVM=C~wzUwT;Bh>xTwRJrq z=|mFa?O4`EjW5>u+_Ujs@4grkm{s5t8S<2Y9gqM9A-xXG4rXx!f{Vi?km)79RSu&X ziIL)tdMg}Y8fhT$34f~`a2&ZK(dE~rzCpZo2+JX=NpwSTuNt6>U6Shb@6_0%@!F#g zcYVS8Px$(3@+&lb1r*FL)|dAG4PObHuP9<;VD(oZiHehwTjxg(o?ela{*ibs?#9;u z1Y90G5Di5DoD`XFle=1bN{mq?YJwd__Uj|$BelFjoVvaGNuku0lmHq65qi7L(d#I~ z@%L~^Xb%vqJZx-#I>mXh)ziwKx<UDopm29ZG|C92XBtjJeKeSaMP-w8DV<{pwFBH~ zA7|NxD_@xB>AJ{!1|j<rm;NiaRJ&DJx~6dBSF@I>9hLcH{nYY7MX%pmtU>L2Q9+4m znrnp->^fqv{wJq+_CxYzMddhK%=4%Q_3|5RB4SF}^zoYHqX~DWhrjxIP&9_tQJ*P+ z`yYPk7ZkLoslr4My)Bn07-6>!$<dJKIC@KN7YWG;4+mK>fTWnKu?(iHL@IbB-6a^v z>SH4nPoydSTyeijwbi04_ck{hB;|f70P07)y*9@w$O?qBD=Ps}CX?VGoy=p=TRr!G zugi{6{$4?gV2Gi#kn}=}O#frW2CQL#zOwBb6=Abfh2HA=Ri8VgR)NqtYV&N%4}%XN zlXgPq=)q*Ll`CXGBqF>^)5-l#H?i%ky0H}R1y|^SzBnv>4Cpy*t$1KtvsUp`!6Q|2 z>)!w%X{KlP`~tw*R}A|f0Pt_R_WuAtpDchMS>&pbzbPLADj>i=31Vny0A~mkBmr{| ztUn|QlvEv<#ynzn+CgLw0C!ywX<Ix3OkXEsyWP3L(N%MI|9%6x169JAKLW{t>X1)R zlh+I1QHR6TYAl|jMRY#MIF!u9yykDp)xYK*N-$>!o=GrUkMlvF@u&6C?0#rLqG_X> z<x)MHW+}pi*sa++L~{H-WT^BC7GfXkt!cW%|2L=TJf!F3wrrF@hTV2c2x1$m|E`r# z?WBSV-!-}e*4t*gIh0uABdXn4iPJfZm1K;>dMlIu%=+cT`5l*5WSqvhJ4LGfKrW;N zgal*aC)d&T(yQo-rlx{mkgT{iW$F{*DQcBX-pr2y%0-S9E)}R|3Fp<x@Vg?+ks#U& zd|C>Ii=Q#*0ZHn$(myNyEKx2-a3rdzXIFwkQiU{=NNe>9H_0Ut){TNbgbDsS;WU6g z9l<`MY!i2uh_4Ykj<2K}<y2&kwZRD$9|z%#N-D<dw<8W){cnE!kEYVh7?h*1FEieM znUU@P?Z^L>5y(5(+8H}Ix&LL)q`1j{*fV$<*{mu5DKtDBFt)t{ziF;*MsGfcjueH( z25SsVG81pka;sh~uKfhWn|L!NuR%_0H9ybQV%nXZ_Wb1K2`=BC9EB|@xs+t3zS1af zLO&fqFFu74-k}@H=U6h{pX``1f^U^|xyfWiS5T}^?j}H9o#XL?;L5E)Docd!*8MSi zoIh&bgw-6Jp}!7oG<p7}fYjipSm#rI4v4~uc5~Z-58**n<clC_;LBr)5?BS<UTO>T zs~T!Z79=E@>C`}&5xLAYpLT1t!vSWXu)O^KZh-&&sl9nRL<Y=*^&etydz8|9t52LK z@xD8H0}2Xq4gJ!0&s~@f--)u&f~}Qs%6ccavoXIiy#(3W6Kt?ezcycb5YM8qUgol@ z4$HHXGB8z9+6nv`3Q`jWF_=NhLh6(i3=geW@K7OiK7$M+8cTI!Bdq>P<l=Joa+oL` z@wymfL6H_nEn1V%kvC$s(rSy_(Gd>Pb;J575o+_6C}U)2;EZII!YBjv#et^3R#Ga{ zO1A-D)>ZzWqqOALGTlE~oBuLuRJ?-aygc&oCz(VBW<f?&*12|*%CQ9(OaNTqXz!0; z$<;ut@2g7bx@S1%it);S41XJgg7W#{NpiD=sWfv_r)+p$wjF;=ePUnMY;XGly9HZA zvsf+7)a&oWg$-L+Ythd#+zbpT3EoG+7`MxrIfWi?p-unjwA;fise>W&q?3glGGImx zO3H&7ob}>Fya{82T2aCi?MBP=s8fCgm>1?43!eNaaNEm%olRv3qw0S7nLI}B#D{%U z?dr?p3F1f@KagQGVu=W`P68M!I+MUeN+-E71rPKOFOBRj3b;2n1qVsL;oGq!#73&z zH^Y71>rytZ)R}))WU$@{7;I?~#G0-ZQSVBZ5aCu+%9`mihl9ZSWXC%;pe)(z5u!qE z=)D_U$H%|es>CvmV(xIqn%M=H4}5Wor3^b>?_3WZ`d<3*0zCt&g=v*tHPI0bmEPLF zq=_5cp*~8kQn`oAgj}Ip8~s#t+PT){qqE)?q${{_Frq4IbzCQvuLGZSSX*R#@d~O{ z{{mGbTl4vSs3c3Z-z*BPlv=(kJ%2KQQzLx&ImsBxGz}n7Kt9^{omOeOl2i*U$JS^d z)EDSK=WLe&aH7pGG>HG-QqKR~b^c$zuIz62uXS6Ug)e5}3kf%ls{lpHr6wB@Em!Nx zS6#tg)_G<l!Pu99fz&=m7<T@wo5`MW@K2ym^5N|tDHCxmcN~t8kI*o_A0IC=!d%MB zrNwas;*RM$>kjDwK_sPC(PHx&^y%I(A!G`eViNL8wVU2Tf<VsecCf^Xey2~_G;v^< zOWB7~Mt(fgc8?_Wew$~kJYm>79?3{}^TeFd7({T5I{j9X$bQl1Q+i6siCmJ|I*5s< z&7C2cYI_|VSwdm;!t0IHVJd~#m||Vc+b3xsWN7Y1?T3%?D*?(IMMvyXllDpJ32fD+ zB8aLg5yaKSs1iHVgMuP^Oxbj(d1Zq?5i<Jn$<ZY2a5FkLN>89jQgTAo5`x2PMok-s z$r9*a?6@OAs?ziVCE%y>!#?-58hIeP!2_Cy61sUIhV`Pw-pg>yYrM-pT~*~pvX?^p zN^4qp;qvX06A&l{tY<ij_MuG=WBeUzhcZK<Cq!BYI)PKt)OM97P@b6YFug*aslB3~ zxxM_K2|K5}AloOrK)c7her)Mi1D4Zldo!fAG|#%)7CbG>t{&#RujsdfuNbyN@#y)2 zTGE`K5bj{#QlBB;5}z^NGM_=;;-698(w~34B|q!D>0R??yMBKAPmtIy90-Mfg$qhB zARvmrCxrhE5_wxkb2q`SD$&x|>0e8+i8_w!%J3oENaIU&L}cN9bFCm|g1t5bA=gnd z__F4fc0_0`62Vde$toIQL>Lk_<2q@(DR%wN32Di@1sivCPei@A-qKoQPOaD79p^m9 z9BVvtc)ssmc)eH<Ql+~@7<i6W$uj`dVT@=w_9=(VefH_uqo>4urfAq<&}eJetO6}z z6f_Rr;}d)Bz1E4k{<?Ad;QpPbfP!iJq<yJqOKiQc+nQhoV;D(wf06(LNY?6znK*{{ zUB<+Ys;y>s{m>LLBrg4t``4<_dYsSV5mbsThG8Wxqtw%ugaD}{eXEl3WKN%*g-2@N z6AxMS9MQ|xtryn%{yP(Piy1JU<(mmJ%oUh(xpHflhY2hbZz~VkuHPcfhTu^@)^cZ@ zc-Yo*zpGku!OSJ|6;>T_Rh!z%!GXEJ=Y$BHKP7W)F??4W_-Y&zrOooXSExPoG%)f| zP``S~^Q=HgUFya`h+wO-mo!`;6rI*Od!FyDpKkxz5gdBHJm8Mf8P+0fS?c;cS;xi` zTUVlwx6hs(DLseEv%q_rj0Q^RJLJ6a>yNg+tZ1Qm&E012y>K_zJ#}7Jm^lJVPIJ2* ziB{|Cy2bozp$;E9C42CEA`>Y05(uYwo+=bhv1JxAr)*vVGN(kI0aRA;jMl0kQ=_&; zxD!)IclbP%Za-#!7#WO8<1xPgPR;l=@>44L6IkQ#u}^e}z?U7#lR%zz59Y;)lM`5( z$-076@z9E;0pdant&ODMVH@N?FQE;Scg}tW%9j`}F*IvN68WYzTj!5S+XY;?UE(f% z7LQ>P>Tr$NmammkDra)lGaz(tP(O^y`Is<Ip$F@+1qlrEj|HAuF8fg~BWU|u_AQbM zVo*1@s{{wHSQ?Waq~s67?J~z6gP{@gwvJejkitX5Ny}h$=ydFg${Y1I)kqZ@v!a2x zrqzMn^mulWs!VngYg&7grsn|#W)}OgwE(;5T;sPA#gBQ4&$L8e>O;Pa+ZfZg!AQN) zCo;wlM+{$zeZHI<y^$w6(zk@OjT#c7l4NJ0cqgKq<tRY`HX{u-_T{hw#lkVlK}t1| z;!@Pn<ORf44d>*_{HZvaig2HxL%rIcrFW0la|o)AQDX$jSD$`GLY26J6_rZr8n2La z+k;dc+kx*-k2!E)YI(Deo?4wLX7#kRwG}7z>#eCj5_I|*G0hYQt_?aJ_WxUk_m6#C z=5oOeF<*|{{&i9P?a%^tc2@2JR#yMsb|dO+WB8B#O8<0eu6x^MUNA5)Auw4NFc%jv zSW&R0fq;NaNl`F~AJb-XaygX)^}_F&1D#IZpM{kR2Z)xF^rB$ZJ8yIO2g)rInaZMI z8e*|v!<pE}1AEFXZ<)v~bDanA6K~u+vAUvQi*NZ(@0AB{i4&cFetK(%V_<;HRQ)tG z(l^ro3G_`ARTRtw3>7}YA4Qyzq4wKfvze!HU=-t5)~fUstZ@Gxmx#0BzblV_ktPaX zokw5P)pw>qeBi45BF4p~=39fpp&%J7q`q`nLDTQ2f~YQj2q7@vF~H_++Hcibo5HYI zZ7lWxc=~SyAK`oMN}86D32AJ{-JVw*kDZVEZ|kl=)7QjcpjZqeE6C&f5Do|jB&A%< zmalZgl?N8ycU>9|(k)u$ui3v{TAaJe*q)c}z!4A5Y7HgCm#mf<NduD)StgSEvj*2{ ztvSJqO(Wd8DPDOzsSVm#|FjqRc&-p^w>EN_U$vw4v07?7!vFasq9)+1-Aq4pdCvxs zK&x|i!l*dFPlmT(EMVrIFH&x$$X9Q&=WfR)T&QeV!(FCs5NgZJ_7&n7_Bigj_(Nvc zv&Pibh3`tVTzS%-jpkKlxQ!Wc1XU#V2GVv|Ps!{dbpmm!?#+I)wq&VwQds@$K{+vy zM~FC#$Y_r&pIG~+$8e|bGifb{y<2A~50^pXn^CT;mpWh)o>CMb*?lvCeH7<rdZ zf!w4iGE;%^Oif&`6-hABGSU}6P)nT@?18r29_hx9rcXLR8<->xsvJoj9}3(Ip{0y$ z2B$C(60tSHQ{Gs^&3FQ9`2CrgPlM{|2hA&FIP2n=WL~OjHl4nUL&%I6@x0^%@+{og z#oa}Uc+nwK&^V>PM`>1oKITq+ylP|PoJ3X*wrtHtCCEjE_VS4d4%W&5s>8}|oSH)C z(M+p@89p?PomuTCAkQD%F%%3JarDAVWD6O`rp_Wt+<3Zx-~FBKKc~e<Jrmd=2p}NC zuU&C8f1~ZcHs47o$+5GuaOg4qC-|aPT-BG1(ZH`?4FXHI!Q}<uTLOw(AA=gH=OW3@ z!muGq(Sd=ZC7B*6CmS0NZOq#6Ssux09+x)4J#8HyvmJ8`b*}C|?p}r;``^8N_Ob8V zTlL51Q7j`Fnq*Y?kalgoWH6$|qwBws_9ou39D2(H197Sy)W_G9UC{UaM&x9+Q0}o$ z;k0+ZGAU_`?=UXph!j%{=ns0oi=(3At?<>9)poe-K^x$d9_e|UBeQN`RMeB0azURi zEOde0U#|8JsBnI5Wran;$w`_gDpr$JweT>B*+|{EXiWTbc}l_Xxv@p6#A|s*&pSEC zG=HZ#qm-YIgfm1%OO>Rn#?8yaROP+BwK?bD<d^$YnRpO6aFFT5Yk8Wq%*2zTyGczV zl!F)>yU0dHQf1BQt9|RMtKOjI&|}md&Rg1-vrvj;7M|M6ue5*+%{=%6Sf;iNa6Tuh z@;OcOlpV{z&ny6o^rH7TQ#4KMkov3C&Bs$()WIYsHK-GNi;seUBKhMXAL%q_Hsxb7 z@`f>w8^If8Oi06=mN9ah-(!a5kKjH%$;kr1ZC-6CS2LDq+wA~r+H1dQ!i}z3Ex8Z| zKMJy>L^xIPk4mn#-1K3|^Q_~&hAdvXKOdzN=LDs1OG!hLUjF)caf=LIMmOubl^~@! zIL&)joxiXj(^3xkUgRO8JUJzD0#yVwe5PP5JarHRNl?5X1%WaIk|gx5V354%FXS<( z!_2z=u-mC6re9EkB6;!h8l{BFDEUEVdFk>xZnC8W3&=l%G^f5r{8|&l$*Y!^E2U$G z$ApRs8WKcuS69kQo6$BSXhhb8tjhXsiclw*dEGf9YDU$$GhwKUyaq`JNe6ucpc3@V z3%o9$QE-zHht~$23+7*kTo>=4ZXw1SJ+%aXg~7at2BLWt+0m(Q!NP0=BH}1>L6?GX zrmXWy;%FX_R}dJ2wggHei1op|g3+;52aw*uK7zgme%IC4+1K4LeDdhTUidK0pL|(I zLh2z9Lcs<AJA)v4MRbx#)FBANV0(ZVU>M+L5O5tvukfUtN-T}ai^Pjo451WE7ep6a z6I2sy8)Ob}G6<PBWapaKutnvHpmb@@K0bNY;_)r<sd<Mx)Bb&2##hc)c9#X~xe3fe zr;K*`9+A}qwd%!#cJge>LpOV;=$!V@Q##(HmshQ<R#tJ}&f=k4Q9aMGRDrdix469! zbw+ycdJpH^&@QrBZllyv!L^WeM(f<tF1A^5sq|O@z7W_xo#Vk<h^rb?Dz<2NW`7@a z>8r?7gj!y*$aJQ0pXs67m8+{vSC+C!b*6Hk?xE9_x20@b*0RWTrgNYDl5***Hx0KC zdPa0#_af|F{xSK8h7R`udw%@z$EmHWQ`^SYHf4Qy`0(N0x$XT;`;QKaQvlrw44>UT zobMPAh&-wQ!Wch@BC3eO*iUj%4eUXRQ@A1|*)e<&1u&viMi7ET68V67VoAkhL5eZ? zAjJ@Z$a-c;r4XV_Mqq?QWBCw9#JEIbh2(ndF@<C?_c5qaehmZ^3aUIrV`Jsw$^gnl z6@?^5D22q?U&WOn7Kw`rS+^YAVjACB$Sw0pjbVP0Tjrq}TQ3w>2684kE2Pxpo+&Je zd5?ja@vp-FpuoyQFg9c^whACkl$lMe$4FOT6>}UzH4|7xq@mEtLov1_RvOC3GR9UU z&k>_E#wt{37I7Uzn+d!X`BP{W>NJ)z6LD+YDTEONGp06^QP0Cj!G#}jt74?&B8)e- z94nOOr!9$gORguTHzxe2!0Y=v#r6P@<O`|5GwN1>v>@W)x?4s)5~qTTsOcE(iQp=V z4n@N6x6O+;3YQOMF5mR5o{p@Z(5#-4EWXXD?eVG4=q$eesqOWt9P{Jp`a9G0=hu~I z$BVZ%mk(|(Up+2gJ}zHhu1_GY&kmQ5$BVbCeeW@Uba4)dKytob@WeodmBXVeYdl6F z`XG$(ya{?3!w^GuCSan}IP}p-0J#aXD3c+52u4KR1bd_*FF<T!_$d`5=4Jv!TA#O% zY(iMth<C7Lf>`<|sUhPX2CpIS@bLt)v_bJt$~(|*{qBL33ALy2XG}e&?Hw!=%wmRl zhO9Jyj0tIK6B7eeCM?hi><NSJLBu02YUA$V#|gM6|Fnq13GPaLp8?4uvdW)FhP(|x zmZ`z&<J15`le$hiyk}|u&MVWm3F^2<nxsdXe#RrTHvo0YV^!>9RpMh+{A1OSg-KMW zZB?f&jx6K3efX-M;E`IUiBCU<3DFc|hF$bC&T$%_o&RcN#00AL&*nYGh97FFzgx#H zdRa`!s+l_M0#~ClCU7@?KJ2kJz`3Trw~k}?@*LsAGWzcEIzqsu_PdQ>_YobD<1!6j z2XRD~Oh9Jp%Z~Y!81)FQUNv60iau~ry=Eo6PmTMa8TCZeZ<DNE)nB-ZJakaL>Lk2Z zkNdD0^<>m<)2v=KU$}}rbWpu+CcJ+D^d`Jlulz3_<sUqWUwM+>vqya7jC*=`v_XfE z6e^-(*5^G{fZl^lO<Zzwt|#_jA#LcaP1cM3Fm0{7n<f!0yc(aUSf$Et7EP+Hla=;M zCb`!ubHS!<UT0OQ+B{sg<(f4I7aOq9RxEy~eQ44&E^1Z-H)@(zBxs||T69&(evyES zU|J{+D#{gl*3Rh_KQ-S?DwwoUmMsdZrW`=4SXa-m)nu!DS{B`_0~%lYRnc0ZmMj{o zXdO`U7g4oz_R51)wXB`fD&jS*8x~QjCC$G!lBu;pEn0+DRokN!FUo4^9G5q$c33$F zR@ha!te=spA!z=tTcoKTGizE_ZD|W%u*j*pv{O;7cyDeWSK+9FT{**5J8XKHSAA?N z&s`+Y;@K(BR}HnkkFAi@#Hm{(s;0DbUQmr`E6-nK(Bj!GFIOG5zHbx~^uN(G_u3qf z)bqbN-i~I!uoVl4L^Ce5Wt(q5VMquMG$Hg>T>E$+e&hSkgeZG$KEeAdAwom=zmygK zl@O^Yi!!hZiu{!hEknC09b$lAKN24wFkAZ-!WR+?kf$WG76~>{isaJJ{CEIn2DMa( zFAilzk55lf)URB}z5_UAWY`39goX?0v{01NJC9Y{T<+1@w2xjoK2~(JP0n_GJ_gMv z`%k-NzfEy$AHHAe;bn8Z56lZUCL)3&+b6^<q0GUw*T-&a3SgOm<H+XMF&qshOi%#G z+RS;Z`7cG;oE4FsJ9<g8Sc#q~gD#d%ErP?_^CzV&Gv>lniK=1?$nxa{3cHvzx3^Xb z<uxox*Y&!1;!dTCUneabXT*tHNRSp4%ksi1BxJJ$t5HUs7+VwxOrQ5;pvt1sc!l!J zt414Vc^eCsM@09#C}b&YCW-gTWNxewx1WVs*kYMEM90J*kHL`V#yv3!;|4d-ic);v z7Cc;!VUTdFc7g<KhQuE!4rJ4R57A@RQQf3&aCsojMlOD5F>nTnF)OY@+fQU&a4_$+ zHpLeV62e!(5r1&RFr{Rgu!glcbl*#jvY$7bDs0_!C+BdtAw1QFKE_z(oQg+ZSG@6A zINF-x)YCvt_=Smkj*^}}@*9_V<}vEViSLnH8J9!va8R8_hVpv;;y3!(4M<6(b=yn# zZy}Rvd;Dx`hCS>q{-dFEg=`Vuxec=m=KA7U)M*m1GbL`>zzFvQlVf?-jMJFo$Rner z361#yrSj`PPoxJfm|-xexn_cxYz>5QW43{SsR{Z2kFdA!YWrQceG3$)xE6PJDDDoy z-QA&~#VPJC#ezd|cXurk+zJ#g79_<TF28-&U3Z_g?-?f}BP00(@;>uBpU<4{r+)Ri z9`31CcBPh|o+Iu2^tzPmQvR7o1=x^tH5^_qJJc`{t%O$Ih5UJ5vW_%GktRHHPK;su zpolc}xCl1-4GPrPTIJ}wMiDodNe#RHqK{HXG#(P}>DR)V5(VEcbgr5Nhn3XVGbSu5 z<)}okPF(!t=6H%1z^?2V>|;}24oE`W_Dfk&RvHBY$<ZT8daU|iF}<w2W&zB#GWdq9 z0sK5BLAgkq@S>vq(&(9CD?6>&v0-_d3d1w<1@8h_>Ekvdh4F@?OUP+|e)%d&bsg+P zDHgS_hGi^InbI)+6@`j1Tab_ZK)Xkg$N#JvZRyU=sYvI#l3rd!o?EhC^ptF_nOaM& zKvZRwfy)T7ESZ~(>dBC@9w|L(DD!7;0}8>oj$IvB*)R<Rc@86S4TW1keO`{V(4&{R z?La!_&W3r{o1s)gr95BJp@5@V6Hmq-nYKLhMlCM(*y5}+tL7k0$=kyV_a1A<S(G(# z<Fq&|`#7;x=4t=W0$03q+^gV=?4-C_T-X_H0Iir~S6D<@B>f)>dq|mU*Edb;vh<`W z;)c+VMW}c>?w#9#>n?qt`OWyce&yb!w;zMNxW&%7TAfoR==n@P{W$#|PcbM*FV|Hg z!pXaT9bf9Bt3Z^i2z^QdwVLTxaUDi44ps3AOG-r1T;qMLs~oQD*@a_Dn`)iGjh?ZA z<V&nlgcvBW<vP-1Ol9iMljYiDOgBZ??nm(1EvtD=4%`RT>~k^fA>$H|&>4$KR(#rk zOCMULsh(;YUvc)P`M9arb)i&c7oAmjoXtm4p-pRM+h^F;`ir!35mxlzm;4v=swKRe z%15o?T5r@Fi<wrrX&S)8S7q=`XO*ts!uSVVf;g9#i~$&CPsyL@Uv49PyhaVZP(KQ% zuJL#0bqb2RcPSX!3#r;icQ8&e5`Ek`LLRd^Hfo9D`@&cokT_v71Y|=SBfE3)-|`xC z6Z+#^0BCsgq!jd$!Jd}>-%YoX;Ga$^d{Ts)*=(!HZaNpZ51htfDz<?e)7yS*#nP9@ zk8Z<6!xQS6(IhFAQ9ACf&a5|t+y+=ky7!CNr~Jyq<UA^LvnrpRK${+yHXDPaT~W&q zHXXsA3!0nqJm;#pX5w@rP9)sV?VAx6tuZQM*a{2;w2T`fw7ff0TzNkiN`;^7q#4}L zq+Sd$`u<Hji1<B%rPj!B@&{e_eSGrmb|YJ#5I;C)E~8yXy^~u;7^-6%efP0)Zw>{+ z%v$v7<*Aqu9Ue-}$`f7bq9!6;<2O}5K6AInOFMJ`;rOl^F(s;n*xu<m>(-IAe39s< z{{_&AVgASvc3OyAqTMj=Wtd{Rw|HaS9G@3?>XPdhc$VivAaH_D;(?0Z2`~3jhrfdX z6#bkNn>Wh0CRckIb~#5mcaN_ATAE=?_r!ayPK`LARVx6@*E~SIIuU^5&EcML1TGXF zOk<S=W==olERdxzQl5V5LC9k|@o*qrXL{v%X}>GItPKn>@%1|2OI77#crVijR}xrm z_VF()IRnCcKiU=|cR#!tJ_Agn#Jl$rNMIO(;C3@I2KdW<*g8xWSnGTe76iO}>`)0j zJ=ltV88b#b1c$!iEo?PZHu&_QiT<x@h&qAHeTsD`RS4JlFg(G$`N%vW&H3=seS$8u zcJR*mq;7%NW^lid1SN3Yf|Sj;+fdv>DkU&}!PdYm2Uk-d?Bo;Bh?8^leVV~Q5XW{x zTn@th1v5thhtPjbfeJ{3lQN?xMCk1MT!+|&d;$+dpx$DQP1s=SQSOrP?QB!^jqob; zO7?2>ifJ?TE%mDO%DQ7aU*GvQv^IPj4aI?CLUA|Q{l%a1y~KqX{N=lpp6a|>@377j zy%M}?z4E;Dx=f$Syrg}_ebs#BpFsRf{zgxscM9j`=UC@uUI1S$Ux2TXFk3FB7_BI! zD5EH?zk#oTudFbmzwA@hoxu6!4#5z6^mMc-b}x%4y}!&;#U1bY@y_KA-w-f*6T6qS zhr(a(spjs--FNg}dVf=2ePP;mG0Xsl7x}09JDl^<o#~;xnA*r*%mBt0#i!;w;`7!W z=+I_N0Ol*hi^5amUBw;2dF{^TP;bmDrYX)V<BQT$>s`m)Tik=c#GQotXY!w8QI+AJ zc7iX3KLB?^&w(Cr-F=LXdtZU~|FIy&9Lu*qd@I2+e(Ns!AKQ+9s~9C!1%B=S&@jJ{ zwNl&(5dOaQ^}UOK=wd*kf~^UpI(tO1SO0@u7^Wq-6={j|zAaTh<Mgp7tK2>&En2A^ z`q%?aD?V+37Oy|{E~i0#HwE%?E}u4TGrTu%H-gX+Ta5Ku#tG*~uA(@qsgzU3{@6{< z(v2_hI8!SN&F88LNvpeEfmF!mGcY<`Ru(Ng+R<u0CeC~RtvjiR+JnjKt)toEqJ;Nm z!(r~OWodQt&8J#3y}zy0XWKp0*1Bb8Ci>Fc``cO)73HfD9aU*SZmsI;Ne|mRPixf= zepfg3l}I!DFV;5J-uVptTzV<?wWo$mB5{}-B6=UIAPS!H%EUWdXD1C<SJ|uW{d3~4 z^_D1bcn^OLe>YGCj9~`IBu+QG>BgbxbO7Qw!(`G+zGS2<WCvFTh>4UoK~Q{H)n?;N z6bmKRsg<6F*>-;n)(u2y!*nRf3shs>_SO{M!xp<;)?vR$A1eB|wuz9*Ph;p@{8|xx zAUt9%7Z9+QIwF$sNUi(9WGLsx&NQoCcriYrgA4xve`@jiAZ-wLlW;j--3}%^;cW&u z*9Lv*qFY@!&(xb=xAgH+R!#oH+ue5NtZ_df8N>4;ChF27B~n}NXkkQmZwh_=se3t> zWlYD(n|?6Ha-NQFyRWVNH@%9YmLjI-m(+bF-s7eitAS5;uN4cc?y*>J5aemM@W(A8 zlj1Y&l`?p<exyyAgdHIFrK>S@iEh{1>Jgm}Xm-dfW7`ejCnee~lIz6JObnxQEBF$@ z#%qpRhE@=Rw$2~g0JF|EyHHA9Yh;Ffa%yy?_+!H<9+?}<>M~Y_uFKNPPEOTVFP7df z>AWcx8F&DSNnX3>x;Wy!{X2~7`syRiVr&OMnVcJy&ZKiYF1a%0er$96llH(b>R|W% z1Zh&4D-O#dLE~^-?b`y##C@%h?#h91ojdF-Ra$l~b@FgjN|%qXT<}V~Bfd6P#l^@b z{JeyoN6&(4f2Q>Bt?va<bKND)MCWTJ{c6#X@GM<UyrkU*e!8e>c4_IXm{Va^Z6p}O z-A4{>%ySK`k?8ZhCHDYbQLx(#*WB0zwz`TAjr!o&&K&asuEUs+BPu2dr9m0>0-i;v zUO_G<{SfMP*!zN@L<Sz*@1a)oj!a2AR~afi*dI}qLrWyN3)&Nzija>aQ45L_DVwml z!j`5&@1=<gs%KQ}*xfJ%QF213Bnb*Ce^+JA7#~tz;rbwVhlx%V5lN>dvKrA{;XNRy zzwwE9lJPFZE~$ykMyyu^2uN^Y5(B)Fxm!30s8XShVaK7q=4EOWgQo1iDSk7cxgu~5 z?t!5IekoiOnE@n9idfv}oUb-1n7Fd2e8{u|gauj*IOAbiVJHO}W!NJqyP@ZA9ZWx5 zVq7ZG#1z_;K`g&N_ll9aMp%|KdRAyIbS{)b)*&L0ZipY`83G3hfk;6HA=HpUh$Unf zf&)p0XhP;8+>l0yE94S_sxqo|BO?-^;I|Uwp1Ir5^W)j=TH8HbaNgc8Jg2y)<k?9i zudt`)nHZ7<F@zYo=k~lhiv-B!)Uv4&R4l4I5}i=F*WV~z`IbM_+(64G7WN=0?!`R; zskyZ}%ZEmei|!B~_mB?t^`g%@t!0Lb&JYjxhz`y5;xnDwvTuui5dZ5yA2pHxZhZN? z`Chp?o6FOCaM!U91rJF+IwGb1RsKKxEBs6RYy1oR%X4*mHF|Y=)qAyjHG6df)B>~u zGy-%2)C05wGy`;B)!54jRvd5!#Db_Vq@?`rKew`rv4GRb$<8Kjy?pPnutXoqQ3XQ~ z-Qtm4aH8bL8Kl*h#6Kvqcct*ECpX|bs4vMnD?Z2_^%ca*@>r8D6ja4@q;N(S#LBQ( zi!2nzN|9I#?=T)0idw^BGZ5#)SW{s$691sI#{SNboCL@S#vPZnlU^Z=W6a7&w$|h+ zb_%yinVik$!Yfa)moEg!30k8z<vT^Cr4WtgJB8__WQ-O$#Vw^c&xALyu4=SM360;_ zsjk3~G6?;kwx)OcaS}U~VmuSpz}%tXA;mX-cBrxfC&KXU2fa1>)sK_7jTFDFQm`bY z^`~eC_Ccia9wfD!LHY3sb$~a#tolBMyf>|^rb$>9gR8ovH}8nrjU40NyA*YFX@Nb8 z-vI9qObnN53P)0SduFl4B*9-&mMw($+(F_BV$uu|JNV<UxN0T|$Be+f4=H>*vg782 zvH~Q7jL#k~l0pGVIRT+LVrB>A_6O`OmkAA*h^J45r%!w<_ev*EmM2fe9xq%%0qr@j zHbMbmIlXgJrq&1KjtAtn2jswmJhOv5yMx~0sQ~8B#o3_>DXrU|#>YSaZ=uh(v#)TT zTj={LzsCUmxch9shXKP{`=5VL{to#D`u2t0mHf=|?B_EW&MVLx6N3w5n{wY=7%Utt z2a-EyxFjUAB>TAw#_<aF##ZH0-Dcdk7oHRju?5+lvs{woTIT+|1fzNdd1JA2v2WAv zTX%s0gFO3qT?2rhZu{C@<KR9t8#)`VMvfTo54D_)oLO&uS>R)@9B()v2XIGupS5ck zJZxk`w$BONb>1iK8U+9JwSmFsK&?+KPdi}!e!x0nVG|_`EEk3vcTIFf+=8t2Mp%A+ zwSm{+VBYhttc%u<TLgcsGGDS_ZA3o?UF%Id^&!|$f8xrji&}}D1mioIw^%SYepmyY z{+c@JL${&#;OeZ4S&3T*lbx8~Sg<!@Jc6EoO_TJ&{9}JbxI_xX4uY{r%;R?$T+x1l zcKN5W`;hl(RJclAq6OmS!H*4_hz*-WD^RHwDD?`o>cms!=27qFQTpal>*f(~^JsMQ zD0%a!aU;b3=tukL$NK0;{piR1=tuwP$Nu<C@%YT}_)PQo%<}k5_4v&6_)Pcs%=Y+9 z`DmQ@%r@u0NQbMe`|;tF-AM-b8O6>9J>L{Y`8u%6xAjw_Q)6T%$D18ygUq|V3a+2j za1dSvH%=-#P&MgWX5E(e7f&p$Lf~rHj9aI4Y}-2AwtWo!MzxD{h@Gynbkz-<n-=wJ z9PFCMbPn1s9GX{j$X&HHD_L6}LMsgnoSPR*jTV<2vZ_UQQ4E}07Y~dC3{LA735;YM zo9A`jnz-aDjavk#wT=IAwU}!xnpQ0<Yulq29crt4wkvXV9-XdPb-x&#wk~=a4LiE` z>1?`cn^uOjJOov~uSQ>i$klwbbN{6y_9eA!5zFuytSwa?zX~C!`Q9XGQ)$|+xCCjd z_TOcasl;h{$f=Yy$Z1+6H{xA_q*SxHEJ|0-w{-AR)ULLrXO%q_m&i7sv(*J$MYRS% zw|X0!E&!Y%4kjGhdd?-Y%&e!T%3Lq+|98{NYnKdT@2yFd;;reE<^Q+^lzi*3)KpZ^ z{13&r>}@oEP5$P3nORz@1W}s6W!;LWa5V~3!Kjxa(G@APkXZI%@_ig+<_0P?&W$&K z6*~(xSekfFd;XD)YiDblkJlFHtjFh%yN|yQ9`Aj7@}?hM{aQs{me;?@{2^R%N{W^q z`<@ZCld4$ct3$+~t)qOuD}zqLq0}tnP-T&1@EcVTwoK19Rg`Oj<=V@vMf*EVWCNz1 zco;VryG6cGd#-4S3CmtFMSx3}Sl<WlSAyUrPqPz`-h2Fz4-6n+nuLvhpy*W7sAOd} zZOqKil~H}CBw8DNhcs)1BQ=g<3tx(p>T`r{geYduR%_)e*{(*AbruOa@7-Y1y-d(Z zq{PmIda<R%$`e9By=O~6S8M$e1(8gFi?T`%yA~eO63;%54D7YQ{U!B_EN%jiyoG%} z-C-P0*fRprg{iw7-lF$`mn)>ZKa<3hW2g2!LT=vy&RB`QO^F%hBAWREm3h46PkRj0 z_{BvG3f6^Nh@R3hY+RUxX_A;-VyJqM8O8TX<aC5AfklduV71hnY%N@*hnOrI-G@Qz zjd7pJdV(<Djfe6Lmv^_b0L!9JGj^EE+h0C?y7LQy1hUg_t{uwptdhp?2x{v8B3_Wg zw$*(Ymvqj_Fy6cW>{+6cR*qdLRdkQQ$#YnoasFbKDqEy{HzAqKgypR)Z98|k!!1ir ztPq=8DAC#yInWl4VoZBlDK14sT(KPPQ}Fk1p!>s!V}?pTe*GlG2lyd(3A5wb(D*~E zD9<waCwT`cx9xhcAX8Oa+5^=SKx9DDUM)yA_QlLNT_vzag<doyn9;x(mCNWX;8+Z2 zZDK)Bf37HNl51R-+<3x^0DsQlqXWw0lO>#9X;W|QkXdNxqz-Xeyp~;%a{NzDz0b*b z4Rdrq$2hXGDJq@5#{W5jCC3jA$erHAL=FuWK+Iwm1{KcZAx)hxAy#DTVc1GBV8-(E z7LFy{Of`==Ft!{Wn?))wjd~*}-2eRjt4Qm@sX=F|bqt<sl8#_pFze6g>?;{UE*fI@ zbwucFJEPuS?UJ(5-cYQdajG(JhK)WjIp&W=qmf1O2MxPqCnBrley&l9_*Z@hB){;f z^Zt2Ynv(O^45y~Cy{}=)pT<%Re!Y+#zP{!lgj|VKSp@Ncpv${hWd}zNwM&<E4jZzj z6p6`*`l<;^*iaOXnZy2AW_I4ldH2yN=D5%=u<K`ETgk33<}QwY(YCCl_A8vybDkop z<{Ol@IGjc>^o-PI)flezi~Py>J}%hH{$p+J$FV5h#ME;cG4FNav%gC>+IJGWY<v{m zIMi>%4)l(mNiCMu^aT^!uJis>f(Rei`=!pV7xzR5aOz!u*jlL=Qj7(VXN8yVjsm|O z5E^HA9fS1SiwxFWNk28+6cTR+;vCHNzq<aB1ECda_F5xA(#?Xe`oib6Fir&gAwB!0 zxk#L&^_lU>1#=$|)#le-n6A0iV>{p@9OJNj_|$u;cCWa3Cq8pz8qj<;iy3N-{89>P zX$(rLNY#FbHhvgmP<FTfCascUgjJ$4S9AS=xsaB9^{>_GNLgN5RnQSp_4gSPM^*{P zNUMh8susceG?wq|@GPyPgp5{V_(YZEUX!HsyM@)u$0FlK@wg#QSe*!Ggic)s;1S{> z!p)Pqtk&qUg)T!DvTr*o^=C2H8!`Zh8RxN^`)t{~dxsCisySf-FJ^@H^C{78W<Jj1 z(xpQjA*+=w8n@sHDZX>c!U@mr*TViJC;db!MEq*zn2px;A|mdJ)t{daydoU0sND)= z$KRb2h+sH7axb}hG}#t$P=5i$Z3_<_|HiW)FWXBl;{T{yJ>?kezuG{u5;7ONu3T;L z_?UfAU;Deor@qHY1N(FW|9GP0*t6j#bV2VXYyp>**M4&D7ZZErRCuF|;MW|Xb!LTJ ztP!~)xFx?*8a_|H7DdHxG&#Q@fE?u7sX%DrtdJ#^fMsVN(Hi{JA)EYnT*hQg{)cid z){j5wrefk*McU_ejtX3Ry<+qlNsg*5fGV4`<;2Cc_1@mUU#{?vx^6!nwHeL{->?Z4 zAB#@PlkfbZUC-QID?F+FDNU2ltxZqr-s+x~&ricb#HCA}QHto)BkNCB=-F~j5+lmj z;?e$*@dw{%`A(E<2ggVIG`OTpw6zA_C86TSuY>+SlPp}(R`6pg5OqJ-cSx%abLGU~ z2_`UKTh$2Ce6P}@(LdSjTW~X;=J%^GvT2f;+cvMMaMR1H`w5BSOY@4oA)_TrURQ6B znoGt>vR?w@wwt(W{<*<cm5g>`KL=_4sm4wi&Q;%0P^r7sn!G90idipLz2RD??iP7K zQDDC&G%V6RLO<#<eDLy6+$5b-Z;k3Ut-MlIS*3+D80P&zlrbtFZ*%CqVR<$5Gu=DZ zC*w+SW}+%xrq=2=%`RI;Yg8YK;5*_&B*7q>L^O>+(xTugiVtou#u9upq*w3I6VbWE zRb6mhf=%-I4&fex{qw~L-x*QhSOo=95Tn6{NTBn7B!LSLe2WFTkPsroBhm+Mo4qGQ zmJPy@VB<%Q{lw%=L5>^9nU5I@zuV`vg@Ds1t@fTS$U+U4E+n}hR}E#nkI{??grEXX z#zC4ALbS!>B3Sm0JBUCFmb?tsU+sf~I4e@1AP4F~$O;9LWIjwb%s@Vtv^Wk3Za>)D zOjPgP)O*x^eKRb6!vj^-LM*ldr6aD6?3#S$BPJhok@T7p$3t&7R*^gtarUC)LmwZk zZjgy2-;C0cwHtMJwuuDaEc20#4_<esiB#)M^_77SX?O01IIxIsHtUGBDPuzsSlBx6 z>?Y(~AaqE2rLwB%IcI#u=EJwHd^_{)(4-?_LkU`VJCAr6az**T;TI~ZNM4vQPk)$v z#rVME7cQ!lS2#USa2Rt%`@rQF)}v@zSUb;mn03Ya@X0TtM`^PVI*)M}aYg;W`5fx6 zC{~y^&wiMG#r(kg9PY1lI}bg)y+VATevWzp1QhhnZ5~3eFdpb{pG>dBeOJ&qcRr9j zOU_Ib=?0tFbhF5IUBH}u_s&A9%7?29iqFT9haIDU|0Th6h&CrqFoWj?w=RLP_3nrQ z?&`f94E-UzPl#wf`yt{(2uvS5mjpf`QbRul2jQQ<!hTLOBz}A}_@6=MTV5`(gy^z? zNoKhGSbu_(`|J`CFC<_H;ZXYZIM8DeKXbqU-piO_Ga%5Kaq$xYV2bn6vSCYt?YFeH zVCE$RKrkwBr6DLBI9?L8e}kB|5Et_i7J}cE!8MADfIb9My#LroM1l5E;yq80fEgPI zaX$op3s8rd4UZqxh}RXgjg4cZm_EDb25+pOJL`Jb?#62@HC^a<bbkfwLuo9xJRfs7 ze1+W+WTMDkNPM(+h0+maqQEy_dAJz+`mrPIbMf-r@!|Cqf)90f)CK@pFnOipL)@M7 zxp2)MbzK6Q?>VQ_k$m>UbGGy7b4SF6)a{(#m5C2|cb=#?c@f5J#1ZwC`U9a~wx~p2 zk?L&e5%-n;1BqX5kGN?O`)v9V^Og3)N57mNiOnM5Z0nKGm2u6$w=2H~nCC=)X|a;L z8Py}(E7u43=kNY9y(OD7z$5<$(&yY4@qi++*}Nn6E8Pd;=bRUbS1WM9ES&5!GHFD> z2Exk@w7U0~%qyJx(kt%p1L{WQtGCTjKvdYnH~;D?1^Mrj2A4c9QvA;W|GQj{_iK6L zedEZh-*&_d|3|s}Kc({NvaOe<H7?>`*Lj|!wwV-tc_kwFISmHZtTd|XYFS4K!&w8o zd7czA1&5Eg*=78g*;`~=8{=xnL)|XWZat<3D@LiSr`IT~0^x^4#NJ<`x1LbH%{P#4 z({=MVy?)E%c`?;@c0}4}MyX^PnQ+>pSr?MHchnM;46udboP^Hla3@>{g-R}8%8k)^ zXzCprdfNs6AoCDo>lz+^qUkr**A^*hXaXlzMVpmT0vq`Bpcp(n2fTduT`y7oK$Atv zvx)}sqV^d~!z8gS3<Ae@x;I`@RmJ^2d6bNJFM+jRAt{2UWviOYWvr)6!6vG^UaF%B zmv)7`!eh1V&T&2BQeNLFJ#?L;)^e)(uub_yPUhK^oTDgZlRvK#9-uA|&n*$>Zv2tT zr4|lCi2J_%_4VFlJ?L+L|A>!i83%E41ArLm;)BB4Cco78=Sd`egX((TZYAI@q0}m0 zSg>-BnwL+pZFH?5;b}8~c?Pv)!COgWvgd1@nLI{%XNy(9Y%_D#EhiG%(!ep{2T#2m z0@tO_Qv$S023XY*i^K8K%Ee>)E1^_C%cdO#?f!Dg+S=a<8YO4<MhJkL>=Vvm%JLGo zL@v$oVS7c4BYQ>iBgbgeQh~YY6qxU}<Kkm{#p2lvttH3z%NS(lLYZ?atHg7q*W0uP zS#Rvt&yzXcaGAM+74BJr3`=hgH!DqkJwHXY<>qo`?I9}TF9$vg@W^g?G&+B9qy&#v z)JV+_MJa9T30W=lha3f6vt`_)jpt~U6TqYVaUl%hBkr=6vGb8SBZuj^=aEC}1Tp5j zyxm@YDpr6iACh7vSsoj{F{_sMM>TR^;yD?BJU$siN4=3EKQq>-mcqWlt6Kg&OQNjb z@=(qk^Y64$0M^^d`{_M~1As|)-OyWTDA-C~_n6lX%kY@<wpyZA??ZzH?`Zsz__7wy z15KR8AotA2E2!Nm_9oTM5;v~g$S@bEzVj2W6aqIWvw+XmR<Y*Bz<a^;+b(Y<+m7G< zAMm08?bEY>^~ioo{c`rzJXV~j#<v;Ui7zek7RU8MGO|M!YgF~TD*Z1^c~`Z}wT}|L z0ixek=S!;t#&CA>zW>Q=(~`;sR75q#R@X!DYqOO3IzJ<K2)OL@WrUPQQ6SU6;WWWG zOQ5&}YR#ZGA(D#A%^<rW*yp1jqGVH$S_OWlz;Qzq5m%i-wF=tE$2deaq9Fbg=ubg# zg$O53Mu_y!ar+)2gwl+G5FtDS%Z%o2hh~P$fKb>EV}`~6Q@kavhA`eQv1PV}5D_RP z0nd-76<lvd!cRg1Qz6dFj~$CB7gQ+mf&cB?we0`0<;4M${Z2R^-Ah8`Z%|Y|3;@=j zgD4y6V?QqDJBgY1DzKC@Xai<U{6ufZc+k<7mdi(e(rlQi_qL4XT!Zz*osHFhNqpFH z6s8Lg=1~vB-0-_2r%GJ^IfZ=~yJJmMYV%!>gnekcqfL}+3;x^bJ5`EGh0~VN*dF%3 zrmE0k&Oej1JL2CX)Q!?unqZ#xe@)Vs8M!0Nt1l1l{l1IJq|g2ToxB~fJ+h{yz!|<H z!z<?pbiec-xy@4Y8H^*jE6WGu=M;Zgu~O3+_9NXZN6~QL;n$Afnxe`>hX>Z@cz@O9 z8S+Dej`*5V;zQX7>UC+pc~&>(b=iO)V)LhNi0cZTv!+xN)}B_km1h+WRkO<+t5p<a zzXC~V-XTttI=M(2VB2FWm(V#&t<B*=^2?h@omGWq;+t?z0rPeQtEqzaf|L2{c66sI z-)3@~2qu4Y+mo-Rci4TJEO@qKJ5@!T5f)6`pNAEUL@$v#R1=IvFQq<|H;|7xWH128 z&A*!NzCQ7i>5p;W=?iD&N=+AYA9-K-`oMH2PW>R5U2#MIN64@jr_W9t;kmKp$ki6< z&Q>1r{&xj)?-sQ8+Iko8fM2>f^REfIcxCv{{HZArn`w3<HCE-DiMx{Pi27V&c&O76 z_aYrovUY_2HV_+54p@7nW9f&g?2|qz6`fMO6g}<Q+HU@FC|^kHf8rAR^WS*we{!t> zf+co4Z;L(Lx5eK7s8{&+VoyqqlZ%)0KYW^Bh+109_y}9v92|j#XQ;sxRA%tFSl`$& z<7o6U>@e5fQO8qZMt2W?x8sTGZY8vgqGh_-;2rsHq4f6qc4KnG7Wn;c>6@d7(edlq zJ@ogt+l>C<;E-BAXH7+!N;<NNhSCcSbzE(RAKhB!+KZannv3@OgQ$fiGK&pmt8RJ` z;~n_g(?zkrmS(jbr9Go2Pt*76R+8sQ>Gr;-m}v~}g|c#sHYQLDE#+QL9}y;Bu(hE- z+GHG+v!3YF?PaFm+G>z}Va0J$HW>NDTYhn#v0|?-qQRw^Lu4<YE}$QeYs+V=h-><r zCq#9N@a#H=XzF*kS4`bs4?64kNx(2YUYw^5zrp^sqKDN)WA`q%=E>3N$%=}BlKs@_ z8JM$NvirLx$_QuqOkG<MsFj>NJ!y?(TA<;0yWAyv;Wz7gu8jtru$$6Z`f*=Yo7J}H z)9bQ3e;zd)@GMOQifj_a?y>x{`uu*1<fG71IFzP`hJ}r-3r>_;1~|-0tGi5gtvP31 zX@Z>Ly}}r8qp}(@y#`d+BfHt~NN#BHv?;Q=8H*}%)zOy5Yi3dl*Y;*6ue{K_W~~U) z=GE%gS&W2?FvW_J|5jajJ%}qc#BHsx7+)@u-00XcC3ozPQD$Ob$sLJSY_%<tq5Wes zFPEN@h#QjUgZQxU^zzslo&|MQogP%izn=!u<^^<H-}%USgo}{&794fzGB#e6lI|vn zIUB@0%EH-MJ)>}+if_}0SIUl)CZuptbtzY-PB`p!7-SePGq-B%b!^F?08fJTv4I3d zid#vk>}o*|9(2MuG<=3dzf%wmD8I&itvxz3n8)7QcZ||2WJ&d1uOxy@ZaK7!N(<Yb zb>LgBY$p62L`_8*)>mX!)y4-JqravuCpb>Dru>{$XT+<LE6bO3K_l?Pjn?ge6moej zRV9q?=<{{iGHfstUJo%(>?Xn2*5nUZ9WHs18Xu9`ffjtN<B(X|RlHdSJh$`i??fuf z4v@EXUqupHQPRD;wBM7pZ*}3JZkU4NRR`He2eW|Z05{%`-<p(oj@{;uYUY2;OVPW) z{|-vYl?Ce!O+=ncqY!aw8DtCqu>7sn5eP%hZG1r%vFy7)ac!S6-j%$^8BMVY25A5| za4d#m#U<nDE)(YfL?tYm@r=`2W&<D>y5RCrEeooQaR9F7@L?x*luZTKA_xNbP(r5} zQ$D$14!M|wa9(F10HjK==0WxrXxRxv9Q9x!fMyBNWlfS2kL?cV7Id58RRTZ%-F~>q zW|hM^<Ne5pZ(oz;DmOV-6abMfDgrv{W+BLJ9Q#RH*JLHG=OD?7E=<9i1i(i(IZD;R ztx|$GpR8c(!$}07OCI(evf>s1uqFSzvUz)s%J2sS*u29KOC%aXvk5<hs!Dy}t(c}4 z!;c^;@&4mdIPU#5v`Q{IFETH>(1=lP0>a%sL8zaQdVR1%u#>*S?>+A2{rvvR4}OJg z78R`0=y`FVMF*Kh_;06@>}=ZOl^v2VHT=^qM2h~jgW&WRM}79hM_=mWum%$vwlx2! zs@~LV4SjZ;^cdzL=pT1x>uyCOR=*x_y{wU=wBz#F@lp)&pC{SwN9Bf97TeZQpUU6v zSyinuLPeX5XV{)G--fz(M8EWUi9eYLGrUlcVPnL|4HfPr?5OTc@38N1p0{~P3Nz+n z2jB(ZsK(e1Z4QeKi48Yih-TwV#}Ev~?9iS!c*%4znc&pM@C{|{u%5Sg$#pSr;6P(A zh9Y*T&+G4`eVIgY@?zMB(s!88oA1KGx@=d4%ha=ri)nVB*09%qJ4KzHwMfSdryXva z50bYAGS|JU>4z&jf3FH)|2x3)K8&N<Y?uWtj59_Y3;aV37pIrw0|!TUKk+=GFGq|7 zC&2XY@D-dGct?$7p8Sauj^bV8`;<PkP;u~gHEeFAU=Ae-Mz9&u2wD&(SPf~I<wG&& zgg6nnK@Go=BxR5VV~>+r93ISpG>8`A0!E7Lt3tx#WR{=>%SR4Xp`~&bQlK=VX!Xa2 z+kq?8@ESjA4OXEqayp8C0B5S<G~zD|RDEdXJQgPfcc>9Gk}V8YVO(<(i^GA#XD}PF zcm|x%;yAMcNx2ceb6QfuUy{lXJE5S1ZDu}P8p{tlp|5l9_C?*3UG@2r`&f)f3EI2~ zl@)9*4nqk#8^_TBCpdERmM|yq`_cX;3ATO2#E2DiAIp{qQ4qPLDd6cSXa(lMl1>8K zM(!|j1zFJCBYX;EoR4awdl+rMd`W+NuX*)U?&BYk+nbduraZlAJPlpAyq&qcUAQbg zzW;V~&wcfj;q$^G@+#-^;v^CfpDU(2omYAQtv-Mj9zZJ(pl{!656IuaaUc$egC#hS zTshE2NMNO$?gGphVyQ*Lw}&_gWzh~6kq9MXLz9N+|016=`YOf-s}I=`D*GaEM{;t6 z6QVXoPMd!^hX+&kgtiay`)_y=ssaL$honLBfMA6oD-Zw>#5kk{QUrw954nL<z*`5C zp&3Ig{u@sI8zlZ4M*bVZAUR+7%cy(sa$T6-JJd*^*@t>eeC!xAta`#vm`Y~I=d4at zX#*M-L@d;4gI_J+t0;OxPKOlr6sm%?ha5)fFEV(a@|)|@^bn6Duj_Ju^-ZrK5l1OM zbxqb~{2JK(9OgXq$wo*Fh?q_5F(6<;kWKF~2ycO5L~}DhYe8;AcQc5$^UjF2C&F<^ zqD|%L9bcrBOEN!NYb3Qx7C(w-B>6VmInHlt|M15l_P>Gr2pCbje<S%}5~7m-hVsL! zMwxCCof8Yws|=#<pmovsN9Ycb|INIc54&IiLP>y7VIUM12&Do-v4K!7AQS}%WdcG! z0-=IHC;|{l2ZZ7Sp`U<IbRd)s2qgnTMS)NlAe0ga#R5V(fly>1lo1Fe0zw6VP<SAe z76`=yLV1DExENN`cF9AXu->b7=ktNhr-g8xyR1Be-%OOVER*`{Cw(KznXVlxQE{C- z2kwoi#4$VsZjHpm81`%s8;nnCE-SRgr^OXp9TOd^a@zf2x^B&ROseHI5Xd`i6Ak0} z#ak`B?~slfbPelNNO+BZenp)YpSycx1(nA7+@g6!w4%GAu3Q;x`Pm_aK|5T_)BT!S zdqZP=eo<BHUf$hQS4>kIP=VO-5XNL$P6mMxYWr)5%q_m%`=NBLr%PXUkq(KfQPIGo zSkyGm`B4$7HSKoItR18wvb+e?N=<=;)u?FV(JU$%=M+?=Xw|x13u*UjbT2KEYlX>Q z%jyQSD30pxPmVKx>1Il)t*X4*w1vIOqdQckN@a!9${I+}V!Kk~{tKXeMvNcr{f`{! zI%iEn?we99c)R5A|DNpQ`%kgx>87=Z5C0eVJ%b0~7oWI%U?{dCZ0Jm93WYomHm{{y zEK0H!Qh(wQ4UY^9E*37l%y9HCJUpbxx%ZuV68*AC8{cYuraaOA>h-iP?It{DbwYm& z9sC|M(6?F)8=i>cbOy8{%?r;-XX2Bv3TXU@U2clzDKFtAZ$ajB9#rmR@L9=C5DLwT zXVat>VQzFiKsQG4fM{}d@EoH4!G|}dqoJR$-eJqRNVQ6dMN7LzPBHbD%A8o}@@36A z($z=_@XKGYmUR6(XG}-sC!SV&8z|~$OeauSR7K%#XQJS5{zbyu!P}mr*2Tr#1X4Wl zh(FQ(nGI*DyRNP72jV&{qrjT=Z$HJ0qumNyTzo`CH1afJmU);T+=>^lGAlt1lA=p< z#+*fUzpX3KCMG-ilO}ioiqi_6UxTl9qF>zD^p@gOXy@zB`elM()4$9rsh%B1Q>@bz zrRYRGn=a4#_FHtcmqwDK87lx~hkMDAg%~r)wWM#msEnDJDy_WqP3lZ3^WyK9aqM_` zIH<&-KX4d*>57w=wRji1N;-m;`RP_29Wqq5OB$EmIFU`}7Xy3IGCNmZ?_=K<btamF z3q{v8zuA~Cce0G=L>WWm6j)Jk35smAQ_fqHlT(vrH&30PhKHVR5v5eEr1S0gPjybm zZ6(AClCE~`V%LT)WUrXg(i`SXtVl4dH@EkR;wBbK3UldVO^9}R5<DjPC@+-{eRt7~ zt%NWCA->|GsN%}y_+m=42p<T)1(jO@54hZqvVS{;pMzYuIIV+_j|uS)kez$_LR+iw zmZmrZ5}Xf|&NZQAO^Fs$#cOi&!XrFI0v~6Uv5&MZA32}*bRIaLm^NsBC8)gJS_Q&< ztbpkjTj+6+wq3u`rpmdVdEPlvK`ye)1eFL{Fpb^*{cGjQ{(%yM@?Pxb@(@uDWJ5rX zPq&hUc0ro1|MBPz<&v>_T>m8UY0xQrEw&E1oPx9|)@`m!IwcujLF>z0+ZBp-n8U>s z1opjLB)$U@Z<v8(teRmY-cG2Xr12Zm#ZH5C9fqK?>h+^w{u}<Rygcr|U@l4pdHhUN z*3dM`=ov+MJOiP^eQf8@7D=Ik?iq<g1~+U$RO8T^uZ^E2J-3+(B4#uXX|Fs+z;tt= zq63SPrUiK}ahm;C1ao2kAX{kLKIVamjQ<c@ziF(HMYnAz4clbewEv>EA`5Umoeq!= z<P3-($l4^5z-Ox)MjBD7juHe9m=*LfT8ATr4XACi7046P;iA$?mb<j7(WRi`{eMBl zGpw`J?Vm`u$d+M`r_-gDWPy7U+mz<n93~(N04^Cm9dZIvav0-4;eh3U*7lceWb;f8 zV=oOaMG&Pht1z`NGZ;4)Czrqk(*)N9+XUZ6fO2<5mt>j6qve4q$HEkK&v$*Fc(uE{ zr?{uO$8z(!X2U$b1$uP;cyog2!=pPrrFkG!r&EF2WLoBb*pxTPHg_yGx0|py48a!Z z)k;V|dQLk&r-z`FUgLWdlLh>n!tyWnul6sj(fIEamTslv$^5;3g1`E5#qob-A2%1p z7Q_~>JJu203p*5^mDa01tG8CHEu2Eo-Ag-^)~nCdZz~=bo*^*T`9AU@Rb=W36+aht zA;{N7K8hmMx$4su2Md=F_-p9Qi6YKGuQv5lL4j!R+UeytVbK6R(DWPDbtxx(cgV+h zh_sz=DIJ(4FRdX<8Qp+Vq2{w)ToqlBvZxl<AXuR}C#HyqZq4(9(J>#vT6v+UD$L*? ztg9++HKjhX_#dq6U#!=)S^^i@c?z<8epSLl%7>Z22Fi~bpCqZrrD-%i$y$!n*-5V8 zDl=vk5dDk!S|OQaG|Y#$R%$8&NT66VH~j#}Fj+e`l{kfbN^zb|Yam@!Z;|^pj(#Y< zf<?+GRDfe`>sE3S%$8z2o7zC!q3$8)IbP|4XN_@{e-f3O(mfN?zz3URKU#beB0OH1 zq`E>NG44<J25X@(JX#`I3!*UA4y%nHyAW6-L^IU><QRuxC;>|&?|on>?!xla+z90w zXGzg~P?PZH4%f7?e80y^sNl^kt3Jn$Fuvx3VU7Nk0r>MY<&Ci#7y3fKCyrJ`5-O1b zBNR}RBQ`yi2Ry)7y+>TTM?HCxI(Z87cq#CB={$Lo@pv)!c(D))h|1|*m<njk=><=j zem<zJyToX{OsKm|X!?f%OK7>=v^?k~xYda7CmertA>Y%BE$$+}eSCU)Jb~Gl5FQl{ zjR1Wi{2BYx%LbN?1BWxon-GILnIp>keF8@^XGTUaBe>8j#TzYwQ<F2*n<Rl-bqo1l zDaC&gT{Z|d9ICta`$WQn!ZEfP8K5!Yhy&2Ux$q^diJ8ez3|Pr4%A1It`yYl2zLw*S z;qu0-<*ME0-FNSr>Uvw>^PSUO;%``NjI4o$ydt~_pj@sT5#AV3PUx=RKAdmgzW}dG z&b)GI+QxUNZ&All-^gn)6^n)F0K&edlNG)tPUCweP%-~cmO(BXfhq31E!aj_W>D%c zux~Ug*!I`BZ@e>@;MbII6e(Eu*O+gdF_`byWYqxKzTt^=&!Fi3w-a0cH-bx!#L9nw z(uNnE+p#YEo=7gk)FoCwW*01&ZRS6$u+Num;s4WqA0ylRWk}zqTR7^&1=6Q+>R&Vo zTkKE6PHE3AqyC20z0M7r9xK3zlUB`}HQLA1wC9^q|8Lg4ehr)cE6~6bPqiB%nn%*K z=lCroSFIZ%x<}IVXO&TZdh1@zhE4kwXzYon&W#ZL=BD@k4%;Zft!HHIT<DKkE~#E0 zVWq;u0Qdbtz=LUyeqP3&r{iUk^Cz|4*?r43ry@E))^N*;v~t@gC1=<8OeE*DwS8gU zHm?=>mX5x~;bWau2X0*g_NN6M!?x%J2)Cj09+P6_v~zP@C6j@ldF82*ck{!Xj!;`g z#iDM@>X<ffbx+G8TTO-IbzHTFD}1%iiUWpjyw2vT1H105fuC)qpV8tB<eTB?K}Cs< z*e}RC-R7o;Ssldo=vfH8A?Z#<i%zApJE&5xdg&Jg>5cAscB(8iTAYOt7?SQ*)aW=m zyJuJW7*sbdBG>FRKP>9dw=2#-_zZJ)DtdH!*C0H)AN~nZ+O|2AE#|cdW@TvG|5gGN z1tdjP@M!O^^i~_az$r}pbxPKEZ)ObH1Q&5D+yDv2UjIYrT`Y2oXS|h#2)u2i{znnY zzb(PH#3DBr;6D?Kn#QglwF&*vJL|;llq|{>D5{&|Xer;LVmT||tntKxF&AuzorMbZ z)0`WK25bV=dg*kZ;Y=W@yRn|_<>WX&r>+q13ah3Cl=ArncTY}oZy&ukE_)siOar>! zxsXC5lHzvI@Oigrd3t8<sDep0;;EvKvHqwhQYs;AB&At|=6QbTqQ|UR_%ylJ-0U9Y zs9oEgyw=zqzP5VwM-VaoRMg}2w_l^tsP6KzVNWRyrh$jyXHOY%rD<p6Lr0TAEPh>g zLzPpP-m@m<%8erHACMIt*9nJC4Jh&TS<M<&WLr+=rF01r;gOstQ)+tzZ2v>Lal}Sn zp%Cm&ATW$UrLsTtxx?8<R7)(V2T4Joq*cAOxLLBX3DSasO5)4LG1A3bxtr2WS80^S zSs15du#R!)x=P!jb+cR2Ox+kIc5hnG1<*zt-=*I8)3APGs^m5=<g});lKPzc`tzCf zOkX5so5!|TB%J><VH=SY@)%*-mx(?_v`SF)HcAZ&_@%aflxvqWdsrZ7I4O28jk%Uu z*Q3|vV_sX_*_q$w*GwiCO5@b3ugaCp$!jMqdm!eoO$0C9-#peEGb6rYe?IW|>0xXl zXQ2FdM?Rd^PXMoAWO{Z)xfUYwW%VoF_y}p*1hPx!cd=qjw-t0&oQ3G$4*lH1VwABs z?{n4Bw|M;vg@a-^T#yeKhoAUqwD9JB9zTCHZ495{PDXK_eu`WHRA45&1ZDsfH`#m> zr0MWd4v3Bph!zr>cVWQ#bRmNrE_kj_)ieuTrZpI}#R>q%JG7D{tsyRX_3wXd<>%-x z@Gh-vOeo`a_h#GrYJ$_pTWXJ}GubijLvg3(n1wIk$nIeho&x3k`*yK64lnPbyd`og zxn=w)3&a*>G=BIx-lQU*GLXI4ltJXq@0cC_GKeZHzJ+J$Sho<&KY#V0m1MQVYQ3vs z_@N~FJMfT+EjdN)dl8A+ToY9V=dH4$;PVrr?>LoWC`X~siYXRTc+-#iM5OZ0d(sil zUq4F1+a)BFFWKOEr{=Uc%!PS}rjhbWaKSyw#CSa1kAZt}r<->IxvFedI1gHX-zS-u zUj7y`i*q{rYPsy)P0Uajj&aT@IxONFu6!~uMAo8paO=AiGW88~>bXJewlQefR<cx8 z8eYuIs0>WxM}(M2O0ONj(zQpLH}F4;)s&(1{c@Ei&o(<D7|JcbCO;dO^5?Dy3hVuk z?y}yiv5>{LOmfRxNz4D}B>ne4{QoU!;pF(wXE|%F)FXVvzXvmnk21LLhx*>3^_>OI z64|QB3JijYSQMqPFzeh&I^SOX_-`NeokBJ@{x=@p&<;~J@)xm<SMTY^6V@7ce3FL_ z?<@@_tyB-Sp7?PSypq3#3_C^HTI%1l!6tZ~1C9YqO1~<<)9uYNFf|x7k1raAg@@X@ zE2;AQ94V&BOwk6UD0l}1OlIRJEzxpP3xB$NBsHhg-V)o0W9J1ZDcF%@eb!jw<ctH1 z7pNyQxIWWue*iEsP_a@owi){xNPczDuyL{RvGDzx_2+I23I!&PvoG;5b{dS8kLkPr z<%9{ErL)G#O$$WqkfAB1`*gHG$;K%q>yjWJlb{?GKPg}0$mra#N@u&X(!8Vjhfzh{ zK8I@uhnQ}DBKP&1#l1&;j-~QAktw4bdn)ROFX~g{!!qp^zHH;lK{4aCinHTwT79pb zNZn(DGDPF+MO`n)%3jdcEWkJ)Mer1cN|drPO8oeEen2p&48-w7fEGKFS0eIqn9`tb z!h`L9Afsvjg`){GC(vM9#4CS*9K~c&z2z=P1M|=4aUGqNaY4fsC$$#Gs~mXF9JONK zzl=TOIK8ghkLT@IJczzE!V`Ak+*|4D8yw|Eaxu;7)0C?gh4VV4IV#_B&;^5-x6q5+ zcm|9x>8Zh3Up@_#xtSYf`1+O-!^QTuao-bRl)TeSJh$osNyhT+4&HHv5sAI^lPn+| zC*X2Jre&kKUjWD@G@8+jlkYi#0GOKLj1wuA<J|p#$XRz@>~SqKCazS_H~_DNNi(i| zYGEs4(aM3dIYSU&TtcR~c_=`DY&noY4tjI5_vNT#?xO66p1@B7(j0LabO4%5=J^!+ z5ou1FeLlL(`<(lbdX4}tPGMiy|FX8Nd1wtTwX0@%F`_JYGTzfA*$>hX9Z4I~W!V30 zvef{g1DKLWinvKL(CCuKECk;=B-jADCB*YNNBx7hRz92ooZZ*2s#4D%GDQKVCFJvY zM15#h2%I4qlwdU*Lhfv${#Ywn&cX~%u$~PGcWy=>z>1DDIfD_bW%H3cC!-&1Wy9I{ zq4MPqN#UH)*BXA+Y<4zGg6NpP)qgD7O{m!L(xWDZ@xm20do^lwqbm0V9AguOxeUQr z%hAU}*E<N_8?x;iG@tQXBina$+5@tTfCQeSBtpZ+JD<NKwCVn)KO?}1L>!jdF+Y#= z(h{a4BT$W`AJ*KlKacg&5vI>2V2>miR@$*XkM`2;qBBW<21fD?3!kTX8Fo=`;6bBq zhY@$A&Xex+e5pk7@}j1P33imuQ|}CXseAA?qoBhWJ96jAclu9M{&=sHt|@qa1A=;0 z)sy(d#ErvCOHTET+=eHolW#T#w|@n!Ns!1EFaJB<_^rsJ_bQ;Nt=J=2Hc-u0bOy$S zc}Ea2oxk}<Gqa8mAsheEgd-R-5PbeS8wrNUBjj9=$yS&?5{kJ`2ww@to!LV$yNx+R z>=B|rNG2c2Mx7yAA1&G(KVk>;vX!6@t7w)M`W;l9k85Mk5J&V51{8!DN%UR<WSx&@ zqt6hdk3Mdm7I6XU$BZR{r34jVM(e{cndyW^gHrRcZLG^;_2Dbbbiyh?i}@dI+{@zi z;T+7CLNh_l`S>=@WpVn55VNJQ4$yTznT=oMFj@#d*d_Ak6AU&7u{f2DlwHU@HI4bp zduL8!39kL=8T3m6y96Q_Mo?S<oDGiraBL_K*p!mAk<o3)34sWto)~2x&H~=d$FbpY z8+jt_FnfV9<~)~zy;MDnCxYVyO%@2)pxOnkU>jJp1nYpR3wUj+a>Z1p$!iZ(XD;a> z_iKmu$yZO#*H2?UFCIQGH$E@8A_0gZ0TusP*LgJu(6WQ+nM+&9edE<r&fEL?$@uEY z`1)!6>S_J@NhBZ9M)fdi1=Yv=1wO$1CVayN)vx7Q`6@_M+VoKAD#Twp;7}DU5a#Vh z0(rDxi6JvW09p{`kQ$*PT8R0O3!zGEAl8sPp~Ans>)0U9Aw5E+*pM$n|2MZfkZ1@1 zQUC|*4>^I9!9l!3Mx%8566l=dOW3Gpr1h9fI5GcaQ)4Tc;nd@P!kI8btta^!g;y7> zhrAZ4U6-Txp)!is*W^=P`rtwJ-sRG{_wjw#hq|C&qX*7Am!B@Z4ez>)M1jmsv@Pe} zYxiBGE+M~=`J#*y<xav4hsfHLPr`(TMB9{3BEAj5w5gJWA`Ve{$&-Z34Pki!NW$oc zIK31}B5a3{y;QP835FQG6tcs0hlsqCv%~m?1iX~8BRq%Ty;O}tF@|XG<c-2rhw$zI zMq%tjymyL55ywLxHlTFS^q-IGJI|jl{XM;UJG(YTHlU)=+rZmzqmLpx&t#YWs$RXN zU7Oq+Pyy&|@a?y;$L^hHlS_Y~S8r?ArqBjd1bQ2E`#AdOxAQD|>2K=QTidlMrn66C z{lU7GNhqe-xd!JYymViB2k7OXY?U%Bo7vtmHZr1<>D@8bKcbR(-=QB9*Uf|K)`(7w zXpaxE5&87@)H%kzIjI5&HT+SjtmXG@SHsx3WL&+%x?@!`HCb!IJyj{SQH$BVIgW{- zT<6F^NV`VkbY}5G#f3t%rY>Lk*JOwEnu|Ak+T$34|7K5rb92vP@+`lBK+v`Ci&sl4 zJGH#!n@x3Z%a|w@VT{*HEAq7v-LC`REO7KA2<4jvPP(*6U4f$DF0GqTevt+#tI1W{ zqh91R7AYRrt=R4Gk<~UYS2=_Ty!qNW3yY`~(eiH>KC_oIF)i8~cmJpWY1z76XIAWJ z<SZ@{S3DI9mR7cErT#y}omD^_>bhhT+}$+<C%6Z9cWB%lg1fr}cW5-YOOW8M3GNas zKyZh~ZJI4-&e=0_?|qv`o+0V_zph#<{-C{jO&Oq4j@as@2%s%vJUD;^6cx1=R>Y}6 zOSx)kd?`gpK8UOqc)fiC^nCNmqtzB%t~glfB$sTIuTznS$s|8c8)(bjGclYD!^}(w zD9pKclw%<IbG$V;pZAYAzr+2{LLO$!T*7BC{r3y_-p%s=EaXXwuy8Z8{VN?&sJa-r z`~?C|N!3wR)c_-*VIh{_18u75tUELqLj!`eF$3Rhybsibw6xYC=tU3S5EBh*us)t^ zJbi+Cg7V5L%XT}sUD>DJQzd<XzhB(f{y>O4zmEmHdl~mX{&uauYr5TC<NpFe5)$mZ z>VaI2JJh_|ti#n395;;FF7DM5WZ2<0(IXpm!FoU1-V43M5K6XV8){@OY!uRxhh~O@ zEs;(c%Cb}3%Y7Lu65Ue7-18`9lz3O$i*;Gu%YK>DE573!ioZjR;J5=Bs<l&s;5<5k zg)usT&B)SqwkeCq@#Ai9+tZvyuYm!on0SaWdV89X@H#9s$D{Krf%eF6jk@sz3Cpe2 z>>v6Q<|0W2PrLUDHv?H0!;WPrI;Ha5*VBt-$5DaDQCf&s5h>WMni&3bBBC}kZgi04 zSwF<fvqsW-E+k}`$OTltFZ`@j4+&b{ZKs)JQt-lOmBx0BS=Pd?bs~ja@oPb?4;Pao zb*dV(HnSWmGmnd$r??o-Gp`w5qxj9=i5J7vpNQjCb9{}tB)2Q`sC@0}a?&`@mTHif z4mVgI%deqr(1>`szfC0GUT3x08fq!&!_bkAvOPU+O`}Dx<k{?;HpD(~neJl8qWAsc zWCt!TNx#YS*kE~vU%XDCk=r!yn4?6|ol(X0Tq5;kDQ&cxXWzI?h!@~~78GgfRP525 z&$*L4Pu^zj{rUck`m#u5Fz35dA4ARWtBaGj?R_=TBX4~|!}Wb^^Sp7xp&X#sq0UIw zxSViyA>r!9G#S4l)gskLe-+b`&>GYn)H0^Wq)(z(rJte4)iT%Iq_3xUriV|J<yJJ9 z$wrM>!%Ej(+juzMtMmwn*yi9>Ewpgj^k4lF+A|!du*S8qAU{1m(?{+L+Tjtc+3p~J zxV3uI|JA7fENCNs<Lky}qgjVphf#+WW^-;MZYypxZd;Ejhe2jL?oZqnK<4)T*<(Ho z7g&<p_<lZm`gmTM-=tlLhp=k=l2_zTI5^Uu%#I<4yMijH{LugyRiDC24kc&#!ov~E z-LML!Ah+4uqdwIsIE%Hu^It08$31g%CH08>IrO4@LMho{BJCs)B9fuTQ<hP}yP^Ja zi=U&G)O1ffiwV|<^BW)ZLs|FFMp>0&V`3F_7!wSz)3S^iYrA}`0qAB*uaMi-Fj|~o zg2{`U*HOH=Pn#%_-l7W;yc8#2Q9kp&KPj!ob(dRlTzz*E(#++mv?A?DtQ~cTwNOMj z;2PyE%N22mzEF`l5ZZsWkK_2Xsj#o^STcaT$LSdCHNo_|LeI;jh>!6gv5Wxs>W5lY zlp*W3>l9Fq7I*ANa<S5fKx1z>tQE<#mPN(f{f|<m&W@ka92`TGPB-!LdIsP{CI_U0 z+@_>0U8dwMou))B-O%4RH1AP2v~tT^I<o+MAP&!?Jaq^4(?h*70^Kq~lCbc*5qxWG zGVTc3jkPMLPI2ru$((LcP&y?^;v5Jkl)CL{Hr#DC6<2x;7VGx>2`b>-tNNNPt~NWd z^Q<a3>l>q^9iZ(mn}T`HCgFD_e*TkLEv@>a#Q^rrn+K%-Zk7kW?r{I()d$dXAk@Hq zu5S47Ba&#unoIsYuOnIii*l(d2O8#(+mUwF5qqsoVslkn>il(a-R}fb-nS-5P?mQe z%<*!4b019y*`i@(U>&Hk^Z1h2sYyJx0y{6dk=k8zHGOWX8&c(2nKP#NZ?c@bF8!}j zd2jsSfAwi18S=qF(%QEmd5oN1ochYNA3k21ybt*CZXyo$oVj|q>(g7^v|TmgoB`)V zuTGR158)u-g}ubZw4dqYS16KnJkkt>X!&buOxzM!COx7I5>g_30%8ob1?U6V%NFAw zqbXElM~T}-(qxlgC4Du^srK|dce}*;67_J-u6}-ObJ2e{$(aJokZDjv04G4CV=jv0 zERMzoW)p0c9l6vjDb_EX^-1PEV0*dhhp}bxz(&(fX56-faf_oBT^4oShUx3d>{w)= z_^0<AK5jI-pU0=D_6t)m!QZh$fz*0N(Ytvm?Ooj*N3|1Dp&xBkAtS_igXb*lQY!O( zn7iX~%51h-LGkhGbb>tO8#^+WF2xK}3RnzP?@M)n(j^xP?AXi*&<x)7)16W?=_)-9 z^;->75-b~6o9+BM<p>JAz~2ikgA|%UmKdY;+zbu@ZZP<}4g#_@Bq_ZeOH#jO$dk1~ zov~<PE$Vl&e8x0U1f?{}X~pzNCg6zV((D+tS#v&^+r<iVG*Oa(n)SBT`Qur}bhVA; zdWxoxmc&@B(($PocQ_Njnae(<6Uq)u|7zF5Q?3gbPEBImS^XNNQE678)F3gY;?*gb zIaZ^oh8Vk>hG6w+F*U~Ui0P_~aHmds>$mF{<PC1~B`WWgZ+6911Buxa1LgK%<wQFJ z;|!Tvyfg1H*Xw{y&PAzaOGg;ij3J&`@Ei03z0$PXmkeyzx+9U<wXHMJ`Q;uc9e#^s zD?;ocxCvJ#WFbVYqRj!%XgOj6Ateb|+;=aoHQf>Xk+L6kyl^ue#`V4xHx@<<q?+X! zZxsa{J&N@bvup_%|F|*x5aYA=Y-Yv@FqP}jGyQOlJJZM@`|+Kur_BVp>aeklXbjyU zp2BugrLHjNCo`X=Ya8sU(9EIu5yWsuxVV7*-LYVD?qP%34zBZgU1z~CH1_#|&@9Ox z_`#@7_@O-SMGzl&+8Q_R%BCORyae+JcR;rL#;ZjYL}A{d<(4K{QYIGuoK&z4L~&97 zD!;~&6C*z+DCBDahUVV#@BK`5AK`FNdYcoX0EFSoi+16T(<P7D6KP_d{;Y~LP*93T z%hXcRvPA6MwWBx8DA{-TsYY6KYVhVAt?vhdbD3UAk))6>A&e1k;7Q>PfOTiF7fc7r zLpo;$QBaM_H;soU%*c?wk21PK#P^<r-J*D=u}rKpqAvbG1wrX>$vta`xGh?@#~JQ8 z3WI1Bljvy+HDEZA#VRw?77KtnkR+=t1jJO_JK>yHP+xY33pe;}ym*;pYUcBWwk{X@ zG0OPr{BYR#G`{vuajI5S(z`<d(R#t~tsQ|^v%M|<$uj-Rz?m(+7x}X<EV?J_iI9f{ zW=8nY>Oq$AMxb<<SIU@M_KAFLV2+u`#MHnp{xo|q3rj2#wVQe<he&vv=Gai#aZ+{L zTgGNrU5CSFr7{y@^vy!{pDn`zpX<mWoV3(190Px<2)eMh4!<L)?d+^QEK$ts)J&R> zmnojfCk0p`e_vG*<}DydIraq!YkG!aJ2lX0LXet}VFyWGmnzK9?KJN+EC(`*M%fjv z6!T6~9=^*rTDQLCj(N29CI3d7uRxwti6C0B0fVq!G&$E51z9Hl*tb8ML&sZ3aIJcI z%8@}<)^fVUUsCf>e$-bX(CJmP11P+ndwQpy6(Oa*G^EZU(ry6h*nB<r(*FtIOnHg9 zCjD^+`}aUnd9<cftmgKZ-fRg{)yI0BIHuCbltpsc%6`^fO<|}eZl^E5j{Fll>W0Z4 zu-cqsvTv=dtGC!5ZGY9@q6mbOZg7I1OzonDf*Vn{Z2G<HXROZ=Oz?u8^dy5C{qQ~j zmtUVY+4a%mHV!x8Z9eP!h-M9O4Zw9$4xZc2p;}~RXz*qvv(+Ugb{s3u(#}okv-F6Q z@oIm!*C@JNGxCS_xORI%g546ZUs(q?LQnEH01ZS_$S;|2vSCC&bJT7)=&YC?v;1|4 zr>gBldGqZH9J#oLW}R*sSqyfee7{ue4S|lSLBEi9cI3A&v4?VaLpyY}hAmXEzepoH z1$ts*s|v_ke^$v}bi_`G!|`ff%Wt4<?w6oL*Lxr2qqRODoL@maWh=I}cmv%sBxyhA zBYdFee$YZm?0%p%7&VJBjOqj3Uc*{CsEjh1F^Uk=j?y&<*j^Q^w_g~o%yavkwWM6F z3wwlZJrXnfa|I;2H>NY@*fBE+s6O4yTbMN5lXq8g*I}|xebH`%A*UnjGD7Mqa_=fQ z?b0Y7=XJ27uR00(<ch2N0TT<r(xk3J`1__=k%7BsTkA<(U_e#--14FC-egR2YU}4k zb0c3hL)?RMd!?PmGvt51KLqWK+1J2tk9cq^`@iqnaQx$wdeL1?%>onV%-tw$2f|qy zT}`PQLaH{8M*Xt{#(U{SU?s&Aw1yaZym6d_$%0xNRqYT)QmH0}P9-hX^%}PK>8hpq z8vfPDkDKhvyP?bFhn3Yfwlr@P$woe{7Ij*HB&A2Gl;U=owX&G9m^W=j<hfdHIVbVF zqlW7$fS<`n>r3p`3IH;RE;B2YfRuEhR8&_*`HN4<SVF=UJ8c?>Jqf|bZ#XqAabZL& z{x^-!d6-xd-OXmbN3pBELdgQr9k`sGlVhVo^22t<hGCiN8*AC;<o2M-#p-m=>^kRq z1QW!|?DVDVdNz|U{_Oz9FS5+EO;k%QOX6c^bQ|c$a>H543-DdzT$H>EOO4ImVf8{V zXR<#=Tz)q=W0}s>Chz1kE`?G7ioGRv>LcXnDEL0|pMSxm*v0wQ<2)V&#fKf(m%+Qs zT_-mj!o+~@8=2*Sp5~)V`ODuIW!HIUbAaKai^*BitvSv8f-P&f<Ydf+Wnwz{C(oj7 zY+O?w9g7*O7ys2jV0CN`iVtqi=VG=gNA>M0pUPp4Kmh*mMEP(<*a_WQIYF6Wg>_|s zA0D^+*vlo!4D@4Fc_m%=;gfS)!>olpYgz6Y76B#aP(mhlrn;JtU^b`$B=)$}SV9{8 z;@`#MA?d~A6zRzI#eWUaM}+^}QEj*q!jjwvTS(T*k%>J%Z2FXWCVIG#?w7Ljc32I# zcl{(Mn>>QC-71!@r$IAfOs{v=C*zqX0~m~g-Vn#~i+K(xFJ-b&NjW1juxYQOac8IZ zDs%eu3&+wiMz?&WV7P6LZFc7EmCcmf(HL=>5xtL}r(l+38Cn)O786ETP5FL}RbN_S zO`e7@ou<Dluso=*c~1jy{#1PrpvmDl)G+dx4_ZL%{QzAMR$guW{c|miUY|%3gO>o* zddTOO#fkR@M|su)ZCVmc{E4j7NJ-kqR_+|y9u4)GuG%iG`z{Ond6>-*Cqgoc<WrFz z_z^i$_~Z#PAGXGB&v<?D4Uq=p{=6_h%Ry5Gz?=SgUPi+lRWm9lh!BlOE7*3SNQO5l zXPHYUkdvp%iZFbit}Ta!IR-9C%h?v(ye~viO)DFk1-GQZM`x-WtA6&KC`x8|V6hxq z@yD4UD=W~K2ntr|QCYbU#T=J)%3=*hiRl_ZjdZLXj$($SVemKfJ?%dVSvYqXiiyF8 zDijlopKSYlk8PvgqYrYhTgdt3q#vW#ilktYez+KC$yrd1e5Y<@UV6PfC-u2lIHmJZ zecA89Vh)u<R~-d`578aze;lAu*T38afN#*V6D4^9P-E}RnJ>}VLhy&dbY(U$T6vVl zoSiM~4tN)Gmkcg!W!(kgk3^dcvS9)vMk&l$*+SEYeSY{1_>9S!6caLve#e)1O8+hA zn98k_MeavFj=dXkIRL%cv?+4V+sB^$s2}T(h8qzzKxrJ&tfouFh^z5gFj6q$!vJ8@ z+A*eC{ZUJox*C`3GvR>zrujMUxyCuyxw~W3ZTM|TGhl_v4%Z#;o9vJ5O-9G2X33Qg zCzv-;u>HZCWanQ!#Q5k)Fyo@A`;&~zJY@J7a?mFtcl$3lq0jR@q}%EB(Q6_X`VVj6 z61jfg7JJCHGpwPXM&9&4Y(k#r-Aeh;KU1z>ip73Oq#O?Q>+@RF)3bG}Uovmfv~lC& z%3NJtHNQFgx?vCKCU=14gF($5#N=b?=titZO73Y0!k!^)XYuWZox$~CIVUZC3sX#b zYm^#V2i(pjGWVp3+edu{V&_7bzkxD@5qW1WUiw)Jp3X=;Y#1nv7J`q|0|ewEm;*{9 z|2i(?!x;VZlDvTyi~klKn1B|cg=lRgA&h0tE@m<)gk(<NZ#*CN6X=?YVy;&jrG<K6 zG#`EsbVLhZdP88y84?COM~hp6BQW9&8wA3~2P{El7;=Ud1IKdl&7Cb{mmsta8=+v$ z-<ujz2~+LJPQuq?bF=7(T8yTVA=V?i^vH$TjB4b5*r}LAW`lNOHV8fe+LGb2VP7yC zg!_zg<-+b{Dg~s&gaSEfdVLThS(b$rN1O6+cX%fWG5w_t8^b$+`|+`NjO|f(B<<mM z0_|~2Z+Q&eLSlg^{QhA%f~phi(yvu%_xVeU{kyikyL#}k`HxHUN3Z7-uV-C;|C}5_ zgNb#~34`2SrrAr}{ktge4f^V_1N7K&_2>(F^u2m~$|W`T-;29@>l5(t4U8d5NFXQg zlifo+9#rt>9%kSzoWT3AZZu;WB+9TJW@Bz7YKd+*V~S`Bi5?nb_GqfXZoEyCTi`7e z7^WDi7%}mSZPWQS>lUK(-C(b#F;O)6V4sIEgxou-UNK_~x%X6krp5?zWW~K|o3giw zw+Nl@JHu)ste9hfC^HfG4#7b1#aPQB3W(ek@zEjt7Ul%Qd4q%n^#t>B<8AF55{&g; za$_<+s?Olk&!-#k=fQ~E?-zyX!?OD^7R8gh?Tl%U$WnXsjXxfdt9SctN^%Q5LcvC) zIDFQG4v&~~2+@R;jQHjdeTyH9dH4&emP7%AFgJM-uH>`4L&hSK#b<+G^yeSI|N4S2 z`%fJL7a?#X1b<<iQ|nSS_F@|o>QXlLaTvp%HYMFG4?G<2JYAppd3$#Gwy*oGoxVAB zkH6vVe<0p@iaqm_^z1TeUw2$Pg*tUly!o*Gq;T$6;@QR4zOJ=)N_6U;bJN!Sp!fTU z@!T)Xv+G0qI$-UT;MASC8k6hRvE@hH2!o%l-Q|{3IB8njWAn<^(6)deBkHZA=l8e~ zaz9;?%dHFCM{&N5q3yD$DzO%kQG(DePx^|EGeHk)3A$%k#Z@W!`plyAvdqjy&BFAe zOr6DMX*M0Mrdr1|^H{qR!!5EguGW?)WWI+*UA@(UgQeY_{R08OgaEgJ25RX=vUOlJ ziOM$RTvMx;7y!Qv=iq<^pkCIwFo#**UUV<4p;&g2V4YCyrnLQG&RFlb5TQ^zzd}z9 zUnOPFnhShKW|*5JDIb>kCa2+DMn^s8q<36U-mdoHwVCZ-<~KX{wwzAtDhXW42DheV z^oaB6l*$3EJaPc>GWEj)I6z9Fc0omf8X(oWsyg=dfIPueZdf+Ie*gsl6l&L0B&h*X ztb?m%$`BH)3#t{AvFYZh^s<ZT<jTidc|-vmWqwn0TIJ=kR~6Oc$^g;wbr;v1@(h)y z>Iy`)P%uzP1Gg+P{s2`^FP~1OT+r1uy<A(xc5V*4JiqW~aYcoixa>DQjRln%nPktD zi-sB{eaiAt<EN5BTz}L^rwOI9HA%I=DT%QjwvBs54s`#21jY9HQZZYw+=l^ttfu{c z9;$^^MWv<x5fWAO6lV;v{MM?>R%u8H5u(XR-?z%=1{l!vhak&kAhGXL1nQ-z)S5OF z9<#Sy+It)#bLqq3rCDyGo=M_QJXA-cniywf#g**x?PircT|GP~zCqMfX3p-{TiK%e zBEp1#Fuj7CB(>=mIVuNHzcS${wl&2Uhl8PMssxfRXl>Qfw*XdqJa@VodV0sUky`d7 z*nYGplGWiDZtXm2JU4^!JiZzn<P=?q+~V1A4g=qp2i~Q0@Mq@LY&Kt;Z#gVnSM1nj z$IA`WkKU*5^YX<B(fS-h{l4IB=h}e!6w}v71-WdrhuRT&vvxgVK1n-)YfTwuNBv86 zcy0$h&`Ey*QH@E<m~{rePUKuhtM*{ZjkfR8ZR%4mdYkS?^OJ5L3zg6}7HKkG9D%TO zB%2A5Lmv6>gDLHD$~^{W%%WN3p2B6?t%Sr$?>*To-^cicoqx!NS!&g@4!icm?ORMi zVEalWsk5#AUC8SyqH;7YIyqtvNu}~W&6uTHgVSJx+S+wybs>6km-MUotc>nuf`2<E zY2gjeYB%M!D_4W>Lgma$TA?8FXR;CdBAO8<N+!`wjDQUovyo($3;qElUhyNWbDToV zDUT$ZNIqr+>?UTZgrAIq@wuB~edtrN?{~h54y;Jh;NRh0d^D*Jtv*b~6yu_$fnBym zr;Mw^Bb#P-VsDnOPS_3J-qfJzbSZ6x;`X&-`<QRkaH=``h~VfIAjcSk`Xv{~xnMn) zNHo&FbC8`JNcD3rJCqfVIy%BKF&__W<pi#orhGq|RLZU?o=21`t`KLI4V3j+k8ynd z`vfK{CDr=fzx~a=PEL7~%{Yg^?GvB>S^I?ZAAh)uW@-Q{up?+!B`w((4f<^@Hhuq} z?UTU`6gKy-G*@&G5N<K6t5w`?!Qe<hytt}Ye^cKya-(;ewt)IVI`NX_Jh8T^P5<%M zY)idJt(0z~5<)jwYr6!lkmgspE<m`R&Qv{A?_4)zINuyFTG&n~A+BDfU8Ws1IlO_d zr;5o?>nI&TWrmAsrsB6=qowj*g@?L0bg0<Bi+r^3;&EukqfA&vMWkR+EvYUp!pc%* z9GOs3>wp8L#$JVzTxD82ydg$W`YUCV0;;s4e00;dx`A*X|4u(vgGwV61rFOEjnO}E zS%iD0sJ78^5(Ah((O)U4IZqY^7+K^c&LX8E;^ZS^<?E-kWWu948(n<d$8IU^uog;_ zW3A33kZoL+cKz2i8*Ob$G?SeAKA7#Pq)!f?49mB)eLzha(etEp&}acTYU8IN-23C^ zg}1M!<h9EU-*l1mdUvgws=O6O2R+9ZF8-b;Q^vOfX`o?ZV}|($_e|ZcvTrph(86xZ zl5c2qvZvs{ie63;D)F|%8kC-829^9AM(<KVknu{dOV&%Rn@~YHOx~jNwa}N-P^0yK zOn$Q+Y|wJ~blU>58ozD1&<bN37fRE|r~0-uU~NC^8r#UT=Q6urI8!;J_2+PsQ3A-j zX&ut?&Q1a^<s=$5De4qt8o+|bM8&l=_S@)!RUn!vDel|^yq=^I#QctBh(KWUlprDj zzHAzSn<&Y&gIE?a%))Zas)@7%$>zh%X6b0fSyN_|7{kdHbj;Z4GID0c2&yS%gKE2| z6+N^6s-NUckz@W@KDn2J1eZ^O!R3?hkAId=fP;UOPeSfuB8=(5{8RQz*h^{?vu9&t zkJ~@r3B8sg4Zl?@rzm0nE}slEaH>RbM#or<G?*j;ujN>idJ9>Jf$UV-KMZ+Tvw`Ds zxWyl4V)n=TZVbIxJAiBV>m_;5F!H3uOfzx&6G(<ItiiyZQ8aTJwrKqEXhR9s0^rmr zo;f{REdGR?Ar)&9@W&{YIUQR}`uM0J7yt=e3e)p<idAMw8f72ej(6UEL|qdZXOsJR zH_a69m$%X-H6FEnkI~{^mX-Fyvt^}A<UZwMg^oq`-loO=Th_w&%TL>#u1@+)H@0Y8 zk(s~m%{~31Kswv)^5e_f?V>CHxt8Rk`Fkn(uZ866I<kKA<9WM>a664Y22+$qf5j%p z(o3s{=qS2<WK;k0Ch>W-hhjUE02*mzT>sD}=6TtzoDX9snn7eu|H3BWdDX3g50f97 zVC0wniA~(|59w7$d(@Tnb8BnHt`1){iHRB1si~vpY#KGQvl(txvCp8)yV<xQIT(Kh z?ITnJ?S6&rqnrRqeg&o@IvIHdQBytluy=QZAecs1;t5}$0+&K0qwVpyue(X#9$Yrk z-+kcSq@4fR5K_RK(Z_gFHZ%wpM4`8%K}u-#Xjr}fwz;gw!|J0)8DNnWf**Yc*NYTp z_&Tnv$4c(~w>c#nlnC>P@W($!mVd1(BbCtWG1Pi1!8^(dA?*LjfU@5>Oqj@=yWiyb z4LtCQ488tsL+>NHwh6e0!b}*1d}(1Bb%)r{7ac$`Dlth?&q84$A%d_|6Cb$*#bfvk zV+HP^#99R+jjrdBgL^2wkB~ej&+vN8=iyL02H?j6j4^Yjh$?u0iB$iQeaPl51GA2Z z?5HNce^!p5{=}EuUB%hUrs>P3`OBuM%jG}XD94~j=|9>iru_bqIf8(Rb>WFG#k-0N zmlk_>ya#u@`**yDuWy95gS$5HV?oq?lw=aJo*LAD1l_^xEovW?;`jfhha&erDIIaC zUywNtI5Zj_+7F>AME`r{y`~s_SWG{LrU-rLc0a481pV#|!lFcFNJ>AQrnqSj%=^ss zCW3j)PvC(i&OF8;xWJNAWBUu1^WuTChsv1EhOCiU=a{DH{IIdl)fjf=otp?sEutMp z+XhZ8tR1HJ21+gJ3C6<)iQ}6SOxTULj&LLx;T!0VP$Za=8}N=uIT%A5_>K@cnA984 zjtKe~B^%g|F#4Dl8_13*YZ$v5#Ex&*FmX2^9pMEq(l#(1p#?BCHV_?=tI-!cy9nD2 zP)^;GZrTPOR(GCG&ivdxyS&@ieb-Lkp5DaYc=tc>?>yz4`6+sKS+uV^ubo1l-Xz|5 z4?J}2JguGi*?V@mx37DzokE`8B-}joKltuEb)NYd9MdlilLR%<P*-$pnQJ_v=44<- zy!5E1Cn&4KTJ0QA5fVyT?HrnuaVkvH&yPvij84<fjXBw56=~&V+AelC4b{1P3oN&v zsG6ViD(~cP*3!@^bxN?VsP0tRrkiuq(<>R4FDGto6;5eW<8@6DO$k?Pb8$^7*Ht;5 zpJOQJEBaYbv8)!T=I!blPA6LK+uACdlBV|H>Ka$RqCz}5=L>!q@RU}-s%<A6#DgCX zDH`Q{;KxHsoSLM|6%f3fj6FDj2iz6%6jzj}-ATLZYD~N?Cqt@pRKafmX}ykIx-PX6 zm#f5bp)!TT18e|vAx}ZYf*N-6L1p!t5<sflxz$S++*BDqJRk;$7q;eBfOnlK2l>?k zO5k~>Z0o%gz_E<+@BkA)S=gFiF`))6?F!H^cwbPL(nn?1Sgks~1inug7*BUGovWY# z19!Lq6I*pM0T0$h`sXuUisvu?=$q&Sqw+U_BhfX+|K#4w_RmD*t~uvQ2y=F7MBE*` zA}9pa!#{;(VQnWj^1h5)nVL>qh%ZD4>D%<E^3SgwHl<4rsR%`7r77OYsf`UPKlq(@ zPJDAtFEtmuJ6_tK9sO@tyRP_pU9%B6^>iAi@n*)^Q8^-v25k?VX17X7?Rw=Qo2>RY zV|w?SS<>WJipxgCP^A<Pr;Ah<go*D{`L(kS#|Tv74_V))?=xb)OwigZTTgvoN$k`r zdeM*HWMz3-leM_V#s0mL061a|Oizc@rE=-+cCr5w==;zjr(&%vt?%ULrX1VFT*Kbd zz|FNRIQu30apL$1VOy6g4SxTG36yqKSkfRh?2w+@DgF`E`d!W6=%o8%L)1yuC7^UR z|EMx3x)MW>^b@`s=cs{9%}I`4t|Gi56CGGxb9}lxQ~Pq+%Xz0oUbjcbGnFyXaPo_V zBYMc>y_|ep1p67#awdAAC?@0Oi_RH83&|FcCN1Kj#(Qu25Vu9nI7-dW+euj6NZ-jz z3;y&=dQQ5?i?=jB$kt`%W)%1ia|m-v!;vpJW#|3Y9kS^gJy9lhM%AcTuMETcVZ4TD zCjc-20aMc`C>8ii{CZe(*kKw7<t39}CU4;R+slhlkRdszVxm_qBTzAgmr)ga2hqhV z-267k24)$lcE1td8dF7>#}a?1(BrcMHDz?^Mxnz#`umU!C$qvgJ?LN!BAG-fWk15V zP;N5)QgRBoh}W^9l7Z!~LOBWo9$#~`KSYRmWs`E2j16ds;FaNr4Vb)dlM+%mKY0pp zFpfj6MPTy^CZ(H|_vl^FTM@W^^tHmThLVUV=A}*Q>}^HoNEgESg1PQspWy~hNpuSU z@7)U33S%LHJD3>HzM-(exM4@8cZP5Shu_=L>l>ulZ16pKgA|Pfiv$DaqdQCRHq8h= zKpqLbE|iE&1CQ?a$AMAi9;V-jsEE+L4tYv67?GipAsBz+<I#JijFQhv&wyvmNP^mU z<a}h&-vqzJdSawHzS<F)l|5uUv|sIrIp{gquVcbuI3_qIgjb7W4O|UE4SWrvJ)Av) zJ-ljYQ>c50d+5!d)<jI^1mE?2?xbvK?1w-wt6lls?vU3Uy{$!sbHkSk@UXDr3pb<p zYRNS%VuN0(JCoB-^?GcSBgdlq^qd#n2`2Tly_wF*OWAJ*#f%yiv)HjFH9A)7oifWz zu8}pfHFI;<<s4oO>Ut&B8eFA>bMgn~u2J_f_f@TcRrB?WY!crZI}P_z!BViFaeq+o z@SN#D!8Pr^;y&}ftyRZ;z2F2;F(-JW_5iZ%@)F`NB~d}Gken?zV7Y4c65%g<wpw?R ziBqVsn5{qfc-0QJDEbM<F_ovyjvQcLm3zrQWuDfszkN(6I6y=K-3JA=cm6W0VWQ|i zbZ+bDoK#}+jSY(Z1w%}ZwGu)W%}TV9%%K!K4T)+7_5Kg3A;o*zebOSx@V~T&(ZWb( z472&K5P7iY@NbBGF3KxJ9y38o3)hwQFptE{cecbP045oED!vY#K=~hQLud99n?Rgo zX{r2Ie0<ep<OR%%&=Nrv?Q$-%8EYc#az29@Z$p7i+;uYXWMCaRkBXZJ^)R6$`M=E# zFQ`_;mXKFz+6s98V{YiBdM%7&h7hK7EzY?;_C4<?TzB{xPsS7Rg2sLTJTN>{T?_LW zUOs0wqeGxM?RFRrq$!jWMc>Y*DQ-uMQ(B9`7<Nfk@luxXL>;DOV-C8|k1lLSEuh&q z3B2&*lSq${8-_gtKVCfIFUa`BUQLIvCd_83+5Vri1;L&~lii7Lm#E(^cbD$Mm+ruL zc^}@FKDTEG-WLa6|Gez3@8bqGyZ-&-2FANg-!9XZ?naIu$&Vh%!NB>W$GD$&r1h7A zu|u?yChXgI(Rn@)ib}Bqnl*8PV>zaSMnr5RTj}t?Zn=K39a_EtzL=79X<)zHpy}TO z!re2XOTHY7Vnc*~3<zs}VZS2b+rt)s3+FtSFl&Zu{h6aW9#QF$Wusszq$lht^XaDE z4uAU)7$R@ZQ_RN39PCLN1q4qLeF9K{sOMyt=mN$9U?MyYxXk{_k}n$7r8n6z`p8BK z7^S`qxx@OxiU>x+e-0ge?`Z%{2b57`{j$Nf<Lom|pL)a4gRz6?(?btdDkj}9q}>31 zJg6H&*JFH02V8VA)rQ|8c&FDWk5z)@ipbY2pK8Bog+q>d5t(xS0)s-r)8)B)Z3dOi z5o1}_e{o+jC@||dCN729j=FOX_{7bOx@8%;{i45w9A^>S<h#W5Gxi&V-oe#1b=$<K zM@&mMa16ae)<|D>jQImSzhqx?q`~m;6etM%KWByC{Upu0OzPGhmrg^D+*Ph0F#TD< z=Ea#mu=9Ta=fQ0Gr_e4SV%@s<(rMz6yViBv`v<+0r|KVm{;(b&<lhn0Fq3t5|0;L5 z&mM38BGEOIE^f8o`Oa3Lam?5{=v%r;X3=bjCEEh$NU7r|wh7LWGWa?3PTTU*o~vb? zMQd!0h0}*=b?@d@zb){Pa0CEUH&`yu02>YG7p+M(I2yD+RXpi>zM2&wb;T{et$`<l z<z-;ABJn1jN<~Z~&nR}oPtyu=Fhbt8aZb59zu~8Gg$bA>58ffhI%5~iH8t||02rzo ze;!b1)V>Z8Rl)3e@DMS3hfbm5xRIw1(5}vF<C<E*qy1!9;jBw(c?A|UI)l;i6W}Q% zm_hGXJ11U!U<D@Ar!|+?%rWZd?UV<qcl|s-&_MonKL&O(S{KfpHnygw>RSb+5;oaK zz*n&wJ;EZUJq3#=!{=A-US|lP>&T;AjA8Mp4m}H#Z~Q}(h^YEt9ScrCmEZ*QKbR!_ z7ZGSs_=GfH?nXp4fyl~E>dy$IOMi|B@ix|}L5{(q=-8;SDX1XJOte04+Xfg3R!1*f z`g|FxxanB)*MDgid^}nABKg%iPI(As`&&gzb1;a=s{kD{y@;+p5`<(r%uL!6w8(Ec z@Ywa5sWw^du(CYWvGTf~ESfo3KY)f|M-Vz%JO@G<G2@fAS>a!DE>q2uV;SicC#r65 zBH7c*E=k>Iz?=2~=%(G&7CA!&1;I4<;|0Ny<u-pW(lo0SWo`XrR=%!=ZUYsy1Qlg< z;3?_BgyP-JvjC-2UByU<%VpZ_2k%LfL>==sIVCTvw;jxMeFiFv{=YxB_c{@i@f5HN zHgWSdtxODQ!vIh&H748Iws8+td+TK+Q+IK%uP*l&UwloLH(Cmu^r(Wy8#YvJRhGTw zLe4$p3d^=xlwn9zm)Unytjd1BxTAN{4w?{Q9<w^WxMJ#gAHPqNmKpzbQ-ZadidAF^ zNWE-&NBx01rZbqKe!pbDm^7P3m?~B>zh={e?gO&K;3eVrH?3j%mV4nMlKgVazGg_; z;%((}LMiZ-tirN#XAs_Idan^k%u6OQqNs+?iJw313y#dhoW%wXI0A9F>Y953nI`wK zGma7K@NL-oi<iwy<)xtabIpKBJ7m4t4b1O*rMITZ#Sp&z9;SI4L@tK-Efg;=R!QR( zwctS}ECn{^c!~Jt1x`*%XG*a<c}-CM%bGJOB88)kP!)0*GA{zQ<;1^la2_0`RtY@} z{W}B+zlI>Y<ZxH){~dys@wwupFsDN^Lj*(&Hq1*BTg3OMSLjx#OyQakpF-s}P+mh2 znd}*YJK|C=e{Tmk0x5n^*ns`RsAIURVE&nCo5#fZGas1&4H`mdo=Ae~AQI+dufv94 zo+chyGF*{J`dNSyqZ(YwYy4q;%{?@H6wzSV0{m7ed~e_N%?wLi_r)Kv2poY#UIS1u zoFalEIOhBzg=SU-QvQWlz}bPDfS*A8XDV{e4v07+jQzyO8%K97f5mWR%l{Hf(pAy9 z>jE6=tQjKRI}i7IlKkmkIrL@kyu@qOhhINe{o_~l3dE~UafLPlw_5!sv4@F<7u_0z z@}UvXqtmfQ>4!Oh*D5a0P}+g@)rYH3SA<tOt}(6ZPYQZqCG~UebLn&8YakM===wVp zwF0_OmqE80S6qLHrrYjIT19Wx%T822&8{AhxYo2PuGWw!p_Yfw_8p*Km3qnXgC_-w z<t4K-2l!W&UJ6gLH-a@oxU*3Qlvj0L;vHavbQkFyRe+$8sBd7PzJXHw0xr?fRcMHZ zuU*puF2O;OB484ICD$Y*D3duv`7aMNi3bfiy0jMJH<|)8ap@NtV(veD&tSg7D`w$O zvokABZL;I%f@n#;zk*MC2*t2hsiYR^7454_N0hzLCPX4RW(rsbpP|Glt~zXPDe*U7 z0UU93@+n{W3hgKh%8e4AhB+-omvC%pRpUjLP>yL-6J$L3t4scwe;gqH&OfgPo9aE8 z|6BfXqMeDCOpo;$&Quawf(=dfWl6p;$5LJkGD?2>Rnm^#M{D2rl#CBfJH+HP4+SBt zm_^C%xzQI2d_tbM!?g8E!u#Ts+pBoe=`qU5H-_xn9eASBq!`IJ8)U;ozm-tB-~4TO z2Irn_G^D)IKf=!C@gwxBOXo%D51kG$d)<DQ)NZ$H{Wb598tpRGUZ(xL8##JJU3`r^ z*ly1<yf0F`FEqR_mb@=`yf49S&*5O%4oj*N(V%kdkjF4QQ0R`C<of=${uq5nnQxdc zYzR1X&dr97nNEEM#Rd<)aso$RwK~##KlnmRfMwwI;J>0vdPMpt{it!y;LIqSN0=wh z1nXb^8)uJLPm&2XreDxI;_cttL(+h0=d70q`bPQ#6{DX#Vmyg!*qm9?Ji(5fOXfIF zOnX-Q4Tc@t_ObS0ccA+@<0XlJ$=cAvD6HnN&u7&1xHI%i76EgC9_rB&&4IrJI)GB+ za^*4lei3tY9G0kBpjHs&sKrI+#QDd1wY4Us5#YAwcx5+&Ii)&l#cy8&L+VRPH<k+J zKA+Il(S^l6pWu$srp2Mk9zSyi6z27fcl9XYz*9%y-CIc@sblgT{1EVpd)x+W#<9pU z_3NQECs$z0bO>9Dt{=t8GWo-}vkT5Vfp^Hb;LH<o2bq?B+}!&ZQ89{gWau^w#_@I$ zEZH|5HA!ACe|R`fdb%F*gEj36u3INtI{kX&E_TgJ_duNV6g%QaZQ7Mow@&*X+UaMo zNZNDhH0a1(`MQnbK`-^G`n#V7SR@VEK1YRir2#}UFg&|(xF^lId!O_iZsBHbeizhm zH_h2r3O{fD&DOdUero5#@=@_%)!0JglBj$s=lY^K6GyY#a#Q2ap}B7l;G83<v0$hB z2^?@jt*)}GP@J%<=XhQNj!4BRn2GQq?iH8-r;(ujWckWOn0^H&Y=LnMSB*U5;Phiy zfeB7OU|vGfYwU>vtET}vugPc(5UrkR;~EA|HsENaRefOnZ2;`!0ef^Z!2t)mWUl5l z;IylEEgihqfY*MqtB}>Dw7v?jVsuU^oO9FBdv)#j|2(iZSN{gDZNAb;N!9Q(<a`}h z_xcoZit2M+C+`F(cEt_>&7Nv19qQpGyx;%da0;(qcb&AJX_SFoIAxUo)mOCQ08urK z|GeuQ|8!TwS|EWvYy0{&pn{P`^Q%T=WCxenB;ae{dyFLdk;qSIa8U%Rqu%=+H#v)K zLB^+Gtg82E$Ij~MjpV#k>~4FK;MxPZ$GA@?o4dK+&B^F$x--s#KvtU)?VQlnm9nib zz;O<x;RcXU9{i=Qlt!>)30*80?-g^bo`k?$#;AE5d1)+9H=Y|QeiJJr6+QlSh=&zv zn0(1v$<IdSd!t!1(l8soyuiHOIefxuem-)!xsAD-cK<tX^Kv%wG3<?Dr^Rf@tn1H$ z2VXl<ggu+w%(<PxsgW$t7ikzTCH;W8G_iIZNwSG7Se0lAzA@Ql6$35Ps;TIv){M7S zZ_;uUe{VM1yM&i@+6jgrnU<m@c#fc4ax;aMZ)l@eiWe`LOqQv2Y9=AUTB$Qw^$0#4 z`f1OR8-sOA<*Y@s7q9m+#_i<B^;FWaqB=Hvz$KI>a|Aspz4{O!{;>6BJ|kg9>(tq_ zX}V3*PN<bZK8{K@uJ9-+cCJ8Sf@tUaJTbQ(o`G8L89hH-4cb%s{eHu)LmLz(EU3<` za6c@PY@T`!X~6c}smO&iv7jbt2K(@9(Qx=IH1fSFG>={fktp#JqhuDtkN`6)u_zet zCgYo|_{rO=hyNmKf+*3}y`S4tlB6x=3T7$nrweXtt({1|)?LM$db%Q+Of|0hgK94z z0Do?#(yL6y92*rwjiLUaN@T1&4uPveY_2=E`~}w;CUiIh+)J8HyQtkN2w!~R{+>(6 z-#D^U$D56w5U(mZ5uLaa*;_;plqdOde%~Ii>67@`#n*~_)47gCwrbwAB4_=_IWRAf zarsU7Xew~@Xie*5I?H`NUb3fyjKoSoIyN(Rk)zti53^_Ig3bh|;exV4LINGqRj(&( z#_Fyb8PD>%=3K8TzUs1Zr{*_2QMBaM;jDW&ML$0z>8sMcqwfZPpwPwXZl_m7*C#Ky ztRCb|s1GZasHC`b4AW`Wq;Deu0<S=((+`E(sCvt#Gt~6$A_G3#{6F;iGIwV;?~I(} zdhRqUD$5<Z;>yd*Yq>}PdNrO0^8||Jc67QO<LjmRs&UfgO|#x#CwS?(4eqe2R|CEU z|Auq7wFl@dOc@|z=Zn0s4*%luO70B(z~S3VQ#4Jwb>$F;TY#jx0X+wMK)2Qm+v>F{ zWb(1bXIrB=T>U7oifH$wr?MsvWaxHdsO}2jUxl1^5RcZ4n)L1fC0t#Vr0N%3v2YJ# z;pmbXV1HOK@^;e{M{#twbn>T2vi^=}uN0$Za?{Ut=7HMRATpQ#qBhp2Hx|r+r28o! z_BaoAS&idE>3r?49j&0Jxtg-n=Yr%P-0JxJh;i&EicM3S)warGh;}B3{K$pItpbCH zLtz@0zia$Rr)Kdi8=~><(poRJKWlW}pNIU6*`{|tes=>xbW-ff4cZS+GjrB=BlVp@ z=uAv`yt<lxq0>L-D!ucQ&KW$Bmgw-<AJAc<>bTt-2tr0|q+bC+`{m*>2XE#=(ZJJp zlR^ck<g&v-3FjiwAPxs!yu(v_gDp&{gs=7%Ak3jeJo|=2m_dm!BtQubrdOC)33nC} zJy*c;4MC7ZE{i2ZMv!^#N6WX`LF&02mXJS#+;aIpLlFyM?ZM>>Bke))Kz`VRXbsXt zgKZ5w$%Wm6_X_lge*@N8yh8^;OXreG!6*hk|FSwm^1xXXLiif2_UjF#5CI-smLZx4 zN?~x%J4n+Y`ZK=oFpTkFdr6)lp2u4xSf-$~?vY>E%n<G6=Nd2hFU2)e3;Tp1`FkAS z%udnuqSL9HeOQp_eFD7S=#}DL35f0f<5Q5IbXUH?jQw5{i1(iVDezh96(DY~SEGN% z#giDDU$BqIlNwvFwGYLUppc)mkHwRsP%vY~I99;6CzqjU@k;W}mffAY14~z=aHj@b z;Pw8u?qbdbSx<Ih>Iy9Gkm8yeb3t5{X`1>APQL1bx+;4!^#ppuFNHeQ2ZH05iJRI2 zLGeo~PR)Rj_+=-iE<q3-QcP1LAcPK?nyEt&Ooz1n)G`RAL-us)0rb{a%Ad<^LY1T# zdN}L1))~?D<b=_`eybk8J|cZJ+bCu_gB%FJ$AYC4k~Vz%{O(OMM3L}2I0!Q#EhUs> z*q&U7QaHN6;ar4Lgz~_HT$oaL>%gDyphAL}(NGQoT60N0zqt~IoJ3=Xh!Mt|#A1gW z6GoiGXn?2^CY;1+fIJqa*n5*NB#DM>EJQttuPF?+l=KI2Pa^-t!|xA<nj{3hjmTw^ zf_M^Q^*{i@Dh6A0*LTCbx@sU`@!m{#3;lu$?sk4hj0A)KDyG>L=5z=oVunJ3?(0T0 z<n};shth|s2|)h^KotmQK)rjH>LI`B8o@=emh2(BX&d2Av6kYYxak{#N+FPZ`?>zv zWa(CHQ#E3OLLlu{WK%YxhN3g|R$@~p0!+?MyA|G)jQB#~mwGF{sUcA1UqHT3!;=x4 zXR^=DlcSJ}xlh59u8^m?&(4#*GtI{nJYIO`f|D)3JK5qwlC6k48R~+rCzm!^<btoK zpfQ=^f~_aN@GlU%3+AdESVH4MxT@ejneBqR3U<tNxR9<YqD}^b(D>!zCJR7#{0fSb zNgynK`H9JT5D~v3(_|C~qeHG{vI0cVp<q9m3Bu`+Kb>p?k#s1MPKJZr`CT`YqM_p~ zN6E?0AlAB}d;&t3aX2*#2h#4RjA!MdW-uBkzA5<=2+2-Ov&X|su{O{%NRG@HY6q$p zrdXP3hpHFNS-NTm&li5Pv?UM`wZcO#akbRbj+2<Y2Wt(a2&V=c;B93xr*;~kZKZXl z<{OZ0WtXR}*%RGzl^e)oidkNn_*D&v$1)~XM8^_sGb9bv$KqR75XbTllVU&9sHXhb z(*?vIX8u6@TNlvIDyWtPqvTq-ymOrv27Sy>fSp0gkgngmWY281L?IRlpEd$P^JH~O z8RRp~Xzan=mv3*p>|v9g`};|r`Q8!|OG{2oxgZhC4o#iAKx9i%PyKK~$d)OY+GkJO znZkFW8Y`*av*8IJFS^|GX$@d3jM_794Ph)A`IjM}HLSV_Yzt})v@6WqGk>+nEbqCs z2A>qR?SUmRCq)l?eqI42h2eWfULhn!Lwk;1K{<sbdsbdyIYqmBo?e0ag=u?cUZMI$ z3wy3!!E1$0d$wNTYehGEzV`tFAP-RN8J(9TRtI_H8oKmLfO`nnI=Tx5vAE<6iwixm z<j@Sf%lm9G>KR%Wx@?IOS*{igPYgB+bD7_=qlrKU7D?mke!hr13`7bX8Tv#``dTsL zvVPWxZHx~T>N1synhdoP##Q}15my+56r3_PiHr2L;>H#IoDs(uycBLSM~RCJwUWj) z{Q?nB7_by5GDL~o^p0YirTr`sTNu<73Nl%V+zgHqo0a_^BQ7y;DHvsR6PxKB#W&0Q zIU)`*xG3yoRuY>T93?la`}rdtFi<H-WWEy)we7{If(B{5wkVz;*SN*Ibg`eDuH5}v zhE;Pe)y@mG%EfZ%K4!mULinpO_6Yh>dvz4U0Qkzx59a3|gPk+~i4Rkr``msC{pL+1 z@_)6RSFpEJb#byXarr-&rd9Lq9;yI5@b{UVT=E2rMFB=Bb*6=8$&?Ug-@c^?(H6WN z*p!-)C4`ff?{z|5@s9enrXv&qv8mtuntu7aZsd`Iwmm^pf+wdr-V-0!-RI@owwsVM z#Z7^uKazaXfz(NbE9A#Ty#;Y8G{-Pt*Ty2T9E=|`v>Y@CV|tjvH#qiHN;ahPQ53bf z>c}wbqf)YuSAL=^&p%s*JZ;TV$bvr^pBGO<=V_X7|4gQlZ&=Jbdvqvm;KZqt9qh|9 zEoM6$LHa?A8yl8{iR5@2xr=A4K1g6I`g1O%!0mWb9NCQz&F1r7CJINb5;H3`9_rS| z%V{~za7+SnW68|Kv9M;JD{Mdi+Su<)U-_)4ncERWqj5SwMSZcH<>=9E^4x)HDS_Jz z1mE{(?7XeI(Pnr>r8}>~Fzb&f-S~_Y5vfGSwiBdm%2t761;kFN$l(7`9f-~PbH32q z>we`<sI);Dq+S-bJvRS@^1)&WPV@qwc*z2~Kt7}R`|i5i+~d^m-<pL}v1!;Qo^3~^ z>Ls<MWNP?wi*xtA@oNJ9z5}rYp8#HP<j6nz_#kVokjdmEK5@75A>({Db9=X(PgUPs z%(P0ARr)Q>*x$u`OC(|R+Vj9TYKyFmC)#&^{=g1Z3r!cJp)lCR<%gWCxpX#VHih92 z8``?U8c=;d^*}08Dp@L0icxBGd_rn;q8<Z&43&v#C8e2)&G&A9$M5ll^_0933-QlY zHx-lEkDqWw?;F+}mL)trkotp_`7L9;{NOshx^Ns4J0gDh@OHS()!rVZnpSFSND2P% zc`6rkDkM}Fk=0{i@6a(eF3f+ZQZ(t$qfFqW{4}8X;UleMrBPFLx#a2I-qgF*#T5CX z_&}t6M)7oJM2=F`)3wCF)u{QXkHeshiUBiyT7??VRkyd^QaK>g?u31X^Z=TxNrK=a z{prlAj%i6*lw*@0<Jzp>^to7)Jc{SJL2I=RDOkx^Zi*4$SzktMm6bET6O!t+4A(^Q z5zP}vY0vbVLVB8^^Y0;F^7iFA+E{9mf7_APW16HEE}NRPUdekA*x>`y!*pPb2nh5h z^r-InvITIugZK2=D68kUO45EL#hm^ayfNMKo<7&28(_7f;$KOZ1EiZdrC_1RL_8F$ z&lIK&rpRwiv+ox<T4ikL5<ID~l4X9gXG94NBRb+}<55jq03!<um(8}cmzq-tkAH0F z@H}pe+82dSOfza9&Q{*rKHG{S!0v~6Jl}<Z#_gmgjyX+TuJP=fR&Af-j^_=M<UqCB z!L2Kay~&zYLnq002{GB3BrSuq%Tswa4__q9ZXEre-*eZP2|DIXuf@yfw4gZO>#8!9 z=(l*afSe8i0pSpQ*k>%L9zukMfsOA-8z7-``S;%N1Z4-{f<GHx1BVM_Xf7`e#2*44 z5R7m4_}@-6*hpb`JUE!Z9z!@9Xwe>KW}@gf<UNdrSc}-vFecraN-%?g=Y|kKII2J= zrMGlFcDV>@!K*!{zhG6n)s!HM1GSlnN8hmZ&?~`07;*w3uitnFwHPufq3#5B^avOl zd?keof<c3b>4v!!#<YYn`uc_*3jHgbm@ra9z>_c$g%AckjBK~cS0s8^*Z{~^!H)wR zx0)4G_*CCMI!LNDh(tWDcxcjO-x1{D1;L+?Bc@nfGO4<61#<C%;ZMpDpD5m)bl#Wo zBGD7qn7Q1C28sOXzxzuY1Cseud{<MnFm<?(43hA|)DvBpb_JPxA?hirzKYUTg}A2W zL2j+-Yr>~4y={A|AQCU8j<_{N(p=Q(@I9RWvGUGo<G*y?>7L2nV?Sm1iFOsOPo3_g z+TH%?yrVU2HkfHzZ@%uzoLPvdRle9QE?niI)$Ds|ZhXd^8)^}G;Ui$p5q!pc{<mvM zIQUwU5ZT@91OD{b0wW6k`{m<5yTNn+`s9#K3VYMS0F98$KP^INPFskTF)7o~U~K&j zW`JE@);gn~0=k?AWyRZGd?j+Yj^^E_`ieKx>yHz6YoeA>0;n(TUEUM7<1M>ud`q>T zE;-+4h^63U0L9falEss(BGZet%edt0BU3S!`1JHshJi-K=_+Y9jBGRXF;4BBKc}ay z*l<!jREW=&^m17+rfK?4XTEP%ozDSgJ?J>-N@FRtv#NSDRk?pAx=?N988&|;aw(?P zkeJ$?rm3eVLM|ERVC6<Q;9&JKmd`g{KX71In^~L3lPTq>t1#&iDinx^8}XjAlw&}l z<~W#}#{)qn=9Oy}N*AD`)U2=i!me3b=j<U;>gHE;f1u)&gkT`B+MJ$UOhBOA7Ht;q z-y%SM?D}Dxlvk?RgB8JmOvzqXVm$Z1n0u?JI2*Q0GXx7Rg}b{I?(VL^J-7#VmqLRC zcb5P`0tA;rf=h6R0EI))5M(OvC*AKa-Mwbk%$lR(gcE8}JluQl>-wo!*X1vl_*#FM zEM}OR6gPP!-)Z8#Psd^{1Xx-vLZlpNsiEuXV5ZPZh$L;8`z4{a$ZV8WZD@LpY~FTF zbOCc07KG>P=#M+cz*iYHHlW%r6i^jWNf$eodgX`mxQ>76L3pYXxgrg(LXuj>LZERz zc@+1BKCGzvvvAn6f7ianS45zq2hO+rVr=4@qHb%Z))~i9eE*x@UA&{^0=(6Q!o*)0 zH)Y9)EK9y}o18e1i_z;-4a<7X4l12IqX&NJK(ym-Hq@mcM2*hF<@`k&tJY`Iy68{3 z19|^}pFLyqz&kEsEW`4E>8c|rD$p-|WDh8^nJF9Iwti(=Fa2n+mz2s7jxY)U==%P= zjL3SIrlv%61MqJ8MpGAa-S6lmV)cnWyd^I_XQVli{vfs)859LN9H{DPYczk2w)K9e zSK1E8kR{e;6e}{E9%ql}N;xm>E1fZY>OsOj(H=pC{YZ@jcjj*=?uehhGQ?=OHAMIJ zZ4jQH^KWJxu$yFO8NO6&G1z1y^QHJYCG8=%J1(bf{In%1p<4tsHhz|I{+h}nLf(-% zZULiTg1I|u*izc+Sk%CsC}%iA`Ib9oL6WHctscVy&o@7d$VVefdaIkYU7R{G+>+Uw z+QWy1>tsE<Fk7w*+(fXXOvh%~@;4zG_r&|yR%;%DYk~9!1nLS9SL)oj-F9=yw?y6! z`|;Uz-cTKH8zjF&=Ve>iE(!AZ6O<Ei#AOP^YuK-UtfB~E!W?f<5v0UL36P^gx7+>8 z%py!06gjZtUzhX|aNxzmqN~3`?t{w9a6&D%-~cyP4)CeH@BTb&&50vrqAT{HasUR6 z3Q@;j@BR6(WxC$0fp^}5ahIU2eEs{7@tg1#{O@pBah^;Js8f_5ljRj640$CiVz?jl zLluWRWFUk*$Mg+4qFji~!|QL!Z77g2FJvMKOzu!jTLe}=qeg-V31)s|X>sD1FoKxy z5{cI|63ETrv}TNY2!g%9Ej`B|0e*B6jJFqeRdYyQ`_iu1{Dhz2DnhjS?6y2y5%>YQ z@RJA!A?|&?TLG>xZJ0)IYzP@4N_|#a?_J^Bu#MpB5Eerm`aI1(<~L~ibxG{oPZIOH z;N;Eb+@D!b8uGjBbtYVSO$zZZLWri?w0!YfHzvNOyOSRHO`_!z3!HDC{8$6~vL6KI z<_NS_RvZ303z~Gw#i-0b4Y(^5b^CHnxi>H>mzKmtt|eL*Ao;8Gee_Spy}41Fv?-<n zEz$Y_iC@J(Y4^rPb<^sZOtre}0;GPG|6~oSZWY+v4#>C?nY^2?#7GnRNX{gt8T9E< z`d8IYuDyd%_B2zb9?hWIN7-MsKZW-0M#<B}ex3#GJZ4?tPnrq@?>^>TVN8k%yzD&Y zxZ@v)MLnRUHAH?w%c)#MXsq4sc@haernN@liAlG3X7+kU`TKyqi(6*B1Ug{HC;Z<W zy_Gcoe)Qh^GhUY?9=_Dqd#DbHfj>d}Y<7-@<$)^$gJLn-$nqIMuRm-EoO!2m-sNqH zt)*<Cz}-;BHwQg?-{nJudd_Kc{v5s!p6=G&&knwNTc2^c+gP9HH~HT>Z#u;jI;Vqk z7?H~JvY5(gGljWCW@vIArTqn@aAG8ZTI1Lo{Ha7X*2f-+XUwr&?#6UgX6DbiDPah~ z8ijpU#Y~-Ssqz~7sr8g6oHMvgv3HZqtYbMDrdym(agr)LU&o$`s?DTS`1#fdE)Z+N zpV!2$)J12kEa>5h!zQ#GqduL;u<cG_=)fD5OKE(j<ft#}=A72vuldwOTO~u;Q}3Ky z&scf9AnEPyH0?!Zh;LhISLd14_9^zz#HEE)L3yuwUtEtm?~Jof)_<uVA};lDjOM%U z!<c04(~=w9sH8jdjZvwqja$#ETA*a9$+s@v4yIJcr~p%bb%N@qUw$<KFBLbu+*6I7 zq2-{KSdV$nZX%&<S)mj*M0*E0V|)Wb+eT8j0V30&<!V`>m`s-6%1TbxeD3S{l?b%m zQACE*B4hrAxyuIWnXXoDN=<ncW^D{xHSfu0={%Mzj&M*j;NHSz_lJJ%whneO$%|5l zPApcLf>L_wJQJ{$q*zs+#mzt9F1s*Bv)$EREVDUoe-MD0lr1zx%1adDxUPiDm&Wfh zC#^$=(=y4(w3tT6UnS|=Hi}p$6aE0kO}J(p{x&@!q&?aJ<|()5jXtg5H{ZWF{@@h3 zt@#=G)Mw_L|L%AxZzi-RK*j3VIkuYN%bgYOp~Cy)lkfZKynJ>UeqFdG9X-s7U!>;x zyN^Pe43VW&P>6G+teB<PcB|?gGk-4*Dc07LByW1T_&%H1F3x=2tIvCfBJ1;F;QJfR z*`}v%NIHitTg`t#Ma$k&SEMIFVW{?ygU!%loEu;>6|XR%;Q7^(H>Yxf&acVMg$tPD zXqVQtnkh}3aA<yY!%cWQzPo15`OW4orPjT1qV?-K@6ZA2=t=iH*g57$%w9gsTET9! zU6-kihzk4Bu8PZC^u~^gsXv~R(r;1*f1}lt@R#V5r_;>b6M$pFk%c>FOZI)s*XUHC zbvvwYqz(ux!ncOzjmo!TvRS~TM9w0oav&l>S?b}`rL4?QjmCbaMD4PJQ@UPl=!9r# zYKO!4+tj6&XwWsspdJ2UpXI^uVIKhc8kJepf|zF~yOz7RvO=)>J~Pn1V)6B=Z0*i_ zPR`cs(iT$Hk^vLdRQYJPWVu-A2Hhuv&`wr{H$U!Hqb|Xz5%-bRP@BdON5CjIp(Q-A zF`U$LsKq*GzTL-;kkR_oAk}uDyGA9~zspUomGtzaht<k}CODgLu{~|~^sQ^-!ZI(= zUWmcHRHe;2z9Uu0ccMM`hi5m%AYC6@_xq&xXR$w2lN|f5NAQ$g*25mUNQS=;uSPmN z8I*r&akmy@9Md$iwz2SS?r2+cN+R$FuTW2tUEazs$TZfad{xE-Q7QOH3(c5#V1A>L zDUD5}Qt`k(EN+5OwZ}SBNxh3bD~^UR`hhlzlOW6wpl6E^0)|HEmJzIQuo+Mq75A$} zCIOplOtM890qamqgGDZMkrV^6NXcX=kEycA9s$hBbZ1f`OBZD_S|inGvhK%F0d>a# zgBIO-6pGSS3;>itss=q4tUZgWO3X2^#EzL;48QihblF856Bg!tvF!KQLOnKgfM>A@ zcgzP{oai_@EWC+gnNOI^gIE?H`87#s-^P^;61m0G4nCs1Bn<Dk`3UES(C;YtaOQ_q z?AZAT=7-ws==<>Ihac?t`iPo@;P1%z08PR&cC35^OhR>cbbNT~5|S6U1UvES2aerD zHbVGzRD8Icdkrt%cB1j^(5=NAUU+rFw(jtD0?zwS+hDzS*wzxfcSU^IH=^%$VectK zBQSQU?-|behA-R#UKfBXF6;sj3I-1@d;?%i!5J4;0q~}Six-{&u$$o43#S0Y&B42i zz{gi&;G_%7M>w&;sSEeV*FE6+3x`L9p271A|3{c$aKVMmBYg1S=7sko?A?y2_az<x zw`t60w8U_8K;u@#@!#*Jh93rsF|B(R1-4AeMT}Q*7la~3CRQGoR3;ljGb>{=BjbU) zE*&+3vo3=%qXoUS%8<|KUIU&6UjfzMfgF>m5kP$wF$7HS2RVR7@tD+u3_yc;EXzTD zpouajV2}o=4`nb6awpT5#{~fY_2<C^2xaujSkz_G#|{QGh^NJ9YS7`u%2+h$QH>62 zYEY(w!ohtzm~NF9AjNHb9V&`ynS@GQi3TGQx+Cc>TTIFs26TKCDwb@SI6ca@vD9ED zw^Dw^Pk3^1JUf{T8w20`eX)eL_2@|sB6jm!!vLxt{R*o5%SaXc+uHQG`w??_u2FzV zkA8hs{#B#{{%s@r+=Ga#Jl9YFn@7KlYTFW02LHAuz0rQeSe|Pnpw6RTN40GQ$-&py zH2nC&pcB1*_{IlzBZhB#q7BBS&+w9WEhfj6%eim$5`8Up^+L51rF9p54b<Vvw~=tS z)#XFJk%X}oevc^{pR`rdhDbgze2El*UC>`~Nf>}vFmP}QAAn`rpK*yBfNMIic!?GO z*z9k;Bn`md9JsrLeZ&;&Pr3v=;)o4QU7|c<_w?6a5<lYg44hvgK4Jy;7hK{$;sy_F zUSh1p{XSV>Wc6<CF8PwQMkNc5<;P-A`Knq@vCOE@E3GVv(K2wm1d|Gc*J_|HH>Xz~ zo?L?Ou;3f-RX#}+`AmP?zp;e)+d}Ll3D%Xu+MIWPi-IIx%9UY%hl3=M+Lb1;e}*4n zc!!@P3E)bl+W(CozG8=aeBdxMiR<$#6gRp_N%qMh0lf%!H!{540HY9Ey;!R@O#E#N zqp-a;9A;NSvIxXoN*{)Y&)83TkuaZzh&~NcuniA<Mn7(Vky?t0wgf~q5E{C|*MX^B zamhe(+xEgli(9~N{x1bV)b|pd2#ecad`L}_jxP~9v0VCd++a7tT6dh<u=uvE*TPzN zN!xH+xAT1Porg)=0N&fqoy6yT{+FVi<mA1Gmy`hn<b85(7@|>0yMTKdDE?rV>z+k4 zdTJNto~k>7eV6&32}(EECBCQYj&#`-x@YT-KHo*Wrwoc9-=)8242mk)#lNQwiZtEj zyJroG-rU8wr+$tQ+hxCJevazdC2!+n`bpd{D1FXxI@+3bYp5Kp^5|Rj;<9pOs%1Cc zP%dZ{Dlm|)y3>>Q?LRUFv)!&VkD&{6QK&8AzelD1``r7VCFW(RPHJ=NP*ke7+PV}x zT%Qx_JBp=*=*v<Dic!269(SNK<xJN~yP%?MhsR*A_s>W$m^Pch^mkGG!3GbmISqm7 z_4ReWd+<U2i^$Wj<74kv%nb5+aTc$RHNY1i{FB<2xAuX2YHiCutmAT=kkovSR3pZ@ zkfsRx?W>HIS#fU(@Z!?f$4Twp4shh;8CBFe4EalqePn4mS&G_EGp*heX~N&Mc;iG| zzJ0=R|8X2fs?dzbBdV|1{HQE-x7}IS{sylW6`!?sL9lWe;l&FdcCu)OQdWsCXOc3! zRQswrTZ1s{hD)yELw&Z5nUkOGOnnYo6wHKx!*S<iPWCd*XhiXIpzXYeiC%4#vx`-A z^MrT%_yn@lW4mxv=FIkpWaN^zNs(ozC4t@QTf^48Ce2g5dOhdw-tCISiN^*-3p011 z-VblT+dm5mMsn_uIIMl*l4gi@tv@0<&+0EekZ}0|Il@wxrjRVFY*Xj$to>p%SYmYy zUbqenSIRo^mr#=Xg297bXP{%XHdGhiF*24379r$nW4FX}Bg7~i$s7)YcK^SPP)>5Z zU|9Cf3~(X<!5oXhruk{@ZINuoMN*(-4SCY+U4jX^-Va+8Ka1bEvem{<FCql|fJtWg z4YLq=o+}#AMvWc#4)BH=r1A5I3Dpo>l*X7F{!gNyu-Drs0rsaTkK`h<@+Vn1zni*9 zyv6RYrLFsk<rKA1EW?Cfrr8!}%g(XZ)m#{bx~FBf=4kITL)30Gh1;Z=8L=`x3~>iU zl;(VmRrbW{4A{t_(0VQ4FA*M6(I<^x^gLcer0h#nDuT9egk~FJ^gyX0`G_tbJ~$&z zwG{cir(czQs)oY9BE3pdQ~N_ze=|f?HmVqA+lrB>w3@p?*N@1wFu$MgoN@0at@AtJ z37IW0l}Z?IG|?ODaEk2M%I8EqNhNp9b5!od(ASUMUu+~k=2e4BOxLO8bG+e!#p4T( ze5x^)jP8GAH(<zzYOFvj&tLw}cJSPP|3@id$wph}02^WJT)p(zQCdd)1et*<wo8f| zC;{4z_yI?(A{-kMVr+TRbyo-N1{p(NHyZ9X46VBfGw$ksAN<@6yx-`WTISj@u<7e# z&uL*Q3)9h;+uJQA(Z)hHjV+!W)yH*LA0*XAvJuWGZA=Sia?&JApr)?Yt=BBkah2DT zZT$}CuI#88rm!q6mz}nF=dho4k;aB(XAV5vJb%Me_4?(~zVkZ+En~NWa<#&;tQ;RN z<M5CQ^#odW6c2Y*$VFN+xX{au@p9n@_`2}=dj!7&v4hd{-6Egze%u#jCN(FAMxGM3 z?u3HiG==5JGVm_!Rit4mAlvH*Gv@;xbz5`=c#uYBuvGt$rOa5?&_PhN!^<e8GtT{; zVnuUXgzVdPBS>(8UXii#0YU2fKITvlMh<?k&Q}Iq-M#Xk?bQLuMmj+{QE!LJ9-lX5 zATnfiqv~gLd%sNC|FMJ@4cfkbEG*6Z0WKVg=YF7%NsLDy43>Cdc(fDTN>XJM+Ebw3 z_Rjxn36C-dP$%w0B(J=P4y$M%CF{{be!ZrmKT4;xY|YqlGaB@zyNRNlt2&LZJ1&VS zV)N_Ir~B?}=fwN&pC+<gxiCHP;sd4cb6Hws1BV&n{wNrHJ^l>hk&IxxDaul@j$-+V zi&SIcuoTOfcZYuL30(nu3F3uP3ogx&IpDJ-<LR|BFD*I=$;;pDj^S9v5*9rr@5qKP z%m35CkY+y085A!D=>6kh2!#@|VybLCj3eQ={x}%kXhl|yYFk!w@nmK{T7Su0Q6?>C z(@LtE;^y$PrYce<xPqPg0QE1}zQYs)CS(<4nP$3{Bh96O%z~`4fjz+F_^e-fAd6?S z=XWgQrpnwHo4Iy<&F>5dCt?-?Vu9`ZR1L}`fGHXdr%Y+;kG5laSzgNibfCjt8ZJg< zrnzJV%h@c{a=={HVZVn}J8(UVOgKQT9RG@M&hX`h`@2}-;lQ=k1Mn#eW?bAFlPi<3 zAJr-fIFN-kE^m#)l}$JhZ#4vj4rRurt+BbXpo(Rya^PGR;kdFj9@pyUL$yhuB<DBf z5(_o~eD>t4(gOCU*8=Qm$8kS8^(K{mbZVcO(jDwYDVUm4-qofBeQYy0n@VwSf$rda zYjdI6;6<e#iHC$8I=3dHspKm>0hf<gylx%WLg4=m<7$WTve`#gm^uGH=z&w8{`i57 zF8?dSl_*w0>=gK52j#NtUNL~R8*4N69DKKfcv*6<@W>K`)swP38YOB@%G%Om9haB4 zY~kY4^5dIj3qOA*Yht4Hqc*&7DC`y?NhlG$YrhAAjWWJ#p9j3IGN0?fIEpXuN<vim zu^&2w_dxXiGjgAU73TP#M()>eYUBOt1al~z|5gf%WBpMIvmna=p?2XvTH!xFVHPA> z;2)9jtUA#jxE2eF74WGS<6pwze~N@*DKVQ~YxkmtQH(>E?_307e~E-g)d~Mh<Npr_ z@c%LhqgpfkwT0iufReH>p-u(~;&F0HtSfrkxMhM*nPO5x<EDio*8DW)yrJlsDwKp= zuQfS>BekL1cC0Ht`GNQd4`r@*X3yw(93_QZ`{dK`P!U5ch#WgJSi*bUHfG2XeFA7G zjxwG;jopOX-0z513$(m`Z18*L7YXjn7n7LUl$|Q5JaDNwXob2N4u7p4|Iss$UjNZE zK*bEz`8_576f;1r4BoSUSXtgPSKjki-g8&pi&u9cWSJsG^w#W<$X|Sq3CqNOIjq;q zw-_^s514^P>@ye-SWiV_z*h*Eu;vuNHwaka<{Ut{C`>7H1|Vt_)_^%b@U<)^wK)wC zSr)6roEwNRglTEc0z@Ce+BFvj!q8y?%&CA#bXck8oIv<;Of7RJAR5#HZY~Ifh5p8v z(*aSev6{?zfrwDcw>8^1?S5Z?g=o{ObZiuJ%7!<*m~rO71~^_UrC;e*AEa2K_rS<{ z5}%rjjNofP^U8Sd0L$Y<dP<+H7WxD&L>y^&FLrr<+5yCzxg4qA-@6%_F*kf%9$NhO z2A=Kz%MCo+{|g&<r}5=cyipeoUzV0zfysLm=mtKtXRB&FMm{c&`^tlhoY>zE4`R*8 z>szW{nuE5)FW)51m-E>z%{t5Z{pU~@cEhTgdZ>b7oyoYi{Ad-W$>XC6RKeij@g<$f zrfT8Xo?3@Z(`jLzx7w&|rMRY6`>Vnq4ph}B^E|rodLdK6pJlufuKX7zsF#7Wbfvb& zQ2VRW7dhS5s!{fN6XW%w(SI!CbzrJ)kB`W7;L8LHYkvRH4;R*vsqZn)QyPnuLiNMZ zo;NW}>{W>nC{}AjlXM=6)e88>G9EYisI4wv1B%r`G8U<*uGFUYya}te(9D~iSAq(M zJq>j0E14+g35~nTt4p<QJa3|^H8u0*<_)VAl{`&!&nuaz=i!aJDylze<9ptOGKp2O z9Uf8ZJZl;+%+puD{>L)@W9m_LUAMHfHFL+rXkVj=fHgDygH)WtOVOb5viXA`xEjGZ zL#I<iQU%Ox@_+%{czONzOLCR^Z@stB`t-Eut5*#FE#c}vw@6M`5w%nAh!8G<DQGaM z5pZSPw&6(H+?XjCVr}7_u!JOIFyoMD-8`4uTRow-WAQ<!yU$<zm%8rAT03r^3l1hG z4xKL7{HIR44)jV6ev51d^kkijKnKj1V8SwOp^v0RR5}>bbH&Bl>~Unr2@RqY@TFng z)A*&~sMAxQ>@#(O9aBKau;ccH68cel)*cGpLXEl3;mF^nxGUd`e`9Ux=t98FP7>J8 zS{C@qxNLWbFwZ@v^)`)rWt-9CYh0(ohGxY8&*+}~Pu=a4GX$%n?e`r4T^^zL5l{w{ z@)eFCTD3v?*y%W#P<gL@x&u4IjC-|>FUf7n_AMuV`4d+{w?)QAYZdsA?I$jAnt-Sn z4;PmNxx8MVbirKQt}+jUR2A9vxOzp$bYZdaM$x3(Bxk+*hxG#nRYu0kcyBxeUa}&- z?7!N6H+4$6B>{|)CBuG!c7wN#&#E0JLb(p^rj!6d0`1ZPzJ~9h5^{TQ{6otc@`7Je zx)gJ#$LEZU9_gNHy=AdqziWn9bC&leTi*$CU89D_#!Zc@b$uW8OD2(&3lzGxu&J|A z4~3;K$+&<}c{CU$y)+^$jQlhOT6TW=@zYvpc(?eN>v)^taucAGXyceQkhR@EnD}s- z=fJfhI_a!4uY*=oT~%DmBx|KVPcc7Ton5v6_G6`ifsVucQ1wc+*V}ms&*o}Xy%l|0 zLmmA2wL+qo;{#Z$V?7;Koz=o@-EJtQLbYc-!kbP@EZ!%(xa(F!RbU=fZTYii0lieg zhi4DzqY9%cbsc=0!eI+nY{6qQQ^6VrYOh*UKeV#;BObKO93Oc?^r{cYxPIztQI&eN zG8MCycsgn?I-^WA)ekK1)X}u1g0m>wD>ZC<EXMq9l9+b$#nAw*cKxRSE7F%+0*BI_ zHen;4h2sd<PgP_nU&^*Dbl-MKMm}}>jnh`QzR^y?&{n(9UG$zY4J<{T3%*${_G@mC z%wnqF)L20N-U@eQ`1*!bv%s?UI#c6ZL5%5Hr0keh&ssI!NvCKWk!f9pTA%haanpth zfQ|2Xou&%YSX0dBIc3n#5a67^wk)`!NB>DOQa9+n>s^<)u|r{<&SJvuw&Be-z1z!M zfq=v>i%J96CO6Q12Ql`l;^v2#;Fl<Fq_q!io9iD`KZ+^ij{dY+bADRB);%xJFw0^D zwn*w!b$YStQ>(Ai$kiQteElwE_f(&xX|os{z?RAm>8O37A&=v%)JpGE-`x@}A?v?3 zn+?~;*!KHu-XFzCOivvGuMP879alQcz89fb+*2L)JKRhmUL~}23N0Rk!~FhPJf=YB zMo<ygnnvYDWEB^de+4R}wS_kb=cPbuhCdbepN8>(%M-WxfZ85XS4a#&_Y27{#D}0g zgy4KYo)tI!fX*o{HckF6491LN<aM|>F9B*)NKLQ$2iW(2sv|~dbuhkWa3hG+eP6Z& zT}9epmLy<YLnOE0O2n}k5ZE|~*4`-g5^N!msUthTw(3O*Fk>M=912G=qiQ2ud+iM0 z8oJs?qmtGhzM=51V&ELK%a|u)GbiA|mM3>G2Y=1h{(-GH?hv~@jjd$t5V<|2uDIrq zs6D-|<oFPwJ=wW9=Mb;`qjSmXA$oi2S#if9S$oD=$?roLzYk=^d)FKyl1a13e(_`# z^biHV*!*%Eh`ygUL1*-a(s{|<93mwAn(|NMBflhRb{OLOz#kYUs!&j@HfIBAx)yj4 z4h%IZWS`A|j9ueCFa;)bt8Q}i@f{joJ3XKWW^~JKR*+9)9Lil=J|I1%1<8t4m}YKg zTr)rLJViYxEM6EskUr%<iwBpA%@iE6UsFBJ^S2rG+zhDIRQnb^<GaNKVI5N{W6+6Y z-e8i2;RAcq5>l~xUsu0ku0*Di;4y>MC={%Ou@AFVNBNEbEJUwFv5*i^C+B{JCP9sf zNEA+2$Y_g@9gasqMiV0a&l2(nxWBsPe+ogWg<SFo#^SpFE+0d?K;p>q@OIGhF(P3h zIRt~V?-d8;yHE)VVrWj?t7FD60`t|3fB^kZa4XF5`bT*3mVqm28`;{clfqa0;*_po z8ij9gVDSmioZ)EAP+eg$7~uIrIk(_N|HRq5eQ+FDYpBjJtzoOZr)HXOOu;R20RScC z^h_$Cjzu=u14M|;MQg19T~km4buIG20U&s6Zv~b#J(>nR3lLZnWQ9FO`&Rx_njUR~ zfkgt?0OW~%Ov@|pn6^aIpl=ZeehYHKUZwStKS^7nZ7{S*0-JyWv47K|%af$>(`c}{ z>FvaTH9*K9OYC7<Rr%aBep)w!op`W5sDt(_xh<nU^Ec$_8s>o_Fh*3FyyyT@at-v$ z7ga4NRGY1U%v}>cummQGs+mH63*xS6A2<UeyA@4K>gV|SpTFyV{e@Bg)3tllDfeD+ z#{uNx_){<=?yeT>jlHS#NO4&LR>KxkdZcpG*wG~w@RfaGCcTQMK+OyxjDRJsaLP4L z6~Ou~S)<Net4M9fV_%}tELbbyFl%cNw*V~^qt_}~+KCtx@D`%kQ4`4#&(SqAI?3kD z;c@5FK`X^6EycBV#M#oTvtG?2r{Y4hs?A&~<;J$UD+yi|BDQKPaku4xw#X`FcFpW6 z6@<;?r)pe>uLM6>&q#3RpqEQQbUYX)ioSXfkgC>~FHQ>!hV9QKUmN(5cI9t~pEidG z+ERMXYBa~-Y2lNqxRla*pn7Uyu$J-7a2}P3{=4qKq3lxBI=c!v^+-t|j}ThYJ1hNH z|NjtGFm<xH>5xP)W3uGx@U<WQ|C93nd%sMwA~`#F5!s|Uz%`ACjM^O6wWB;OtHh2d z=r=9d2OsqvN>DT{Su#KUWhK}W`+$}#!$)#Q0aQVgpY9{OqYpZu$<OeS*a-v2VY5T= z$(OO<8ti(7PPWS^a1OSMLMQ8GBDe$lT%nWwG87z*O|B5YatQ)gU>7I^uw6!iGq6n+ z0$48-zy-?^{b8guOA>V#=v0@BPjcV(o==l=Wj_xX<&zHKoN)A^yGMExbPtD#1;6q7 zV21eZ_mohKz>>sY-^6x|PF3Mn_Gl(ewPengfes-1*EfJ(He1aevmlb~F>K{Z5Y6^@ zwhCs5VtZ^|xdX(YJ+ZEW7$VyaaxOQ7ylqc#t`LH#w#S{7`$J6Hlg=s-ArgKu>2rUL zB$y#Uzuf#n`a?#)?EE4dmA=IHm+#LRTDBHV`qJN*wc>P-{P*vZ*5^n#!x7W2NVuLm z<dzR+DBpe;v|ui)T!_6v>_J3n$<2L_`(9IKU#HT3Z`A8U4@KN2Li~?&t(G@ApW129 zbq;RUoF7&C&VmvD{%jhqFaM(r`fQp?`oDTMl~j=X4}|{HWg8EjL875cfo}?XuPCoK zD3NHdH&QUSY%7t>Vqz8eBf=^BXhQVrySzU$E6N>qF{{9!bS;%Jbm80W<Q?=_YA;x< ze>q$97aKoc=kmW5YO+y_`huQQ&u;1zZ)cAXm5pv*9s!*=L}pEv$JOoht1tq{o$Ils zb(0y|L1)EsF^t3(o$Z}6NozzFDMsZ1ovr?3eMoLy2*dQ~s)zUoDnz;1_yuVYP8hpz zBRb)Yf_Y9LJ=eF461@7ch{Mpd&g<NO3?yYOrOH;__lidKaKDxFO4m9+Ep2Cgm3kD= z|JCq|Ixy=QdVAFqv22=N+pr1~x_5ts&vOi`gut-vs*aHExM!s(Jd>E#Yfy6r_%a?6 zF1OHfGV*bW_>24Ho8I)xdiQbkkP7jyW~AzHj9W<-&+c?>*a{^V#y7xs2TX8nSQ$|} zH6(;~=TdqtP;+u>y+;{txVk9&aXUV3nA}e~cy*?H7LB{E`@VjnE@#j&D&ji8v~|rf zr@nmU<yYfIZW!5ZK6`yvmrQ%n@}a&LFZHQ1)7q!{JWsDP0@Hlb-h%pHw59Q+cJx>{ zR-4~~LJG%UAJN7fO|y&8kMU|J{M=x%Y3^2350X9CfWJNV7#U|XI=%R@rs12_?Ht5v zS=AGqIy5jRSFuWX?BK6VsI_1@n)Q>iykhv8vrB|-HtjZ3u{>$`nukZEyg;6J23mt4 z@>33;Te3vR#ADMs77GsAt2zPVD$8^jKhKCziqLP^c&Cfyus<EZvT2=?ug_j_Jv}e+ zD~SE>Q_@tLM#gnc32A<pQHAxf^e%Ryg&8l$=tITC!A-gEX`PCaDsgG8E}d9l<<v65 z`unSgB$g2s!qj8Vd@Mo%k(U)<GBsy5?OL0iaIi}=`H1h2dR7bKY~PoM(p#6-h$mv6 zA*aptx{9vq!jCNtDR`?xu?D!r1CHb!@<UeDO9o*`Uv!7k5<nhb!}oJSe$lyhyG`-^ z;X4TXQ}=3riCVQ)=E-SnpC?GV`cTVQW{j%U#9>aJv*BcEs~paxgP-#uOGY5fx14Nh zm_HD?U{QxvE9ZAnd1BR=ZBdJhF~HXFc$38+0zI2N<1d#edzjyP-6o#F4{Mt^_B)TS zr>*VflF57xKehEd4a~4Jlk0Iy|46)|AGMiTHLqfQ`0l~I8%E}8o`pDTC~`S^nWgUm zf!DvJ@hny%PNjiZ&UWfeUT%;KwU4sn_M7}-Ea7rcV3T-VGnI2)_Hu_ri;eqSvFmr~ zRk<!n3npECM`1qnrAQbDe&bjKR7Srt%(;|E@8t{^<IKjmgd_5;Y=5a1aE}!V!zi9O zI=-&cNh$2f&*mq0`V2#x;pw|9^--(0?OL#~TAJ%EaLd?^N-?ZOEz*_PMFw#599V3z zNJ$KAiZLlvl4;n<#mx-Vqp|OcJ1Z%eVik)UE2*ku?TgzhDeYqoid!nFk7E6byJN6t zsARb@(PXG+^uV!n#Z|U+*>QNqWwx{ialFN~w)87;=*1-v8o@X=XQkX2e5B$Ud7O1= z?-?ndLDrqO$uxekCdI7~>WA1MD*e)!zX}h|fGUd*@_^Pj=#|srbDL6W9BMLS)SChV zrbaNwHvYiiI+bBOrT~?0JkDK=a56hG_^$x{F1BGu)UC%y{4Xfz>J78i^IkeMJH96n zO;p=Ty~hzvn1Z@!NJNv^x8m-xyW{J(YVL^=2QKdgyF*=e4DWfN#PuEjdr{S1j0>sU zm{eCz)xIizw2EES$2Vd_S^OwAyCk`BSFWOLy^(Ei@OQC|V#izs>Uux6A?yChI_vtr zw4pEVB0Qps4JWiA@%=0K#DnJBu0m(Md2J}(yJTx|n_I2-q(MnyTS@nT=lI{QVr0GH z_bAV?(H9(KeI-7qNxMkGpo$Cb{Jth1^r>C=&X}HU+Rk|03nmk2U@iEJmD$(}cL;~B zhURgn>bZ*jPU$l%WlO{gc9CL)J(l)>bQ=SmaB&+0rDE(G4MpkL+2VKx=26hk;;>2v zCeUbcY$a1Q=%_fVlF=TtQk+=Hd<1%+Qk0G(m=Wj3NszY0V$O~!FV3=MGl)qq{%Fg( z64O$gXUi@alUSSzVQG(n=HvhVJdeJJH3ZjEDO}@pNxRI*UE@AUH_BuERdraS(;TEo z{^Mkb5gIge%aF$>q|!pg5(R3%1DW@;N5yr>v=C6fm#!mVJj3#(GR29}uxKWrKEt&f z4BQF24DnGHrXg#A!2RET4+kg&u;{nn<%Vgw5vdLn-eU#DbGhL`!*+iBgKcQij^c*J zHbmQold=8YD3sX^w{A%7Ldz)J!Hu+T810@gD3RC=;5@{Bq4bE{GsOBQCHGnj6>`Hr z8xm>5@9A^76nZ2J?j^sZe<Zxy4iXMQ{L?AG*ftjqle;7!8wU7bt8Lo}hud6|<PW3x zU<D5-`4HA`>2yM4Z_mepb^lPLHwIR*6$p6w12DHFEwm%)W`>fENNCdnEZT8}M0EW! zz-_ES86*u&=@=;JIStQBT3<so4IfupMngdxPe)ouLq!{(M_NTg={ugMw6TWTcYF;h z18@vNagi+zQJmh4G&k;qwEK)?Gfu6v!;EY*?y0o@jD!bHo;0+i0tWdcQ?$oQ&!~9d zi$v(IQ90u(6jwlK{o+K6>ml^eN(+P?AtrQ(H<<|m#O>D628Hh;#C1rwk6>n5#9V-i zsFY9vK|rH5*2cj%$<*%$<=v7-0KbaG<FQKy3Eb)l{wMv0>#GA-uqV0&z3@@QaPCDL zAm6n=RTawJP!rlFq!&JpILN)|1emz?$Eo^!Lt+=&#-;B(idf9$m_*vmyJ!b&xc29$ z`ivpD2yK(ncOFOF<z93H==ir`=>taGME-yLE<5M_(DvRYtPT8uCqbnb5u=VJArcn# zrh*oApn<^eGk<z-3PETY2ey(WAxqreXW_TKv3f|%mbjl{=RXTB^k(a!I9QT?io5wN zDr?R?WCrUPlkgchWC3uDo%k%!(wn}7Y-maB7<c+v#H%-P2}x-8W$OOrIo?~f=jEeR ze(((44oz;nmMfF$z#%^@v=RgDoAfX9BOdGs=O&@JQnK|Aw!vlWa2h2tyVBP6&)*{j z#X7jM)(zaW!9bfcZq&~G6Zh~zAk*!|Hh5?wYb{a8mHw=My$$hh=kI+E(X}MR3ySBk zo*hczc)1G(vVmQn*J?YA!U;APEcpXhJ}~T1pD+^pE^cS+;)Qo7nYzaaJ4Yz9GUz*P z`H$BCVA2cwjM{qg<H80tL?iX>xYPU51g_oFJg>*j_2<pMKm97UznZGTdi4s-_39P# ze|wqz50YFqOGk5ecPQGz14ritI`Lc2Tc`Of-aCynK|$#eBai=vHFFvp^9^#&yHGQE zi^d{`2dW74*f;VnR9#UU9aOKq2GL{DSoAdD0?x12Ca^IR_n*$agL=Of*jRfxXDw$5 zrRI|Kv^W&Re9ssNO~IqVN+F{m{Ao*B#hRrz!Blz~=J*MHaQ3fFP*Uh{-w4I}G(bXA zE}x||<2jtD<nt*b2T?qXz`u_;nQ(OBjAl$eM8eQvkWHV*1xY51b(lWPET?$>u$gtq zod66cpZGo_7Hu7*nOn_TyIP2OEESjH>LdS7r*pj=h_$*K8@IMpUfa(geKBwU^iXx; zcIgI$6|nM330WywuhE<lPsximQmDCVv(03{@5#c@dwvz*!OXT<ey{9pkdE#DnioOV zJ2B2>U7$KI<p_9~1$&IHs;H)_K%A+=$2^dl#z{e2RabA&!F{E`MLW6AXvesb-kxwl zB=S*D<M5kb+n|N!tZ-gaG>sqU?mDQ-PYINHP2+8^=539<5J=2=UWl{a#WkPGJ1r!y zAnqfX1A!3vu_(HD(Ij5@HFE6m`bkBd^{1wPq5+?*i;8ds>G>t0y7>LRK2a9&Td>;G zT)ZPlJG?a7q_>r~&<tpIiFv>jzC3IIDFC}SYF!svQto{}ytv0R8}KD!pd8~Buj%LC z9#;7==zM+}(!z!QP%6c)-to?nH++SuItzWE;Jk)O`?}u!V5T(}?R$-hQt{3_K;x2{ z^O}NW`yu85qWtrH7Xv`Z!@C0QJF(<IiOZrjT0lkOCotQxN#KK)2yAC<Dx!^zZwbOz zE+N0QZv<LmC+2mZS6<GTF?Qjr5REu#YdUNy>AA)L$G3E7_Ia_e^0&d!e$$~7shWZK zaz*@s&#A(vS{Jp^Yv14H^_>+t8_%>Z)7~l7ywcxFiEJF9)o5IzRVpo0YFFgTVEIVK z<||?FwN&VBh5~&?XN=QWS%%VEdGd@;Y0qr>wBbgLMDq(H1{ux0vx1I>7`!0~W`Gg+ zoIbqIxQ?)^edwP7C$BsD$Uftr!2a%oam6IT4iwP&t$P4KTw0*5l`-ALb*aS4$vaZ9 zD{%?!G`?~Ab>2-SqVt`lH^bL``0P_@T3UN8<+)ZM3f`^(4x8v^t%Fj`+)cmb#rnL; zJig^RzYAS?1OyUcE0RY8HWz%e12;De#h~<TQZnl63!_H6thk{mD93dL$)yvd5D<D^ zsT_{>Xl%YJAH6YDcZrGb-cFx!*SqtfP3Yf=DubYKE#zU9W3aQFU-bV}m0faDl@<3Z zH}R}^uQ=EGp-Cyb!c;rFGjgOeQcr}?TS0XJ<*98$$@Fp`_5?7JMAe`><0U0x_sg5v zn&`;J-tyeS7wuOo+%G0`fu+_Lv>fHgfSlL$y6CrekWFo27p-n0Ym)9Rer?lwqwWT* zrf<5Gn<ji;#+>*_66!6Uw~tgFBnXPgx2Rw=Rf!Z!gJRa>4$`@2kMH&jT|O=5{4jK> zUd(}hUAK5MQJXPlzA>$j$Co-uWwE_6>)$fx!0M^?K*-#OMVp3O_<k^*`S#Sp$%6Ux zOQc7vcAABzf*^!8W7$-&k%x9>_S@nDfg9w7iifHtro=ijYH+Wf{+PQ_(cr2~PhqS@ z@AW5Ki{%B`@1HOYW>?rIzdWnPB9o0`2|64(+c%WRuj^?rvSUDKQ6?VR!J6^l_XIqp zP0!zl%GmtA)n(iSK!~RuH$$@bm$W0N2eEO?ol---`1yp=)*`f$6zxV~AsCaJBPAAf zlWD+;^har`-KFy>u7?LZsytab9FZGpZ7zL&mpBw<x576X{s3rB-XbsCEs#C@!SHff z`Pt!>_YJwMfSWz>@qleHMoE=uy!8W-Z5`qg)#f(MJqCSWFhA1sfWig2YS_7J8u(Xz zSe+kf1rsK{TMkb9Mr-P6v$+_SHF>aD=yTBPrzg0F2Mug?k$_sh`GPGj8|hz8n)mxH zLZ44HtucaERS&-jNqq~SJ$5N!F;z;M^>kMPwi1@vF}if}zW4w~H)e+yA1Kz5C!3U7 zO*%?--Ub)RIG+^}``g;xUfpfY9(=#v`gymN()|;2sugMz*qI%8(2Cw@D!9J8Sy4R? z?|Mx&s=Gud<8t<yUg(pf*QGbXmRRX4w<|ESLK=-}YOO~${y_rYm-G+yJUKl)#H;E? ziVNYg4*8wTA`I&1q=m!;8O(#(f|A4nN`lNRZlA_Kn&lSlc)pF}w|3LSVysn)Wh3_Z zW#lq@%%qwDYCl=rt3E4^WLs``oZl0AQZ-e{i1x^;8dJbhN}8~*9eZQ!b@a2uxhIP4 z%!pB=sdR3Qp+>+}<ZE`Y7uiR7ouDTwG|9#NQDc>xPRv|p%8_0p#;Q5Nm)5t{dk!TQ z-I|0>X_9$P@HJXQp0Y2ss;7qE`!WYKD&k$@PwJmGkKXpE1nWrEzBBG%v4`K>dHhkY zD_~lc?d^Dr@%*;tjP+s1mnZP!RRT`n%E4yw)I%$TOF6@UZ-G7OA<#vmXUJ)Y#QI2A zyzBGpn`7xNb<-YP&y`8sO4Eh<2tNlDlX}i0UzDI+ezBH)_<CLVn@?d$fCHI41_+Nf z?iXv^Eu!~@^&NqmG6eQ_Ow)S$Jw!)3Y|}huYLng>>*2y$g+cl~f=9J1_dag9DH<1k z+m(xLTf5(fGj<;x2KP*U(c3)=(JdYvY8!KUTpn>6WhA%9&(g|eAhj#cSY@+u!JWUO zy7JWjG{$NC_9%=VH=o_mW4UOI%orW=9?r6@NbeVCJ^$6m$JNgT1G*=zdUs;vPC5dk zGY@XrC8qI1M-54fmf3~DborIRk9noR`+1*&JM)Tz%k!9`Z<0G{=Jtxm(+b|D8>I-m z*Wa(=(62m8mZ>gh(eZqjbwoR+L#|)+@J;a}L(O+_{ThTZKOQOGs^yd#ypgwG^jc~F zjY@eb>qo516&oL6AAEyHtiPEXejsW1`lGV8jif1Z#LbXdz}$hE-f8CjC?0kFa{ITO z79ZbLUd4^3y%D=r>0i^lGNLV~AJm-uf5e{_=6)efo^q@o!EXWl{CMgu;L<^bf1=pk zYWRM}L@lUAZj}9&?)|q7qvy{UDa^OpU+sgn#V)!=txZ3X+**y=nL=H~4m#$)?R36B zCo@@#)hI4aRbevgeQZ&z<a}$Vv%yp$S=&;bGOwZ2VxfauQ&Vk!qdx!1q`LiM3Dqa0 z>T({P`G)c;zXh`SUco{l138^iPvv!oJne+qMIEi<So@+)YXd=&>MzvlG6GaO{&JS{ zeKV4t@0&G&iQ4mn$wlpgjXJrOZAaVFHcJhfH(sAoNrtWGHwo+3CJmTo^wnqusC62f z8i=+W>ktGDt8i=#d6t$nM0VmeswV5~W4KJpg#4>eZA?ENp42zyeq&k{kVo?@uQs1V z<ykw_NfL;z8P21gmp@>*iQtk;*jZJTd%DGj=uyL73nc>1fxhP=e&6mMsxt!W>-`R4 zuChO6j638E{7OUp&K~XKq?Fv(?ft3SkGyj>a_j86t80o!jCt9`FIvm;sw+L}ezRTj zk$sBtIpY9xbIiR^IOT4@#Fl8I+rx{k?wwlEhL?ZFMmih1ac(;t1iMm+<84?2-uOI) z`WqYsHgz~0_(5?F26V-c4)He(NQ$Ae|KubUzJ3G$FHTb5It8jW>|Mwa1<ChUScP<z z@b=+?g>01v)87%%#HBEi&fpVz1OLJ$6&r9(lQh3#?RzTxSZ0T|62kBgybj_tl*6XF z1%nA|Az?EO?*YFq?v07KBY`mu5Pstqx>1NB|0=LgYRh~Y;~LTV!<!Uw&WjLefJp$S z*=u(3Mjl>DoCunJZE1W!Y7D`D7Y;=w5unS44EOGu(fGU;MtUxpGIb-g>Z{0g<tCMK zhv*3=CRP9-(t;q>axIAV19xDQYRS~>;kCdY77i5Q;=!9IbujDeA!;m+KP%$_G?vVm z#fNY{Q2m!YoQbmkRbUx?hy_J)Nt>1rLzu7m13&(C)qfxg%<GoeEOnV_Jrue&ejpQ3 z`CIM?z4;&7T)X=v21)dkn$FZ8@?8seiT`tU4h<cXpQVG#d!|hfU9Pd8@}4Ew=fn<i z{XUwM1TS|urenkSm&v+xxRA9R`s(3Fv#A=t_CRVjCqvLf*|*1JfJ27GXLubOW<fy! zMJDwcQ^2Lcm5JM_Bc#FaiTkR<M1;i_VppP8hg5GlV<J?C`ipyFqT7eOQ3rf~{pBAN ztiNzc(qaA*)UM>VsM#Uqg@m@~1|jKNLDR_12u|WSwkRv1w}r5ONLch2uVP>t3c3EU zu$&8pVqh-|p)4#ixGr&*X+)Zk?k&m-4hZ4{ET24_0tKN@FEqYHea&db;R9D1MoEDN zZJ1mzjKJylqBQoYbD*LkQukVJxp80%!{o!gG`NwWcMpLw=PqppqxPp8JV;2@=%+y* z*m=qo(^c1Y52$&v1!Z%G?j8tv3N|wbhyMjohke@WTBbd>u8{eVsXe={$l*}1J>R*I z_>eAJiEob8gLz%Hb&k}7eqF|UPQ-(KUG8oU_L@RO8e@+7njsL>t(-KY3vqj35|L1w z)w<?+5DX0OR@f|dne&EpT#NW+cdLmNlFueVWzT>IMiHs0*(u1uHOc>AazQ~nK}tO( zn{(t4nTLM>1&VrRHzBkSLQml)<-xPe*GyfqFS8jzMlNG~P~G(B5LkYRS8w3@j4<}2 z%$jIp@QNd=;_!-O?0`gnNJ-ahM3PFgn$6s-Qe(64n}ut|rR-!3KyS-+Y<2wj&`RbZ zBF%zm6+E_ZwF(Y1D}QpzmuPRB1&2S`WHW77!A92Cm%FUh@#PZ!P_aL_AMWVHvR#Oe zV5n+oD&(DDq-xopG@bi_B~P{B4<bx3PE_rG1pFS9#?tt6v>uFsp=>4WvwI%!#tOPK zf5(IwwP!gO86NVs=baS_9kR9OoE7;WinbS!6(Sx|{*@FSDqUOo#dk|4&FLN@`K9C+ z|0mGd+;!js%+rS;X|eKxX|+Q_zw|$G{Q(63`k$DFsX3JEf9Cb<v*d?r*ESC*PamIU z*=IHn$*(z|Qca3<4|!H^vR2(}_Ma=VauzDkY^8`4&dU-Yfz3cC$(MN&Rl_-6?%0;H zQ(OO)P_NRNW<X%b(6ru4mRFIn9p6gc(2UPY_-!f1tVuK9sT9E06k2f1ye)aE%AuR3 z$yOHectt9YID;dYDJrRTh?y-rXNM4&W<AStRJQEFKq?zOhjk5n;3rl16IXZ2g@A;5 zWWQcHq`i3e$RZ7K_4*zVUZ_pI>ICAQ@UeMYKfefZ^?+vRhB8Nhzy&ZrU{^(%12_Yw z0i>!Z1A+74Il6oxa01*!SDxcD2}T8Qsf=@8c7m4a_A@gbEb>9W=<qW2Y%P*OgLLVc zdiFc;fHCDxTZ^wCT)MZ}dR7)+Ks<B{*?Kk>T_7|%-t47!REuD1fT6M@Ps0S*3m~L? z!rd?ihMInqPk0)pz(D{+WfE?;5wJNxPML(~G6j^OLc(<!3)-bK;c@E+D*!5#JFRy- z0WO(7b6`Wd4c^N{khe;w%}z7uP9?x>M+!imb-x6rrxWFI8v^SC3bO9kzybi%%==le zE?qb8Wdi7mjxF<k0qjlJ&373NilYnSzDxxbs61Ni=mL7O+TQJW1A;T#9Cy?Jy2?g8 zZWC|?LOFvihE#qo8QD2y3v|!45ij+6^V-9<U--EdjWLN|IQ!|OO7pka<()JUgSGHT zM#Qe1rmNS2Vg7#cnJ~n7vkA>R-$C=v|K2t!r7plN@b|I8#Im>Ef)4rcrTf4{w~VyL znjsA0StJVP$NuEP$RDpd2UjssIhr`hCz?sD25wCZvS5|Qy6#w<+F0)@o3}?!1Pb`1 zzj=BZPu)DulONpt&btvg@Sfa$bZa`@Z`2ve+}~FXo&)y6<){|Bha6h8AF=XIr*XN3 z-m;o_0Fa71Ae4R&SsY@im5Zz2_q@bXe{gJH2ClZ+i_wU-+<j<^pk#cq0Hj8hf`@2n z`Qvq0#G{dlMJb_)XI@FMbTm>a11&W5+cfW-)BaJgBqTuF;@x?wBgV+b&g}Qj`iw(O z^=**Hv#oczO&dMe!xVqoFn_#@oLXW<VN(JomO!t0?&a5kHFPcBZ>hUyBG%ebLhQ66 z)T`+cbbHq2HW>0#R}7{`5Eg>%hVb9k9qx_Dvi$L;(gsFQJW(D<ZK&<Fcegds0Y~Bt z@3N$e_asL&62ZshtQ14x#Jp%B+E(4D?l{cJHxEKwRTvCax);*K#vdhkB?J7rJN%tn z5_ApsT7#S{R3+354<_RpbRvlJ^YX21xK<`<9t&1h^lc6jJr9;)gnwn528_1NcwviT z-R7K--M_>8fU#eN@HFe*=qPa$0}hTQta7^iHU;4-?{!ui9zWTcM^~OCP0ctwJ2Q83 zSxzgbo;z1+&13M$LZ%zHV#-zwD$f|Z<_$EW`<~_v9o*NCt(n_*D2pXKQW?_?a(iVx zL*+rJ9JM6nXD_a=aVo3FB63F2wa(LTFAoLWoc-H{mmO~lNJ+|vSSO%qr$|0TPeG{T z!0OweLvrjCNY|io;Crn6Y=(@@s!W_J+sNE6C1qu$W_mtW0jEM$)5yo`?X%+4X%W8q z7f9GzTEkcLU80Z4bI0{k070e_nSew0-3R}o^^#(?;5=-@X{yV5<1fMeeYa}!1QkzS z9fh~7MoLZvI?XG$`ua5%1u!iM#x%Pe^NwsA_p5xC{l$``ss)m}I<}oC2~E@YEIi$D zj*%Hv&S=eQmi9{@cxs2*Vg;9TC07PHzQn=ae%a2uJtUv6G`OK1axqarHGSYN4A$1j z*?IP>u{_c|cR9*>h~IZvUEtejY2Fr-xnn2ox_rSB>6gZnJ2!LCJ|Ncd1R*hyb_g^u z<9%TOojS<XxEzy~CzEzvv()gmG@-JPR!xYFH!{o?T-`8b)mtxvxmgoM`(-cZ$(A50 z{kb0l(=!WaslgnQ2gP2r)NRThmv8D)u#C#Ho;Y1LnyFMb43-SYR~yUhbcF50oJ!sX zY3S6j0_$dBy{vi-WK<Lpu9<()h|Oh3dM_op7?L#B1Xg!tSejSaA_d3o>tIjB5uk6Z zEGzgg@7cW^DAe)KB^EthrnzV0PHMZHr)gKHi1Pkg`C*gVqe3|v!GJHxD-IV+v5jpd z{h5JTQd$6uX*3R*N?9A{qjXy(OLa_jadst}eN1+7dL`>oOnY&DB|A|}6qTfOEW?aE zH=c^L78YwZXumkpmeByTP@G`PyaKu{4v)bim7$-}hawyE()F<DcVzgW2}>MVafLii zD`-_F<)7h7o76P`I{&`Lhy63-fW|Aa+-|J|Gzf8&7XKG_Zy6H@+h}XIP~6?2xVw9C zcPqt;4DRmkT8g_BcXtMNm*QTuXmRZs+CK05K2P@E-}#c0^W!8W6B2$vCd1rwueGkL z=yytnX3eZ^6o%4GDjx13+JH^|l9JJ%VEjtSn70I&)mIq%!+x2~nRWT-C>E}0O`f;o z(d<wK{Nv7*K#A8mvnPJxrenGv>&t4^WK-pqO(0-m%hD4uYXIv^%o9ehU*k;86G3l) z^GwbYZoS{-Ove*xZ$sOYNU#&hj?g>s!tOOguh{$02$1FSP11()%aj(-gs-t7tsPWq zhfvYy)I`X+A-)orW(Q~8XVpaDvLU|`)M|%x(g#}Hu7o_C|H{p5&R!ArinwCOY$)*s z51eZ~A}VZ1@dXv0!)Nw6xDqmMi2V-HP<8wN46tckF)BBm9uaIdPF>M{p2=%kdOCtb z6}a<0eBrVBQ9U$IA(-}P1*=3M+KgQDnndvpOcE8TznCTp$#9sWlCCPUer|3NS+^KK zNlX=EPSi<BWEQ<%)JjQW7UN3P>m}nvAyF0$6VI(SB}ol8oswn4q8F8!lCHzF64jcL zufrk`johc=2^-Ii*rzcNOAp0b74_d|a1YHSQF>9#OXVi*)8B`7Y#~l5kVT+R>A@qr zgtv;8U{g)^t{Qy8rV9?uA<;1km1UM~>a&d{7l)2{NjMh`;s;Th4eFXSzJ+-zz3mTu z=zVVo#HJ)fMhXw<bv>_2{y2p|M|nRebqg)uFJT8O-v^qvrw7m2L5}xQo=K$#DQwQ% z!V5&yo^yK=>UCnBlY8Rmb!nWldlIa7a-P$B;;nbNob#s#IGq35y1U(?j1NFGA!F$i zGxUSD(Axeo=PHlz|4uvEn=t1$-B)~n#hm}lHw6b6ZHZ0>7|&@Rae-anuE_rmHbKEB zpC9EpdS*YXE9S(eTbnP|`L6{%DBt|Eto{{q&YyF(`2n}(9(xu|s?UFDnhk$(2d%Sp zuL&E51}OB>9xZ>|O!L#l!x7`X1rz&Z8^%KNJ|2TOHys*dM+^dm0@OMn(f)68P6SaA z6k-yw_?Mg$)H(>o{4a9O-oFCt3KDft*f}Lf7WxaXfZAuZ<qT>b{H83NApaFv+ZBSk z2H}1rax3(I7W&g-pcQ{lpcXuqra|CYXzUhYEWLObek`qcgojw>AQpr{WRpT9#!ZCX z*6Z_ZSII~$qzD+@l^(9xW!L}rUW(Aoi<I1Rnw}8LvL!0F(0ZGck7Cew$gslU(qK%; z0h2)hChQRd=)@jHx)=;5cv=H;_<`Z~5Typ}Wzp<a6kofS-a~yi;4h0os3I2sNG7gN zY8fe4MJ;Z~Y8g#mMc&Z;bpdkOfY&mHfC-Y<fbu9(r;7F&?!<Q2juWxFi|b9u7I1^Y zgb-=d)f1ai(jx<lpTfRWp<BY1MIam$alTB{+0vs~Z7Br&6t?I*VYB*8&NS1bCN?i_ z!8$@2H%D$^JHjhBzu!W3gxPE^-y(KIoNj^|9l!SK<2^BdiXCuv%-)e%8>rghSz9Je z@JZXS+F_-(?0>a8R(@j(%9{}W;uV~9wcm1k`+<razk<?R1W=#D6&h(9g)e;IjLSP> zee<7vj$bQy-R_Z>{s(ZQ(iNg|i@hxxxQXycVB?;!vKJ9`V~>{JG8?aBDU5lZh4f@f zFkHFI??sVP_qK4Tm}_CQft}zshi4b~_fzsYPC~Q_Xbpb}_dn&Lpv4L^hpgD&&&g40 zS`I2|=+E-@^71o~l3+q_5x{n)El3(e{SCA};7Q8JiBzi+o4K1Rz(|b+f%RO5VI|lF zV-esF=zqe|<%uRy7B|5*_OyEhzxRDcB*H&zyn$)W0o(3bOsb!M{@VCe*CJy*^YIe7 z(|VL`qX=u@lcgwhfbJXS*}=^w?BKq$Ol)QAk7i*#r!ic7!3*6HC|~*xU>L>ilwY+m z1~a1-2D)lzdx1WrARvV0#5&$6+GGXm3>lcwaKzEdF9j9bm+@Kb9Mw8AIFqabc{7i` z({fQlvAZHJLbU#9fON4~E`n@t<T5jRA6EzWRq^UEP)*u|@<;rexIS$T!BqN113k3E z1hZDz$Tqd)5?P1!rJ2OZ?48>yQzoqe4^$Xxl=VPJ!!6~$ErfZln0n0*^{{ccZO(3k zsc0N?`6}_5S%dizh{XJRXQ(PITwJj-G;!0u8U)aRZ-@g`vl<GEw#TvdOdYNxgDDKI zjYrgdm=#*Jf_7_jq|s@>`D&%1+{l>6cWYI)I2Ns4V=ENnLW7fo*~`Y&7{)&Md(dbl zlUztzY>6c;_nY;9!s1GzjMkuybXnukI><~fPNZ$0S)BGwAa@Ulj6zcqXEsVw`3h00 z+5lObu;S>F>HR_VVtFUlyjV4TSiQ`<Rkeak-#`-FiIP;kg35ngl`=0(q}h`m)Qb+E zQ;vq-DxNQw%-EN`7EU}wcY$dRn-NGC>JLE}yk{a-=N9$aA3z~;@0$!ErJ(Stn%wHq ztWNo%kIU<|5b`8|A6TwG@N-y8-zX31`+0cq@x)3Ire!QlHQM;&W%r1m$9>{e>X$$d zisV6+V0S|cWiGst3vxr!gwIszq6U1#hkX~SGki8lBdGdM7g;F^9>i&t;qZ+kt2^m( zHk^WasTkeKe4nrSu&xUuq&m!`zF3y;!gqXg^_L?bWO(%{GZb9IB0Hi=u_mmQQ{NWi zb}1lLe=W!Y<>a*4g?O|&mbD5;&J|-!cw|aUlq42=2T`7L`O~D%oHvp?mv6osKbnr> zJ3_Z=G5<0bbc?qJ^$=Qa3>yt|8{XvUAs4n^+*m3?9Jevsj_<v&;RwdujVn82@QAlx z^XYXnVfGHU`6Yg`UdyF5mdtW=<c~f9XIt^rXJ|^qu@V6vKx|nLdzEX1*&`oJ8_w?v z=fNEK^!a%Cn|>9g4TVR>XRn3v1mY%Yq~PiR7xw0*K9wZxdi$M%I)r2P%5l3&2gI3> zLHa<R)SG)e8-s+)u;_ib6M%oIn4w8S8dvZ9VVu!Y#`j^{_c(~OJ^Fwqk)R6&RLuBN z8g~}m0Q>Lj>^9m*rp~-julZ7MJQz$aBiDg+S44?Cko8)-tk1y_I5^9Zp3qN-sTj8J zdg@vdQ9#xfWyNX1esoy_c<T61>db`XJMuV&)2fK-2?1(5AM1BNO07;#_PID{dxh`_ zk6<CX+w`!VzT;Hi-F&Y@cpp!nC5q;T-D826x=Y?NRNE}6o#acZ@3Woo(U8JA5d0+n z?xPCD$pQR<h7-LJbWCMo*2yD+Mkb2uEW<Y?lU;uY+zJf@D6fmzrpyY`j*v^=8OJ;L zpI0;R`Er!T$tZitq;6!kgp^8OEQqR260yJ3INJMO28?E|vY4e6w}#LveQ+2)Z%*Ad zAn!i@T&lw|Xs!AlUjEafw}sGi1az*avd&Ev&57N>*!ZWyM2%9Lk4P>odCMHQ#1|#S zt9_}3upTqQyYenk=OwXsu|2{bO|`UNY}hb2^)$1SOb=N2JGv>(nQ=V3qpzr=H*kHh zv!swz5YcwzV9!%IsX-5w+rDLm@v?+E6>A&CLXTfA=R{~>avPZpaJL<ccE7(x=^ZPO z=NxJX!9uyU77KVxXVQ~o(ZW{~D+p`vC7$V}6MScd5R#IIc*$-aQ4=Yi3iLzK{8-Cs ze3f>l?ZoILdfBp8Pt$$hLXVg!s{VCGgY1$0>lQ`Ud7@GEgpe9tZb|sdm*pb;XRA6) zR0RGK6@neQDxH&rdWXUal;(Jdq?!$7OznCeD|Fx$?uii2>$g?ZzCH^U&rL9K$09#t zQf$6IbG{C)7lUj)4SE-&_r~#O^Sh@Bi2DaXB%uIQ(d*L^!QyQ;qI;7!1DMs<P-SR> z%H@b#Skd699OsOGe{cG<owX1Q!mFPDZ{bzB{_*bgZ!q^SylN08EIL&!eI0e{r-sQu z_1t_6l~Q)90<#awGh`Ihieh#fYaX;)>Z*xiuTdJe);u;r-@1?A5DIHuy4~(Qt$Osk zjPu{@nz<Y;wMB(eC?y0*vkXedv6!;RG0&*dUgevqPqFB5OnlPFXE9DSOPr-n8yQut zn0gh{SW)M=G%A*VVq`-1{?rB*ie37`jlIUzy!|Sn{)8q9);#xIT|(>a5`K6c1%B9j zCS-FM2>jw9HIz$kc4<a9G2tQDDEK=F1YDfeDPyH-A2}-2vSU*l*#0@(6!s}!!Ih1e zkZ<kgY!p}_sJK^VHn2@kVIQ5?R?3ugI|lX+o52;xxD_rTw&kbPHc-&Cx}Vjf*zC;A z4`m_Ieh_Pu7%)dc{#-Yz9{MO+_7PSh333~EF>VUijeLHsJ?|03S3Qa8>&{5nJj=97 z*z<7zT7Ja-rG*q#GB_8-L@v!IY#rrV;sb$`oK@GmX=)H(bsA;L^zntS`gE@To3Bcn z{lZsm;%Ogh`ps8$h4tjevU9;ZmV#Us`^{HHRtND_qnvxeyAD6``5(3GI#jO&V3YHN z8!0FiN8Ky=u&OPXa_oe+-+L0`0jBZs)Rd#6wBs#EIiu>Qv{T<+*T-bV(J^=a=BwTz zwmZG>Rof(z1W}-a@Du*<Re>PBYU29wTRUC(toc1uyd=hfakX8SpYRV?46%KN?m*_K zVB6LQpl;Z0{V)-w5-vg_B}Ik(w{4i2A*!rIHe9L`<2Wg8l!Ks@C3k5p1xPDi9L`uX z0)=r@GYr%y<QWO&hF^Tut$*=V3rA3bL?|%<I1aKp@f{Rulo@+bo46Ri_^QNg@gTlx zr2PwD73+ns`US*SRm<FG57W#ut@|)X9M38jgg4aIFmDgB+F&Vd<pv+67WZ9DQ*(i& zaYZa~Ek;MyxZ1Z&Db%i*UQ1c4VUi1XB9A_v@fTk;HTz$D)fGBJEWqX3Z@#MXReACK z*I5u>HTOUGs?F&xlDmB87&c?3Z2Jy$2vOqlXeK;`DKp(>5^)4p&U48*t(IV=C&S2> zQ#v(MkoW%H*o#C9eu#f2YnCr)Rql__FKAWmUl?nrd1;|c-DYVf*k34XCd5dnyX;r! z{-C)b6<A;AYw64X;H!2zGJ(hYr+mZ==N7`Dg2MR4SG@x9RT(xQ9fUB7ARi8-Kz!BL zFML%55MNb@;5T2Du?Pw(0P+`K)xXCV>2G}1i|-)5YU;aJYyodgUzfYfg7~WM@VH<D zg?K}KsY3noe(|pzeSh;+yZ+DeRU3ZuRj1yz3%TX}px7B3){1YWu~Av8XcL)VU_X48 zck)SU0ctg?H_JEcHrC?B<EcG>!eV)|q?YwBhpVM0rz+c=r4RHaKBeYBy=J+)SAxgR z<51j0Tb{`mDB}{`MBAR}7ck?L+%C2PeRphotmzZ>0t0t^dvNKD_8q-<EPJ%+mG&L| zcRYJ|={EKqeRmvtyy>U*9fg^vUhPKpm*6|{J0Zg{@kF$OO5P=pvUklt;C7ORE93QO zflA(`kMeizKcIGEhO^=YX?>KQOCII!T7MwzWIe|F*gcOmM_dqz^gv243xDmGn>7Jn z{CY0<+T(dpfzw1K&y;#sa5Va#SMnnI8J3kGh|tado;UR$L!_t$xA*Y?EXXsHg<!xZ z4`hhfb{cFLO3Y*AL3MQT;bEyok#hKA!LO2JYe(z)$}QDK^5v{lsMs5)hs*nF=4w<| zZdO;0)A#Thfv5M+caPi8=PReYr|ICj^V(Gh!$0QwlT~L(X32ta3X3OVd#B#61f~Vc z&kUO3hRig>B*|qIr1bP&j*TC#aF>tx&elZ^ON@l`x!sYAA)<XsJ7zkcuXKA%c}5Z2 z!EwWwKb3Sz<^eH<T4o18x>Lr=QGGB6hX)>6)Ai@YOx-6|cV5|2SsypM;SDgKoXWZ; zlKkAVqE609jZgMZSM4%81{xtS2fMUaYS-BVWR0VC$=UEe#O?a31(kJ0KdW-?#CCXu z9SeYOE6FG;R|ZVz18AV`X!hG%G2-_@^3<oEVYu-7+gtmipB;wFU2Z)W_!RyXb(=C) z$}`#&-A&pQ)3f#|RNzU)R;d@mb*evpwn77``T;8xOZr>S-^CnH>(lTln7QND1@p-& z>$u2UYtn%b&5O+kmjsq6B7$<1Py3NDEOvaTUKj%^nr2Kjgg|hdcQ=!Gxc51e#UU^S zm61ZFrV<G-MJ#@56sE;6x|XM9GC1<MaqkpB5ZucInUli3A2Y%S&G&S&g*dmL*N>TK zd)oX?GIO}s-llbNh*<Ji1uq4venR{Z+&rTr+QiEr8ERYTaDYk@^ugXF{#6(K-|VUG z!fl`4lEGdDk-gYcGXyeCzn!p$n9{MKq{5B`?h3;ZYnoEmp;{w<fU^p05DuRl=eI|R zrK!W>fhGuI%Zanio7CJVSs_FEPUDEy0>>Yi7L+N>c(d;&+VY8bh2#?R9=frGHf1@m zqx-m<K)7I1VV}_m#s$^|1|&}PmuQk0L^;7YL2K)N60U&%>3f!a_KB&}3+tjP{l^Na zMW|=aJ1X?>KtJK?)<_((+rX}F<Q!3Kns`|699dUUDlD2nY5im-ZEWI5bV3Yqn3$on zyddW8?e6yvKWD5meRrhv)6e3WbV2_3x3cJe`Qs^I;)1BVRrOQP{LgZkbX=ueHC@GA z)m-IVb&`ok(T!nVbn>-9+$X;0N7{{sh%fq7kUaH@;7Z43!0pJxJ@eFBqlaPgLYN;| zIq~rB0qN>7Hd9a?t2knghO=z$kn-L;>(C)--%IAoZKUp}?5SSG9)`PDeusC$b?Mb( zv+hsf35(hK!=yuv!}&uVr}h@1)go(Upb}6Gr~=gBEENPv<F#h9X0zt>X7%RQFCWfY zGaE~MihN3zXMwZ8x#Rn%g`5*ri&>pRYp0kNjn%>v4WuHdIgvyCt5A1U{sKY`g(Av1 zl|!?uNO$!oi5pNtd~pbImFq6mUZ$&5S@YYT+V1B^XruUP01yA@JUGy`O}=md5BD$! zWKV^WpTx=8pn%tp--IrVeD@|Fj$v3*RQang{V<iN(zKv7=gNO;Pb~{^k3SDBlzj&V zAVH=6o+ki6{Y>@$$DaC{Q}MsFr!Ep6Q}bqn10)<lZg*S&rDJXz3a7HOxXCcXzOWmb zb?#AkMf~byR1I&7%Jn;>;WRr|fWqaMqaeOv$8Rde*}gw8(Uq^oQ2<2nU)nJG;v4mm z0eZJoHUl4rd6_`URPy*IruZ5`Y3f>#QWXsl@3M(9+^Qs>5(O)bL_>Yr#Wai$U)Y94 zN_E;JDSiJbyNxK1${|+f?iFFSCo+<<Kwt<J)W=slJ+8?t6XRJndyG{VSW9;iM~~pg zkA2S1LeAb<89r4nPI+MOxZv!#p84L*@{2t+=0EJIOfOFPpU}TFs(H@OO3u#%XV^QY zkp=hx%<(bXcEi=!-_L)TETfIaxqik8u^Ux!4abQ&ADwYcP4NZ6v1E-hyI4nST@&39 zCzvO;-HcHwnB$mJQv9h$RYAxsecZns@{Y15y4^CPBd#fK5S2`oTWY)PZT)T0^C>vV zU8B7qs+KXc%?84*T-(rSzojwaE)z(gniAsnqL+8Wvtd2mAlTIzHCgNN81>|)?*ua@ z#$-9&_Syya?DYJ%LKRaVr4~CPg+`Tmt_b8)W!Y8n9H#3+HKtBv8TqzkavP}`y)z11 z_EFscqgMJoLFXN}fJsLuqA`Lqiv>uX8m2R<u`uQt#Xrh(1o&!5RQviNC5o%lvRh~u z58t4pPk)yeU%z8O$(S{oSrFuqCj~j=Z9m_^6eefcrQSi9B<tBF-XQ>)f!p}C7<(y# zwtjbLSSeOby^ld7qw7uGmIKblAxDiW*QK#f&O_d<03d(Oy6&P))={J0HSgO8g7_!I zA@2|XkhEr9Y4J4q$VK~_m-rzg{z-nwyAS|mty$MxJSBSUNsoIPAMwUA0!GxVlP{ju z9Jz>Hx8iOTbNHFI4F|e{2WSM(FuLxp(%nN$j7|(+Lz-QLStTl=m5oU+m*rB3rp+}p zOGl}sF<RCJq$*l{T`;C(Z@R9jZz$P3T>9QoH^)#>(SAm&b-YU>TUu#VAMzrOUo>ab zK>1MKI44k{{lThg&bxx7e#sQ1SDl+Sk9*Op=Ff39@bqHT-G5aNX|}fjIai}?G0Nv| z8hD1)tjal-53x0vUu^K(+H+Hf5?UD>B^BygmQJ5b-<NyW%u!ct)!i?u7dDp^&N2QL z$b)R~biWm<Ac4Gj{haz<b4leK(TiX8^NT{2L<6C2$r$8UWuHA{d=bdUs{1S-N~=4A z#H#w~Yx%##s#!Gn*9sUQu`0_@ijBLNHS49HF~wAZ>qB8=;6IN({5LU0lAzDAmc0Ly zDn!gm-_SwM$rAAQ&$1vqkfQ25A>>)@2m@TxR(LMeM-5~+0}ad2Y%2AtvV}x|-<%Wi zk%3esbANKOu`FwWfQ$jG6kQmug*$V*#!T8l;zE#1$0@L)w{6sjg)!xZg*WBl!J7Xj z-s2R9>8O0ILyJ10fDgso=u5atUgy3fyLeQT^0~Qo{Msn^-AB*&Q3AY{D2nVKQ6@`M z#fCx8b5WR5NoHzb?eRwzs#hQtO@wq^k=gr<Xsxj-st}>Mk<??`dvSGlZB1R1iV+LN zet-OcaKw}GN?TViNDOt~RTS>LA3s>d0meA04=Xj{pJ!9XYe*U!dy@`nUAR~KtWC_1 zf4I`EW_Ld{w_E>wr6X<s00RjarlYk#(AsNhuTV;;h10>fix!SqLyObeb#$fRqFGr$ zJYu_(S#1H^Bur}T)iYO2{N~@q&3)`-H5zpB#6V=uw~!6L<37dPqrFBF5T35HKgtNV zA~D~SpvO^zd~AqPV5Dnf|HIYjj0<*RDt|k>+OtJyZmQ3S$Ft&yC5EAn9Pznjkz4mC zlh>$PYz0#Fs6kBL8;$RWy-#b+Er*#k%@wd-;EhNLqoY}R6&42aUlG#EW)Ak8+0ZB> z9b9EDqkF%luhZ7@_YWM=;_DpDXY5?NX-AWo6*Ej`r(tf}VLY&g8>`<xrsPM5>+=zI zjT;3Zv``wZcGy*LSHNajeCau*8#~KR73&h1Cl>=X48a0$5;W8`Hyr`3%+gWbtS1>J zJiGf)bm34uo1tptMWUtV1*ux9IcnT$v1;|o?k?5lHfrSAssLQoAC;;5se6tI537K+ zSypnBjK#dxh2xCvv!;j-AK|s)lbYL~G2JEd;mBLdX>fwZRolzV6Ax|FbW~H-5c>H) zKX1%L*niMcgPWVqPJKGW^-5gle=q1~BF}&GCS>BkxzPBXz;KJtcRO0NJY3h7C<wRv zmT%gQ>Ln5}_U4&DFdI2}d7)_UJ=h;-{k`}2eGG2ywIekBNe?46PV0E_PR=<l-xeuX zx314YA2oj}lE8*1!i@{eAei&}-s{_|xe^dQDTUAIz4g@FVlr|srxuqpLAwl;FJ;Lw zj2Eh((h9h|8OUa(An*TJW2xLPM`IbsVx_hl<zA^&KPP^mdVhF-fA37^r%^<fXwoSO zA&r+e!f_BOdGP5|lUR@j#0c~r`%s&J*f@-KOg;LX-vFtq#9Ww5gkr|khvc=idyjmr zar*X)EGivAb-!tiLo0llnDqh@b?Vw;kfK#SrKe=ekOZq=v|QadLbtq@slP;{=gNFF zh<VC=PP<-Yu6AIdq2%7fALFp>(6sgY_%R64rGQcHPMvmG4wVx_nAve3e9%(!<hXtR z9TwiG4{zu=07F4T$BF!ExxD4z^Ow&Lj@zR=USa%lMe{Us*@k6iVME9^5n76Rb9CCV zF+5+Ftl&;6v^-oyKe~L>;!x(H=ud4ZN`9|mFqKhqvgoWou()Pjke08Scv5Nk<cKhb zfL-u&L}_~tdPl9<Qr4x|xQe;sonck*Ig@=ksRXfX!guS#FKNc0t8d!LS!Mo`P1hym zEneqvc6MePC4_N;^Xj(wSKN%QjHM^0%}MMpkGCDkwpSla*5E7-?u#_D78Q^JR_2E8 zsS=7>jizuh5>T_M#MsNE!`5>R<i5xE)#;{mkE@fWQYuUmuqah7Yi3|7zpLU2>nfl; zEZKU^wvR%D?)e&lZ{2jkR(`u+o@NZ2ZfuYRUVCIxj^%J(#Rn5S{|ay*y_ot{0}E>r z)mzJudRg<kSVJ*!i)h=Rru)16^qqT4M{{L^?hgR@GU+3;6J(2%-~ppFbH|7hEQ_xI z2?pl*vdTpw3jr-pc#j5EmryMY%K`>V^>SuuSPoL^TXhPE^<lCnIwu2%I50!>{8o4c z$bM*rWL4`X`ISCXo<_}``i@uitw*EnkzF1*;CjB$Iv+N)k{co?>ZKj#Ig2usu9;>` zTcsF{+XKJ%<t9P5FI4IGBu1shzJ;9yA*8TG1Kc|y4?$+@S8Q*pvr$apx88xYrXWq} zC+Jka-E0U`m=Atmvk_i8x@4c=mjclLf=0o%__DpI##Udd*B~#e5YY?a&HK0cM(8a# zJY>p8=s~c>k5t%@_MNsMnvj3&M|5n2e&6bk_=BMT^L)v#DEy^55h((|emQSm?qq&3 zhDbKR`m*1|gK;Lq7{5kJMrg~1j}N$b2XXdVu;`6Lr#2JPDAZm6Tql?<@q1{7>3s#H z_62yX8JT@lcWNDJ#=N8%z$L6Zd3(67TxHJ4LH(vJM0>QZf=xE(blSeOJFAYEO?9W% zfz_q6JJfei$|tNp%F_0THM#j2kNx&b0e8XjT%<{;0};^Q_adsj)W3&b6>glix>Wj) z7HZ7YzyaE&)IGXas(?sV{sgEqta}gU75mcQuAJ03u())(hxCf;5L+)eopd?y_}xK0 z$s?MIIiS2$xyN}*|5s<*QSd3zTLM@J0&cyOPyfg`@8MnmR)&{czYD``<pt~oQ)vlP z#*6v5%ROL326@lO-}}mvY}?;oqU!gCV1FFxACp9eI0PZ2;BtldKZ0Kg!M`|&-%mob zLE2@*n8I!efl0m@d*?6-R`;g-oy8>N3knQX67pCG_Ah7@gw8wMeb|4Ah(VqDeYj~M z&~FC+3cTy>r`M1HvP^G`{4AN!;la5-a$&!=?~?r2wc9s8PbNayS7=>iAEDxeUMGVU z_?vy?Nq&u=jm#y4V(Vw12qx`^H~Oa57ittzR}pf!%Pkx1)|W`tpZg<2GSqIsMHj?J zkWGm04HnKFaf8~0%&3V2b9*2|PSSM#C5t<^j(BCZ#&qfa+$C;Hy6(v7IqYwYk<Ay* zsf0`8mf^=VM!Pq_UJmcv(@!7Psm~e1=1?ujzDk$HHOXvQgB+qak}I@!S-nrFYN$w( zd{pP3dLhH2P}9gbWccXLLwhm9%2Aie2on|<sznS6dl|x3Q9Z~A<6O13V8STLGe5h2 z*un`jA<v9+)deX>;ZPZ++sMvqdTCKBrQ0aZTYB+OZKT`C&l`GqQBS4YD9<~3p-_pW zkK%46w+zD+$OIB@Ww#u{7|A-~e}kmRu4O!F&og>&Pz5C)sm|kiC;sIyJ&))`3Clwr zAd8ks|HMUYC%siCS}z(E&DTnOmM|cI#uQ-t@ij_kzZIU#f{_AQRIXD|!q@z%I>P#? zd$!;gm=v9rDBcX$QXohEIh!BFv~eA`m5|o7dL6r!2nZ&{7Dh31%@*XG4T8BWr4&pv zuthoNubR5N)RfyzZI(i=^ABENQc#nAj>u!#0cI2g!nLLx1kxc>_&n*++0Fmqc)c(c z_*1B_pBbw2{UZ$?&qn+pnNb(oV#-XPlRqnGGOal)Vxq!GpSN?#_d&>OR)O{}Xw=;$ zSc|W&B-V6<<y^f9PFNpmk|bShlPX9B3qVbhp^Ix0-jWV0C96nm5;th>tp~|rE8?1T zw;;pt$gMxWr?#u@r3up_vrcG|+j0(bFn&9p|A!UlGSzzE?vB)+v?g&{sP-EG_N%qu zlJdd<`-NB%kp6db|D|UA4-(v}jNU&;aM?D~jr+@&1osSHF&)2p`(Br%AQE$+x3pkh z)(qqR9}?V2;rjIH{>>%S@525c^|4Qm#J<vhfa&Jy`io4U9ZZ9v$B=Vyx}Oy?iG_ho zuut9l6VKgL6NH4R#KNqiromMq#?T(7!M72{&^W<9hc-EMIXGl&0fENI4}xxxvCvPv zgFn9m10LrD^9HS+D{v@D*tP?W(<dVhk;b^LK@UII)9uKfJF?tvflm0p8uSZ~>zSUG zIqS(m##xg`XsKQ$BDD%mrq}w9u~|M`C<HkY2mdBasiy^?O&DV|i1aNsmQbXr%|tzx z#?|^rY_l?|%ghwuoKc#Q-b&y$|AhQ|yf$0HK<NXzjm-z$#{PfX3;$7)ej&QY?_ol0 zxV-ri+5&|~b*-zESB=+a$|e-0FU-;v>>Ez<_9J5$2;}ZDFWS|si|PTo^`^L9^O)e@ z;~y|ub^598b7a!-l)w$8ZGl<)^QphQKN+^5DF)`6eT{-qLLmClyMF@xj02)wj#!X~ zVHAL3qcW>s!wzfnq27GQyu4&i<~SA|Gyy{+`p$$y(nCP8pQTdKTh(h_J#>|;{M`N) z^wU2*7&FX1VH3@8(G2PHk&xnXM=In|Y*w_$9nQHVf7TBhIu_;;rR?t|uakk1k_wNC zw!p(8_%U&Oh4xJwA!O)1D+4h@JqLfj=n!<sd07&+h)ohZ9RqQLRFb@vL7bDXZ&mMp z(QRnaH!gv%)2#Jg+OX|TWBaaN;d-tHN#FJtAniPP_I|eMHzO+P<n7b&C?!tBm+#uJ z;Q08&EgGG3Y9c(!ai~Pj=SPMA%+fmJUwn$1dBY{U;j=1|<lQu=?=KU0-Wt*?L0$(3 zqae5YMA}0ta!{zj;_n@`cFD`yKlA2?=q1gkkeX?2BV-_WieE(zCmUj1K(sj?qdNdz z8iH$DHkfTY)|hV|r;`18I6dC`3$xokbr%Iz`;VmW2hERcMD7&=a0q6Q0&2YnOle-L zgyTE{DAo#Tx*V)amkkGoXv#u7rU&2QuP7hWb2>yROsJBcg^h_Lv{Tf4H_*WXErp$l zLq4etlD~l!61FCeL8kkL@dM^A2yA@PPgKZcwON!nr%F+jiUu7m9F9EjvoLi|ouW7u zZ9JNA;E(Z>(lA(Iu}#vP&x)G2?~6!OF-l<OcJ$c;Q-wjGp|dbWiK6dE{8`W#hcH>7 z+g-?RlX2C8oJq-B?OS1JG+a2jz=G~1Vb)DrVr^R(JvfwZ&hAEkty}rf_{}sp`oKhC zS`*fSdVDeNRy~R(=qceyWZF86CGNQ7YvJ@sp?#`exC~I^MoAKt2X06>{1c5MN(=02 z;E6C&PT{0X@G1Qz%02A*^3N>!3vjxpz~}B)`q@m9*mUqH!LU7no88d*Uznt^=_674 zVYdU%yWi;NGD#)V$)Xg%&IBHG!|N9?$t2T{qU`dp!W->z6F4m1saC_y1|5<(Rkw)h zlrX3y@s8*jYwTaBn**g|d}g<^X6FuZ*~efkT3XZ}vaXte`{z7fYwrAO+4DBD-#HHM z#+Gc98cUWhADvC|?~W=DZ4MEg3R`4W%TJVUN*-pP4qsnoyG!zy5h}%$49u?2Z6Cs1 zeQ}rOFZalr+O9q1zG}M<aTj`0d6Myw$C{Hl1YCu?tF;&CYS<KU&S@Q5T}8WVv=^>v z5EUWKNgNtph25)q6$ohP?LRYK-6q_B@XG5@TQ5GH11>to`3dTKtq>A2G!_<)9PjMd zn~d(;dw8_22naCTt3nWT;W@$+*>1z>NekX884FWL``oG+iyIHq4GO1VXi^^#<)g_D zzj~u+EW$B-G$@|}&Q0Y&LJ45_mJ2WX7J%$e<v_{_ApDjCFU|ze{gyu(;u(Jzn^p4) zRuNNFXjqs^R1-UhIwBhypoE@J7i<vUr<7jvMp`jZRBBk6N=y?spL!%49-tYYPZwez zPYj(y7xN<?L(#8>ghtsrFoudY2NeKNEqKHxQc)Me7%nN2)<l@2D$U~oAk1c$g{8*V zD@N3Cn5%gED^PvUMg-`HDh1~v0Qf~!yu-1F??dw~eH-GlatHt-b%mCJT*DJnem~$G zzrc&|0Sp~;E&bmN7f612M3sskn@ssZOQsS`8Z;fGI$Svw!~&*64HV)WwwcQKEI>vD z6j6A&l;)6d7{)XeT12I%*2=*ESkx6n)?74JUq~$986G`WJ3lu#KRY`=Upqf@@%ljV z`bhAChQq+P48gAPEYm%OnhTeP3(Dm?m7~XE=Vu1z=L+X%Yv<<^=VwCa=S=5k-F>k| zymsn`Y$Sl*W&R`Kdh5#L;x+gT(o^#D{sesIE91A2ECEcRIFVhW$ng5X22`x@J;|Hc z<B^@v#$@6wc}(FrQB$MXk^21xbgYQm$>-P;vYl^?Nhnz2n8H#bhepw5^$QGWSP^ED z50b}6JK>Efj9F@#B2uCjNAXAXcMTX=kuH+&k|*eX-?Bzjg=$9jjiS=&CmK-K!jB~H zydN*?gf%8tXDO`;ze5pZ5!|FSW>;sms0x-6!HtV{G^YQ`BDig`i}l!D*281W|CJT5 z%5O0=YLvp#fWwfr7D6kzd|}wKhr^hcfd#mQdV$Bl%4-|67*+}b-WfV?^VC9dCbu^Y z9re%~gK+Rrwjtc1t)s*%hKSn&4sVc>^IQk<dq{U(_>7~sVI05|QsP|u)4LsZ+2mPG z&OUQTXpC~V8INxxTtKa{V7=VIo~8iLupE@GTge`D5}zsty)^(pi<)((#na#;7nSQ) z@`u&Lr;|Z%7XZ+sX5DM?)bHp<@!Eszfj{vnbI@A>05qvtcUU}y&}Cu-05xjXEf!Cs zj&9ViJwjYYJr++-;VT@s{XDf~#T!HBjRo)FCM<2FeKu1f<a$;!mmba2WM*B>F4C+R zRN|D<2pXD&qZ&DQtsD|?iL9I#cX8QoZI`XJboLH=ygV$O0!ooMPwMC7Dm?3#OiH!1 z@677g)f=0Kzs$YXTHPGhD-CF98BsGXM_fE4)X=Qsu`GSi2Fx9XmJ`}Slt(We5^Knp zM=u_tXuSULWL-L-4VXD>D$le{&?!Z0a35AfESFz8#L?ic=K+-NY41!QMwaW^V-(G4 zYPE0CNR~P@xR0q>mya(WB51hP-S?>5G{b&9^e<ntOVB74w7Tjrb8R_aF=|`=9;wiB zzH^F&fBg{jYFjF0qBW{G?an_;=o5~tiT&~^(T~S}pe+~N0Ff2ouU_GTPBZ`gN#-AL zA2R0Oc%OuXF&jKJ^uCFD0-w1s%CO}?<hP1R6!hg8y$C_^pJ(k#6e+DO&|qIr4~?>= z47!r|yh)Ud=SO`4|5VhAX&QtqjDf0CEu8D~3RR~{G}ofH{rZ+44W>BZv%~o5xX0;Q zifke9@uG+S)yzWFHkod?K7OG=x;&gQ$snw3#AxVf_&3q<(9y6qI(zkR7_k~+yJF*E zZ4~yp-<)D0V#Q+NNZew{WBmv1-(Zot1~4Tt`0R6(XQ(+a9?vz-v?iLg)*p+vRPVh% zL711;Yh&`_;7y~S<<XelDOhxb_KU(0zD!qhvar73Bj)0+mxtcrPh+HrupZO2@T%IG zr3JyqX+^{)SW3SeuVP$Byxt@2cD0*d;bc{-ZOG8P7^b%{S#&CK&e6R&ya;q%w3wqe zSxi7E2JcBvEMJLkK4fpII%IR<<Mo$8K}UNpLhWaAt__xCNA6cjh1UNJ)B?lMye=4Q z8Pp<~7hS`2lQ0tbrW1Q3x`wrg-ppVSZW;C-1ScW27ctT@lIZQj=(h9TNI3zYa3pfw z-2l&`@cs0@crM+&!<++GKH%g2GL_Xak9wT#QFSzFx@TL%^Lq2d%~^-0mDJwRw^{LX znCRprR+<P6+CUYBCdRF~lri&%<E?pm?Go;^yA<m|ryiOdpwTiu$FgS>lj4Gld3%tl zNxo&c^H*tEXT+u1gk+#n&8FTlHF>MoETo9jG`Ww`L`T<2N#+NW==8|-lpeu6o%20Y zlOEub*1dwp&&bTFr37%fr&@QD?a$0zS-B>+Got-PkA|^<R1{}?4{+~nF@*+c7w!oi zPX}%Z-gG2nZMZ-ON$U|i7Dws#3q+yxSM^gFiW){TmoSf;UX}@vt<>@nuhe$vaTU0| z<Er4M_LQt8PM_qXTB&rCbbWVGWvlEUy)fzd-c|7eWs`V}w7Vx&B1k1Q3ss=ZP4+f) zw=hUz=@CI3StPt3DUT~0Yca+U(qv(;DwO;h%x7)*2;&)2^N8bm@}td`p=Y-@TGpn+ zwbm_|Ud?*{d{d7%mf)tz^}{U&uv)P5^fus$__=%iC<Yo`lqhI0TmKqeZc^!*4PchY zF98>CqL(|;`&2AEANCL@=Rx)a&c}$Hm;{wYGIme7K0x)r+<|oF<v5cr4Us@Yvq;0P z)>1r8pI}|;sFD9b!>@RdBOTKcCQOsBDqR|{VkSk-PE>p+Ie}%luJbA`*#K$t&3D+J zh;~-mgP}isdMK+}n6CfP5KMw{(SF%@rhzt|l>Y<OOXeSW%A$+*+}z8;bCae05CTJK z1<iItx5-yg=?xmbB*0gr7a5wV_HLvuf2X1Ncn1@GtX!@>2ca<^LBecVDfMam0Yd4{ z<M#H6@af6pmTTfvbA5t)-2rhg=KJ`_cTPORr8K4I0vBHx7BA8DS7?R?2@!B?UAw98 z(ju^)M17dwk%jtsQ}j;2!?MlE=IY`cnS6eft?3E8j3Hp-VW2Q`w0zv3&0&TK%TqBl zK-(thr}c{Od9(2KwyjK5A(I9bzkgl*3#Rcm4DLu59t;>M>SAUoyX&aku)Cl|rR~}u z1K+*@u*5JhTx;z6ca6mQ5DwOgTcd=%>UwUkM~6nJPpn7-CE#7KO|+k}V|r8-Mu#rQ z<kCMKP|J=Dj@Gkxh23f5H21K=I;d6@Ibz0)R0nXj55M2JD95Lsk4w_w8`ppAo-ss2 zB{}l+Vxh$H2)|^nM%<>V8d7)n_|d-*lkq7fAytnV53eUKRgg<%T^`zm>y)?F6sgEk z<LnKdPL!HuU{fTC0`O5Aud@2^r@%yD+t%xbF%@j9G-yr^PSWM^g3fWWOLMQ|GKULF zH`wD>++wME+K1o3cww?^ALN{qJZr+KHMWZpMOc5-ScyHI1(x<jPVU~J11J>e8qyY6 zX&Vg`z*K%vVj8>M@0eDv`e=?fY_nPqRmlKKwF?qq>{6B}W+&k7QY^+4lZy4tTV#`^ z>{3)`W&y!rn*|9YkxW)P#$U|#Sj-9{R-1lqMp7yAClwnWE{Q!>J{&QPJ%6QSAZ7e& zIAJQ!AhA1Pjqv=HK97o)l9EPzdLlFIFn+5p6r*sAmcLIQH;D3ZInVw$S3Dmb>(G*% z><i_>MONl#0cn#aW2OH03U^WmNqSsm*<6B7${jsT6h^xU&lidi3WG<;E<4TkPxaF$ z`ggQGnIu|M#G4a3jg9X<Jy~$}n+ezNb6}MmS534mp*)o3CDcy5S{`8dQoYxixD^Q; z!%?ASS=hX!X4WO|Z|&uhiJbVb-8#(SngaRt-2)qk#td8C&q%ujpb>6L|MdZroa{`v zuZX2<q1U}cLx~1(^p?Ina&v^2-c_)sO`-2$n4NXZ?52_b14}9prjgr53(u~8|5-!a z<_RfRB2^t@%3}eu{!TnNA;p*0u#wVP(k*6qp~HDJv0+tzDY@Y%^GMZK=R`jZ@k9Fr z%|wZN!w%g95al*cwl#cz+Y(*x*e`0WAh9-DA*I-U2YM=Uvb9Zb2b$plVTZJdM#44) zu^^8?h`T&APMdQ1(9pxV!GWHLeeGI_5ja@o4(NB<@%6%~QgTZge*HuvI5go1*d!=O zJJ3a`sq`uVCK>KvOl|!{9V=x?#bU<)=DzSU{0w{ECJR|H9GHC8Ci=#NmtnTHR%|Ap z=4tt(erSTiCvAnMNzGmb9@#H9+&1jjz;lH}@=XM8Zb1>bu&5OZ4QS{|B0GzAB?dmF z$c7pvhBl?jhBhV!H>DgH0gdw4&@=b9zW1-8rx@py&L#5HzrdL@sHC9HV3T-ngm*3w z`z>nkJ7!6;@GcT5vIyd>56r4xLRFb%;ju`2C1WYX!yN50nsis*ibvqREX_0xBF{pr zL2z3%ZiBWasc+#hBnsam!0c+N(8Y4!%c3`iN^Pk#Yrc#SUzn;oTh^`KLc4nMZb<T7 z9(Ewc<HMP^=PRP#5L=${&X9AI^sri6j`6N$E~LF}Fi-S<DO5r9+F#qKzmGw+BV}x< z8G3e_z%;gK=(?1(qb#c6=eKw~5kO4a|6D!&dqDMzY5Pa63qsrek*=;p{ASwz+CaU` zM)O=jMBHB-)jw!kkakyL8|QC2*58aspDw*~65a0gGnVI*j1T6&hM#V{aWm;0cMIPv z;<DtPIhxgMOTQIhgBF7ro2Y7H>`FRKVxOQfe_>DqLzhTYXHlHQl8Y!0BmQ7e{|zOE z#sV!r>rl(Z@TSy7!+wc-dBWxY*q2|X`nh5XQ!<yBUZQ#^|2Ln-2<wk-F)``>H(RRd z!8e;vx32_3kzU5TAk8rsn#ramXwzv&2pV(VQoW4aetB3y@Y?@^XWWDhTIy;CkJv#} z^s2r0&u_w=|A+&c>fYjlkhV=Izl^V1c6inU{}$%1_<@kNFH5+G+t(nn?H_Y%6V@N3 zEiz$0>5Ik{gtYaJ*4s$B#rQ+Eoxeo@4M6|qbk*bw**gb&VStLY1p+q#kE<!#=53xF zDJ5oW7&lc(?IHi#@3uQ4!6mGqgNtStk!a_Z6j7AGHA16y{e}`FD`^FW^W;`Qqx~7| zf}q6z!Lr?a*<q{a)|-+pf#%r12D=hdQjVB9q8h(gwxV_aQfM29mW86thq_KFfX3FM z{@7HIVWQ0M$-<17MYU;z!_i}DKyMHRf!Ng3y;QLb6=?Gjc)g}}c_6|qiA*F4A+x$s zgdK@QBo=3wHnY&L-L5reP_86;MA#N4v(yR=MZ|LN@fPCCa&+amk3aIp7Ej^-!Ixr3 zdiv+xvL=5k;xTH^z{)eU=We-0xuDiIidW#(uq{<I>OF`1{cqv>ao?j^=tF<)S1b!~ zVut^&?`7$WP>sUTPqBcWrte_sN6(B;%7m(=Z($i=#SFWw?{VZyP>tr?&#-{es_$~- zH?@G~p>G2+%>%oC-eFWgl(qHP!LCJs0M7qXe}neWFG^_H^q^Wh#PL2iE+VY|V0?on z>%W)o4!3+AzKmNkw=5n0m0Jed{xWtr3<DTVs2ch(iCgB{0e~jZ`q|<i8}@(C;ccN# zdUgKTjGORoHbP$T(ODb1E1+TfUyJs_TO7hZ!<X%+-j;?d{;y#>$aCz9JMlNd_iq67 z3*j5<9Q8Rksh#HZOnJM#OI1e8q9h6ThUU3ZL{Js#0#w<{qNZpMpZOL9&wgPgqu`x> za%J=PYyOqSWYPhcSFcbo{wEHKjDi%G^50L%Q427t@lK$=_0P`ESJC%vRL~?~6}}`V z53puR-};S+6A-z!u)$ti13s8PbR<~?C(x_YFzh5gbey&V%pN*ymfC-Mls}H&WL#`= zPn>3$?0T(xn4H;u{N4;GjbuKS1wzkIOpB(-MmOLe=gL~m2uwRN5!~q)QiYEb&h#0! z{LtrQX!VdqO6tN0ux~*mh}B_l=G(ZyN_?YD@#XCVz##u7VJA@zUe)M<_NN=i2mqfy z;_x+qJg?$1sa4igNGN(l^c(!>#T8!i>N+5GFHsHMB$}QE4}*@rVzi772^~TLDuU&> z`AH_f5T)A#QYJvH{Q$PutVg>)Lx&^$M1_;{JuWtvx3+$^@F{+VmijkFoZU+3ABOa+ zYKHy^3@R4d`cpw>+7#sMg>S!aweH2M>xfT4(6~>kn6VXkIEDci0NRe&>Rin<@33H~ z3)#1x=iS)!vf~*D)w@rjGo%<18wUaop1Y(8d6y+@NZZNSDJiYER`UicP}Nld-$OIS z$Xm=+br)~Lb31*rb&hgfzKp&9`9@GDbtE!JS7l)K3Kx68B3F*TGK`&{zaVM;l0!;& zCgghuMS>vahc5>|&x0>8a9!oR(6(8Iu-c#XvUY>8T4fE)87AU1w;1WiM@vgKV#?lD zzKsw#+I%$Yd%kgrNCc5}a1=)7?j~%q-G925?qB(ZEBnBBp<TF?F<YYzz|AP(pIYYE z54jR9c65*7Vc&n*S0X}_m+0p@n5qb(Fv@|^F<r@#ky`+x5!ojb!9vWj6it$0LpT_u zrA&U~!HvZqSA>;j(JlLCk;O0;<`kcBX%USGb6ZN!h_BqRo0n_%aTc*7($gJO&}Qyy z1KOa-P~yf3*RnCk7U1Z#a6eh-+i<Ef6gO_?^-~N*PfnA~U=v?c1&zbkOUNB)Hu9T` zPXte~tL%S}G9t@Z^pECqbe4%L5kV@rxE<YpGXN-w;^fbnLPcXvS_|^ojk_sI$e`5J zeY)YBqLAAQ<2Z0c7rtm{IeX4cJrUPSmd4UUNg+DCjKWSlZNM>RT`3qa4wRFGILHQk ziQ6I1O)rzoO^oZy*C?W&jn(*y@s>-tPEnzVu@|~p7@Sx>6bly?MwpaX$&`)^W=Q_4 zEJ@!1XPPMq8%8S3SP-VL46&Ld+H{b*um!P*DX9^xRfg0>n6t1)PQawnKA9tC3$#v< zwXjR``(Js){;xRVDV=&wH1QL?HpwLxBy<vw8pt>jZQE=c^odrR8Xg@ICLoBoTaj4d z3`PT{C$KcgBG6O6N%3uu9<4T|He;l1Fcaxc?0Sl0>PsVCN%$Q$Jv#5sC^j)wB!)Gz zbfBGZu_8r0949P>aK0jWBo+lUT98z?(I&;FF^+e*Z3L5AvN2GQz@gO8xVEu)W)A02 z_R9GR@k;)R;mZ1o@Jjbe;L7{z^_9>S@s<7+%9YX;^OfBd%$3v?^_7`ZA{tAampGAN zslZ<6ecN_TNA{EDm010UjO{x9v5qe>dg^*gdnJ`6mBp2%Hbob+oO6w{jdOR0U`{z7 zwjIliu@1KT4pE(o@1yT4T4Z%9Dik$JN@s6o=UVn~oyuF}bt<hDIZM)J#||-_N?YVs zD^3($N?K=E4+)(rTNG9+2^En_LS}moQLc*IW%(;I6%|SfXK${&p5O78dlz|s$yAys zAu7!($|}h!&MMU_(ksy`)+=2vS}$2IUjNl+7c3Sm1r`BIfW^SlmnQq(?1g0%%w|?6 z%3V%QhiBt*5)tO^2oloGjt5`IV<<Gy(<}tPKhz~Q$_52$Y`juvZduTWcwJX&i#!eh z!E8=hL`(do*g<Dbq&ORZe>Sfy=02V|GzX+H2Y|C>M~dJB__nC=a)|+8s8o14C@)=f zygcTYE_z(7Y>GenFomh`BDx%PS`H4tfvwQe4>O*A>N5*QalDyio~#59fVM8zGU{tQ z&S17>07rbv;1|n?hWO*j=o<bd73X(Q!_oVai!d2fym_nuEXSOGbk8&Qr554ZsXX#H z0YsNMM-d(IPaB1!!o&cMa4N<ws^Mp7MZ`|iVHqV^H=KUO-M5l%-2KYBet1+4O2TgB z{Yr?U)H`qEl@P_bcaT>kxzRD=-HN_k=7j&Ci7dnqhKbiOB-vq47L^hNS>U%RhQZJk zbt5dOD|?*c=eOO5QLu%$QAw$voS%hxePT0w;xhz4?h#q-F*aPpR9`?HKN=oCaxUD- z96fFyJ?1+<v+(*fXZ#fB^$E%VPLJyW_K0luvOeyC;*l()y)4T;;Lx}at93!TKXrWL z2Ig>avNSisjOV4#hWg6zO7QZ3<Q9$F&bx>!T`OU{DXq3x4xA^(Ctdub?M+F|NH@$k z+upmc`8xSRp;AK5kS~}BjS0I*NAq0c-QZ)GLEZLU7``sPFv^s|GxQ6#Ok-nx%nSHT z{mj1FQ3uy(H^K>4#tjH#4r5lvEwKXJxtDO{KN{?ydb%4%B}?Td`>s>lc$*(*vRm>% zTNr0b;~C}!$C~l3AxMP_mmKtdaCY$NPcNPPeK%d7@-9JJPg{gb3gCS|-GIF@ggO&# z^=Hi>wNVe(7|p1;QQR{9uLktBh~Ja1-cML|LK>5Du%uOmEk=%wVp{4q7|_-tEGHi? zj30rD>y*wctyK|=QLCebNBY+WjI~G)$xjOt_?@qJ-y*Vv*oJaP_Kc$7>ql=<IlvDj zZ*z^Ocf#zF$+HyNhP&xqKfJr<rGN0EdhjB9$cTL!AND31@y;6b&Kma48uHE>@zxvk z)*JTL8}im0@m?SFULW>eAM#!w@fIBP7992#9P$<%@dgfh1BbnVL*Bp<Z=XSLpJDGk zBj81yUKEVju(Sy9DX2U&SMT*$y3i$Ub}>$T(&<;@daJcU3fVOFhCAO>TdS{2yKL-) zR$mu)Ma)U+G;Pviin@YkI2I1!HL%8)O-pOFb-3)}$^~|5luO4N?gLAy${Q9ARVvKQ zK$Y+;yPY}nv~q#Hk_Po<t1Ac%r@AHmQpV<z(m8o8uRe^rB|vFqvwhu?RjEx=_*e6o z@{XO7Omz>?zDDEfC1E*j4xcgymV0l|sF#8_+{czeejuouQ_$`+a~f0^bik;b)7N_H z27!{J7Y;QlQ0sWiOV^vszsxafJ&mj7st;IQL1{$Q^XQifHcL+*ekmWfODLP8*2*9P zy=YcO<W!%PRZ9C^u@(epdzXPqXY1lit_5kt^%J0#LaOGati?l8bR_WA-%o?!>}XO+ zps0iw#Qga0JqRG)2P=!P*gwvLD$CZm8t6Ju#@L-~UGkDv0dWOkc$Se;o%wQ}7DvgL zFj{K-&fmn<aDv15G4<&>VcG{3?)>-~6x8xN?#Sh6HOgm^_9f<Y_TYn?r1N3z#ycwO zC)O_J*MUD_HV_41N%8u$k`XeMk+xI``A7#hozaz6!rsRC!>6#Gb=0Ag@(D1V<-BWZ zt2SF(f3Jhqq;~$Hwb^UAv~_INxx#B>;lyx$+$!aN(e~CckwxjgcH`c-ySuwL?(R<G zPUBEGG;WQ%ySuv-(73z1Htu%mIcLsyXL8T{_a!@3sZ>%)C3~&C)_UIe`4tNLnA%nz zdmcat!`aQA)4_nxs;q*plxetuGpMf>)jK>E95l$5FMK|~cb3(SSFKu=FR&XYvQ{xd zTh0*<Q)Q8vW@6Mw_Dd%rZdWw$LpFNy(Lo$~d{e39>nDCvvajBHmFR<dBgZ+)+IO1C zSf`p<&fB14a6Kv;hI*8%uTpy;sJAj0PjG76xeDY?T8_^a))8`6=%vcNPJe_aelN>o zs8)E2gLBP)pqrMvs4?Xw*SPn5GPvMux94xfl6O*HF%I3W^7mvOBgO6q#Xz6~)<o7~ z*=-f|?0w)w(6Qq6L+GNV@FzPgIqy5|N!u-!3Ob)=cG7P;Cei#L*Nd%iL?~}fUp;Hs zOBr=+(AZexZ}+ic|GH1McK_CN-sTnEkhV4Ngq?J|ulf^5Py&~;GyGx9@^>l~uA3$U zWsjxwdxG$k32#HBBCTUC#Kq-pD3d&ryA-#d3}1eSe>u|+gk);qD;Jq6`pnR3C(dR~ z@E~tItQw`yKtTuG)e)kknKGd9lApm;Ijtjvg*vOv6_4*vzwR#sw2<#x6h)6(QYDt% zx`@)!`B*BK*pZ~Ap{Bp`$bKvQDp1(7KKMPx=Md}wV56%k&M8#BV}HxQII#p1AP!=E zz=`q7mgt%!-8_uFxM>M?1MvA6WleZ`<duw*H5{f%MuW%f<ZpH{O{$(#5%|i@$LwtT z(@=LZMS+w$%z*wuIUoQzaL6q8!i{*Pr_OT{(9J$#A&m<^s>{PuoM|D!G5OP;!1nxv z@R%SL3H@E%rM{a;6&@mDP?luQGjr3>E5!E1D&-Vyj*U=ptC6dSGV(AOI?W!#N8DYp z%+SmY+ECSZ-+?bP<2OYE^BZ`qQ1$E@pJAdG!4LDr#~yOmS7vt9(<Nc_)uka3wwipv z$JpWeMQ6ls{fl*<3%!mI9joa!E8VoXncI^A%hF^R<nditiq`P&bzCpPb|tVqQ-q;^ zG7OK<jTq;ln3j?l-OW_NSU>)4eAl>kH!6dE`Evd_#{a|kRuNJWk&^ni@vXe6Fsq36 z{%57?MQJG|^awH(+NNI#%{w5)2982530M$V;(5}>BW>00EY=@!b#Xb3Y2by#7H6?T zxJ78n_h2WR!YFW?;WYU+;nwA3=lk~lj@skRCv8X`)~>m4MjwQ>5U;2t8%teE<<#BF z`k<<cg(5y{qn3WhAABc{bbm|Ad(`G*pM&@uect74>%Cc#=F-1(6T-<0f2FtRmOliq zT<hFJv=~^`|I4zaYnIPv-k~pP{)#Hz8oX&AUo&@fGQR*1zYT2X60aK*pQQxoI?f~w z892iohSwI}XboSXKuAtLbirbhpM%`t(AUO}b%Q2@m+T7F;oa#nQ(T}-R)*<p2`3ef zALeYdcrPBOV)g@XWdb$XX-s~s$-|_x3A)Q(T~r@f1c|SML+>izk49jzbTBPK$5ipY z*yX<55X{CFTu6&fp*2}LJ%y<m45Wp&Hf*ob-&dEF8~q)sk~zt)Em~na6QKP;cVt%E zJ2cHddU0%qcHL~9evac?cPw?;C}Yj`It=4InxCuo?E7VB=b2iW=*EF6K6mzOCe~A_ zV{|65E95cWH8r`>aGYE$6s&5CA9i>HF&4Lw7(X*F2|!#j)yp-%hCk5Fep4h-P&nEf z#|bEQUbjV!SW8Mkpf{A!GPwhJAht*+l@%iTs52bXcC^PWP3;?W?GXStj}tYetNk_; z0#pc-CCMI*??IdzdFtaFkSbuKt|LjYL!35_<)(`xqR1mBW)Vt>kgI~8{`L$tcX%l2 zC3LL{{V3Be=Bm}ucJptPeqNk|oF3}SmsPC)bPyq?CL*o)uQ%rTlAEfk20_o&W?*g% zizX5TG7wa=<^d8qoCHS*l??dZy$>scxL;FpJ;`R%=7PO5Wgt${NXEYCv-U9N7+B-! zyU8mP9e(KU`f&DMd*YG3>Dm1Hr~P4lJ2SO2llMM!m`f{xgx^HF?9l}9Ns4pLSrfHJ zY)qqBG^mxN6YI!Qlgaj13WZt66yhMF3z8Taby^xYb`Tr6Q49<WjwKyUKjjxvE?TXm z{bhZzMLX>NKa82?=G4~~P9Ouy1O1J75<_gB;3ZJZAw_zRY~pisegu(b)&0mnl?13U z?WtGmtZs>0y&=#S6=<k&ZP{yW$AI7Qs2_!KK#gyO(c6_!ubfFL3wc|bn&!5~{|vq_ zu`b&=k->M+9{&!zyRMi|$`3YuudXqqb%4m8N(Tl<gV?b=qUbEtQaBwoMm47ew8blr zbRs+bagHYi*JL?TryaivZ(wL=Tu9ofL%OZbiDFxQU+rSuU%S#0wTpj@Yol{e<wk1z z$H<p$N_S=kWn+uOb-dSEUS}1F>ZZ9B-3(p=5>s^{nZV9VMQu1!UXg+)&S)hC1d|h- zEx*)EZKhqi+=%voI)?-ZZ)z9QsE~zi5yl@smv-4E*;5I94gS^L*?8e`@uf44xU*wM zgQl}i(XoR?^tzKp7`8*XB$?DSK|_2Lt9sdUx06MP0$>`qcVx^QctF_ub$TyV|Crtz z4}04CMY&!S>XsQdug6AWT|U+JeZDHwT8yi%gB_>JHoB#%HIu;1AY$P6m&^d}(`w_C z6bb@-WxQkaDvETB=&;{nI>6&!E%dj)S&GuA;^?K~jGx2ZZF%Dr>bZ(2D3gp!e;*MK z4QKeTlKZG=M2kM}&2|qrh21UI`^Vvqa!X!g(Q84b*Si~pRXNdlwhp9!kVuIw=kpBI zKjrLckxkaiwZ&2XR#Z9o!66$glObi9wUSHi#6z~d^}-*Q;88$#=7YdPR{N3>Qq?<E z#g4Vm2q{*}&XivMawhc=c4oFXSjU-87xw&f95&|9>2dZH@$dB*rq!lXoZi(&3Vl{# z22%HN=zcBUYP581L~~;~+W_o&FWIlDD)&^Z#R;U@D*B5Vj)-aTPp`l_1x|MDWX*(i z;?niQi3a*MN6M8oiphe0{>27g&waU!*GUC~YP$O5vF^yXuy&vhX7=`Q)m+<S3%Lt{ z6IlxBG@jIfBu9t>qZeR*mqkoUZ3eA+M&!7(fL4H9<hbxw{h7);QMNEUuJBd^l4@Bx znnm%q8YH#Hh@oj{Ts6E}Fm-<-vb4W)2^uwNqSA<kX{2&Rq}m|$ZX(QxsA(LFR%)KC zS`qbZBKC-^X%dT0YW|p-bb@lBY-(`=E&7O;slRe5ohk;k+K5r1wpJdUTC`FUHM?|W zovv0cUO8Uz95rnsVBdWod|z~*%rtRF11G_6rle)Ws!+;OJzxZ9-=t7XtNdp|%}iNF zo@fFGd0B<Z0xfPrlytjenPZw`n`5wJkz*3ENZ0o1+@&0DmuY{q?PD~8`Rb2ogw4in zPY$omV8W$K5nLaW{utZGFbRH6p|?`{=Trp2=50)l*O_30<x6W^ALD*|+s90V?&fVo zj@Rj6!R1SH+;^jX1KUU3<{t!EF_>FH?#TL)$y<f)*!t1wm#`fu)qUeF5T8+L9XQp! z=S%*JJ1#9?ZaWNXQJ$B84iNi+^h>i22z%h_rE3S+#XzS!=0?=RR;N4RMhxOs;3LxC zv+ex<99h{FZNHWNh|v{wvDN-a&=vD?3HIOQ?JsQml&`*`JnU*Lh52&o6c<gPzQ9$! z4Cj+kg-OT7RXn!bD{a-2Q>TPm9svoKP-mw@u$SOGjS0^pQkM|xYXrac*o^i1r$huY zAwumUjSb~;!H4WZ)Ab0`^~G|*O6+3M4c2mf9ohx|mw?QFlEzQuq#1lugGc+<r6{c% z8c_p_Y0S>hTj&nY(2r9A{Dg}!z}=d!8b<sCF_c?j?kH8lf*gilaHoOuOFzf42H4$M znzppzzhmiKp+y?viaX%{16-|Msq!Hx46$Cy@{KM&8306<epDfRl)Hgf_upK4b$nqQ zh`2QB0A~b_UOKM*)YwXNN4FdNhthQ39l>tsYX?SkKYk0U+qT_W;NmWVJL$$x&Ru$U z+Ku4mU3_=SKfv}&yAG%e;6DNC<##V|!oU7iFVO6P;!8^}$ZX)@rH2=Y!9en*sTYI+ zaPiW`3v6?s`O?-4>K_DjErjr&kl>RG`21yMEri{D6D`%7$S@L{$p3Y@d_Y}<=5LZl z`@}qIbV=Btnit=eoc_vMCG&>sF7kPcI1P>Tt{X{^-A*nl{rBbIg=@+T^5;@;>~p)v z^1l|y$lKegI6GPzJO4i(zLoK-3aCP8gWZ-g_K^WZ&`C6yLAI?1Xb_^7^x9wuAY{`5 zw#}q;)a~Q0LXX*AzfzV&QFrTo6RyUb>tPeX^AY(oGo20|#=V>lh9(&|zsT;2fg|o( z^n2mq#q1r`!o#u9jnt6!qhcqSy3_R6L#vy3Q-~Ae_BsVybk#I=Di0rEQ7qV)yE$&w zj21QOq*tf~eeYt8`W;|v+Zt`z(z>{;fy-U4R5OgE&q6<|X9jImiXW`FzyKHA#6F7> z)E^l4qv=jL$c$&fMx^@eD4M#v^Y^cI^Mz0)<b|sCA*AW>R4;)<a|`OsmH=gcqhNov zV~Kd7?}^w|xPPS7Bs1mKSIDK6N3+*mHXIFB66=0osEBD}aAn1PPs=^5;|W%;r-)tt zYz62LUv(dy(sDT~`>_@u;6v18%ZSUB_5Fy&I(<iyi@mn0eQ-m%(5M^J^aH-3<u1p> z<StE<93dEl-e63(NTD=g<+uXg37)x(xc4rOI4nWEs^O{LI?I??j@*b$Y*l4LA~`bL zjq-~AWr}&AjCx$2t-C+W`%RM4J_5)m0p*Ctuesk6;S=rIGRYjN{}q8cnoXRWg6TJN zkYzOXElcE^T(_jZe6;JDA(mwqlSpu;mdJVT^oFXF<sQl%e=!Fn7JxiVyb@Z9X?(4q z+5_AId|>8`R}<e~<rz9B!YJciXf&@S$`0pBoY;;U{tjv%=NAGv46NvEzIS~#^6M6B zpVc^iqriH})q;ovDh;6+VVpF*bfXmbszyN}0l&m8(VN6fSS^n*;bd<+dPld?PCqFY z5t2&25IpfW$+nz`;VvHSiHirC;R4~WAKOC14@6oLE!;PGP+(n9fn89fSx|El<HxZd zLdB4GN1mcEqqr0yL+!$y^e&?5v~-*&UJ!pg`=p3-(YUDLsV}$&sc@C^9Y&gd(R7Bw znM+4bry6Mps>}$g?5w38m3rJlj122?WtNa`WUQ~3TrO`zrgO0-uUnrA@+y4Pzu(|0 zV*?TldN=1B&QYtf%ZBcB4E=U8P`oeU{`EXXYh48i4(`jBD$M_ss{WU*{p*@GDCM)I z{}99PqmbS-ww?;sNJtC<O-YH)5X6QIJkmy1J?<!gwn~V|k6vk3_JTjnOqLl)<{Cx+ z*+6sA`9LskN%nlu>G6B)Vg2QNqy2CV$n|~yvtBcjd0aNQTMC{@s0bpLoS1q_m8B9? z)_Rr#Nnur4rYIk++|r!={I~`T7_A;}#k`$aKjT?keBk_Not(E`<zg=5HWFT-8A~P@ z2wsednV8rfKH}L13)R|r#To^io0u3m0(`h=Eo(jK<6IlMil1&A@Apfuebvy<T{Y@( zbfTk(tk37FcMol6TUWckh_J)}b3|BR00wyzIwopHy4f*IY-PtL?n;hJ550(+V<cmc z!4EV3Ii;qdlA)q?IP`q>xJEsinGlPMrypbls_aqQ$8d&*om(;s90R?tRD@ah#r{+X zf!(YXKDXwk0-vh-vZ|C3Gp%o_FD|I-Q*!)0p3wU>WiwME*BV{~`SMFTaJvo|<OY+C z9OScof~r6xuEufI{|w@~CvHJ*f1KiEjO+d6yr(ZP_eaFtJR2HXzpCdqWpiu;%O>n1 zrywP5!rTzdUc4M<JUq*eGbpi!JU~OF8FzELntHwWBovPasp@6uNJtx3W&X~gGOt>n z`UCYlE4yske8H+LB^bx-vU6=})vY!ss)7NGo$AAfplzFsTzaV;2|dM0SM%nLoO;Ky zk=3Bdj3`V{RbIf)jBDlRE=MQF*~^GOVg_pSAMY(cPJ3^`ESS|5w5+tch5~tkmnx;V z*@Ci(7as2JU~ZPN<wzd|;M;_7#;-qSkiZ^AY=&4FQNs@tFL)7)i+>Jn-{vemR!ku` zkgh;|028mmwcQs$E-ZvrcZKQWqZUne`IjHvCz-n9A6*+`{Vf8Mzv!a{NpQ6G%x$l3 zi*VfCnuSDGUr8JeDzN)V`D{onNM6L|M|C=+804+5;d9Sw4y9PF;jAt8k$Ux4IH*MV zipe=ga&m;D;a$mhWGiG_hQfSAs*P&KPILKsqZ;DupoX*S$&$v~rePIJZ7F#UbMesN zi`~@c<v%|<cRZGW=%0^EFh7<d5(0P1yWB56qe(afUw;y~+xJX1qzqE%WB!R=oKDP* zb&bF_w{eJNFG}~jdIbN-RLQc3%c7Ltc$?(Q<tiUT4Mzpj-?mRv_u|YY^$<Z_fwLE& z>^Zi*INF>&?!PsCX0DX=rH}-*%wg`yG82JVnFUo8x@QaLP^u}3>tGcHCuyfrRn<}z zL!&68DWibJ6bmhjAQ591WfyA{Z4^_wZ%``Xxu2^oY0CrTStxlcfhmb7MN+AwQCg8% z(S>8OBa?@wt%S&nvZJzNl80-DYKO;(R*F`N*^1ikoBhs1Q{q+fRDx2HP%86&<Wfze z(wmc-)0z{To7a~=p%_8pCjuxYPy-|r$VV_-F!||Dh)0mQMPot%;RNWP9_w&Gn4{_A zkeEVf7TR5tpzH~$Im63TU<sd6S4s6S{Rt&aP4chj2);a!ykgOyJpVirrP>nF+lCTV zRSFtR1QY}e1Y`ts1XO-ffO;??0}e3`H6Yqo;QYYDu#*U&bQ@=paAZ17o2MaG9j1@j zNeocAO**oj=FM{xy9nFB^d@>%yp26Fo~F!G5X%k|j~EOU!1N}5R=!O<vYys#U!=O` z+!$~evrpY*?lyn#!JB-IeL}r4KVTe#88b-jX7)9gH<34zH<SM^Zz^vrZ$4o-Ve;Oa z0n8ZB=+79<7<!H8-rTq)^6&@b0%8HRfG|KQAQjLG2m%xW5&?~XC_p736VM3=1mpwa z0rh|gKsg{C&<+Rz6a$h0&43s{H6R<%-3jEn{$E(+9rm5p9rvBb9mJj39r>N<9r~Tx z9s8Zj9m1X5-Cs|Z!3pn4`yTaR#C!Cu8^Dt{LqOnbadmb7@!{bQ?aHsk-Q8dx`rv$E zv|HSdV2NL#zd;HUu|Nm>;;11GB*xN$p&=F_0uTEjIyaOE7N)9WQ59GBrx|8~7Euo> z8@5tJ!2Y^D3?2GSJ>+CqGE{WI4`(<{5mgJ$ir8Aj)&xzI`1BjTiC#%W1=QWIX{4wM z#JgC89FRI<HqpUv@GKZcu?|QfHsDdeqH>v82zFxSa$s0MP=3kfQrBU#iExA*42w#N zHu+%;CrzQGf=dmnPr)wZXp^pf!!^;dh>#67F@Y^0S{33o@wA9J`-1-qKbMpRU3Zvm zSfofqpbqs`%oUQe4(?XOH3-y%^C)KQ3*t2hmY)|=mav&H@ij44=vV-W2?rW!y9mtn zcXym+FzHxs#bD=e+}FrhKhIzSV`KV|_Kca(!ah<Z?gPw!wf>6m!XuCn08t>y{z)0z znaf#+cq`QA{?3;rn0<ILdeiRl?!)H`GP#+3_;C3O=Kfyn{w|#5OEhUPaD#dCO3wE& z%jZiyX)t(`eDfOU{@%;?ft2M-H7OW*=o@_Ki;*SvHDr4jnF*8|MVur%@DNY_dG*+1 z2JRB{Sj;{47NtWJ2O?jRv46BcV+(zz{F3IF-974-r$Zh9wn5YhV;{E>&@5@+zgpn7 zg+J4N$#Bf?9&;<uq44}gfXEw~Fis#KM)I>FvOr-Ab*A`|`k3`Gk_|^Zey|5?=J1mH z816CPmfTC~8MceW8^IucuupS_^Af=lFOt+7ZZobc@IrF4|Dk|z3u?w4OW_&WhwKep zFxDqHTdKQ<u>gk2|CaVu`WeB8^zCbRJVl@A3|We38hpHziXp5ejV!rbpk=`^Qzjdj z*)Ov`*%`u1C`*hnlJVf>0&b=dHq3*#gI>Ow?9X0bfiX&YKZt^$nqLjj7_k`rMl&dy z!rHJhQlp00mfUodm44_2i8XNzu<Ehu{Z=zLnj+e8)>5a2_?G+?l(v2d1yMDz4KN(B z9Q|f97)!z{usTw!hPalzHk9Xn_yw6YpEh*YSl52L8G<E|6*y0+7ehkJ?lZSf-beL< zANTfk)JMXkJHKv|dHJH{%uV>7m-;0$?oEEw$K0g5zHXCy`J&^@P3XRz>P0W^jbYSB z!=$^sZj*iaqV3F0<i4HyWj*fA?vwZZ_Hi@mZg1H{+eN_tES)cIzQ6<bNnd^xv^4W| zjh>Yl1!aJ$d9>0R-Y3Ekq>pI9>oc0KOBwx6_pY7vgF66%hCyfKn5r=RG|7QSymY5; zKO<TNcB&y@_A?1FP2G`4idu4(M!uM8nXU4`IZe5yh&^LMv8=$7zPLU?n5}ZxIU2=6 zd-9l%yuAn^gFz8?z9Dv2OgfR>cE>qP8C@=&TdxSM$P%uYHlfUFW#pKq&?>FTp-r4x zch*&Yky^}RrS}-J@FdOEu}z9vd6q%GnQDHjA$`_Xnw|Z8`xdiMJMG@FO{BD`$UEbY za`;R`_N<q*3mg7cgP*dV927TwfvUnRv3vxTm^IIsC3E3(TJ#TX;Zpyi{EQ@JtCC}^ zV$%d8HvGee4CRU<)C_gS@LA`$S!wAgw#=P|aAjk;V(!W!wCZE{V)leI3!YI+`a*EI zL$1pFIn`MY`BQ54S!e%QNa=BQy}gE5<-8)93=So$++&vF@dRzFwmwU^LNYlGZrj2+ z=~;I9RjS4X=ge7GX<N4St%g8l9XU?!^MZtmV~k?G1ZB4MgNAfvUO6|e^TIj(Sv~oe zI;SG6>}85!?*65slr5?2(;x3|sBatPiR>%4umslPKh4sE9;I2|>D6z#|1GwQ@p89` z{j;TG7WF^%atVKTGW~ySR-+a?yiiSXpf1hRelPnMSq26*V4+KEM=SpV_^D~b{lw6= zgb)$Rpb+83ic2dXDnW1DfFdH83w%MU1Qmlj1*!6EIo)_T-e~{RIofu*Q8#%Zm6jwT z_#)Beap=A2ap;l#;7#dq*sl?TsziRrYta~Aq%<bwaN<1e-1Zxo4D+jDs#K*Iiv-U0 zi>?XBuT15yCyue=)>96Z@peTnRFy+a&4xWXdTg<F^(vf$9qVHHD}G<y{CIoyj^>Sv z+wq-aBEp$xI-Lm-yUi)x3CACtEEyRde0uo05%Iu7dfSh#{W8s#j)nNniJ|z<@+2%s zvzlPo)A4UhGMko;nS&gyF)LHdDQ;c)i)a&Oabz{-PpRL;OJ~whuH;E$wHFO3RA9BV zr%gp|N899$bGuejiYa-~Xe>i1S7_CPc9B^ZvMP?GQ>VkzT&PLI4pL#c)5q^qvQDJ2 zVC7y~y6SP%KMgA3B?Q*h(1Xh2?Xf9Z<6wIWdOEz_r3@H$Oh&NFW~t1qYU4p)LR6YG zi5ocxwrg*2#!_l)tX<M$Ev8rVbayR7L+*}@_`mP)sFW7*j1>r*7E8pPvGpBDv+644 zQ%3b3O5s8o+DaWUcMY|+(XXK>2#yn2RKh@xauF_Y$bNY$SCTy5L)6fY)ch&3LmZj( z7{Kv!BWuT`6r@!GVU%dXh8Gh4I@Dt9ShqL+z<l13&S^)9;0Tm0i-6hOf}q(Ux&@}0 znnLh%fm%wN58xf#HVhXyVff02V_;3j6??rt0KvL!cogfLAmbtWb<~;y6WcmcbVf6$ zxDUTR{|N8*M7Afovl$0W6L>LHdmt2I@m~8DUc^W}YrN#H;pR6$L98Pp4u*r99Tg0? zAk8a_jhJ;^Wo-m!k+C{g+A@05m!_ZP+#89|xK6Sak0tdB&ag&1PmcS0PjWbV{$MvP z;tEsoIBK)%Q2@&-afNBeAkbn6!!<k(9u+e_b!IO0bwh;1mB`BJe6xWV(>u4pam|rQ zbUjE&Z|!_@i>l15c?;Zm>xN8Mi-!0B96j-5>xKwd+5}(qDz+Kq-vle=(*isG_p^>s z7*oPg47oCbJUnYzp~utTr_o)3B!kidq{xCZXNV0hjmgW$+)-brZgBKuS=q|+uwkDB z4kC>x%DJ`!s}XoRbCd`>OQvO<74t=$Q*cA{iBR7sMFv}WE6w#Z+)FIaEad<!HfiYf zxfvD$9v+Tr5n85SJ>;!fH!-oA9@11`@D2=X*oUj57R=62Y+ZD0dTU5+DNKnrZVy{f zIhXQMjrmU2+T+{`Dmd-GvHm7C4^{zVU)uPS<PIi}6YWAFFVo(;+Dzr06wF^=YnzBH ze<kE_NuZrU5a-5W{}k|@()>rPhXrdZSyt$n+)*aJ9G>0D7*Ys+8L}A*7Ov~~#q{l! zQ#QA`58seRyiaGTKTF5f8B6bA;;UbeB{3qtoebrKi65oQedGkQ)cj<(*6dU9qO@@h zTq_$Su2Ppr{3vHOva$t5vXcb{`u2b$ce3h6jE3W=niqSF?@y=4RlPq-syc%EvS*Z| zO3H|%di7e#4KewAI122#IEjB08lBl=6HXpIUU%}j**ICPPz6Qy?IoTDcH%(l?oB1? z9T4+auuJ*YDS6`p^I@dh0}oU>`G$lLbnAZ5XK#)j>3KypNpCXO-NmV$-+ankhpo2l zC7Op?<108A+S>SAbsO$G#kGf7cc`NHViAndD5EW4xw*rhGJ1^U$HC>-rod_IzpE*e zhWNp7OtYsVZR|`j_tnMGpd+3a21w~QN~n3+Jv@8y%y+gzfWVi#nv}6F9!FeDk?Xto zU3XYXneawo!J?syNa6NdlIjb?F>Yh&cS!4ZS=njzU6JfW%+{Ka>L-O^kr%K@NZ*jh zV!%$5FqE!s$kHD_QHk*dM0mQ$`lPO@amXZk$1QTaVeLP}`8Ld3Ur-{_Al=<2{U-iX zuyF}Ht1&Up5=0YHICAU)z;7>scDr3dw>zn&p49<ljJ&H{{MOTlvb*`rkL8H^ctf_w z!<9JM!-C^#a_Bfxaqlg@<}-6#IOV#af9*^l<!JfIUA^aC?y+9A|1STBJr%?0w?DVZ z%~UV8^kFV(ddSzdXja2m<-k3V!ooGHeXJES84dymh(^cX6X&BA9``kS!&pHbUc97| z!Jbb9b>%NojTx;#k^Xz-?;Lr;Z36Yl>Qe}*O7{B#n%y&Dz_=}%`SP~*2StC4@nVT4 z6^1U(KU}BW$AKQ513V3I()E)x;{?SsXAU&uc$Achl4MH|fcvGY$ulcoLG<BXdawA7 z+|l`FYD}mns;Cp(acl1lMR-#3_~zJ<HV<<<EQ}CA+<#uE5(L>@9I!HY$oi|!cu*$U zDD#-@5`T(dGR_g&ht>Yj66EA{?HIGQCDV+0gRzN^n{`tjnm7nPMPCe1(|q;dTB@aN z$#ci)CY!jxO=?ok;+tOYkbRhfZi`9Y1G%0KeC1dfPPafMtQ^PtgOM68h%fF+bGIC* zHu>F{2G)My{!F;2pW%Vnrrgm21!`ioQ-b@LSHq^uGGu~lM`u}oV?e>lC~LpKZa2Ti zTa#>mS#o6mDLjG4y?*~vkD^jq!YG|)H4Uo1^AD`n+~BX1E6(7GEI6E)sUSOE8rzZ% z=)_$d5st~n!C&htD_D;16l}q3914D(Nm`pZ*S`w08En3mzNs#F{q(Ay9+*-}bN&hI z9^+1dIECi6!CZ!wQ!1mV6b9>7L}HNJJ9INNLWt{o_UcgL4&9Te!;skn;ph)3?iWjh z*diow=?AI^-C>Bvg^1=qZ3ut)*N`<BaN|#?`-K4<)8E06j|u|y+m{4?M<!%h(D+_7 zMUbKZX(j|&D9k|Y99UgY28d+;(Oy|5I9-sk-oz~$Cfqqc?H}wVVE=HXf%keTBI5Lb z)*!J3Q2ap91Wyx!Yr&v{l<9FH0#6E1uYsq7S`0+rg3JlzK!QXz^h?aacm9G}0m>Ob zrHNof^p&SqjtC@<2%@bArv_sUe!>543*!fE3xadtDz<?44*pK&j-FABd-Lc2uXfLN z?|$@q%z6CvSo0W)Zr9K&r(Cb)rMgBUKq0^&KrBFQhwce19w-Ky519XrIdceUQOWvj zPNDyU{1E;!@V4XhnN;R+1yQTurQ{{WM@4{w81c4)d}Vrt?(mI|h5%KNxQnKXqKl!6 zm;h5D)IK~LZ4*V1+(-L0@=@!`_R4AJ5a>3*7;1plP3EKZ8vdwuWxcZqv=7}x>n8Wn zd5wP5yYk$501}1@qHUu4lD%ubhCQlWneR*j4MMxoe95~g-?d+(9(AtVb}oQ|p}uGz zWbayh)bC<m2CwChoL6917dwKVfuA2JAN21Muhoya?$Z01?qA=5wAU{zNgpFfAD;yl z)oSd(M?|%_kFAPas>=QBi}kfr@hAH5cf@}^&}HkguebON9brNE@`d4lB_>iT3S3<5 z+y>0d|9Y$&wcz$i#L=KGZ_)~+MEp90{XtD**rtM6;OK)W8c^sfe`!~OFw4!xrBN_T z`O}1hJ#6S8H|N#S!G^Y=KWxB#ew_BaxIkLT%SQajxERMj%yPRJrCe_H9Can3$%BQH z8z!MeH=PzuGb#G5ej=q(k!N0ZmPMfhWRc~Zg|`elV_=_^jd})nvjc%DMT`tI*99xP zxhvm9$O@E#H;ZF|I_Kr|)%U6vdllj2X?pa%n#No!8P4RpxrQy&c+Tf~ddNV-F!9vF zZ3`~7qS)S8gW}j}RBJS9PmQ4b+>@q-V8sB=-&NrdV6koANazHeikTb9GUiGotVO0! zC4*^<W5uI_c{_aE7EwB;=X9Adq!U7Oy{a{r&|uiC3&M&@bNSJwM~Z($AjMd-ZGB)w zkccSN22!KwU`Sh-C;-b$Wd3v(lSp)p86ytt#@=5`n%HZx;%`)WjJC^_+C)IAY-=_Y zl#$o4ZH0s9jaQ`wCn++ik$k3(%wf!1ocSCe-GGIedDy&=%~DYg&+dPxTtDwp6*fWr zz5m;z^Xa`R-JNIrzDT%|B#<Kdw=z!T<+_%4ZIdXIDt3~@l<%e|LxNbSCkiQqV@XcQ zuy|)lbLxl<Tg0_!qfhsu_%hq7`2OF>k^SXik$hXWkU`76rA<!hgCk>7-s2sDcK!Tn zvq`e3U}tPtvcT<{a$Rwks2$sy#XnAsf%usdC=%*B4^QiPjvj)piKhC8oV6McXxvuv z4>GeBIVTUVi<P0(6|cc4rc+-$O!5+G2^CVL#Ge|-x>9y#=~%)rV*iXSa3~H!vRLpA zx1`FR&hOwMR|@Cl8a*+cP-=6~<-F5maxul?{7wqpOLYu(ntBYtGp;HPWLYe_F)4G& zSB+*F+r_J6{{>m<fQwMX*O(s_9IA&<#x5I)qh{TL#U7?cYC(2!f-;gwaY(^ZecGhw zQyeFE949etp|49jGctgo<p`zKCg@6>3WQ_{LA{wF*ZI6GK2u5R>GzO$aYU=*2d}=u z0lO$t70!Mo8=vJ={9%_@exfv1=jmq8+)NWdp^d`yhMez<)hscb)Jt1c3o_9s+t{(y zx`Xs?Dy-Tl$&&)gqL0&Pt2X41Mhoz|nH}4u_ms8QgY!E#pEdYr<zSlKL%QY!+Dt*+ zLU8909w9>d>HZC!4-_K60u2uM-sYKT*rMO1%>)_=p5J4^1Q`kO^%r7>As!YY>^I^c z{xHwiE&(L}J##am%Yp$vWr+SJ<T+?#;HHKcDF`EX=+@wNTOdx~AWFcYj;Md@Zb3i= z1b#zLfhrS1;KCY%g7ZV13lRB+&xM8udD6Sx6SIREAhrcvqnXXfjgk%ee61G%i3A=+ z1fKS-o*<bH<ogt8G$`^EY#tHh&X&cmFH*liZ4Ie4A(H}Kf53BL0IR<Y`S12h-}#(4 z2k1GFaKU82tNW|;ly0&8;Nb$xfSCX_4|M8j-QxQp(DFqWngJ9uP^PDFi{%G*3#cwk z6{tp_bx-3KPmT7ZCV8iRc8z#jaHoG~Y-d<!YG+VqVrNumW@n(@=*I62;Kq2B@nSvh zQq&p6XR2o4`q;+k#*p3j=DO9Tm*w*_u(PlCLifb?-|vy{mF}7E9qwW7rCcdr&|cVH z;9uxo@Lu>{Kwn5+P+nMGU|(ona9(&`AYUk6l7t4E)x0EtZfagJL!0J;hHkZlb%eEq z_1QJqb=kGq^#(Ntbq2Kt^_w-Db(^)D^@25mb%M2m_1!hyb=|ey^}aQ}b-ty=Z#uwr zns?)pRY`1}-`d@&02{JZz#Wv)1>w)q0|-?{0PK8B+o{37&e^RVsWu>=^R+(Ve>yYx zpE>(qr|k38&+0NajG>D_Y)GWNXf!dgD0DQ@vv3>`A*FDh&}cHHw9rouS1W29UP@8) zAX-btJf1_5Hh|)JLGOwhm1ZYpZ)X4WU3hK0&HQ7@>0Wf=$!FuG%b@k4lk;YOD@o>} z65J0<@-BEnU<*-Cv#rkg2IA)*FSJvcnSKy{?_OL$trNYBJ=6d<Q5GY`r3WDtnKn|& zne@d<qe?R}GYmSa%nfUuQ}{Lg<*=g`65vT$TuS=)<7?f|v+GT$fkix~f`*1cznslQ za@NuUDn|D9Inc?93KO`F_*q?S2TPa+Ur}i(Euq_#wYZMHoq+43>zUWJKBb`6>EvQc zjMGL<xDEgs2B!LLo?0I%%V(@+!rrtz2z3zf$#Qq_U@tkf^Rysg&kWPlEE)Z}mDv_O zA8wSs=WJ#sFU&zqY~ECBij}X`4B5dKCyuR(t2wWxfQ!Ra_I`YMT5K5zF@4N!eC<SQ zR2Z!!whV!xIhS%+;sC^GXdBtL@N(4xS@Z<9VSpc|ZLgVnyozdwVONSrgix9TDJdmP z=GVx!5%c3|uZLz}?}d#bA)>17OnCe6gYiSTQE9J_i?m+%t|N~1wYYC@0ecv!P}`?8 z*cwUc*{Z{CTzlc>3rR0|O3uXL)uO;hf7FvlAtLZ6A?Ufgz~^6kP~J}^gi{FcFQdvH z?!JOpU#NYM;DugsW-`<@o*=KzAbk`Oh3QK)jK3mO5|{|}UkdVl?L4j3s;Y1YI6YY| zmR$)fzTKR%HPje2=!O*^CM5E`cDpy0uuHf**4agbm4dOZk;cuaJV#1OUc^ggPf~pR zLC?8>@qJeQQlm2Kym?$gunG8HL(C6hM74>L7v*!r0J09rb1KG4PtsInOb;3(w$%!4 zBh%aUiw_Z+^o|@9AL1M7Gsxxa)s&`sKF&5y{Q~rlsg*DOl{(!J`m|a$2qgJQe#S@H z$=1?^9P#_wr)c$fgzSa1NqFob7%V(U+QPJ#WSn>;&a9KNGy};P=Xlr)y)fPDE6dRi zz4xt(I5tDuPPsp@-P>(BRvitRDY@muix?rY|L8j(mHm7))Jd`3<2xddI`XU1+Nze= zPn?RQTye=ml^<pc@rFpv%GGCRrk~p`t5eHX|L%I16<@W+dU2h#uW_d3<DszV+g6OK zepOT%a4x^Zjfr!b=)1revko*acRvejWirr&i8pOnpUAJ}Tetl@tNJ)<Uvjf#)`-;D zd<nm5i;l?`zq0czX&yaCmxgcvAsh=R_0_u#Nyg=SsKyy9C-BS~62DoJF`Ia(e+NvE zTvoQd3dqMbGl6>LAb87?5W}wYeY1e_m?9X-C6)D`V8U<fu{nY~CBpbBjL0QJm=1?z zKCR)04hf@<c3aD%G*=`Xmx$<HNj)_Q0DabhGxTc&SFYgyWtREV`4k2Iwge%NPuQ?V z!V`;xchYaALF0?}*OjRu%JBQ>0#e46;+1s0^Xcd111iF}JDPKJk@^)s&T}m3#^zl4 zBNe4Lk37;FkGy<~XW`3V`L25&BTDf2%RNJ+;m@|>29O(5xzD4-CZy-`AHrtb^qPM} zF3jvNWSiyY7*5DfknS+V8Ws83iegwdVzy2rABg812kVcEFE!>CVnJY4xzJtE{KJXF zYDh$tG?WyO%Sx&(ax6-qRoIl-)Y%*c6-ae=Bg@Iy)Yw$mG#V5eR2!6k(vqN6qT8ay zhEs{@h&AM8Itil_i%;uM3r#CcOHFG{i%qLd%T4QHMyTB?-m2az>y{r?hC0b-iG*s9 zQ9V<kpi6~!O~8r^iq++H8~Krl#g<8`6wpG_KvF}}>W0Guk;ICON{mwaDzU1DXLhPp zbgNs0nESXxnUyE&GEwDG9MM|C`NX=667qVqMzAWWR3nwvN~n}0)zE0A(F()U(M-b~ z#e$47cFch8KyaWakPJw#{b~Y416GEYUi<KDbD*tNwTL(r8>Q_q0N2Ak(H?02sH|0| zRJnh<$}tMwAqMt`OQ6Nj5UB7~xeH$v>`((|!_CnqX|h!Ks@;W{RhVUzj&D;2GtL`m zQk{m4CfGB~AM>_lf*ElqIK6<EYUb_nV~b;eYTOS5r>>riZc9zmmZ=}Hs6i13n=J3E zX6xh!UZq+W_)edO*N-gh<}qCZyI1sJT7*r`MGbD=iSJb$y2dRFKQgxg{RqLh2%Ok< z9BW1`^FPwJUHkEac@f;O|8T4sw=Dk1-uCGS3nonILQK062@XMs!6IPiGjm_N{Mo8N zh~s18K69C{JrrDwFo~7L{yK1}(mx3=$oblLDbrsKKZ%{i*<t8DeQDiq58uuHI&tYa z`+<1yD$$<}@5}KDywvEI3GQab41}Vjd+Xat73!`wX*s`#Z%)<-Ufmx4;pu6vSVoeW z3wDgx8H-PNOMEA0Fr%#*F^Bjj`8J*1z_CDq(DOz4S>i;L(h|Qy1SizLKnP0|C$hJI z7)w|i^E7UuA5f5sC9O?(8qd)KS%6SWY>5>d%h4xZ5LL@;iE1MZK+qRiK}(PO1WX0v zwcM6)HbN^XI&n>X>IK_a@;Ls;1(mhzmbf+|IAO5`N?2km7^`vO#%!MiN&+X4x!}B( z-xBKV+X^yooNJ$aL1rzhCFYs%3VM6oCzL8!ujRF*8;rZ}At>OlrL<%`69dre%dFsf z#t(kyu;e@VMPbNbNjOF-H{dlxh9|ay2`BloZ82j)M|K`#ED5z0RY0vNnig&>HCvOy zhA$%tWkh{U)Dh;)loZ=mlfec?D;cu&sZ{Mqb*74@#1BT5q$ZOL*(IBy8zbrbT20zX zP)*qhVo!wcPbw*~BROMJDkyO>nfQED@a|RWn=ofUbQhEK3|IKhto#wB>>E2LsD8qj z^ej{Gu3Y*-QQ9qg!kGL_Tk!6n{4uWl;a=(+Fej*Vl1+BE8PNPoe(-mJ$`9D%N_X00 z)r_?51Dp0J2i}c|7O)G$wJ<l9qHVT8J$KAqyN+}R#Et$I%nQ@CkO$^JLoe8~4m`Uc zUVc|Z0>df(tXPQKB9S3i-#<Ma(7Q@r30GJGgYI~Q=6wDNOj!ez*b3V!k;PY*pRNx0 zT`jMqD?EWAcY<v54nIaFvmMz%x(r~+fb^hE#&}Ag6PA+$gE7H`aYra4i+*1+7US+{ z<P%r+6>L|ZJGy~sM{qT>{?H<}{T6N{M2p`QMc40=KAJ&c-C@n25m*rp%)9hn5my{t z<C+07STYXOyZBxqR}5XF?ueVlbp580`z;x@pc+i-JJN$Mj{?T%KEs+(gv<+DQiIxj zK+O<B)`eZmK}f#-rBHM1^h?x1v)6=L2ti{T;3W3yCETFvYg{c@x6#>vQ>31IRxK_g z)BTp%p#E!GEn@fgvmtwIs7u~Ks7H`pqW2!IpMor3cNHQ@A6a*)-ut+MyIG=l$p=4M zIUf~YUL;?5OW!hQ-USxk<*j|q8@lUPHYry&i&r+yS2hn<HZfN=lUFu1RyMiMFFNks zgkIW9-n=W{yz}3@%ip|<-@IcsS$(G7edgYMX5M`k-hHOuedga8EPcB@Oz0pdyYmly z3HTjQ_^(j-VNm$J$p9$ifH*S1v-It4{E<}B(J|vR>$f~gu{=t(JW9DdO1(Vu9MMUl zu&iDbeul6t_^>Qu6#i5cei3p&u+(kK=c|Fs?SRznfXpqK<n3prhE&3lRNT=q?ewfd z9;H@ZakuE?m#{3fuq@TEEVi&L=ddh)6#hUm0Hn-q3mJfg3=k}NYa)FMpLm2#F}<5~ zg#GSz`}!d<NfVVdkHc@x23WAVt(ZO1s-CVF$~Vs!pQMP&8pq++VFNT--P+6^Emuv~ zi{zUZi%&8{Wv%1zd$IxUt!~dgzo?#e$`QZCn>*qzn0C_4KMWP0REo+n#^E2b7XAPA z=NTmw=xrK6U)Qo+-})cQoSUPx<=t9s2es%YB=(k~>cunS_uR3~E4hk?9k9$Zxd`KT zZ8Pq6GAN+Ri*1ok;dSP3IKo|$Do?`F2cCb@6B^rMoT@Z=MKy|5OfHp~R#X~!Pb6j6 ze)b4J=)4cEFf1h7%yTS!t?e?R?a|}~@(f|%SSM>9E<55_H)~=pl^Iv?8|j(QPHB1q zpVKOdjL%U|ahn378VxG!mtmO~Kx(^;%d2X?hTnnd+(o)bRuC@3vM+qE^)V{%s*Mi4 zW7R>3bWyD^ShBLHFgAJ{QBSFjj&Pw~Z^W`0?b+-^vtkVP3%dSLd>wj4s)_&VwAVxb zK4fS%#iWUU&6SZ?j=zuip85WN@z+pTYW^PAne*mPkEY^(<gfqSOR@dyUh1zEe0~uH z;?fD?(+bYWp?cP7bb%9OVHAMVAN3m{i6|!z8hVNS(+VE9<auFKEp_(S4}QUJe=wF( z(Y%p-81lAz_QJ?|qD{B-;?R#_EUTq5Fa-XDV;>(u$|*tc>3+Qiq<d{pbQ5O6{m`0P zMRQD%z3azSD^;$wih#|f)<ZScjiui;!lRHAZRt1pI3(2&))YQWDVQ4G^JRo~NE!Rs zkjb8t35~ErN<CsCKt{g9A1wCi|Dll?oa=&Lq^T*ae7e=71T$TGRT&=`k7}G}qyrR( z_;B)EcYmsA>o2H8#wAQwj>uAO&_oTnf|m;|S~P`^h>EdXs`VaCA;Tvkq9dkZsgg2L zrps=;m9<1om#wZsMlV*lf>St3K|@zzOcI=U7G$Jb=crR5(-R|1*in#HyW~8M?CzGb zXL(GIgnXxnrye_<5f^)(q<_pBdmpp}#iO|F{`1M|^!Av9#QGo4dmUo0Dg*mf;@m$% zFGG=@S7{f1zGHVDZ;oLppbn!>YxwgeBp#5|-{20jIU{sVamixv%(Lj<CNfhIY-w7~ zRIm}yMjdMJHumYKCeFmLQBd-e51ZsyzwQG741(h!S>=;`tZDv&JbTV5a$R<a=C;`s z|4@R@{)-a)>Qf0$+$G9m4*jVF2M`D9rYikI2`>BB5B^JSm;xMjIS5Z!o>+32d=KLq z+9Q+LJIrf>XEy9r7$i4GQId)d4LKYZ_;W`XCbvLQnu;DA&NM?W3Dq>nQP?9lKvAiL zOckRHS}n-xy5>X}A-70T=27<3wBc}{BJ~qGx9?C`FE{Hlh&AX*xrEV++>8Dv48qS~ zVbX2f+}g`ZB!-rs7e6Wb9{LbJmEcODzqZr=D+|)x_<)jIjHg|fTpLzNxB-c@0Y#e^ zHI+lSVoKeDascK$$emb75{(C1O1SP9i8C4xOlA;+utskBlwR-!@hzGUhEMH>VCI2_ zCIF^0NI=*iH+#wei|Bvc8~==Q6o>hn;;8vOgGv8U?osb=cH{qKHZrZJ7BTYnYkjBS zoz*&^;gy-JKSptl&N?i+X~?c-nDWVOlhmtVaNs#}k-6)Tz0j$untG_3b1KWyIQD4F zS}d_{G$^iG^a*TJS}(9$c(9wkQNKex|4{u<ZZ2J&$3KyGNp90w&;O(LQ2H_tb|Q55 z3!urLN1zr{Iy8@ZB6XMW$6I^SeC{7gaDY%}iT=zRW4Xp$`3d`78$hJ9bVJ#`+-<J? zg#WJV`I~o%fHGmZ!d&qQ>s{-!uy<+K%$vdKQ`ED%cX5}7U<u)T_tU#-d~kRFa|=J8 zuAPEH^6Kd5zI^(^{{6jctGAc#tsc5_0O!&FCj>7N;rS~BFOmR^zz=^*MaHH+M*OD` zT$o~HY*;oGLW`=Ngw~Y9B>%4v+|{Ib%pWg-J2svLS}5VOoQ#FjQRP60V5DPMCKd6C z>V{O%6a+1YE;Jw^NHMgI304I|2zexrN?HpZNEMOKWeSs!Ll+j8P^cJQ$0n@;Nt#jz zKcbi<rZwV7C80&IPfeQxYAU8$Q1MebAyFx{4z^5DT}*Anszh81f1cVp2hvn-uHdh` zBYT^5WTiw-3o15&*g^_BoN8neSxyU+IpJ<9{2H#I=oQ75>XbC;nzo_v73Z9)A4y{Q z%Q-bJNmd;)3RSld$)_GX=M_ULVOz4unK<a0*SWwZKt5qJpLHMcNLXr<jLKJ(a|Bvc zkwZ*n#LPl`8E>3gCkJ9*;W3P5W@2+@g3$CZrs-yA=}Bk#NoVzGb?NC-gJFCAdj1Kt z{^19A=k*Q96r7&e{4|4`94a*36fZsTt~~KBKk=?UwJ$xjuROIcKegxcnj+rjoP}j2 zd`_$*2A2_|<D08Krhr_`S=`Q4fusIgF@qw)&j5|-Y-~S}v2XAukl&G5u>w<xvHIYF zie^~B%>B$6*#5|4l949j-_clc@>7|y`XhmwW_W|lyUbbt6<O$J21>z%${d^eQ)<ja z)~v`7mK9wk)iPyJcF5TbQk{vFIX*Q=^{)@ZsU|Hof_;o{%=jOYi__Ggr5?IIaWiHP zW|^9wTH*9#EOf?6#@zM78_g)Rsj42EG!;hbqc01?FaH!<Tz4T{cST)y$z6Aif2zP^ zA8Zq630uZq!)V70T0Yg_>}I@GpHA?=<*@WIhBYJCU5<Jvw@)Yd=vhC%ncyE*s7pWY z(2y}=KBKR@%ue76pHA=*ynfaLt}Ir{%K+}M<T2_DBl%r+CrJC0diT+ce%=GV4OYxc z|JKl$F>+m_|GlE^Z#i4tCjat9*V)6jdrzv*F2FZ}Q6B}9?&7*l*5!-Vvj^dOPwJP> zKH7uEvj_2ePuiEx__vKwA3~Gvn7YkPOWo2zFfoqw20O%RIiFk9tkmgHpFUPvoS=68 z##GaERjZDMRO9sdxq^AKD%%Cc-O6#$)r#UliS(eR<!=ZA>rKPzxUJ95n?^deJ14VI zGPaFDv<8*$HS?xbuMN+$>KZN5#q$PDZ6k@@>Z>*`QRTPVw$1Y{RV)^b{py@8BPE~W zi}gKN?en^M`l<}=^QL**D$s@%<8oeI(;2Jk%0HiG&vNgkwjni)%KOz50S&E29>a2| zzoPJ*N`k*GaAF<)9h!Fa5Zk+yay)JP+IiF}M=O^(b%j>gnUj>tEQdsy^4%uD#HT1+ ze(40_Qxwi)S)Q!BKY!9tsqd7iP|n%}=vVWpoLD)b*MMl?F)w%1MV~wAsN8T;lPrg8 zdhSvCUdga>Vw``ey4yPK-oA*Ft-3qf4ePLE5Co2;FtWBmFPC|XDa+QB9(ybG^`$&6 z<KzEY0fl_7fcA8Ms3v{3&?|iQOws*20d#S;v|&^*vXcDnWI^`d?_ze&jvoId6VFt& zRhTtI<DXoqVkwiQ7~T{6rZ4V+O=U$giXzO01U>i-Lu4m}C9P7E_ne2scUWOyK$QF{ zP_XB-e_lZcvL%(?=eTq7oc}P(^J4b>`E8fd51mg=Xh;_^j;W9{yAKqju(`lkYe)oS zztWp#s@usXQ`2Mdn&v4vWXP3U6ZL4>i6#r3%`4sVWi^rvF8UB$tZSv=Wd2Zp3)R}j zBkSD0MZME*5n^p^L4Le?FJ`onbf|ppCaTBbhQ+rGM%$Wxkzyv+w2CapZZ5i{+J5Nj zY<;j@WOcLotDa7iDy@#)?`wRI=s+t)my&72Fk1Y*m4tBCqAD{-P^&~JkXo_DdO=9g z_)HgA3(BO`Uw7qAE@VvZdaK7TaNeVOG}J%vUkV#ZO3ir}7za{eD|=2E?oo*!4O1E7 z_Zbp0yeQ5Q5k~hDpd2e@GI^1vXkBZtqhr5(y;l4FqGfGXDp#@OQeE1q-Osqnh{ru2 z;ld~-3<gPn-QrJhEO(^I&J+d(S;SPiTiYY+Mmu#SYS<A^;2-$$O3>E!cHHd%y6ii0 z*lDdW@_*=h=jd3wY<oDibz<ALZQHi(6Wg|Jo$$oAZQIF-lV9HM{_fZP-o9h(da7#F zKUJgF+RvPG&$SkwNWvEg|4uVDj7>x-h-dyB+l(0B<cOL11jyXcO`oAES15hs85?mI zeF*~eMgi#1D1*QP@v8@=D7rB{K+qQcRf3wQ&`5%o=Tn%1pd6*VkX@P`OVo^BaWuQA zQ4B#8OZ-#j$QG$%R9IQ$ZCxlNuL*od)W{meJ$3}eT3IgXFbvB?$XPTwmnxql4I}1M zR14XWuaIpyg^{m_;U_ZlBlSa<5RVm_L@)*ErMJ31eE{=tVz`>U1|@Q`WbHT?W~yds z@-=gFzD@#J|IP^Np=P8bjcU!neY!#E+|deOnDh;8)efl%ar`ij@!x9#l|?RDN5115 z`#Zk>*9rGO;`<-L{nzCmkuBkD;%MM(=lIVEk5;z&s~(U?s6(e+mAqIPB{%?et-5YU ztDHE9pV*=Ygm~6YimO>_%(k(E<R);zoEZ>Qf_e7(lYBqhrsEVi2tK>b3GX<|%dO<+ z=jSu1KHPM_e4L6ss9XQ{4FTO}Cdf{8NSp480%EsI@EDvCcg&r5pFwEm;H@T#3}*L7 zyOJ)e&YK@WgJs5sZpBH=w{{l(+a$FqJ3xhbBB5|myRabqB1w-??h#9LbYU}N5~GBc zdc?+dl1^S_ga%92GR5FI3n@O4NxEN0A6+6hHEFd#HKmHs;prGQv3Ak5rLD8vPHhBv zTnn_bp?E!noh?g1V1j;!O4FsSx+7&WPq(ZqU1|^MatC~o)ZY~@V)<o4L*7xtZRx~` z9%L?^4W``rh%wMiIHgUvg3mGYTGMO8D8GKN+*xdU{#S%;O4H*dj;=k0Rp+|KllzFw zVw+S0l&(pC#VTl*Vc4mAi;XCND8jHj2&D9wJ7zBvj4(Z2N+r6!c+2kn2T*N$h>2w- zDFyxGnB#muy{)G0T)9eR%H^HmTm@7(io~l*0125N8K?i(eKbZvc48jYA`eu^fk>RQ z)|71ix%!c3yujQx5_Z3QyU9CNjm)X@FazA}?^B<G&>U{qunTkz9`q>DLG00#k<=a* z&Ct__2tz_Q@yQ&&^3oH9#$gC-B6pzEFd#tfQkB~TUcxB3Rsq$Zv2qBaR*^UJOtUCg z%anly3SGtOu)#$m@du-zFF3~=-~j(=UZIikm$?AkYr)vJlZS8!mAq6;*azr`-w1R` zX7D~cylehMXKz%=KKBqvj|pJ@!k3$WOj*{@u<nflKe3gJH+zi>f1&oF^(Ey(bjFO9 zo_uW1&R9qZNva7+W|OpwkCkAiMK(pI75R!i*8yMoKxZw0lCcPbV;atnxOYU5Uotej zp2T+JbqaGwXX^hwCr;pzGwQ!{!uH$wLGfSr{Qt>`zomnc)?exHS@I*L2Go)QRV06- zg{EOgM?e=Mh!i%1KVxToCgzfL{2$pswJ-qw*vqyb37^3)&OGb(SC#A>YZK_L!SO`a z_*3@v#Kkq=_D>-70Z9-_M#>s|tX^zev6)zp)A>VNfnGzpt1@|ewO$_3Csb~I2#viS zrJFc{hThGwj6;r4nAt27NVCO*8Y=DYjJQmCw49~IP+eU-&oMY-^r}#45PsAWUER~& zM1*NfMWeR+k)m2wF<gm$wE)zA14_bZwps^c7i=KhK~ABAPf_U_-U@yfLc)6P)zP<l z)IsX8=g~1T3FHRjVaqO*kd`!dmqmtswF=k&(2Z$Vq98TuI?}I+%<2T_SL@aVEK+Xo zmUuLcurNo5j-<({clf5w)~2$Qd#NfiTgWWhYCt0c!3-^SvHI3mi$A$~^{x~vw^3vX zr?uH|E~`+5)u8m%b!_5@0tq7$KM)llrocV4NS-rNEJrJ)ZaTB393EIu<`H6Z$`MIU zZCk^_1GArUS-jy{ZOWBHUVM>p;ZInunq1^LM*o6WXd31MRrGeDIuh4@F*sYCohxXU zPv{<QI-!Szz3OAT^x@_-WddVi_FF4QNd4iJ9`0p-)=SXOR}>Tba=!^$pB^pozSt+s zTSB|gB~6wKC9zE?{enUL2*h9d4@56fPz>Uys6T$q{F)q^doYA9@&wjKo>CHi8Nzo? zxHe5PiKdhYz-G^JlObV98OI=$#3Bxpk>^iCfOa>jd%kD2n9U&ToP?u!;*mnA6sTbl z?jiBefsR~_K6qcs-@qCCE**pC6}xMy=tU&`D&lLHZC+8QVqL*JM!76un3r#nU1?x@ z1W(F#zlJ32=4AHaE|j>OD`Hg-fPK&~?~)-pdP2y%I;Qv29n0#Msq6mFlk>MCd~B%i z`f#}KzAUW&HSQ&Bodp~n4Ltr4|Ns8xKTwa(Kkf<hn>NL&yr9&|WnnX}2IHX-iueS= zLa+kJ;xav{#nxknn`f?417<({fASke5tqPcn2UR#H14{kk$yrxPC1uLnHOc4nqGa+ zh|6X=o_aVrUWW3M(1!1eb%#bFZY{pEpa!7vg9JORub<vomu7lCmL7LTL)T1s+?&D~ zucttg)Jid+JA5>pC1>Q0C{}}VrESZkvCdSjNu%a4<sH2bJ<nShtLZ8wyKhgH+S*=Y zX^^#SgjDA4$EQPWh7D;(oo7^)l52+X(%BwMEOjc5TfE2EWPNElPs+wgWOpf|F`I3E z^nt%D2Yd6F50NuaRJIG{MMt+F&>C_IH8`<egBi=op@WPmotm`5d}S4ymiT;=i=C#w zpB6q|Vk!r%;PxbK*_RGiJv+-tZ*(p-p09z=G&h2kQ9_=qJiLRGWZ->^HY4GY>r^nz zJbebUuw(>r3~8iBDIuP7_oZd>(rgGWiAB|>O1h|WSU%v)X$8To#T0}l6@u8oZYdyu z+1CV6f<gYOa0i%&nQb&@uzug(H@~ugdCz9isUI>qf#=T$hmRB0hG{Tv&_W1+|8a7j zjb$hI5E~tuEL10~{t2{Ab|+z8+?K40FPg@_7MBM|y+HqP4idB&9I2eDwRw`iwsAH{ z;&1bVYrGFiNm&4I6>@n##<xY3jnL(L=mZ97ZUA6|4?4<3A+ys_<-sl&7;<PFQWfB_ z!<qn*u%bQOVuQ|<4;lA|U_KRk#iA)j-#yggfZ6lHll%c=3#H{D3rcyFDlf#?Gr2ti zS@>L9!L8pAbPkP0MNy{!Kd&EkGEWYz?RW+yTNIpU0in{Ya<M_l*(mmdF;tSC(#KEv zId9?W-y(Fe!ptlM;ZDCF>I3!o4jgq_5EUbH3BxST=3zJbWH$O?Tt_^E*PlZ)yoa-9 zm?YDP=58rna@?vlyJ1yk?T%(!HRoG>;`xMHenvLkr3rrA%ilmB*Oi)#m8VeHjuSr_ zM(Hb8F=UngN~Gpv;SncBX$Qf9`1^##YM~&n>~EAM1rGo~|6j99=(~<Z!q&;e*2%)z z!qr63!`Z~?uT1+V)~Z%rcS1Hn`Lap0&Ty^=&96%lKP0q)8qgFuR4fW!;kO80qEybe zXlPy!DLPVwa>qb1`_1)w#J*3@I})`owAf6~+5a5G#QWNl2>(g4wEg1RNYSZoKhoc_ z?Yqs<{XL&ZoAu}W{WuLkwL4SP<VosbF+Nz|O+H@`*l+AUDt4Tst0?NghToLqR*qh( zuE&BXxJc1O7a=ARqgI;2)QBEBDTo@PhkbCnAR)&28<58?>|yozLoC9aiJ(;RH0rAX zI!$ENF_9vbGs)CZxRYr2KUmPit(V5!OcR0wRA%z<>Ka|^bpmV4J@^B=nNpjX7hKmh zDodSxSH_;mLYcTVmb0Zun1Dxr(_CNWce7g}8>zX`@*!bK9nQJB79mifUP@b&(EYJ0 z>&80U6UL}{<h6%;fWNRKOY5e{f2UnZ4a*~GP4;6}j#V5BCtYD)i5F+Sr=_QU#jF71 zBIoWctG3QKZxu21MkYC9QE2s|=17k+Nmz|nzrIOJro6J#^%QOzH7+S?)i|0H17`_( zy@<DNP#;sGmNv#^t&A+YJJp5NkiCl81Q%HUYJ>~oAPA#g!SuvKx8<M-ftrqF6}F6B z@enOE*uMi|3SXoZ*vO!oW!kwp(Z3&LGem665gTVDD|gdgIY8-k6eKv73_rD?GD1zK z(Yt*YM!?vjHP5LYM<^E85WkpG2_B>Vg@eA*vXK7=^<i9dw@aHMw_&gOVItzPOUxeD zTA+|x2D2SkIR-XM%nm^Vm}3B@$spGslA#g01NOK7Z-1Z&Fv&D#djtjGAM_?W78fk` zh@E>=B*2r74(MVq1M&3s+9~7a#%3EGxzg`<$`<C@G~japstJ={CprnEf@94_p(ZLy z;r#_Qe9PG#J?Rp38xkssn7<VFOR3Gyf{GHsvNZ7T#ld7|5jR-f=}?uJv?Zgp28CH| zWE5IPF;v?hMJduL-0#o7_ogM3@egYyLzk7};9^Zn6`oT{9=q&m8O`?^mYYaYKH!W6 zq~+mf*Ce^<Y5oVWCcL&=1FB{EidNPhxni3dq~JOnu4nJ}n#62xDC0!v7eW^itytC# z{zbzHngt8xw8xmFND3}hBnHZp_Q)%-$YXo9*@LODPpIuvtea`Vx|Jc;1^LFkmihs^ zei1l{@{SQT^Wo`ZTRpG-BfDGmq8eLD#Zoy~kvTpIdNr168=9kSTP(|N-Y+*|MIVbY zo;zUFilkE)$+kedY-ZOWT09k6VI27j0qNj2EV(jzljX7OxWxdnw#1&b8<g$AZ07Jg z3GrDpz42-tCkR<DgEL9K{2MGBirAsLhN5yDu4MCAFXPb7y6g@!_div4UmPYLxkei2 z_&$r=-I&=zF5^cdGC{V4zuD>t5V8d(t262UoHeZH@x5SqzXh1yuo{}$gITeH)EFdU z6is2{zCu||<c+>BWPDn*)hNv^AAdO~k^F=s_Lt^MZiV0IS?fAE#i+W6pES%?4flZW z1p2~znGMu@XkeFP^eAQbc%2FMoytyp5B&pGVvl*f7qxeUvcDpc^0W^SfD}JGrxIIS zNr|Uoxm?kJ&t)(r$3>FvH6aXa-Q-kC#Tx7c{uCG5F+Yf^`$1bfJ>O@bf}AirJBZ=q z?y#F<B9P;yuW_lo6x+J=Mfh{i%6qYDOUjTkhfh$}&tNEvP|xC}R7zLZ>@l`XydAqz zm)L<Wp>^1M!-)5a;VWv`dmQNKT<67c;I`vA#R6>@+IFCm`^RbAo)_Ht54M?=01lKp zY?wAU)e?~rmSgl&MNy=hcrIo_kOyV*N2;@T6HS#wkcl3frZhkcq%W2#HsC{2$WepK zrm6}7pylIhYVtQvMF8XU-`JgL`n`wj!1rVKu9{nY41|X?iafe7Jh-EOE!t5Q>Zm|V z>SRb4dN>dCWc66Y{pW}vTXpG^gD=tt_jLJ7C(QU$rVhUusC2LFb{KL+7o{&8K%2D% z9ZjPW-4d4$A~H1>+szV<mJ;4jPmU@TO_!G0!W_my(>ewIoHD-)dKVY2K$*reEkC5J zKnkc>cJi_G^ZR+|JJ%>YkR7DeuBd4D$bsKNQ?+r2ZWtF{?%{=dFk8b2ygT~OaT*_C zWO)0~-T}3@6g9g{-oqWa9*Vdo94Ve`jrg!E=d)brhn`F0k5#GX*PGgQ18f!1K*Dc| zD$*uN9IbSotqGW7X9&e($vaMNWT%nbZ#U!zjcS9LV8Z&2>~^Lf%3pu$gHktYF7XBk z05A#ie~D(_*zy0vkbgb@8+?pb8n>O7N8n*|FtmiR0d7iDBqy<%Ya$Ue6cH?{pd?fT ziA<qh*(6TcA6XfRjrat`>kCmKLHnLt6P(uOT9AY`s5>ELHibQX^7(mx|HChponF4r ziB*M_i_?<x56GC!vfF-4&m0#<wA?%UZv^^|F1yg-oG3yrq-W*pKLIlqvLU@AkJ)AE z12xOW-Y!cEXEFzE)}C{28F*mGUg#}oPZy7%P5b)B(9}=b+rGKpxGTHq*zU^Z4*~fP zuZ+$d(-E57u0$mCIrCcG2Ff92Q$$+A^d-Xl&J+)qwe>xJ46}iXolZ$47k+IU%WB1d zEY(1DJu{;Eq$%mXRc)Uk=-K2KP&A0=$hw_zc10z|nfgpPR5oQw%M$07tD9AFH78U$ zYVKybemy=$J3F4U$p#W*ui5G7&OemVrOgOqNLjPWaQ7<V!1`}`TP@Vn)%_9=@O#wb zY(Jd5e28QA<atLWP$z_<Cw~)Fslkel4iu8=2zt(^Z)p=n*H5iuNki$BjBgDz88p@h ztsEFq0DVGP`)=Hs=Nq$BR$`F72lmo*Z?L4{&(hDAu}jluBd^_KRP2~YUCB)_?Iam3 zh4P6ya_}aZmma|Af38N!?0y(Vm!N<<sesl!O+H?sJ}D%IQ@%vQt>lZ<GNMLKnGcuE z7~SmlW9e@`UOk>)&>Y_^Jn);55d2rX^baZ`WM}^`xz$HO;k#uiI**%;7#kv#rm&>I zexO!%CVwAvt8fasL`fV!8ZvYJdB!ZqdNGwL@c`MU-&fD`ULf78u^|Ls&(A%+8wu_f z7(x8{(a!D8((R{Br>Up&>uIC!{@UY0{wx8jh$}#=i})}J6@H53tRM@T3wNMH=K?3) zD_+YF`!+4BB#aud+%4<&`}|v>c^MaAK7bv#gO`%Sk(vT4S89I}^0YjVhOc~S&Ms>q zP6X1ZS)Y(qjiI^D2eVlK8Fn;}&+I|HyYRe#(s2YiaL;{LWL+U!Uc-Yl^2gyKt&?3f zs7lJ;eNr;EBmNjp|HKqGH9Edd<+}26L!o2_Jm=#Eg-O>qZ8zv>n7w$`4d@t|p?aY} zXaIepwnG)|E#u(B@4Aocg?O@tk`*}S^~~_YzKi0}mO|8c&x|&H$lh0x!oohCPOh-= z5$&%ZAFrr}P5G5jj$_%UoE!+5<^A01<I46h?&pA!h6@xL@$7i_>)|p>I~~Q(g0fA9 z6AfmfFDM#gqPLe@)gIi1(s%MF?o}~i1+nEGMvYNak(qoyyBsE0r}2mSS#&I<bO{`b zLm+x+fLiNlJB*xCD@)QxC<f!7ETc>PMb0sJlMcoD3Tms8qqMVp%9J7ilba(X!xJ@v zeM)AU`~(|Ita9L7TK2jTM1ZH!ZhliZRBrrnBp#0uEsR)>Wf|^*SI`S2$a?4A;A-WL zv5UzC_|pKlE5TUWw9}q##{Gq0R-Lqi^?(>Dxc}8OH*1Hf1M^$?nf$Ih|F)0=*g2Zf zSsK|HTiBX8(fvaa{nzI8F9}ptM+sRC-8bcelz25lvj=S8ZdXja_c^#4un@ILRH-R| ze5FFFA!HEUnit!qw)0fQ?p#{zI%{hdgEy;r{~==PLG7XDtKg5vv~3DGJp|Kn7SHjA zd(M;3l<nu|b;~k9OkcP@yr>B}^sYAuU{uI#3^XE~-iW;dE>lB0%F(F_MgyZa#n8T^ zr--UrKYH&WL|5N02vT~ASY`|d_yz)Pcmv76bP5$Z&E&TGV#}9sPwLgf*#edF6;#+> z#L@%hc}$>NU(EADXb&wRsU?cl{a@gXt{!t4G>&F&t^{VNrBw|?(_1CF*-q$%OdayH z#K%t19;M1<#8xV$X%7i-R^~s~???OF-JX_gi4v9iEnd%VqXbnPx(WkRb`^J!F8eWu zg>I!?w>*tWB2~-delv2}9ar>!V6`x#H;?mnxlDaTyA(+6bjg74$E#FPd}azS9-GT) z$At7g!DySI?NkwP@1jVm{!%p!vFGmZ^mWU97|LR7tn<xGFjf()0ao)5km+YdvtmjT zxT-Ac{jJkfDUDjj>yF+Bdt`widQA$0@;+36y|z>)d-FV^Y)O>yfcEK9J2D_xoz+Ok zP8iqj2rq?>jB}EdFW2AuRQW4BQ#>;bts7&5@s_2F!2!!n8hZ#385o_}K~0*o=lRXV z4lSGDK>ENS)P7nR(AwU5+}nEkD2V*}l9J@LzWR5Fx$V@{X18evC46LAiS}anCxvI> z*;ZPY*7bbhi8YPec8#f|#~XvsJ_f1~-D)gF0!D?!Iy%-{b7$-cy?QeqH8<gm&N-ku zd53-~g__H^cUmdJ7Nx>W;DBp;ay;%&3rnRsqKlm)wCPNL%P#JS9z=$C(7rBj_HmU1 zD^lf*?;)WdZ44r_LzF=2DQ}JRG6Y^>rqi?*S7#Q9aqf>hN}oZlv=eQS`3{DTlSa8g zYq#p(X$=Jp=texAGm$m>dGPGx=8mSMzGC{GsIQDsZcY#QlHD#FM_?Nzv2O@_4+h57 zsFM>A6J)9g7v910?Ns$aN6WPcyyfE+GJJo?fGCJetMbWAsR`yDfo9Vf>Y`413ar!4 z-VZZ>YC8$69D2anv#Q?q3LAPtay@j6ujJFbw!$Mb#1YRELEP^zN9<P(LSDf;aF2fN zql-kOI-)zhTSB%l&$>3AeTdhU3|y)?;^vk~jzy%VzW3D~&@yRJm82a5FiEhqx9tzH z?+u?k8p0rmA;&mu4qRY5z_caz;Z-H6mp0cdur4ffE#+JKrnvKxjX4dlNqQTxi&#L7 zBioYZYK<MI+_m96w&7Us9Gy`eGD&t0o)8;(M@(~zcF$-Xa}!(3LSJ>dh|b;L_Odv` zHSBun<)u40JIvVpc^+r`Vr{C|@$VdA5bD(}Xkw(+QAL!X@5LoebOj|&ma`ZsG_Hdb zEE)~HUc<Y+3=V_-Lb+6OdCri5rr37^-44x35lKa=#-0BP$fp@{P8G@JOdy-LlFG3O zKczB{pDbf!UZ$@xoqb1gox3)dHjB}rTKPbR8*p}M4}wqiz*{avr!q$kWo3&P`?{Mn z6w0SHXz^4+e^*)R!!yBYm7QZ#&&VX^jAnXAh~7oJwB5(NvOlJkT)269zu^{v<Gbm< zCz|#>3N7{hQL;L1P*Vgt{jtaU6!|tmWed%dC`pGCwOEU()D3ML#pD~MTRc-*0okti z>es?4H96)TV<#D>fGoFmi<m3A(mrqgiT9u4A|Atij_$Yop#%4S-Om4)-k~9frH1ke zwr*riN+1C|%Ae%}m>5D$V<C7}5{G~fR}>e=)4QTXkDlqCU!<}K>yldVr@BH}#D`pQ z5xfE@T$AEViSn@?-s24Zq?Y_+D*HAK0J5n9?`os%DeF4xKHKE|ZJUn|#2&&9L?KdF zgZ9~h0Rr9=xJ*DVZk$AecHB`UrP9$s#&sDuse_=8&BRSA#n&S`e8ewoz(iuiaCGn- zP}o5TZA|2HS<4sZm7&PMW<2|MvQ_M1h-~ToDi>x{jPu%9bBSSFR`Psau6Rk}OBk4( zj!!O_ofWBpMOhT-_bI!9bI+J=7;KSy13^aku%b`Bwc=K`kex5NM3g*pB91k7j2Y7C zgMLkYoLmW}PU9qIMeaf;lj_3u3-uuKkJk*Mg+EI!<kOC$Y~=+m_EfZ1<ah;1m$ltj zno?q7JlEd91-1DXn$W?+=&8xF_Bi$E9cEShot#i&p+@`lL(0@VD=R$o)`Rzxk5aK= zthiFB$`9k(o+o)B{C1A?IO9JWP@s|0Lm$rwtGqR<3C5?UKFt^!-bS^d*aQLhr7hVX z=$IoHFvmoe_W@2hk|*YfU^7$5!o$hk0uGkEHN$*Zf3ULZaR;I?RC+X7KP2$32T!^Z zrXoYFs7Xr8sZ&tN4e`9pGVr1M>I;O^si{T;2QOS|DU^-O#UuL+r*firMEELDtz=Rd z@2hGlLUk?#gM*Cps9GnQ;EfwUS}@T^(E^7$O!R~SFza{wqlm&5#WT={tb@tsZSkXV z0MqS=0DH`?L<IPAwy}q+0+-I(<|(B(SkKG9!N8|A9riEO`H*}TaaW^f))Mj>4~ltG zcLV|}Hu|{gN!UrvA6<IXov&Fksxioi#j3x=IQM1b*=BD(x4U#8NF8oy*e9P@SOu84 zHP#rJtQ1447IzlpD7WPN5@p&)BlCqd>wJeXPcW=me{s!_i<Z-S=KV{%&<9_}A8XCH zQM4&76ehUnv*mr_c4$bI^WQk;&nc}jKi^$@BiD+;D40?W*07P{NNX^{Kqw5V;X2U` z(g`gTPUIqbhvrth>gR&qHpJqR7l0<|jwbQNf^+0QTM+0Hf~ghvApE7(6^x<TVoTU0 zn|lIJ()TMd!?lQyk>yK`T=~=VC-DO?=y=j7tmG;2wyudi4T!BuNk1!k&M+YA7A|we zjj>xC7lFl(d&OEH&L|@9A8bg(BSiT@SlqDiPtyXquKn}LpBTa2n<<W`(3DacYxSLB z&BG)dCqY)*EVmbBcV8qXFKIR!Rs=SO+_^B*z1wvp4*-Yo2<CSxFMUi9yxx8hq&luD zue*A?99L`~u`}kcX8Ou6R|bs~oKEWZs7q<Si5?nOo~4KFiV|{@Uj|fCTh`)0>AI8- z*B!Agox4;_>erXKgPzqW_kf<DStOYX%6r(At(g>Da?N@|T%PXp(c>rmAhf$aS3#M$ zL-ny6xMEE2Nb%!yMc->oEPV|}StBl+{<t_h0EWu608QfeM0U*z%9PDUSY*d?FRJdh zgTHpBPr}pO%-P&Ql#QBp<(zr|>q|>jE9p^n_%-)H&f7+dp|Vm!dh{OC5$J*G2>k^U zU&)~%dq=olnfS6<g)M>gd!@eoa~0Cw!$POkx*kL#w(#^mQS9X$rQ<lTO^a~mJ?Hd0 zMPiwo_r626!hvCfODPfVq%}roDTuD&5XD*uL!3}5oT)5$L^f5B-llhnnbZ5s5pQ{| zn7>BIAjS3nns2B8yOo*b)0O|TSOoCyr>dXyS*)R0Xzj;v=n<6CGOI;l7k}nxbmAy+ z_16-w(U*YurJE{`MYLy_WO#`$daMMw*_t-<{*$z+QM}AGRn+)(f)>9?*fdcml~<&~ z_N=?NR3@`s$f~gXhsCDN_^3*;QVZl#b@_C@B-}D(^_bX+qFlNmQyE%ZAW0lgNsX;p zodsGlwEVjh<FTp!+P7L!{&EWHaee>}h%Jixo@3po1@mm<3$<nNxpi3P3IBtmsAdnC zbt<%~KQ^v+7#lZt2iiNL_7>x6*Xb|4!hRXY1Ov%61tTFO!{s#F#fj(q$a87(@kzFZ zZ5L}%^se~xTd%N4T5a8=ttlExNr0kK4H#a{KJH02gXeR)Tcz5Ufo;Cg6HJ=)gggBE ziLdd&&vo8!o|*D}@+JFUG5`Oi%@hA$AN-r7QLQW`hpd3|X=_#@R6iyZ5%60W*Tfx# zreH1rupqxA9=|ADUpmB9F=T<lwS*i??HwNJN6m^kF)8gv8^hHH+Zjg-aDX3k$Y7S& zRrdXBm($h9pKoacfX$&BjUXyWJ`g=p0gdhDLKVUxs@_#=7zgJGq-l|6+7T3piV4Ut zuq(;Wkb}ctf6mp~P7<HltlbJ8yS9l0L6##%C4(ldX54nVu-v&mDYn`yl4E_eqrSoH zhoSYh(@v6jZDyuvl|JXo%KKS+@*@%zQ#s{37$eY`HG>)CLb1)Tr?zjsWpc{IB2YGS zNu)+&9D@|=^@q@+R%3a^AC386iZNCkHJ7WIOE5;<AbYcrZE{YhFJ@IBhuVd(G%=5B z$S1s5Xz^VZXk$qI45sWkCP;6SVz)Ln7e-lpEqjSl=>sSx7krIJK2pJ|8KELv*J-+K z!i(J1h5(dX#1)oagBf16!Wv-JsV0s5I*WxDe09=HuL-Um<C%#Qi5Qa?#*9o3SySZ| z`HQq@<Hc2vGo~?eIC+Ru2%<QoePx5e^nI=9LnLS}CyVhAM5DvN^v=>y6WMCD&NCtx zoX}A{cV9XqXS7Dch*a~FYp&KA#n>{I3LlCLI^H7Jzyi0!i)A^0n6HWBd2H1oxHS9% z!1J=2z)W<@QjRJDu^^a;Jtk{Dp`y6_nGQDQts-9_22EvN5a@_D@DYfRR{}nC`z-O+ zq*nT2j4(=3h{6c{EKze%+~orVnU#JEn&i20np7H~MN1*B5rdd&rIOL-^F>3bV8u%U zxSX64Y~Gco&MyvH4j=fMEqK*|Q_dUsJbt+0b*aQe-lT}YGDBqMA^O%K4bpWG+jz#& zj8a(#=zOmS9JC6-R9(CkQ$%FivHW<iAJTfGnGV$Gc=>as2W#t&Tr){JYan3T0!kW6 zLyHh!s@sIGfC8UC6k1de?Rsk295^wo*WsQ!vi10qbX=Zl!8Qs_Wf24*fwBj<NlnU) zk`KUP)#Fg0%NYg%zaLO9(S(v2o)B|_po$;N+Y)$l%+>F5M0XE-CLo6f+XNv^Mlcq< zLJ`}^0vTAkq2=x)FVMTRXBL*0VdqrlFR=d!BPp+?#W=p%x!-r2<^Rsk|K-E`7duz6 z`DW)RzA4s7f=j7$0nvhyc}PI$MPU#GzwQbUK~RGTyATp+sDu0n^4ILD`SNnP=HaKD zHF=#&0-5}zx%zKLr&i!U5I^vKO|NcJ3kdqdJmv5_<s9c6a~xlFeLOwc0Ho4ug(#ie z7PP>SoZRLk`Iun8j@tvX4Mv1tr>Fz-+F~T_Hdn!gvrzZrgm+TCU4^sk2?_rZF(xqN zf%9TG8}tEPyLs4{e7>{R<IMD!8dm45HuF@xJv8yr@Fz1Yindnvr&^&e;lI?7K7*2l z!L;xpZ=tU?6WyPu@EimGfqc85&TTZ(c&Xgj2*xl4Lu+c<=M+9z6rZC3cibRKX^pp5 zoabnFa9`~0yxD6IKkHvJTVF%ouQD2YN^{8W3Icw-M|EpYnUfRW=}EZ$YkR(KyO=-y z2a*WdMmvf0&5rXFs^kd5^6x2tCrR#PWK`3(0bs*-w$_mi)TZy26Mp59jX>LB42dyj zP8fu5flHQwzXTyYqhT6V<$p30s4M8<1~yxXnq34F){Br(CCi^%%PGp8YLpy|(NcR5 zw1V=eXa!Y`e%GG93bBb;6W9uaaXuY0sSf<$0bq(%X8msCNc`X{^h)y+krpZ{WS(7! zCPtM6c0bJW8OiK-+RP0=BIb9)(~x2J0t2WZE5XJPgfkXtqWpY?sv?l=keXd8jqG@2 zVDOxgO2w?`fQ<g4MB0UYiDqd-Rk?}n`P67T@t1?Qi2Aa*>Lr@vWV7kl0S40+M|x6P zx23N9L@|o0pPZ>_%Z>HUia&=|^d|;xPUM_!QMTbw2iGnErzOv))8r`8x!&UnncsHF zkD#ZJh7xCgps6``#ZbMlrtra|SU|?8c%SW8*}I173VDe12V2J6HGm2!+r9>+nA-G} zmhF1G#+IfuMsR{V#-TTq1b_064p_Ca=5@tl`{hbp5L&&(v0!QRa%7po#3utj?-XB) zm?K{e$+$P~M5~4_DYSQj>UB`62CuaTCdkV5+=G38FV3+Fy#i5~FX7UTTQl=$z$els zyd8M=3|9Lp3mLT7Oo7Vl&jxzpdrPdE^7xQfOfpeH<a73NS(}}rh9iV_aY}w@lGcGD zt@1k)kl7et?R*p*^u2rHZY8}!tZhQegf0n8H3fg@veF=z4OC%ZDj~~e1jE~ebj9Cs zQlgN|hBtq1H<ZM0H%xOV0)8R(3qo_5)4*v~2co&o&>~hRyF&67)<$Dw0PWL&x;n*t z*7k&kH)>tXo1!hJo543;n{4@T*XK%Z(7Tv7$~v)&;Y=xnI#u?!b@@5L@~9eDBV)J{ zy1o3GcMFbCfB!T{%5q;mTB4z@xO<-%QUE@~Y64Scm0grl4&Tj1H{5>4%A9Pz4L@JW zh%%io`~Ky$=An}Jet=1Ptclo!FYD+-IH9)CW0MUX?s{tz4V4LTM7=s%0g40CdnBZr z2yPnj24oF`;Z-h#B0!PPDw^3Idt+#Y2S*nN;ao+9hRVm~Uyv;gDP-FQ@!MWjXA>W! zUL6M#DcpIsdx1a(TlyPWhqyI`S^C+7JyYPyPV1b!8$Gu`?9-&Y2_q3aoV92t-jS97 zg$t*=)ef(u&n52Sop=hj!w=lM^GV)C^uzEAN+-`bxutk7F0Y`C&!}L!4mO!;5|&P} z;;H2=E+pNB2`P^#%QJ%|38GsL6;1of7UMOF9KKBJO5a?q=3Ju@hlka6r5Bc~HJ7XP z7hKK4OkW(-aph@4wbgT9R_#3wRE}n!9trP}Qjl5^R`K6m&|~dIOkdwxeAhRD|L@*~ z{~_<h|MTkK5Ky-Aw<kyefv2To9h5p(u?P*JUQz?<m!CH(L$JB^oH^lN2&nn8gt}bI zyhV8H1&^5bc_1=8XaM}D-|f$5x`p)hVn2j(-iwX4Mkli=4kx$nkM}!NexOJj^Il;p zXX%FUMvswtkW303CQeh(rj0Hu6;SU?Dj>tqoThK^0}A++aJh2Tz<=)4*#5ZSK=lUX z-?XouyqKU-eOKQy>s+EuG1PK@7;uSFd7ELCx|fA#fh}p;JjuhP%b0EWZeqJW)-gJn z?2LRo)Btp5*`^QaY-&C1so<5`NO^8rBOIS2&0&|)U^;lz`9pb=CR5&}ioV>b%t(#d z>Oh#*l&pLL&BolJ>Zzt@<WXE=n5R)Wv5q$W&@)9M;Eztw?`|h3u3Pw<l%>W|lL`(` znu>YpU{%b$3>|0b7S(*;+RQY~59ag|Q<do>e+q?WU#k|=6mt~Mr0H0jnZdPUomt0R zDI1Dt+O_@Si#?Oxl+2Q)X4M*%yCtSf74FPe;#8PCU?;$)0vbOo2#}en65x1%0`z$X zI(=rkju=q?-E(`$Z+8&*?8Y#{C$w(6uG(_mPk&iG?!3IrMf}=K(0Hp3ZIw9Bru+O* z*X{h#cR(WSOo&r51W|FGkZB0ZVfm=MFZ44qjcd|X-Z3zk3ho%$0fYgNzBFMv5xvE8 z`3p4sPTw=Kq91)WXT!Q_xFViWvdOsn^F_lDA9Gkm$eba@Y>Sm%!<ATl_JwOYwQKl; z&QWpK{XC=ef+-kX@lpP|`yd$vX_@)f2sC?cLsep~5^>pt#`7qd@l|Iqo;<2TKM145 zc6f2!v&-@h;u(2`ip3~k;85W5Da4v?qkjgKG?Y$M2>4d}^7C~=RDf5c;o`C1grD|* zV;G{x6Zqa^bM1R!SN{{*J;(&4HR(<bp_`;6W${>&M~PSxm6Hv6(NU#o1@T1+=i+DN zTk<0FLpRLuL%zV>)ZP&ektV4K^BlqmHqgK;h*}0`2_GM4KHS-Ai+m0l<ocPv&0v>5 z!n@J@P9%AlZ`<{MB^&?0=_grLOYIxKe3CM?ArWH$9+r^nwo0H>tAs6xE0hA&gUv29 zvj-stI0TFe_ikxd{>lF;sJztddX~S|`L)=>`vCqh*zy@Scbx@E;Mc-yeC_mS)hoBN zyK_3{{qfpv8W6kZ2f@XVG(v~|i-X9`D#B=%y2(cx{Ej7r@4>)l277&=eEbh%0qfez zZE8BYHw6fSfC4;O2+jyfdo7iG{ah&cHD&W1RzI+0O<&Z@unP7VPSh4eWz;;eM*y4( zurZ)K5s)TxaLa}L9uGcA-;JC7l7JJ7Ms_wsu3(b>dZ>~_I&uiCW*gKHC)0X!)HYPg z%F^D5V4zwf*<)%@oK(^K;MEmxQoh7rW|8#?iIamtTQw1P_%uqZ8tcxIpqkEIn}oa! z9PGkO)oGm~(1Y?jTwYV?SP~RB+IzHyQCP^LhR&Ak4y+8;(nS=QQrgTzQ?V-HmZA5q zvkW$7a}&wb@qGRZN7PQDy;E+GUe{b=nCMJHhm+LkKu{0!;R~nbNe-6YXF&`MEGgpI z25`4k*)Aa{W!XB3QO4|i{TFAVjm<2&?W{Jaq}tMtv))4!G8w^DE2+U5OsOUk&0VC# zLo=;Q))oeXO_waJsA(eV#@QhdQlocf<M`puGNw~w+B{}$$z}D`nf*rr>7$$%fM3bp z1SE%Df*Jyi)gtY8nzpIr_d%q&nH1nic^)1bOgdxQzp(pr>e0%#EztK^O=7wnQ+Uqp z5wnb<8k}vdx#5keCRbKgSvc*s=r^5JGm=)De&6YnENfcX3_mHp*@)CQ`tJNXy9?-2 zTLsxm*KWHBe?IWT(w=HEGa5bhpxTFlvq4djC?Yd#P7okZrbA_18m;nE;2q`7|E}YL z33fnuLv8A&DWvzD!5We<Z~*x5PO_q|8jSk2V|?#AQRmTNb0n%t4ALdvuzpWc%JZ|> zhagw0;eNTnw1)gj4~8h@!ysy38C?P!(n!LZ%swY@50;_YkHmXJ6K?_ws!w0Hdd#5? zSCO|eI*ro&q$+^(5aq;7o_C7lw50gn<+|ERalN;`Gn2>!9=w4R0o5tvdOMK!DjZ~a z5=d_pKIJKN1ob!BBb?H;4|e$q&fyFH;tT%MZG{hxWvgkv1Yh0((l<h1+4w+_eEM!H z@ArzX`Go9#twhZWyJHrl2ke~SYJl9{b}bN)P-hi^j86JxA8iaW!#s=UXo}lkei!_d zFKHLJC-|sNOuz67&~?mLP*{Cvw!j3UXQiit;KnVP+05?j_HxMdJny+f5kN=je@Ses z?~2I~fmAGN*p&EuVbJVF!NqSZoVU4f!*DXc@Q6R63{x{ughLHZr^*mMZ;2Ubi}`@v zFLro?e6TmM{sEEimCWz0h+Zo=*a3)Yx2nT4rM&Y~QIv>w<F=IN3-BYsDs_MHqzTH| zQpY(b&lEM~=T+^J1-ue)iHBZD%Y;5S^;ix4yG99X|4^ElVjC23v^C$41k$q@N%1qt zjWiI!gGSy^caqTC<OoV&c@qrUh}L0E^$v%}x~05F#tUJ)z$LyN5*0<6Exy_L1D~K9 zKe@WK6utV>y6(}A+TQIibb|&`yNXe^oz9N;Cmfl!j`!bQc<cHs-2}~aabyY55WAd( z<aM2qD{!IdN$NXT-Uw_Mi-d*RhVga`mFMiCbPj-eqrayamT;|+`-4@uCUj9Do=;2h z%qZ>)QkwC`OAKX`|Fn|d?uLR<yq=Jl5*WtqNhUvI?}eW~k$<#r#V8)VqQ^h}Nbx}( z=hYmWRlN!(;@;JxGoPe^emXGHxvW}e{3H5=o#==Vwg`%$l;&16u4{M*erdCG-lcne z)WHIK)~;|9o(0tB4pPAl%_~Ga36A+;q7(X4?-0K=pDW-{dQ;(n!X$V1KDx$b*Yn<U znePLBS&4e@aE!>4LJIVESknitWMzDYv1X*TY)NPQ=4cZgW0v$=;WKMGoN#iAG3Q>S zXMpi%8L2ux=1l@<A!0H$ip>v7mf3wCV}s6|CRIE9%_6phrBf|&qF2?qvMu3?^U0!2 z7X#JWmIT%lo1*Af);XG2*STs>E{nvjz$T4tiM0Z^xaNw{(3@MCN+0;$Ho8ax0LW2J zyM5;snXru{nJ%kdCT!h3qC7{a>piW*(1_oW+9cPaJAD61t8J^hbp5^op3*n9CjCF} zNyLBm>L`BKI~XAF=(YTyrCQRA2s0N6Y5;otLmV`KFaAr{KO>KBy&;Lj#Hv|~@N4u3 zGA1(KJ7CwFTa;NBO|oXfT#?gyI)~ZRRV^Q%FOa+6n-F@>1U^z4Y9cZd*$|QwoqsS0 z8fw9ttC5}nD!S)XD!+k!U@{BcO)Tm}z%j?C<)kfhR!E<6{gv81c=Bt_xeC^c>CV#K z9M2|(#@>60*5gIqDHl|u4|qz8q!d+FL~3?td(^;1XV2|v?1g5cM}@mS-s(%nrOLhC z7`QBneoHUK6m>@qRu%ch0n|tO<JBo2lUf0F<)hABtF|-GvCDnk#j}=cTS@vNm20)} zTg}0xA@hnG7Gb5)HKlR8Rt#TmvyGmg13By@C|9uch8x_u7zn*%0%?V8UA`W@Q`g>x z<Eca~9M!P|_xAwuS5&i2)b`g*^(0zk3}YD>!;t}cQE6?FHDSpDDs&0_+PF(GHG&sD z{9?|ZP#V6~!0!b{;!u<aV){4H^bvJX0#{>7I&DZX+1@A$uP{UCdPWbKyrN$tuW%+Z zO$hZzTJ%-HXa!5|O~L4wkb5)(G@MdUWbaI0Lkz(CO-w~#-1}!NqUS+BWoLkLJ9|)c z`vei;Z=se~AK8QYK|1n?IHXR+;UZ7O$+0-wdo@uKqiAGwNE0td4Ma;n3bQ|n-};Q~ z=C%rgBy(TmQF}4wLvO<7wfgQqvzZFiIuBpnl+QX#Y(ffc))IA+<77*KAHqQnG&HR& z!%9+q%_H?NkyH3gp<S|)klzNuo5juXh@Y}1^w~sU67m$MnmGy`SedzK|8SeCihQh! z{I!f>Q+=hc`PR`YOlL>z@9_uj9rQnA7}~rDyXZT97r&(;;{O`M|6Z~1PkrbcUnwbl z<14sh5D4rW)j~u;)FQz?k=Y7V2*Rxb6jX#rbs6y(gfPe>!Tf9sE2~m?-iPA(^gpAg z&_=`HoQHc&Oww<LX0O0&!=E9a{&RNOPL2?QBH5!`Zx@|QEz3{UzgRzSucxU1V)UzE zyzB)+B1s^U1qMOcxLcKnb{k+i8GloG`82fem5i#?caT>4Vt^eu$xGLaTaHA}w^9Pb z%WCC*khCfUJfU1bkTh<dIvf8nBxdrZO_!OboDmu=iocQ&X2c*W%xfjei82d>S_l~; z0M(SEG$mhI!ji-EY4a)+^`vLa*qNHzQf5v-k0{!|v$3;Wy=7<k^HeftRE<2VOr3*0 z-gMM(D{Qqpc?rdRzG+r^hw!NN><R<-3mh_!C1~QA@fQBHIH)zL2Q?{Xek@{bksitN zAROt~E-Q%?7Ks*fH-$5~&;}URlZ<daeo2^^W69IRxi8Fg9gEEtalG!pa-Fa%5Q`Y? z_*9(GETS2*ffSI6{dTR#gF<-<Y6JMT-k3O3>OP0@ZqKyPg}=gV-$J)U|JzeRVO)OM zSIlWTvp}?GgJu_woi;MaKxAO-k(<%UrV?PVr6RBXD-(e+9EH-!T&j?JybwpIlr;qT z9q;S6+A2R~Y7FM_zM|IoShq->^Mz0{j0+T8cg-iK?Os$2q5yjk7*5MgSIl~AArXuq zo=9hmg0PFLXJ$+q`gLIbejfIQNOC|%>h>tLwQMX;bF!_Xx+rl;9yh10FxeYyrP79? zjgTsbBz*l3ZH>yuGf`a<qr<|slcIQ75~HE0CiRg4a@MP3!tkg~C${ixW>a;M7ED2{ zKwIha5h{0ya<tNDuX2k(Ag|}Jv2I231f`h8cg|sr-HSUqp_h1QRNfd9^1YK_(Rs`o z=Wz%-L%w6+b5~0aXya^HkL0dBor_vc(b>o}-q(e+G~DsAp(NCK*(jC=LoA(sE!mz< z;Y6m*FX)9`6Z1&>PWNHJq<K3UTOXl~_GoQl7Ym{<37BXn_PV>k0jI44P$#*%fvxH7 zTfeotq;9_@q^W7Z<yV)yv~9~$%m+}_uHoi0zgm)w7kQN<)vt2jGhwZ9V}Q-5OPIE& zJV-N#1d6sW=+=Q-R>7l5-=UevZ1W;sN;&S0a<=pkoX0+hnQr;cy2MP=rkM=vWX;xc zO8R|0LtmhAa*vR?yy<R$r!l4^oMq!*T2^nUXB4T+kJ!GoR)B|H!|wg(P}BlnXotFL z^MsTcM~6jo%vo9=<9CTk&(>ij06%I>tg&w3>GV6$bO&5bwsyDrumOFHT|rT+(mPMc zx&fPv;v%$5F+VnNL<8(bm~#<k3Cx$oku@FCRD{vs-Y_ydtDaNhY(Pm5eRgfU%7e&D z)7LJJV}czfddq$>#O&C3;<BCZfy~P8;YhK)i*63IpC7i{4F0T^e@eG#?a%9jVd=vc z!;nuxF(Or=YNZX;PZg>gCs;W`;8y0Jv8<#GRbA%PEWPnVa$9LayG*#AQaVf8sl0D0 zf_crzEv!jrk^ewn&#XowKXe=PZcP5{YFq4vzB^+8#w*oz2%#4sbO?#FKWmLRlloL{ zyt{vBxAC;K^j)aB<VGF;Of#Y@qNdC)LYh!gP;5ew$Yoc?#uU(ap2%4Gy>@L+aj!dR zxNxvYE$LDcZLPNU62YLSYXiw;+}QU}<{dMBMBQ2MmknY*3cTROa&HdUfu^7Vu&bG{ zrO{&x-4|tO`&bGzN?ZTSpCX|<R%b-M0-NO7kA%HH)F7q$i=bwgXrpJiDoyS=^j0Z{ zyXVI<jNbQgU3BR4w-)?7XOY;ER28|E5JeU<A%~rgx6XLo$M&aDF;L9ZaA|Fz@5F)L zax(NLJ{@jSBEYhC>TWmTh5O6eFDk-)&%nm><?EbBTIclVf9~?c4>;>?-`?W0Z?uB( z_g!Ad&eqhz?4Mh^OTxM=5CcL;X-zw20X9l6GUhc&m%j_e+{$IbRSm-yGZmpff;juL zz3wvrZ<0ehx)SSc&G!4(d%DHj<Hs!|0Gqtq?nJN?&=pa#HiV=fH}Z&A;;nT~)N$;n z`K;3n6o_ovLz9?LiI%_l8M!Jvx3$&l1j;b$6@TvvZCg}Yg7S$<H(q3zRjo|2Q|1vW z6K5(2oSK!)Qo)L7Ucyo!>AXVT2bbL2g9N<=sS~7fv}J|rTCOgkyqwEx5Tx%gW3hiX z>+!PdbU_r6w3f*QmR3%WN|YtF$J)oWkM;^JWe}S7-h=dR4l|T;*bhtUoCLvndaC^~ zSAH>2oD#w*K_(D_I%HY2dD~hR^hbz;o3<^mk8^{&90YQ?l8>P}E)Sfjx5gnwLV0>a zqok;}=pB=l^C`C5N&U$x5ElFI5m3Muu&nVqE3f-D2RM;VBOMr1X71B_J_iAVA_obB zCI`Tg@bOgX9x;sCllGH)`-gTi)1`mIl|kWeH4)z~@TG4vCCT6aEv0WurS(6`oc^<M zRI#d_(z+<ZHZqWPAyQ%xF^D$4#5kT1KK~r6thqIKfFdx(pSbkaL=26t0CcT8amN6? zSDaU#*BNf-v{NBIem>>(&G|=!p(N+KypF}q%j=fz&BfK9pO0^N05<@X6ym+AND2B0 zj|m~y=H#<=GW~F{9f3EN2wi6M+IL${-R7Xb4Hq%9{8ee_(cSl2Wm~88t(%>VI~!9l zQ@rYw;e3X9MpVWZ`!;xiJ5Ls8cO^$1USvBo_Pc^wHSeq|>+N3PI>$wLxSfH(=1Hdc z)HxeEIR!zbOt7(j&p^I}U{xR9lv%NWPH<R)l^Yh%b4LG~*!crW(3Ou4p1tGIv3fzT zZzr!B*a5yvz&L?+B(2?eE6^6$xENqDC;1arsFz*?8qfQB-!@x-5#l4knItplSO^Sq z_Xh{3Z8qM%Yon<ecRGgh0M(Z3BrS!mgL=!Lui~W=1gYWdQ5{Z!px}y-h&wftRgO%? zX^56?;nc^5c5+!T@RWc}OSHmf`w4SNQ}0ih`^Q381T=V>pOIQ+G5K2xWGnmEt#~&! zR88>r(O}IYIwoLFZq<igG*_Y7IMi^IRS>e5?&%@m%vJbN(a}xe)+oO6C&GvN^h68k zPK%BCs79reacoW?jbr#Wzci!az;3Sr!Q?s;<E}XyR$VV=Za1{6uw1RgHsG8VAeit@ zeVQ+c0RjoA&n@WZiH{4Y_tBCSxODrWxO(A!%Hct{+OAr?v2Ht;Ioajdy}t=t^_bO} z^&p@dC&NBNk;0DjA_Fh&Y5_yZGwTE6GNk=J;Ogt*sB8_1wp!gi^{usAXRb7nRI81R z_;XV@S9<Fzv1`-6!wDL(1aX3XNnfMg+tM-<dkxTkuc4#I4#?X5jAf2zFA~UHErb`7 zD+EM3YX#K_ctix>3bhOn<borL7+Zy9kIXYl*v#AOBIStF3(x>q1iD=23*^JIdSy89 zG_w!g+l=-?-rQs;Mb+G7Ok@RPOGFjukQVnl*1kk3<1^9_69Gb_*Pdui1qRbto&gy> z5ow=f%2O`tP+fKpT?ri#d5L)=9>#6<tpENA#THWSTauJs=!nM~igO9BqB7PYI7do1 znCeOzQQ63!AZaXoJ%f1vP-1)ESNBYW;w|6#zEJFrW(Y*iaa9ukPC!Ch4bR~YPKyfK zlOWIezLbGX?!JsiwD<_zHiY%s+X14H3|SqJ{>cxXU>A9IA^}T50(c|8bfKOh0A(iz z94&}rF_0POzwS>U_6T7r7B}j41$|ZBkrnBv=T9Z63Hbt5wa4~XQR#%5Qbwnlr^y^1 zbJggs9&HfGE-gG3il6zqIvM)9JaNvc;a!ANXh6PS4WEF_62j}q!|77Jyot699Y(^r zRu2CJJ|jIWf4L2Y(INQQT*Zw%BrCpA3d1wu3Vv2VRYL5l%Te@=gQUB1;vD*cCa1sC zFLvHq=*+Fec_#?|NhtmxB#hCsivOVCQ}qP`=4EEd^Z!`;=jh0y?p+v-)3L4Y*fu-1 zS+Od%osMn0W7{1Y6?AOdb~^d;p6{MJ?(aS4&pXE2tM*@2WA9pX&1cQ|%xChJ;vx<i zQd7XNR(+$8C=%0}zB!RxL{h)2StS>2=WP2!!>s=f`9EFHu%oRt%~#-d@GEfpe;ktk z!vm49w=tDBa`^AvY|9x#{fqtK&b300ATQfWkt*{Kyd}T*XFWA^6N4IA2&qmlJH$q) zQcDsg2OKL9cNmt0(A>vq7|$RX+}vXa+&|?8r~75wU^|QLbszBqda7)zs{=5LjX4t5 z^|bChEwI&olzl}h^zrhb2ga8WSBRIvo#;U!aZ*P}S#&7{A<05hY@+gHg*mbp-j@(X zQ!e-;EXj!*YsgyJ6dK*cu9;b%F_&+b5#FL*SE84H`oUu+2Lp8uLOymt*iP)xlcLt` zr=jZfVCP#2pOTBLGo(WGZpvY(vw~gnh_@pAvB`lmbig58ts1wNqfv`ehLd^Je3L@* zo!w25&dolr(rGh-zWVmqSBFwNLqP*UN&AI>&^F{0p95xF*~`G&Mi~9?f}G7wTJEdK zCV$VU#?#=jPH5(1;avpypDpox!#diubn$7h&wgazTH&a9NqDo)Qa7^BCa53o;mE#Z zYBC~m^~z06;oLUw=u;|tymL$9tc#CyOq4Z2pRCiWRjMwCR3Dn_3)NCyybmSzvc-i< zdAG8*vI>E-3mmGeYgaBT96>)my~oM2m}ecqH~%T8_j7d_o3=^s=>G2BJ|kDc^|Y-G zO3KhS3h2WpKFV=<w@Bp+^weZVamv-Jz*^Q6d34Pml#K)g?4Rz!FTcP-PZd4!Th+nU z(rQ+Gep??9-H%DAEpKjTGC=ewd>Azy%DEkq>1MthOI?5dC9%cmY?BYE2r^m~LC|Kf z`I!|$2vg{>(QlbuUxyHcZPV0P`pF`8a!?h5_xA+brn!z_T04Cx{pV9pLM(-r(XInM zwnWC-8+LgZvyA?tTczi;&YGhRars8NxH@x0!WfVh<+7Wa?Xrh|OjI&f9ylGVs6fci z$LV>EN)mACU%M3=`U;e37AfAxexQ1mqkP%6vPgO<ou`!T^(>s=Il^_JbR)wh)MO-O z=BAomdwo^?;|IH|%9wSHJHl;lh;hW|qOy9Cr7{Oied1_SLPq1d2M5gQP4bAmR!Iau zhQB-kyM)(7!%GhC2r6-r`9#-V<?IgjBhk!-5Rf==Ci-XlTQb7GSBPM@HRRd$ho4UP z7WVd%s^PT>$xFhwq%+*7!?~7RR+R)G?rZB!Rf+s%jFo7Kt(*Rc6m7-B$|0lgo9TFb zV2c3Of@(r7Dhukl<%2+%(Uq<0`uo{i4N5)ZwI8hVg@#8DJKJg88ZJQSsxim$qStwU zm>Pyfe1kpI0o;4O%fP(of;-&&FQn=)p_w6Z*E}3WvF92kh3%d^2gQS<rlyJz3nB#) zDvijx>bts~d2ALrS<vgg1=&T`oA&jcIdhDkYu*BbBiPwZAUwlGRv0)3om4(K+)5ES z91UM0;$uJ)L!Fj(_?BuY5uQz-fo9mmez@&sZ=x+_sr~O;Bx8V{CP#jWx7jW7uD1zh zjy3nhe7C9OMY!M{9I_P7>xAL#3+|+AyBCs9G3>xo?^@ZN;~pPvv)aViX?dHoPA!u? z)duhLLG$*J$o1(!Zza<9ls|N<{HpGN&b^PgFhMAPdX<8iD>8hi@|9HA9-p4c)ftBM zxv!9hi#RHPEXAQAA^Bi^G1S;CS}(78Qjl+WxI5HNXfV`flxQ{}*L42l)W}WS@X0OO zrtJj}y>);yQ*)1dD?Dul8IN<+=y4M*`NiOxHg<=Ia0J%D0fFiogYSX3;Te+0XuHXx z4{s)_(HM%26hZT={@4Qt`bKanDvp_|yAS#XlK+OzwZ}-f`GmDy*^CT1LD{hYIMys+ zy3nQMURhIU&lN9$o3TnUrNFO9Biw}fsM0X#y<co<D%awe1C|USp#qO9O=C!2{3{_j z^hE(rW>r#8O!|#RJmMCChO(Ves*#t=yq#=pF;~GK{Gx{N`6S2pAE-{Dy2K)6+P68N z;Npk)nrLK87^W=>HSIO21Oz`yi5Cm6#-8iSE9>G0lbIM#$NV+M3|gRTup!ZDzr0K$ z&SG+tL2;133JZ2G@m}n@^@R;u8#3KSyCvS4y@<WXPv1d0`1-Y0WHcQBElGWfq8W-} zI`^Q)UDs2EDHsFYw?`hi4568AAEuEs%x#eWe>s~#s6Y6{UzEhFFG?cWe<SDr?P0`3 z$p3$`>@n(kUkU-Z0``d)lxrcOtJ-v!;n>n#48oX7k%mcrLnY!2E}^V@ZSqTQd?%q} zC9xmhm^$xqJoZ8gz()}5Gj1e#a*sABXfCijJvVEer<^yBJR4t*wt7Bbt_3;iv-@HQ zZ`){g$lyq1+bE1Q`fa0jk_a!iYeE!RsJyWd)F+PWeu+mJNvFzErpnJ_MoXN1Kc=Rh zV$-oZcC`L++|;94XDz(lTq)0m*rl{1(zUQjbH$;(=2wT2iW6wTX^=7h3<#;hxuS`t z2!i8%fG7&V3O)0_Y_)4Yf#ExNP~d~W^Q*h?Ej4`IdGGrWoGg=nMOgQJl@+L<MqGb{ z>~WUdF}qPdXdATdv{SHEs##qvSy$RX>1+=A$589LwPEFDT>d4oPGGl|=GvKYa{k)H zr_G-$H%K`&T$uzv@m+5CyoTUX;$?1#W^r@<h8IikL&Wj4Ifa<qD_`^cCJ9&U5aq{S zWE^U)(j9$5bJ=;*pp(v7b&%VaeI2}t`r>E?+Z6tqw$besC$QhEib0EBN$>R}81NVv z=7EFmG%+5MATpuUu;r#+@j%$4T(nsqIHK&XyP;ULT_1rAiO|%~azE+lZf!o|;9aGu z<Z**YcyJpCz3LH*VVqE)Ok6%T18rzfQ*gWvvi7{q3O_GfKW{z9+^%~yYn;gv+@WY_ zlF;f_e4=oxJKJ74&e^vSac)<2W@Fsmt;HXef-@UQzwi*GhC0YecRgh4&F-~7XLrq# z>5R^hCSE|)_AkVZ_HKKuc)}bc|B>RE(<{o!U}T-LC_xzT3=9a%sP!NDiF0VrJ43$b zsSUPC_K($xdY8Q<eJVc$-M!Q?qLf5pRyRsGBLceE+?e(25~?;gW*-0q+>LG$VnL-i zt4SB<{aE8NJPE2CZJ<m%pZvBgn>t66oJu$BWSyL(*75~{Ax}=oht6;Zk*Ymd`X4bb za((}i{XK@LC9-51(YRAMfpbzbpCCWp>PIz0;hB26zpL*~%u}rLlCKS@5*;e7^E)X= zI{w$8Jr>JcpJ@DIZtTZ%NU(42Cm>QoOiCbdizSbKi$eb^yE>l#nGg%P{D^xmJWa^R zo#mO$tc}^P|6AS|4Ud21oR|MSH0>(kZb{iagBXfMgkwfr>G0B@{vubwOb+^6otf5_ z*+#dNE<wNA`x$Rr^35~t+On{*!<k4s%0#MbVTcuOnGf24?A;V{ee;0>v}=MP{|n{l zPuTy0l$rVD*<X+{<EvrK|6%3A#?CHIMkX%*+uHv>ltxV*_y6F@l8kuMbdldk6vYh6 z;B&K_5Ro!yHZpVxn??CeNLrLhKZvBLSTaP;ps!l<wzFi3J#K`RsUr&%1)q!jr8eFs z?%Cy|{`^^-;4wGo{$d0?W!yjY`1wF>e-oTTmE;WUYU{1EjM2a$OYgIRavr^TM7L+M zA2~}ux=2AqL|RKQCreU<N7HJn$PW)ewL$7|U<f`lN*2+YM-3{>hdw~1{n45KlVH3? zt*R=42>_qzqzYd!V3M@5@{$lS!*(Z%VIF!yoj|~#8C7m=)^5l*q-`}?1|U07F)Guo zW36fC{%yD>y;i@W3couxV?B&Srp}seY&Bk;*!Pn%DeE*><99<qU`}C+NemOiVRZ#c zr+1SLez9et)!n9$+6Ht-iQ%Wjd7sZ@HGT=-xd&BnHSchNLj#<au<4AO1ViaDBefE1 zCs*py<3${tYpe;<N;8{mR1}>lCzT~_scqVIVuqa)7P}s=>R;m}Zl?SMN8QR(T#7_W zwhX%lHTeYR!I~HyE*?jxoQYxqBj%o6Z4OF7d2TFda1f0WTy&=8nu(`#j0LnJIa~X^ z1m(9g`mw50un6w&4_0H;iH-0)t8d(T5DY2y+Un42IA`F-5YBZfG}VZyGG|9j6l_S) z7D{*kC%Gj?K1f$nh5cGU312TiEho^`bxisC{_|e+Rie4AKDS%cjCSDN2EI`**kCKY z`94xpRmAKz{N~fnghEj+UB}z9Tn&U(d0G>#+5rR=Y&N80s>|wiuEUD=xjh#FZY9a$ zO+}i@Z&enWBy28kv`qM(8c~S!%1$jt1oanO?(>D9G)K^5!yH6M<jGw-!!dYM>(TqO zcsKjkc=d;W2Tu7<CJ=QO7DDFmvU+d?>+o(4dH?9F-GlTgGh8Ymckv01!y;VSUee~Q zhEJp8Xfkww&~TkCHTRG&+WvL1&Mf2h!>ERaVo^%&`Y+`s?{TN-gAJi*>@9|$&uY3N znSt02%*(6iTI$>+)^bO&n4IqtjCnz+O3*u|JG#6TyAJWejgkI8Z>#CWB#9u2cBTXo zEv;xg{w<!%t)Ne9)X{)r=WbQDb~&@N7x)>0Bn(S|=DtdRn^nzDTl2hWyBSkyMAI3z zp8jOg2@TqFh)hV(`8qd-Y>l2w@rwqp^*nZ&|I@#y^jn&S>8?#g8;)9|HOEo`{IY*+ zPWmODv|MRMchXNynZIkbv%BNumnYeTE0OICy|_e+DOXTl#b)dR+=RWZj(OH++Tn|- zYBojZTKjL|1SNmv!UbC_MN^%icq}&ds&a#cF9;Ko`geNaOE>JRb5%na4?S1>ytq-; zyRD1aRF;T=)<j#zfBH_k?@8qeTvyGF8H|xxFZ*9p9H?^Om_jV(3Q8!@Z`Mp!-PYhk zyTA^^ybD79X<sTq=r`8%UwfqKM}A8-5$owEi`6IH5y-OE?w?X!kQ{%H&&sY-uJ3{S z)h@Z1w;DTnCOi_IULQx6(~hmKE`A}Y14JVQt7-kd+;v!kaNsk08B*b#{9$_{o1sU( zPOH~}-@nu+g-OmKdocBG47V8ryL`7y*6Q`1-xlj_w&<%D=$?-2V^6RSF`E}Gt;*8Q z;O8jnJD9gimnaG>&?}QXq?g?ysMYFu#b>`;=BD1z$1^>aJe{9iM3vuc`v&8)`4uCp zr<MH?TcD_5RCbN1cq^;+d3r1Jf2N-(6S8a!=pBUPaNx&9*c5-B(Zr3d6qD!1=C62E zy!Wd7>94E)=J%8Q8x4|F`5(rA)Me{0Z+%`SLJ`aY)5<1sGbkWO-mKrVJrao7rAN4o zq;!pQ(oFKocWslS{N|>)Y`Fb+2}g*bEFzu~qif2$k`yn13_Xo#5>zvVD^Z;|35-Q& z_RaP`jPSBmb%Xzz;ugk9L`ilOBU4`3y!gcL2vH<pP5RcjF%cw=>`Z!I*;=Myh-XFB zp@&>@+gR)2eNVH>>Pub@_t+6~5B1pn$wcjOe%&QE2*>15q07s({Q|XVFA;~z4aJw^ zHV7cH;DguSt_FRoa#K-jGSkj=h<P&xN<g^{&%Z6#6NfD&Dr`)aNz2I_TcN8arDw*K zE3J(97ERMYJSO~!%5mY^l)TqG=gl8p*g}oKxW23<DFC{;pNS5dNpC7^4dtpg{hMXZ z<2v?D5(ERe8Wo#r(Rgwd?Qg{2UWF3vQ;6#ospL?VlXcahi)2}m{J!-GGrRm=%=iy< z&(CC>{`z0eZTW&0zVoYlfB??_B_V6%Y+`B2B>bOQ&B)jW==}eBw~J*@mx(9*k(;ei zVo|}QZxJ~fQK`Qz7BUC1MdGD#Em;7AV&n->^-Yg8i!GQNYEL;O)r%UkmDL5sEvXun zbbkOk+N(z|{Ow1ZZ_@%#J>H-3LYqumBNO)BPS@E<L}^R5PK2e^bL_Kl?xzymMhXJ* zzVboLrTMGW6PARB?2bIj5kQ`RpH46PiTt%f9n8}QY9JYRo@?w<Y{hXp`Ny<>&bfo0 z64GNmlLIgP;2-E|7|AIqyG|k<P>~P^8~e+h;w2zB1;(kAH1T4X$Xgf%+_W4`?T6vx z`CUSPqmmx>-$xZj4ln6HGeDNv+Pax}O7W`M1k~e9ve#!67#`}~HC2s1c4^uD6)2H% zOu0&#NlSdc6?=O+t6T&83$`wLZ`yLcQO#bcxv$%mhVCs2DMYT7pNO?*hkm{k?nk^P z2aEVC`-y0~3F|Ag&xv)1?A*#DyX`)--&T6~vR5k?^XpU{w%zX)&p64T>KRLcnq#ez z{P`sC$Bk@DQ|E1&9E=anN5ke{MzTzNZ}V@l*829GIK`d=`33sfeEV#^5sZh{@6g*o zW#wDp?npZ!B;*!-%l|_q9cEV;sywHU2kgDZoso!E28DB25x7QklWmq+&$FEpAVr5t zkQILQ;feh_nAE0XVWkVywPk0kVX5KBBw&b69d;dlkf1AUPB3h`QLDmU#lMIqh<=oS zEi7~_bWEBVYg-{+Tsby&;rN5M5ko9dV7^NGV@!(E3%@IRQ-VaXeRfHT<rVK=jGD<W zmcLSLFnB>RKP3L_aIi+pnUt|iT;mPI(09Bu3|9|-Gbu8!V;xuUQygOXu{O%$6vJ=Q zlyF6(Jd6uo*o$k8iN6<3TDVNjGE7h`k)doS$4rTz6b*0Ez%rC>m6m6=ZnkbGceJG# z$3`Z_my|O!Wp-5Oyu!E4x6-lPvEse#z2bT9;|AUluQ$kOc4cy9PVyzJBD(^+0z7we zgMLGOV}ASgM*W7{k?5PPHze5i#jP6>oD>`o1PP7^PIvcqk9H4sPjvU!m@U=SHl&<e zpP!u*oNGVIKQg!xb>wdJ+L?0I+c##dFq~_+5xgP4F?Qtm#`)&``?b;MH+pI6Uf;12 zw;Z=3aIXJ|;YQMtC(ui5ic<fd-iu)?WamfcIOocbvX69+xNjV9NN)^pL~jCbklxt> zeYvLorvAqMX8uP0K*jpf6}EH0BcXThznFhHUA_9IpN5~NO!a9iJ%OxrIaYrH`hA6k z^$i^AmT=H_A3{RCe2t9s4LsU3TafpInMd(<{z^lU7A1ryYe>456WCcI&Brf_$y;I; z6x~uh^peF$G_k|5%xafW#E4flaazfq{f=cvcAWJXlszk`X(B$AJ}c~Q0>_skD9CR@ z!<Qx~tZ#zLl*%e7zo*ru=)%{O&C1WX$JZt6!d{ZeDr|3p)|S#KD8A>_rRpMHlGVvi zY2wh9#fblI8^k%=VnJsc<~B><5Y!~FD$DmfsELeM#(pqnHp?NY34>SKet2?r>X`l_ zka4!=nD!#nZuat+@gjhDR_wW0dNh@iOmY>YeO7-o>2cV?l4M`@%{ZDJ8r)I{Q|is6 ziXAIt795v~D4f(1Ke9MTiIgb%X7&elN=c#Isdzg(Bt}t2IyF(G^sG@?{J4L?>`prA zq)6&L_Bv@7R;!GpVXzCigp8z7^8ECh`P~Okr$6IW-pE_r;lDf2PnJ&qUr$Wi|3+>< zLOMUWH+#aLm=6ERdVJn=`qNw)48Nt_ePDQeMs$9XZ}tQ}<xRXP?))n?u5iIGk+vVO zon3S6aN#ZSJ}~G-oKP||E@4GzOkPQ^p6DY4G9J>pZzCTlte3BcbR>5;wmP9)DqjwD zjq^{a9-4GFfFUG@XqD0TlLA?=>7I535B%0^`G3JCQ)m^?52+jo^Ow;Nuztx%(b3h3 zcz#2nLD@4pK;tjqkCaRqxlV6Dr%M^RX={M5Os2XHz9r99%k5VkpYzc6gqfzE-US@+ z@R#z(9i`x02i}tEtLgX4j)Ob^p3t?_mG#<yAdc}$5A|}f;#+)uRsE5(aRLufKveU1 zmWQe*f<4VyodO{4VI0OriPN~S0WK@K^`@l(FDr#%xxi*f14z(9bG1!$px0SxGvan2 z&{^6U_mqNi9nb*DmyB|g-+;lFqPJXpK5TbD=2PSo9hV}oTzEdDe}Lgra6TXi6ndnC zb@<5>9yI=gP(^U4blm(|jwgCx9F0&}aO7wl=UId&vT!`@S>*-ZfM&!&?gig~Zfl$1 zK*y)jC+sTu>Za=!(oZRNugwX9DmjU}{5_l`CGR@vmd#JYua9ZG_F0`LM0MOUTVrZF z+6mh{#hJS_d&KjA>%HVXb}I#;?YHir_yNj${(FQ_ifmhv?lAD6)@oCR>UjM0C9gJD ztR|PdCfBqkH&<7ntIf;H`Qd)&^aQk!)W0wnS6M2gsYt6i4OWvIpetahD-hJ?1>^jH zxN|Cfbb90TVCwK->hyqkaEdp)u(x-L_hIn==P&dFKIj4jG&QC_uTJ44HewXQnW#-g zi<rJeSause&&~Swxhc##w`7Z+XIC8&@`SCnm*zSj5Skt7drc)dx8-=Bc{XJ$KZFYM zjxGr=@V%ZIMk7~jCKd$!LMFBOs|X9t8{Q=B|0PBt>`G8{`dbOsjsWp*A2-o_UEfb4 z%#+_GNV6_VRYBAQh_k{G$c90EytuWHaY&)Zztv!8IHi_^GmwpKwikrkk*!v~i^5{K zpjrpX5y{O9+Y%ry^pO+I*Y`0KsU3fxf)ON=TNLg@3OzHF(e^6Fs1UMoy$P$HQK(~Q zbV;3C@g2iMQ{9<J-ip{mG1>cXy-&Ipw)v(nl7iz``kVH@19+lFb|OGECnHOn{{?>j z>x8eertnoStXG<YFi*RrOh*Kzd@Qd0EiwWZWA$fxQMweIGCtXWi%l4!Dr-(b=k;Kr z(C^y#>;9;Sv_V**UZI;A60j#8)iVbCq{j)~FCyCG>RI-5DTxqx`mhTkyvjy=!l5js zgsjGpJXR8-fcPBUa%J~PTjgPiHJcdi8REFWh;!f@B3b!tYP<EJ-dyDYDB#MYnP;F3 z7wa{J?(BpErhK_fMNe_;<{Y;ALVnGj?I8_6^`s`Fd*JEfH|Bf}<$y=|&eE-pMxjjf z<hwmBcIUNW?5%*aj>EqnLHXWmH!>}n2&ae>+unCWPhBE}!7uzSq!_J|wuM;TQCON! zZs${-zykLR^FANf$_2zo*ExfRNm^0O3KeEVvdJ^9Cy0)*B!qdZu#fDCM{2r;yX4;> z9ZLo0q0Q!hC0#Z!8oryZ1k<)M%FxQ0J~1f-3|kF2M4LP>Y30s7^W1+DqC~|t3Go?+ z6Gkux9zGpojGoh)4pIrYq4Bp%gZ=gBdenw&-<B8cqzdnCFujxzgLJX-smamt3P*WX zyKE$3*;a~j<I$Z&UcgeN%dSv8MQ^_CHtGMSHT-szFbL-I3PEQ?l=A=v@lX(_#dBI( z75+0QxBw!7Xg;G*woR^rTV^{_3CBvc+$)?nc)VMsMaDo@kyvC=@gBf)hn-MGIeoul z<9~=X%+BKpl~XWt9^kVmI4T`xZh&m+7Htul$Z;Z21PJ-nkWUiO8`0a?KzWv_dm*r~ z#eIU9iBT<CeuE2e3EGb_fx>7D!Myw)(~&+10Td{T@(rdj8dRZfGzk`mK|&y-*R>@u zLX))!7C(n%*G7zUjER@?8JM^I75zI+L}1`1FFXo@oyCPU`-Ma81Xtxg%ut;D4@0nN ze_$+XHJRAiw;8cFYVi^1kwLEi8P>{@GaHroqI`J%-;lq&tBs50f2zd(=c=#P{8Uw2 z!V<E7>iTymismT>g_s!G)_@-WR}2vz(*-M~O{}u059qnu2)g{!@r|5wIhegfx+k5J zMO!t+hsD<Nu2`9MOpbSs<dq^vq11Nu<ep^otKISW(fZTlWrN{qH0!|1-DcNQ_ViJ< z^K{qM9FyQ{aCqj)5xBOb;!AmI2_W0(<^pVRjy~6jWndS8y=8Pm7}ZFh`!wf%0==kz zKlgO}W>=84-woGcN4;N6@_ZZyt}TA#F(pgyH@G`OuWxn(?=3XFtB#GMrE7YF!K8OP zYYp$|g<dbnmLG4;TopeX;s2iMLWPlG!=5038xxmxne{yIlZnoNx(KPLFd|yyQdoZv zM^SRZ1%0sv07ti$|93UC8)HUwro@AtWfgO*q<YZ8o0}hZII?eaI0(LcV+>6-AIn#x zf1OK^)20NrV8F4H=1g|D;3jCMX=r*%mcx5JaA39D)T`-4jGhO=JENp)@1|;jBZZ?+ zxYKH6Ld-=@3$RZtHBtrD7HbyQNSrfq5^xz%t~Qlo%?v^8Xf9=YygKR_vC|{_<0?I6 ztQQw0cnFNNlq1;I7xy(BZ(0J2m379X#I}bk!;d{h{*iKIj`=V1GH`k^6r6wH!%$QD zN2ZxE6uy4Sh%*8#W#UV-U;U!KUP7J|zisA=G*%R06x>fWn|aS3pL_}r0~;fV@&$yY zJx3evdUtNl_@=uut?#HuyxMjsE|P3!_N>SfXZZa=dI%Ue3a0Kx6LPI4;U{GyyUI`t zDI$a#TULz5*oq42mI^4Jk7Sc30}P0U-{I2QT`E|>;Y_NdhVT2Kvys72!Ci|(2Q94o zsLPsy+1^Dk!;?<Po@0PRY?Mum>D$w$b3B^k(r+1Ie2wrg=l2ooIuU5jD*5W=F08<k zM%6c^rf<czgB+ehQD)c-Qo0jx6a?cg@+${be_;XyIvpL1I{zS;g*6^(@nx+PC|R<n zL@K%t@4Za$ucPX>wKQ7DTzQawiR(o?25vO@KL_K1TJDH99kMEM>?B8iiGYUTL4zDC zksg2y-$SS;sCISK%b!riL~Py+n|WAKZvV_$s#U}NDpZL!N>$@IPv%FpVQrTzQ6B0S z%jfhL9~+O&9e)jJoZid=b87y2<<!hprRgu7Agz`w4M4aZnoh{E<dkG@<*pOVSEX=c z#psYV>v}bp7p06Y=I$<z)osq7Fa)~An7Mjop~YP9O_xcQvS3ruRI7d+(K3rfc?E<O z3j+K+OI6FvjLyT9EoZbih4kB9V6i7#jZcU|`!Ro`dDG2hL;zAZj$$zfB5t*k(trG+ z^wK!_*$~G?K{bC;G>raj`HhyY2lyr3PF3KDTgMufc#@EFVsYvrbZ9(M6^><Z@TpaE zP<H0fSv{a!rp#kbq|M<QvX~_D@K>)1d>RRQnt%l*1iUNT8nQ>dh?Fmjr4UZBwl5K< zhafPk!kSj#t_X^5;cOpX!)j>^>4gto&FV7Mx`=j3+E)>`i=+Vp0WS94p$WncsjWJ! z!>n@ym{o+mDnj0*;RS{aupYoq``Zma$-quo03VZYCE^`VOp3B-Q|tzN>Nath0tzIF zue74r@Ugnf4&FmM6z%s75s?35AhC9A6rFZA><}#w&ciS3svd)>W64-oAVWucf$9jP z%ZW`9_%(<r69_SPc$z>^gq7v}Grh8zO2(ODo?@bYk-=C+!Jv?M<l3|9VY}5*^#R*# zwWL45sw``bU9>}t4sp^oq?5K`H*;?SuOfdkiR$W)9Mt`fB6GTXHz<#+Uo%EoDa@H= zX>Rbi@={qjnUwHR^A1*cMeqn5O$3>tj`vuw`#Q*@v3O}Jdd|=hENTxho=3kHY`<!= zA4AfcNhi9EC-}-RZ}ecN8NSI8JBJOf|6p;Knjk_pTeO*|I$*v^N&gJwv9T=!Ykd4< z_J%qP#LCsF+8)zq0VHaZtzSTu>wU+9iP!*Z3nTrNOvOb$h9vDInz$ZM{-0Z({c+1J zB8`|HZpeS5?__^bep`{cms>q<ZB)Qvng|Ai`4fQ)B1TJIsw~{gP8?-dz->q@>?25s z=rZc^BZrIr@@N9nm+D85_V@wEM7|S3-WfmfM&_RW1RP=^6uy)@9*KXN=}3NpG{7Iw zIS|OZEx`4|V2LIRHF2j2MZ+7IX4xIE4~BFJy61FN<%nOsnFo7-_e8W+u)V`27R{lU z_#-oV=L<d88LDxbWeO4cWRb<Wr(Cn~K0(cm8i@IeKSHb6(a_9-A!cuxKcpV+{z&@1 zgXSlJ<beRqH)60N+uz+t4qd-D#328syND&mO3k84^O8C@WD#Q(AwgM(iN1b!i~3%z zwwHl6Bub(roi(y?Xv@wY2nuU@hgi@E9DQpdeR2Z*JZ7e>kgOG*fF|HUC#22mn6!UJ z`U<6fkx2ESMGbp^hQo2FK8zZ8g8F8d_ixy<KT7+K5aR{qpZ>Ci4<l|0MIj70b5~9W zj@&ITnb&*je~;3~ROW%1&}%zF3_lxjD@x*Vy4_`^b*yTLTWSlBleGw&Az1&a(Jw|V z6^^#*b&wOAhKyqIk{j&E?*4IwkTd0*UsO?bUyk7BS}{cRuRSnIbVvHL&Djw*@sNH* zS6+QZCVj5cSse(h@;J1C#g}2Q_p5GG>Oy>hzs?z<^uX#khftptUq52RYO7ALvo2aI z#B^Q%fXIIFT2P%US@qN4z(0+yP)m7La1NbD;+}pKt*e(XT~@M|U{oC&X*zWPyzt}o z?BEQUud4^UVV8RnP22CnxFbP7wftJN;!FAKMQBlVkT^%yKfP4Wh>tx+BT4Gi`?&{} zhuy1*4PkHrb_AwRE)=gfg_1hnH#-#MF0wK;O1S-j?&2Q;I_E1JaR-0)^%;Br^Xsvx zNPxjoQFe7M@zGM6U`rbLqRP3a3bu_c+_tXb6-IqR-CycS_jiNg0+M!hw~@QsQ#N1R zRCo3?B-ta2Z}7$^OE<b8O<VY)tl9&*y1?TvUo@hWZ(f8@`a6Fb+IIbQ3}@-&y^5u4 zO;qyt8s@smTL_eMI^?Sl%>Zn&SfSYKP)Gqs!{r6m?@LNibmvdkcd!=zVtdb+L!VTC z(mr$@(C4M0TpMT>$4a!0*u}XtE>QCye@AE)(9pU-m`BB25gjF!t!$L2J9of#do{Ua zgYo|K0&|+o-f>jheweW6eY4kebbZIF`GBGFhh3lEJ|%hPf2GoWuiPdp2Z-3E#%EFN zn|XS06soeAa&@nt3tsk>q6a-CyWKuDL3Wckx7EHp<7Sms>;_k(bq75Xo~%j2jkLxk z#@dq<FLPDxiEh+?;J!Nn^HDvsCR86fWLI11guY+E8g4O$gPpIXkknluFbu43(?m7a zrc0`uSmau5cGwc1QN*bxjs$PBWbi#HML&i}o1cYhN38u_EhYovq%sN|&jvAO9A6ve z(fyeevrzS^={>{X2Bl3*cDZL0bP6!o_?-P0Sv*X`Re%=_46NuYxB7pa!CdVuzhqs3 zOzQvd=l?{blj+_bYT~KA)9p`gTYi+5qtL75xSKzIiUc;{eousozlKlzHC!f5#h%Y{ z5}SjJ3Ppk|ff<r;GlqyCBq|}^SN1)!Q|+3iTT<NJEgQHv!aH@&yLZXINc5zZBSRI? z`|8WL<@YAJRGWL0&8zNOVb}B6dV~!Ali0^pBmtwrs2O3n4<F}1JEso2hRrAka<QWq zd8uO?rcJqN-LxMDcKsZpwai5{t8D!^n5371aT%&L(;*81rq_&W9oe1R2*Jj+4`oLI z173W@w%|~bv>k-xJ|IBqUMqDuXC6;O>fR&O616`<`926eU=&8p|2+{_?=Lb+gl<@! zdnp2OXkKO=C|Ds_I0`$BA+x!ypux*%CJ?ZI5Xo4}$kb(w4UtOfAzP4e=)sI`fNx^~ zcTz-$^}}SWe>Slpqp?EvOFp<%F2hIJRo_)w+*-AaRBH`Y<Zs0|+WB06f<q^2Umk}) z&_SKK^#^YGG(+4-f5K~daj|-_Ng63G#SD=ByQd#Fy7uy{7C|Hp8swqmSs;>ZP<<VB zr3_g&>3TG?mmj-EUPlAtpJ*|TqZYCLWTXQ|qp3)T0ku;SI8GUW`LUz}XDHd7Xu|6= zd;&_%$<&%9|G^Ns#p{WAeOKgUtNLIdT7y(Add|j<84J+~oE3<cfyf&gPnoLJqB06} zN-jNP&oZ{}XEJmgAYX5xN{wx=CncdNmV(JvS&_b<4DTIjDV-?=pl*nsT}?euTTzo= zfib%3)lW^8*v)@ciY_^^tE#4h;|w#CB(V5fS2bI)+r3#><6IWQtD5vT$f$vbQXC&d z5cptfWNXboPoJFd_`{rl@sBJ8XMp&;0I|3f947}y6E+9?JuZttWm9c*!Q7t-yNLOr zftk^HeKy)kJ-mu2MJ$C8>*H3HvM6x^%SVvT=se4oD)|G-@afy-7bxwkP~8~1Wyfi~ z4NP*_;nWVP=$4W3dSHwR!<P;u!$(-U%UxVlK$jMza5at+6SKm|$_LoMpBM^kN-<8p z=N%L*$Af6<L&^i8xJwo|%I=EI;cDB)3mNMF{5`MZrY<kd2_a+wpvVRDqwEh%^Iv~U zPQNaLB@QAD?(^kRphve!$BGg+Aupw9pl`~aI&6@uw`Oa!(m5T0N9&OHScg>XB}O@i zUS;?6r9{<M#j!%aoMHf=MMIxS9g;S;o4a!Th(?sufF|e%v7Y_m1G<p}$T>Q&)e>L< zn34rf0vM?|c4$!ek*3q@rXk;U08m?a1e=hs+dLS#PrbtFhW!Y{+)!ci+@vss54|iN zGmuQe`LOz-q!_W@+fbdm0h;2I)=K*UOX9cA37tO(lN_gjXeC`I0j=A0u$!Uoavqvx zp3{&$zuft+1;yl_dm%~sr87^T;IzJpzPaf9okc~#nVUIV*g4-RtI$0U4CoS3deT<u z<xhJRqb|@(Nv19fw|*#8I>wt{ViTB|Ah2VMxu;!gtl&oEr9o9zOOh<?ArK~JPPDOC z3V2?Zh=Pm!xk6u4cG;h8$c8k*ec=@zM&J}ekR{HRQ{3dtK4)2hGDI`(xO~AR#od3( znoL!D?_xj>L7KCmzHU3uV_x8v!aWygBd#svjGE{P^U=r|iFLMRQ>vtarl+Js#fXJA z9ee>9{7Qj_R$qB{TVW0g&zx;-AoY61oWj<#9A{mR!Ya`Ntopw{K4CF2y~e8uv~6)3 z1+=;&KrhS-0vGO@?2`7?7E}i&n?27d)yI!i%swv}BZmU3$B#s(H-cKgFYf&WYSrX- z?PwaY=?h91&l_IYDu)On^<`+fkVUQ8#Id!jf1~Q+*peEUndi_nlYD9YnjjV~ZE$-P zSvn9$hr#`dCzEYw78CP-QDdjJlP^d`C{shBTn_I(cRa!KgNy@n3uqy^r#h$`Oa2oM zR`>&Y_~$PtoNKT))Dp1Kb#bMiyJB{<<@2U?_y;Z-S;!$pD%4$CG%<-Pd@LC$ueSdx z31Ow#Ve=c}JE+ts|G$GSg_H|2a#T0im|A&!Nrhy_+Sp5GR^ht%1(mlqB`38TC3@pT z&yeq)*&`3u`vA;Yh#Of|+{<sZaeF<d&hA%o4vPM*F)e^S(*{k$tYJMk1;eOB7d#=0 zqFOFw#UY}>1nmLa4MiG*mxNc|T>E2lu9GF`9$Qu*$U|3T8kHtz^BXg)41o7AafEQb zg@xkbcVVv-%JTiMjRv4gZ~wXDpzk((dg@6KL9v<p0ob(PHSr@sYS(0Js;7AfP*K|V zn@U^EqNNZyQHzb0gOhyk;)|XpPSG>cM#B~478<US;p-$uY0P!jo1tOc8N@#OceV@W zG|pZA>t2Y=MG>hm*445o3jkAb=8yw)@_>3B6uuFSuaF*PsV_y0RA~s70>{uiI`XpA z-l2@7J$Xha5of<oJJC72A9yo9yBCpV=Fhc0$m$|{h-MC%BL-4WsZ1QYBY~e?AvqnC z{7B_rO8Cr;BRXy%R0U@j^CZYAxRiN29_!qIdB!^W5kXuRC>Wf!_nJNC=__8-CQ+G| zt>U9+TkIF3Q9FU{MMz?hs4Wq5W+uI&yH2lV26-g*5W}|Jo#Bx?6+<g7Sp~0Q`0<L_ zu1C9A67A~x{GM~=(y*=^0ph5=TU(}?j%e}sY?Nk9bkhAwYNB{bUYMm>pRBPS$I}H7 zVlDCZ1qY&Ht^|WsLjhk3eH6ZMz8#5^7X}y9v{^@bsyt8X$sqXg_8n~PIHwFU0}2fj zoN5C5H$8T%8r>MZrqDFdUcGEh)DP#Bc`GvOwS$V4u|uM!TVq#Mqbyx>*cJaMUAoe2 zVXW$&C{qLJ#$;=tECn2+Q?LHs?@E;=5ImxQVIy_H^VpC(8vR$<<|gzJpyeGx6@{BV zY^$imtlbeb{3Z`d*yD<ZgZ(}UqeeqFJ~|d5le0K%$-}!%YUg&C?VE0+FyG2!84=sc zL%p$XR>)ozEo;6vo8pM~DHJVBz<mGu<`~j&<HJfWg4(h|5tAvXF{K)L-lAVJn(EkJ z<W}b{vbs{0xVn|JnrGE$nX_f9Zp8+$Em6sO@h@`2tt2X$N9OC$e%lha-EA1iccB2Y zDIoHr({dm%?KQ)NcK=&kAEL0O5vk~|vc4)owa2Ih<31PB6-K(^i@9@In%QB<_h4IE z-*H@6gFqZ|bX<6e%dcR-tk~;a2dmJRbgg6cg25m2ZTdIDV}71sUg!Y$MByKV9mj0s zI72wX;dTe8w0`AI{Ma3M545ZuigmD&8)WW)r+&I+<l0?gS|L%}Y1OU5YwT`t`@Oeo zWIu?j-Lz}s59rM$#OI%~fhf&=4k`rl2RGL>sVMfAs@s~Ya?fH}C_Rg*{WJ{UdS)`W zRWEp-<<`FCS?g>g*uti`tE`dDyQ948i+!I6$amQ-RUJf6_>QpnvpE_W&w*`-2aQic z846>jujpH|o&*KKI|s||!C?3iI$11*1pll61XtqH!MD!Pf+9lU?zTvYzZk*%DpO<* z;Nr5xH@3!u<%8i*7-WLd(H`aA!HeqxB9-UF!XHXxqjXlmoXy_B;dUD{DNeM1R2Ze| z^^)3oSMhkI&x^`vas|Kr(3(P<MO5)o0B0^Si<{o&n<#M_yR|E1V6<b(`qPyyg_C~Q z<_3&>g2rXM-6giJw*lwU15OWI%Yf`g4bR+9d4O+5Vmx{>q$Iyh*c&8~;R4EiHh4~w z<?i`TS{m0;L?}1B%?yO+XBnjReeB(=$V}O1XD<#xzqA9^{QjzM@9a?zs=sZdk{KWt zk4kv8rxzxB|J&SSRz@KQNc&y=aCDC}qZ=!`@vbh)ZfGG_xy{%T?e7eW&TLR{hzwMw zj5`iW9au!Z@anbp{6{QM3Tf6r9Vh(qPJCy}Y1yqa-P*|mObOkx-AB0DP({<$x4%>I z`i&s*lJjQh(*LKQ_>5AzkUlH=hq>2?cj%}B_g_$3rv5O)Jmi>0!<I?mdlRv=oA+m^ z#_GGBPIt;WnNY?)Ns9KP)PTE7UwTj8&TErGy7w?+MnOxa&*|s_(Z)2k<I^ZQQ(lsf z4%V|CRc|qrsn%nr$m%K)w}=f6m;7==%ES4a;G3>Ri-$W^g3!Jl_FJ#*eYAARg>@@G z$8I9=f%}u2sD2#5RMTU0M&87CnpyVc`>yl)hh>wqtz4E*I`2V(1*43$zVpDUu2h=5 zB2jwPXJtZ{9o{<t?wR}5LkId6sYi5fJeYqG)e={HBn+YiL3S8rv@on`A%@e57u;{y zl0uwFW;|LJ=$b)rr6|ZBk>#k82zI@~4s^(&Iowcg%AQ;$b1BK-VaK#SXly(3gfJv? z5BFHHziJ)HeWD8g#*oc~nK)3#7VA=)?LlRS^Kc_MJ0c&DriU%5_;D;$kBoT`z&Oz9 zhp#!pyX}g5U?N;o(DsDR-5}8q#$6k~W14R-X%!(27~7Ih{cX50wk5^30?)2a*``<} z%q~nZDc1;cZf@pQ)KNUha!hDJV_M)eYIoz(uvl}9ctmAfaN7f}I(F)Mr`+1_sIS6$ zG`qoDH%+sY{X@2H7Bb9vG}kS$#+^-aY|jmSc(p)0+p8BwF)S1$B74=1J_Rlp83Zhy zI!2#V()1AP+#|KgYz0?7*tSXdqv|}2I8=9|ES<pKc>Uwv{M{44bxN`)|4P*+{E2SQ ziD<(nw{Ga+*q9L7N<emvOh(X(o8(x@0)3T?bLxXD5%)26Ds2F@^s~!n)c-5TR3;l( zd)yBYPK&@{D#>muNpwILSQf9uX;scS4{M!Cv($Qg3+z@L8cL1sDMEoFzTwmpbqeOJ z^$ymU6$sRLhpHmKu+x4rF%|vc(G<227OG=V<s|)Deo6Skf`ng2;w#w~c8^JV_RxM! z3Sw&*yZq)$**4_5<O@_$(91|xB_U7F8u`RliWQR5mB@YHuM@6dk?<u(=9HNA!yzF* z!W%dqkmmnBj9Y#i=qA##6NGE&tZd7sx9GD`lSIO0$awdI&_(048!xsvB~;FqwHY*@ zTrOHdqnpz2N>ed=Lf4(MeT%gv<M0;Ag~pG_L>A#q$)<uUI1D!YQ-XHD7||Hf4AJNr z?}%j<_aqu|SZVkrTF$_cz$m@8EQdLpC6FbNC6XnRB{X3O7c^=XZ4zxRXSmPogooj4 z{fK^x`w}f3jewhk2R<AUO%ol33r%lBYl3gWTNv-iVgge*+FBE&G(l}NVLD+vVWztq zg)m{1%zDUr$a2Vr&5X@DjvIxW#){20j)xUZ5nUV&!cAkN#nWW2SbnC%(`2bJQ+s2? zD%(-{+j@wZpQ=2fHT;bwmF?759)b?nXjo>LBN|46jI2MLH4}G<)i~NrB73G^Ye;KS zYrq0n1=JlGt~IGL*PU(?zEmVxPbYQ6FoE1NlOQlDR9qu}hGg9AUmk2raU?Kd+jAQx zie`wejwWHfG_^5#4|l}bvl|wO_Qrc+xiq&ie^0-`7)Bn3jE2R#5UiHJ{z1}$;HH$a ztuPdZ<zLYzTd#U!9vMe1c$(!QbIn3w-&*0H{Rdt!f7~1MiB_<D`9L<oN9M*-{WChT zLowxv?q#~-7JT88XW`0o!B1(S=eLK{O`Vm{ZpUxY>#|*zAsj3N6(7J&+b-OYCZ>V9 zkNl16P##@({&UH$PNY3ucj0r*u6JaQl8?a+<Pge2r((seWF!gQN6;=4)~E7~W@H|< z&_C^)JWNHJ4~d&REFtxGxf|ypCd^Oq8`+^PTEF6FzM(C;kILO18o%mi*dZZWzryFM z$j|&|DvnQ~%3A}>&x+@~$SvBBwB0St9t<CN_8Thr@gBj8UB8hI8ruZ>1@+JW((65x zJ4A!F0s{+P{lB#W`=1dQ(XVKXijkf9|K<WVb(#BMExcWJElntV_cdq?L5-Itm4f0# z6|-3eLsQN)hD4AM3s3$oKD6n5)%8@f?0uyd+4Z#9aXaC<wRH9Ql6RNwoO^fZx${q+ zd@NT0Sj}<PQL{4r;e8d<u50ITF9q}<_0d8jMj;t$Umtn`9wh2&)NucxTe_~a)^2cu z?9q1g)cDxe^hY+d1g<0ji9rN_m#EKIO&-~V;@n~?5I+4stwl3H8W1uyMvK!3Z;CY$ zsG2&dWe4<Rp!>8LWlcCRO`X%qHGauGsI7Vj;e58n7Dp80AaGr5h0uF9zUQQ*Owyk< zUQ=i)7_9^y2&YN{p3^i1LAU6jN_sl2O;b<4sSw@R;>hCAVwA6+J8QJ*ZTJBirr*<| zY&f5A`Uc7aM7(J3CKsmw5fMH)y5kSfQ%AIN&Bj_N_Fo7*KdjCD7TTkW*<>j|N~x|| zi@+T-mqTo|+b}v4><<Ybk1WU6qaer%$U=fpu|EQ2x-(=x0yIk+n;IvKGNv1ZKt}YE z4TRH9M4%Xerz@1K8~uPv_w%f+R*OmduLIK5C;+2Ld*T6Ysx`pQusz~{IQ317*l=f4 z>s3r6^~RU}Y_Q+GJ6h6cg_d3qpaI;8)oURJG5@c(wWGnX77aweCe8rrm;-sZOkOzX zQ5yNjZz&PtUYv*<4pw+DHLgScGpdFfI6)rRALUrifWvyi0VhI)&#$_|Y^?V}I%0EA z$|-UFgo4Uc^8<Ik2XnXf`A|ZTdncoi*$X+}nf}qqzc-oOA$qz`!<Q&NZ*Y*`iv6`u z#Uw{PA>q;KbK0542gVWndqv$X$w#^3i#0Sh@d^KQ9skpFBo091R#MOe(g7Zn1ZdB! z^>)?dg#OofE7<eT+$7b%jRA??2L59s6G(uqFZVfRnlXd}Pk+_89OXZC%OLv*3$bPO z4Gkd<xLuCp0Rem2-1eXU9z|{9jzWLf*@+#&-R%Gw;F;lnaA43z_PjvXiEnT+a*M1e z^3kIy2|VENdsubzNz1#-xeJ_B+@@K`31R9^4s$#~#Liujoi=Yz3Q60VW%8`J=G7jK z(dCRfpvJaaZSV%@o4ll!!f(yoE@*jtFdU8bbOwc7*}lN8?+IwN0C_TW9-u*K>m4?@ zp9cZ2tua7+1f8`M7Fj%53Rw;WovxG(fL9%RLmiqfPjrawkqmJ|3g6diV@(NJa{1;n zR;$&0xM{J|vEN>wZ2qXyqAP3OKsfFM3j)y_T<aYImX+wUCi^uE@f6E}omOcKz?V?_ z6r}lEGwc>A(2HN%-K&-#Jt)lQt<zA`0i~KdWbGCSVLH)2tgdQ^H8w<&?wS<&?bg&I zM95ro{E1%31zu4-m}EeaUa0ZC|CSD9Pv6t{-gip{GNAWwd>^=Fl66CS$34)3kR3#C z+y{(njRSb=UChc2%T3FT%gxG-%D+^}Y3hDa7|}FT_0NVB(|xUXuGG-TGVl2ypn7U9 zJ&i1xEQTx_$cny8%d4?!YBsDm1c;Q{{bk;-jmcUtb%>^TgR|qT=|K6^AN1Dsh(JIV zkSNs^uxJ9v1LA^U=m{EZ1{+vFl=K4tiMnXhm1H0$$c(-az-f**&;Sier8fZ#*GHRY z^s*)Z=~Al!l=U_P4GbVR`Ze<r!PR_K_I6cvihWv1I|0}CvWt;eJR#cs0-}*%-J|nQ z#5@6evn+oeW4E<+z{kO8JHpZQBNLZx-c0x39zua0+fBJoCz}z$xudr<jHA}+1r#}5 zcK6KgZ1!5)RhLhvHP5@}My!=IzT;Zg@$SuTlaI^KmC*L6!()&%*@&r*24928(}_;& zWDbjOR?CK&xj)rr0)cL~@Z0)h2mx@bX2!iE9&}eKQe$WHwtljQGr3~>>hsTqwZ%kx z?fhc(u=URS-}HNb#sxyd%;<9L3meP@PqoR@V>=r*qBeW0z?;+SZ`+*Dhd&6RK!T>e zrWLQgacQEcL&dCa0N<y|(&rKi%6g;iRm<tMmq#HlKVEJHvSK6uz%4z<nSQ#lv-g%1 zBumfK*x7&k)qR*=7LXcJ$}7&NA;|~a660$;?`KT`YNm3gZfKR%pHH#o08vu$=-B|P zfX6S3WX%F1gLG4oQ$6Xu>nF?sy$$g|G|(pfTirRRAsr}``VW9?$P<6?Jv9h`Y{Zj% zz}y`*P+3U!Jefc*Sx-3Wgb1pqAF2P^10g^W^i=iP6Hf4;a{AKx>?tQ0PzJquefFdi zGN_&Ys6Knz2^<tck5jKZ;RFXNrcbNaopOQ(rO<2E>rOf$ftu-;>UF1`AVD$oT=nY{ zP6(iC`qp}SqxPHw<WxSurEz=K*9PhhxHM_cI{;6G1rQs1rib}^Y9++veqK$@$J1Tk z6C~?(v%$zO+fJW!!hFW{@HzT@iQzKZ99^Z}Rb+K=6ExpNK_jf1Pvms-)mB$weQRem z&TI?g);veWd5(*FupgPiJ_>)WuSXaX|Jd7mUvqpt+bfB3{`W;VZQXOndC(kje-=`_ zx2HO7r8*s<Jgt?RZ&9$pX-30nu1<PilYV`WZWOb<Bkvl={B(=d_ZjDBd832;xN^HL zvb<Y6V$j{5+`4|T?Pyk<tH~8Ie_elUY2RdyOBZyPSUY$7EJY)_<2`gapUL;n+*%aO znvDH7SAYjFY5mD?7B0@V*2uM)0-JAZw|2Rbm&NPT8v6nu<7>5T`5Ye2m^*Tx$Q0aY zH8dT`<{@(aynE;jS;y}l9UZzmY;~ufucgn;>)Q4Iu$((TI8>beC?D=#;q%VN1AtD2 zcxkQG_zwRa3B=^)USN7FzOT$Qu9>+^*tITgpT%5``gyGS|4BTVGe1egzF6Vxu{C=0 z@6Hl3pQ*~Y@H4jCEU}&JPOrCUu~&M0C}<}ldJQ}2n9S>r`@B57xNDTp%5pVdSowb# zd+(?wy6<~fMMb2CrqWBOf`tx2r8gmT5Rk4QBp^i~ROti+3?N7gQlv^#2pyzJ2SG|C z5R|G^iBgpI-h7_#TJOKVwYYP#&px+h?wJX*XA(chmB-sH!MyOtCsS!i?+;27D|Z_o z5jt@X_EKg)i#y|nw=HgZ^V-&Z2)-M`$tr7yu!>P=K~S%*4erS|i<8>Bu*Jxe3C5GS z#hJ(T;v*+n1s;kkq~p_7h9s+589#kO5cuAcC$Qk$QbKK=Gg}1Ra^zLXzk##aR3H3u z6&~AXaXz;UzU%q#=)zw5hVyFu4fo%773@2*agFhlVIIRDKA)ZzW*`Gkr^Vo|xr&m6 zckhaqWaFLvt|M|4+K?BM?4yoz-{nqhBU3g%e&v)rntL?AF(u=dD|32_V2#|AL3+<P zuZO~OTU|c!1uK0R_H`9HZF(5`A-Mi0b))#6EMdQIWcaG&aWfJn_?4=2(A6ujQl7oy z4rcI?tn=Jg%wyYU&bF>W8bM}3`aw29%0Y%f+CdM3)PumsS!+=VNnb}o)~$h0;}1fy zld>PSFD{>Rmi2mcyfqMI^>_4p#k(}Z=>{ut#I^49p1)8_R*kp+_TBa)A7hE!<J?)} z(e!y+dHE6e>+BmQ`me3iUO^i#?FgUPMh+gF#{52oXWVRT`7C4aRoofEB<QEH)kKv- zy_~4uH;2jlP;jm>P|`%9>}8;ws<hXj<OI)tK(ysj$gn}o?Do~mvG2`=&y01`P~~gh zW@c2%uxC-La{3Ye<Cx|lV{mpJ*I514Ci!a&tG9hLXEAw{3y8zZ<q83OcSKd!T-1W@ zM+<iMK623rQi-1AXl2Mv&68cwm3)_YK%xm|Xn&n|VQ28_)V(9!=(gC<!O!%6RVDvu zp8TQ#AK@-jyj&HdQNy;&UP7JNh>=2_uDrPIzM3gqK6vx|qX@}&QSUcz)2M%4qH$B4 zQhtCdpkB}4_(8Ltw=qGpUa*0s=`!%Ojixo&yBAGsxMvWZz`<VdqS>7(RVmY6Zh&j_ z=DA03rz`09#kUb_SE6pae|;=`c)QCbH8|JaJN5XrJ<S01Rop#PI*nC+i+q<wYE`a1 z$AE1AO|Io;r`OL(jaLQpkLqZw@`4^jR~Vl7Mr#X)%67>JpTfFu!mHHC7}EA_L=x$) z<i>MSyX1Y1zXLSJ9E$l&w!uO^GkjemKcpnOBz{N<b(#1m2y|8c@NtXAZLo@WxtCbn z=#nx)ytMZ-`NdXL5WYIjRe~4nqA}TcX)h>R^vFfCC+zB;&ydOm`bC7vubU&vJ(#O2 z`QfW-l%o10H|bf5o$%Bw#m=vj;@oauzjpzC997Z)?cy_;O|$pty;IU4+0|C^jnV2w z+@a(~%w?{`W5W)Lr)Na5BTsomv4c+;ME%=1Uc|953G(~J`U{H^1?g3L6qml2_$R^6 zv2bHF^A`e1!X`)exDp2LaYYQghOxeSwB%XxP9RD15hv=LDD@J$<a)ADo)<02$z+co zuKY+0B`P{C09RdRAo-ZkK}YW`&n#t>Sf|6NU#(-D3%n>u96Qz~?rPYW0mh}jB^-J- z&j*J4sSO*UC`Qp<3|oQMZ4{NLAKwl2Wr?Ln3(F<hnl@nrQA@8%V5u#aU&W-D7m&0_ z*G#ZlHt_=~{p$uOQIwJ>T*%|zvh-3yNlRi2)vNlKvIQg=603;>uZQ|F=Mu7{CB`~@ z;IN-y`1d@DQZ$!uTWwi#=^^-TxEA(TH(u_)Aw445?A$SFgA<c<6hr9W3?xoRl)PWu zWhmS5S9($AN@6tmx)Z=`>f6Gl`iirv*YHvAIu+Rk0WPcxa21nXSII6`Q{Nygh)Q2I zluiyhYw8QLQG3Oily2~-ckvMj@V{V6z*ObC29l&rzIr~0E6eGBRFbJ9p=rwAc+NBs zQx)&=X6+_P4}_wqL0d$PNzWz45(RV+n`!aO?YuQ9Qm{#mcF6NG?|yp2XIy_7%OrU2 zvffpmR9`ACX?lG`W160lTd;PSL=D<M0VB+ASDDmXng$d4OIyYz(5^mNu;f<~kbJ~t z3QxKFW(_<c3pzWZGWC6Ua{VOSRWYPJe<pF>qXf6OuUNKua2&Q~NrIaYb`Gg0ss756 zJrN-26a-D{nEdvS;wVG4sN9pT%4Nt4Futv^``C$V5@wS}Gimj5xnyPMa*jc(_}8nG zF!#K3lg-JmfQ!l$Y%WcbH`3%yUCABrXuEWhrtq80Uj8$aFfLwY>3v7x{LI5!@4{Ve zxbvvXP{EOvB`YU1yCo~Tj7@p}Jl~(4oXyQsENi^0N^jyF8f|Jge0((^Kj3Ocet`Vf z*fqa?!J4a+EjFF5B`41}qB3JQ60U7+S1Y(Sw5xJYJPnOuC2yn+x{f*j<wqYX{!yjf z_xq6qVhmIgHs{Zl)Ep}^NVjlx@=V}Qkm|tI0bI?3u831QW!kEU>NGiKX<X>E24J2U zI3D^v1aS}P$u7;|2TM06e!=M2->jH<sZQWSW-m$aW7rE;&U!I<%DHk0YQFijx2Odw z5KK6tGSmBp4L+oDBwQmTWyL!h{8nhZ;EMN%6gT|MFV8A{7qe(E_*?dc=H|bp^AqkW z`f8j0USbpPgK4b_rijx56I{yf{O<8H1^t@_fi#UuuBeAGoZbB;j}$qIVioiEXuO0b zuzFiBEN$lP*(ON;XpId6MH<CiQJgU{6E@mgg8HhPlS^9*J`*#48z^0?gq+{(X?O{` zZU!MVD>kQ<4BZaBSzVE#BN`Psx!wkDhtDeUVU~*U)x4>Z(N=@O6WJk6@x%G*GtcC` z@)|BZo9k;eoW8deq0k(%&%##V&gpg6Gj!rB%I~>9&)UY3;-zPZn68czc2%zMCZ&E= z!(Lx0j%WqKd`!WXFzM0+C!7nd(5#=NlCwElVCa1K`^v=EXa3jMHi9{YxRSz=`&7bG zDMI<5<6%@$tRyGqf62vf?56umg;V>!7}&K#^fkkdL*ytf5KbfwUu$8b&K+((mARb$ za`nx}lUv#G=MGz+a$OEhUM=_~iwg7SwIg^l+O>z?`gkH>ea>3L=CVbz_tjsND0#@? zU$K|?T@)13e5XpqVS05^3lUhU?65gsr{&92#Z;wvJF4X@)nV0Ben@kOhl<1M_ORAQ zOX~%6PE|c$&2b<*B$2)oBEZ2NNx)b%`%xx0_bXzmxvBhkYksf0?{Eohn0K~nAwp+k zx<{%GG5FoTXFylnYGX6yF$T4JYxc~|FO%N5tWFmQ&-mVr&fm=K?GZA7MFv6C6TLf) zg=bDeul3~iJ6Fd&oFC0!N08)wHhFS2r(65kK2KI|vyDy8yiNZ+8FKo_=Qug&!Y;1e zR=u^Zsw$5-GyS&2Hp)8spP-lg+BBc}8{$mTwBcQJ5XCMobY88s^~9<qSGO%8AaSu% zu_PDX7XR<UQea8_{_i_$6%UWj?D{2h=buQE_$NNh({jh>z9CkQ!VNv9SDk;DsfQ%G zOE0ngcud%bHf^egM7i(nw`<h9^?Q7_+upX4dZ!Z-bMf%+_Som#qqDRe=26^ZH(wl4 z(fWoQzlfG!y5Um2zaw@{j*GTEuLJxzv`cmSDdn||mcLB29Nf|EpXY40J$$y6Pa?2; z$L&A<UTK7gv?qCKjS5j1aU}_>4E(+uH|BDR)#M*dDxpb$-Ocxs+7nRB!w|TiX)FrA zKbO#=pRXfD`WIXFxo<P6Y^?7@tW24|s=37Mo$6wulk)j%s2nx4g&O~8vkQw9mzJ+G z|GdWpOG16huFKL+TvHxq6F%`=!-mb!uZHp(N=dCeAG7H(!IXeV&u2~;O-XQZ3S^Yd z!}Kb;YVcR3xJXO2sqd-q_fi;oNQLNCCTi?C8*)pLf|4vhABZ(xy!N$CEqJVZPjXFY zPxDKMlQze5L7Vxpdr~#FaToLYZQ5D%Y%vjILpvI^MRMndbNcGK^ITSfO>1Q`<t37) zls|B$KkM23JQTuf$vx~F6rI;7+Zfisn|b(>9nD^lv6$)tjyIWK=`{I2!=7`XSCp5E zT)6Hhsz~-Gj6HUF9LSNNA=$e>w&Fs3%@OffksfzX^6-_5ZtBL-)%fvyUK~2G_JSSZ zofFZ_=gFL-XyM@d?ons=ep@+yTw4;Lsm`6hNKuqRa5zIqaZ&UPq^X{tKT9D;L<>4T z&uKTl`AyVIlg2KPYcujJM~tST<C&@?7dD#e-;YHvRx2g=_MB0)ow@mZ)1{XEA|7>{ zmI5E5(d_s!e#wWX8vH^x*+)Tv$7)F4dcN3O!dbz=tr3`Cmz^DDM#%jz=6dK!XNkN! zqAqs0UP4jPGE#tYsXK09vy4gkJ?6UYeAe=7y9V{xz}{`k$SLan*0F&d-CBA}`4IFT zsM73m%W@MoOJ5<@e|!s%TRlVbxcwSuY{%X|O8c9=b7LJ>5QpmwG;Q%P<_J_MH)nLm z-eHWRxFVOP9miqr53LvV+etcd9Epkgr0!ej*1j5a>*^vz(KHFJz$7HV(v3#v)C)lo z5(OztxUDe}D)!+Y6OqUuAInaw(I0;zm5hBf&Mgc@9vl0ZITRm$r3wuDk=?Do=bcj7 zjnY=~3~><uasmDD44dE_I-Y|~2yvXR3z2CWdy9U^o(>i9M2%}%V=PpCA9Z@__?W)G z=J~91Ovgvhfo-%7os%*R_5Ep``}921+)I3vw_~U0eIH|on8TIG3Y3qogW~a2cja3G zr1^ZBfUn>z7LN|rbm(0iiR{YxQQ2Kt+05kYKBk1u;oleJIH$f3<rq`n7s@_^=F-~u z7kKmgO@#pAnh!s|ckAbCCexxdndo-&dm+uYx#4(24Y+`Bh*HMW0D%C}?+>;9_;hBq z{>bRAoO5O(CaaA?Ie0Zj2_J<5cx%@Gs<WS{-GH{ZCE4hIf>hxxgaf3%Gu#Of&$xHJ zF3hm@`qwxMEJE*{7G77gN{GPVA<*LYf>@hp{Kw2eshc44G>)kKF4TWI8a@_?-lf}C zyrU&2#1QPFTK1!$+cG(cX<hhE&5r4x(!~#ve%fQJi8qqxVsE58={E1*>YfHaRW~mX z$S^M`8M~dF(Y>#&xTD%x<N3$&cKm_J_ddRV^7b(t$H`BF7?0Nu#B0oc?nmbM{Lyp> z{+LS@!!c${rO7ciPo=o^BiD&>$D`BUu=e(M7v2%*A%yqAeYO4&wd@V}QVK=v`^aNE zYb=MFj}E@PJBLXo+*7@?#?<;}iH<)di@8wCtru>P#MQ-_$od%1hn<GO)>{6OEQc0S z`W!t=77i@zuRlG6BpxnSQh7`-2C%>VGzXF4@>K1-Wj8w){mwHfQqpFpjLPHNB9>~k zbwSErmQ7YL`yo0DBID}m-5D6;U$?}OZ{Eo&v9)QTWUt7!uPw)cwt|c_b-M{5{w%an zt=cSvP-V3>gm$KhNk9>27SB@kZtr}ItoPh`6Zzqmr(0)Mga6acHXa+v@8Z@l0sAC| zs#i}xGSln%-({=H`Q<BNBh(mXA^TnLA^4<qhu`LIW5$)o{3QQ~NZIk7Xc>tlSsgjV z3t4@+YiQXT<p3DWejbvfg)jWXkL>31$efk5*WMzkVA2W<l=}_;_cx~2KjxIY2ubHi zf4%f0AXb}B^+MBR=F&}*JQ3&Qg3@sT%`ZGD;1h$Co^-$c8B1?L`P<j~=geJdX!|n1 z1Px7lEUh~`8wxE+;Ak7hWWQ+;o|CeX_fQCSgOfz$^SsMBYX}M&>5}$2nKvhN^Up=+ zpDPfa7lq)?>OD9#7tR-HmZC0ygO*%;2!15eDyq^YU%M18hny47b9VVgtDo0A$wl?B ztE{C*<j;L!4kO|U^R*NNgO$tsne3;Pfzrf1<^U+Od@GZFVATlw8<pIpjE&*DR#%)n z+OUD`ueR^FsSO&oiOq+gz}>Nb_xJV&Ppj)~YhqfD<LCkpS#oCxRR<%)kY%pDJu$_N zP4f^}k9Lw`;Gt<Co=~+0LU&7BkIS|Jvu*Fu-qb}5*)87NEC1`UTk^gAnJVpR#o0RM z%X5ah%3mnzCWOlK_h`4yPe^;-cvE@9kK(e4fS&M+?}_)6dL~^<PQ#ne%?Zl}6j)LC zUA!i<NW7;yrNL(T`CD>nSm*~2l^dUL^ndD!I_al=APzM-Pm!GdUg0K6o)A{WLmUvF zlb($lo{ggPWLuF~mMAn?-_Wm^owE??rbe=Tibt?z@|F9T@ZRb3&C9#E!-%6EPMvJz z6O;Q^blua~%*PlPm-Sx4eW0m{w%m_>Y8Yt|L8#tx?+R$3wVFg)!0YWx3Dp|Yc6!2D zuFanjcvnE>ZCDVZ9`$~ekdmG1owJB<u92Sg+<n$NIm&4s>Sqm2Jsz6-F+F~-J?&y% zwz*b0dsT<<=qI5lX--uGEbaZvZh5d~8EVzJ=!#7l1ZTbddK0bHsQz5%zaOay1(&;y zjAlP7O+|0j$ap2y)darNn{}l1OOozXn$p_0$ZG1nw#?-wxo=T0=ZH*<d#5S(!ZWNc z%29XU!g0<q!8=Kss5Etc-+~FyAkb~!B4ySQxya>a#b!Z}$N44IMFhU<->NBU=$#o; zn$q8@@%2rriw}HPx>9wySz%_#VeCuI+swyw@z|{bs+FJq{hMKzFLzu8tfZbT%gnG1 z%bpa<^!1~yvYUhnQ~Sh>@=j|e^C-ICW>Ki3ipzl+b)rMEPfRWBM#`!`r<&Shu9kNa z1>aphd|fQMv2KCDl~w2Vmvx@3lwGELT_(!mQdIWzCAzG$gJcrZXUr*j_t|Uz25HSd zK3k=Usl^I9*fkeand4Gv;;Ui>ee9Y)s*Gu=R39+f*fl3qnK1x>(ZjC!pvokdN=E>r zi(NyY%De%1m8$@U*<#nup~|Q$l%?VOoTyu(!?HGfHlj(-GGJ57Bn$IC$A=<G&tAc% zCP^040Ei_$%YjYpk}PEV9Os0So~6L1hDjFn0DwAKuqg=Y9bvg<>t%0~G1s~T>RmGc znBFFHuJt?Xw}1ScbyVU>+I<6?QYBf?4>~IGCGD2LrW{EYNdWLB?H0nOj7jG3_|ZN` zC9$O4Y}nLqlEsZa$5!E_-DKF*AjzT%0MVq~OxTnW>fIxf#o%&{S)XmIM4Nq1K1zXD zzd}r&4zRLW=R{TbE!PoKrUPtk)+taG^viX3lBfS!*sL?{TQ<Vy+?MZnSG_u%Z8h7X z296uR(dGplGr++P93Er`If4irl<S{<{=_GJ`I50ZaJ+$y$BraUS8X-^__^VKy!9W< zB}2sB(@iq0tO}j;9{ck3C_o=8*5|EGvaW%d+hEJ@W6Q0v<tayI&NV97awBZ{z(qc= zidv(tp{guVRSKx8@D{eERtTypzhzpKWb<&TwP_%5axm~&%D(H%{WXd0NmZhoDXI!f zdRU4V-kucLo<yiZ1DdX7*=|AUr>wXT&rsEONOs~RJGZ`w-B*<BLiAI%C*=ZkFDcoD z>1DJ|%1t@0)8mR@c!s}K;DaiN8;q#nr^iXSBCtV9sOsJ2j_ABJzn}IL6C_qygfKl0 z1H*qJ*=EIdEq7@2MI@x2&X{mOPwO(|EV&TgsOnoJJFC73qzJu?85bh^XxiU1{AgOu zQw&vIvD_ipAAtmoSHSSTBs;=j#3m2D%!3oRxP}54UY}&ANO(F8n`2)xLDf85?wMKY z@=fW@6iljXhE4gP-YG3rJnpj^POW!Mub(j{y0Wef6%T1}u10lnOnlwRiElFRqeHzz zkt_oH9f#9<EqRja47l7duqh(R;;_$gQ!J?tAH4x`rDiX^SK%Jl`aRUUh@}d;w0Z?K z;+g@fybFNzdIc5Ynii_OV5uSzFdD=)3sm_c0O?f<$}mIXngFUiWw}BhQ?Fo3T$4hT ze_5^=d0DSuOkBH;D*pfgV9eXrU^_vma_XfDiPZWgE#jI3s$3U<SM^QziECb{a<Qd~ z%G9c+%j)`Bk>$%3mC9p@hjk>g>3*w+H$0w2z$Oz&CbD^Ahl5W)z$V3i4E!B?S`M2; zl1y}$O5M|on^duD`V$1tc96dAsItJN(ydp;O>pd52&#;7sgx_VI6w=#W{)b?+z?E{ zCi<cN`0U~yCKV79PnpR7=M}b082hqo!Ka5?b|gtAqXWiDLh#)d*d#T{<i>z;s{nlW zJ#12pWKsn{^u@qX-JVA-)w}$I%N1sQR;>~qyU{I^StK)$eydh-kKM$%%<(VM_}x>k zYwzX*Y`NAcd{&o`2Mlxaf$aZ(nteCkxBM;%iZ>`A%f9P^A_j^ZC?LtcTY;hoN+2kd zplE_3wEy6{^9~!>n(xSht=|qk@WMg40g4AG+@RR*o7ul@G1bS4_8F^_Om1C6*?j&| zb6Qj^2{)C1PikY!B(I%9#Sqca*vkILHRXsz@(aOIx6e*rzSOzA|2nCVRhL)n_P*a3 z-$JXD6IjWYiLmr$k;*Xt!8bZ-iY@2TTe;el*AG*PXfgLgRdKn<R8@;+B6S*tGLc1c z>XL`QOBjdu_A@^Z5<MgX2%}ZeM47Ae)UC*XX4wG3`Q5c2NCJT}*#B5V{D)&z`^A6N zr%C_vqoxBV=*1u3{8!L3t4<|eBzEyl4^7X#TKvh?NY<=*5B2!rAbO4XVN{g}opSte zKvfiL)(@^Y)~pE|D{D$|nTl2kOGId83~N@h4YxQhG&(OTC2#Da%XcToT3$<pqO3|h zsx)ED!N!%T7LU5gA&xuMc+;~tuT}fH{wwpbUh0cvKf-+?vbKe=LUMOpn#0{g6LYX5 zLE9FndQX!3;_{qeU%ei4JqWWTB9mJPG9>b^jv|G&ajh)`I+A<J@?240^QQ1NE~SMq zLUM2JYu0<^M=&K;=n;{!sQM>YT(<rEXr!)6aZ>2*ZiI!c1U$BTgWSGPBb7Uq7`D>9 z-+ixAH}0|h%i|LS%|e5GW`r{C?yAFQTPI4(&7h1JvkxMtlyGMv0@FeulH3nLXJXs9 zD-oMPL^u%{N`u=EJ#*1}RvGSG70NIrrTy&Yl$6r5OH)#g-ojH-tzK8AYS;fhrTLo+ zo0B^XJY|RPi+Wl+==JYVX;zO>p<8#D=Dz1R&AI!$S8Oq!{hpKgizu!z%t`#Y^=ss5 zj9-yr%Lm}yq}%53^IvW1QXJ(Z{@wZ|@zl*P&#F0ocIM$m(-x%nt^1~gx0_$1RkIjy z{hZnot@kx=u512uk!q~YeX|m9tyazKvomu)rnZVA=X88NST$QE%c8C3X69C=+_fFV zhc~Gxv16R*x+*_G-=?`&PffVza_|e!182AA)<d@M><8{Q&j)_|q&OCl7y}_9)#;nZ z0=pB41@3>iybJal*jt5We<=Ob*cOoufCEbK?@ND~?<U%RtQ}U4{w^^sT+n~@<;#w* zL_q)C{NUD!jpzP;S#$gJ?6LT>{raJ~c`v_EvDxF+t*vcZzfg~+!@$A0dBWBSQTq-* zQSXirQ5XD2K!m?D{L52=``Oi<rXRGF_RFz8GFM=pAy;r7lG`YG1gjZYr}m4sZIV0^ ztr7d~<`+HRAbBM7UCQ83j$+sL+|`qh58MJ2+-`?>MI3x!@3yt(JXt#!rd`-}XE=Qt zaZt?O-40xv2fdTu+Y?_sW?0O=+Aa55`31jZtS18el6aQ#i@_nDPs@PO2W145%Yb@& zwYy<p!rnTkx+~EQg46UwcDgH8>V{<4VH0!wUM$svk7psd0Eqjx=yX!0Ht2Txif(28 z^5w0BpOAwRRA;|ktZ8QN=5l8+e-?rNLhG=0v1V-2KBeF*?SiX2Ltvxw#^y!OXR@)u zvpl#41?#S{X<CQ7va!c=JZZB$bWbDXKGQDn$i`N<Gf*}wTYsTlV33V<YgFb~yXc9O zja_e0ww|V42&kl+_M`ERXb5BPrk&$)U%Ke&C>xvAP{*$SK^fj#3FZ1p=V9#UUoiU} zxkBe5#lo~O%;{K?$>3pMFS?Vqwf{-5WhbH6P>Gidz8~oyKG)ODG<>H*?I?CIWnTn7 zBMje@M0w@>tY5$1K4(wr{@nljehw!~U#l~zJN&*Wms6RB``i8$hWpqnYYYx4LKk^b zGhnxv85O|RN4exC%ArKF<TlE|<zC4xl*5lO180&z1B?pzUDSj#VYj6CeaQYO0}oPn zwSr1SKa(o83Vn)DblW8*J?xc#{8Au@=AMfT%Hc}n=fNek{msrbK{$;ngC*!Pn(vP^ z%E5v%uf3nCE8r3Z*~Lo(y2CTrR|D6lOR8iSKMjbwg04>NPpPg1r43Lnk+gvN#Dj1G z9YZ?>L7R&V8n0ou?%%^tfNsPhhXF6hi*P3iytsve;G{sST=v;ufWFf=J3xeHWCe)u z)p!kBxXEH~1qLk>xd{ec#CsnM_jO`*0qBP&G6%S37>mF>hE!Z60TFR?cnO_HVc!I3 zn@f_Q5muhsEZD8<Dz6`b!O(YdfTnsbae^To@^1jwQ=ZOqz!kyRfafC%b>}<+ykpQY z{7>JiZ(Z8aI*&_jEa)y^#G9=oD%*)=D6)14qLP@BG^_iGOx;Y3c)AsR2wbCD`<pSt z{kClIHQDXO=wg0+;qldlj7u`8P}XyV>e;WCWFCYj`b(S>TK8H-ukz!UjxQ`kUCOQ< zd?;XpXi6h>qeQ~>WNf29_BYQiU&?M7e8_8qwi{m+-EloHlhEka?Z$|gTd4$>#jCZ~ z*crB<9%|nTZMOu^(`k6g^1tS2P;X)BDEy3EfSlKFT6SmKzGp{|Z8mP9?hqK8TTr^h z@o{B~Wn1+dgN$GM!I^WKRgIKAF${7NLrT~0gn!(z*)rU@b)LFaDbX&kUWnoPpS{8Z z=5sN~#^N4lhWkcJVs~Ob)|hXhb}pQ!i}Sh>cZ2t-MQY%KpbKFX1+(P~ZkIS{meb+} z8SV#&YgSj!T|Q5D*$ZfGJWnlN1{w!ZhpC3m5*8Fe)Dn?pUiI5kp8d9iv*$dFytw1I zd2jzE)f`aqrQFPo%jLa&^>^dJ1-{B(gTW#pQL+1!ja5A!3_EnZ`xOVAd_?}GHnz}v zPF`D@J3?wL@V;Z9sr5O{RV{eL%4w$@K0Kme+~)KOjSJ;nm{Z;I*x^=d@$5Smt5kDJ zQINmI^Ip3^>jmT2LU)_%s!l1*%MPHCs7pCLm(^r`T8WtPzVDxRt+|NNOP-8-7V96u zaG8%`hm}{rfsxUJu1nN`O)b?TPmHfWCD!k3UKaj&pOdnmn#|X!t~6@{tXekgk`g1q z2_Y)OxAMN|vy+&hFx(-_+KRSD&wXD7@xDaX!D^{Z!6D0Mogc@uQej}Bx)F~T<UK?m zGiEIbqbV4&Os)yjsSK?P)W$_H{#KxJi&JGF8?-7Tp>SnpK_M2E6A7+Jlb!4FT?|>Z zGiPd|UdYr=NG+qi9lJSh#prc^k3~I<WQ;|61q+a5G8#olG9t2<Q7QMc&;^)P|GNl@ zL}e`hNp(~Ml*I8nre;BINq&ufv4^V9dzM=;&WhI~CEqGO<)tjTE}=o3BzOY{zE+7S z80N<y#6KEx{XV0g8d1>G58|hRrM}c9v0$=<qG0f4A-t^D?w#v?()U}CXG222K3g7) z=psqb@NwK`AEEFRyKsF;oaVMwb_9%)WDg`RSPaP?+rUQJSnUk*JWCRM#2Ob5+W6Pn z6Aa93a8FO4w-omt)4nEAVCw8bSYOtVf)?xwD#bD;Hipl`X#M8S(<MDuPF^l_i=GZQ zlq;b{yV9}S5hMHcS++ln<U5zcgN<#`{*=<40(|~){-Pv7b$uqdCf4ujcbc91OM3Y^ zP;5d=f30`7H%7M97wdnAwBg(Z60<Msexp{)6;zg5n_3GqD#bk=ozCy^e);l_&XS&& z4b%qoRReMo`HW>5{X1Z(g0oS%g%L$PIx9eY(NcG#KDM6EV{-^(<5ERV<HHsTl$-Mw z^R^0cCZoA0@MXR43Q)w!lx@%%Kyfj1lc|^<O)>>C5l|@WpmTu2GUt*hkcKbo_f{V4 z$S=vWGh*3n?-6J6*m}}I{EtUFEK4YUZW|Wc54%rNg+?9;OJ1$Bwhp_U@{25Y4>=uW zEm#RV-sK>&&MRL%{Qj%*fNS7-;UAEJ1NScn3x_y~EeON2bMYkEft1@RL%G_OL5bL@ z+~6>5_C+e&{9+Y-rHY)t*Oc_$hek}`4y|?+3vqMv@ppOZHct$Xs7jIhqYF2*kj<ei zp{lNg<K_cOBf{3*p7xhBzNg|R5vhx@zp5G_rNgk5?&lLE3d|M$y2id1i|C2R{DVFE zT1dY4A1uNqiulBOL<?oEJ`kVcsr%VySwmN<r^TwqQzz1|cAc+IyWg~1LJMj6zT6^d zLQt?7O{<0MtZBwml<LV>iteeorVN+jV<#Lg=s8FlQM0}i+*5I7!nF2GVrER7xN9zy z>S<K+?y0+e!5nv=XdyFe1nBO$G9^&-C~G0hYD_s^ObD`1Gsl3gKY{<PLED~4PtHP_ z<%Y@zE~6|RYg>-!i6VMg23hcob1YDQ_@y&y(Q+K6dVGltntXLny7hVtwUBF1B|W8# zvZQCNIU*)jXzLm3)m$ZG9D6*qkhrHUa%W4mKcE-PwDigl;`%DCr4h((B*t>f4v0I2 zX)wHU_KS)4l*Zkh81S3h+Ot<nwHqIHmuiUzRF~tUCpsyc(O+JY6cT;eiusp!IW~Dm z?hSaVN*N<GUF}<xdLC$r&&q)ON?nY00r@o{K!kbTC~SczuEbNne4m3R=a<*HTQgR( zlp?*HV{Ho#g&clrhv-B8<pzF*doTvFS9zgBOMWYsj*(t{z*E!bwMtS9e;val;{rxY zUOzSwlB6-<sp9j(|GH5kQ~qN2BE~D5ft+Wli;+JBcAN@1gw%>-i}|Gc{WAR(j8cM~ zW1aby<#-izVeF;aIpjpklmeHoxJ7!Y#z3Nx8<l|E_+O)Fe-WdU^W;nmj%-nBfrzZi z7nFCGW4wwan>1QjMVw^|*1Oj+q&s(-K(dLj1!~BmW%=vSf33Q$FqunDde-4!>OXvU z=n5Yfk+aR!eGTZqg@XCyGoP!>YRJyn!XkHavbmC0>~|Ooi#)hkxK&*(S3Gy93Ll%1 zbIsL#`N_`JLO~@gORlQx%py4B6$;+5VYXFqeZL4Yt#CyiBpPVVv9y7vRJ(t9;c_8| ztQz@Tx7@%RU>u}tKUd%5$2=3vmXOvRNS{!&NHmY#r-<^st5&cp%bho7J=yD0yLZYY zm3iZzNgi>OdEwZamw4l|i~EwUlx5&9%Qf-sKXoci^TLIP;@36<PUsQ@727rWfsRP; zBK6>i|Jvrizf=i=F`;H9`)pAGq3Q)W^X(!-hs_5uDy^ZS6Nl-nnnwv5irlA$CHuDG zX%;`@p$i<>P;K2Es;!=p8eHvidp!_OBAagaqc#gZ3C#kkbp5tI-mU9q{;y>#nag3R z?B?;(E=4p6Za^B<vR<{HYvAcrt@Gq#9UE$~ZHdG8bk%v9*AP{4p0ZLO+7sA6-`8dH z+kc6i?OG0LDH}X)5Yk!kFsfmMO3HzB)LD6I#uS+6#9Cb6pr9l8^k1yFa7O0?aPmvm z&JJ-1O})RE+I?0yqwgv>`SqLVm&;v&rpSYHpTX^%58yTssHD7G{Q4Uw3Fn8NN~uFD z?{3hk_CxI1W7+eaGOEG%m>a$~!3!=tO})-0qr!nshIYxYXy!S6tsd?k6Mmq8@b;w9 zNuwvI%tD~Lu?Z}_c}`brb{5X34#|RlmR0&WzDz9$qz>Iig1bDD8w)qPHw_&Wxwd)q zHPD;>F!fnRC~k2_e_=$phBL{Ju{hs}=xSa=3zakn>1c4<s;*g%lN`adK$D73?3L{C zC7Zyw4+gg}<aC4(cKks)LaMs_!Rby1(YyF};auuQleMsf3h1DvzJZ?X1m`<)2m9cB z2fRVxW)8A9qC0{-814n$-v<Wt8ND%o9nue;T2(M`+n2K}@FVL~f>JBYVv}%c?m;i0 zUW<<L9U;FP_|(}K7URPP3m2K<Opvkg>lY<zW8q$t0q@JFjN?o^V&UQ!B`Ra#Vn%Je zcUrGBwD8^Og05w_!$-ZcHzB(m=_RX8YD!gFhA{_64%KNZ;e4i?3)FM3Y)ojZQy6VG z#(yXCO>!>i#&^sV491Z+@g2lpEIoGH2Lle(^+Be$@PTbjR~pp#+lsWJVh&~;>^>{B zRcfJQ4*ofO%TGACm|i9u!0=m;-hsHGJY*GT5)|vPE3ksZc3UrK4-w+Ss9_6=usCo@ z?AA6(cx6s~?Oyl3KkILsQ3vAcgQ3Ituz2MKO4y6PZ(?q7lWwkb^(Ry5${osgNUu+x zvb=xyx9a7xvfzUxpZ<VC-6`Gs?`N2J#bB*wKY!MV!mCUJ11df_y458rBvr6*{Q6_L z@Ut$zcgoDuXXlTlIlO8T@L9#v*I=zvb6?z)V6C{a;^}~Z0P)>FmIcMrnZUpCvu+ZY z!7pyDO0Br2;^}|>0Tn%8+}wbv0tgjQ(Ox{QgSBD*_OmVwn5Ca}X7DQ7y+1RV0D%tc zV68F}j&9(d%bh<nO;{VN(JyZ6fdR<Z#nUps{>(&UZ3ul|+}MGK3Dn#FGjj=EmGI}! zOcAKQ{IhNtRG<0cmIe41#nU)YBMlJiKkGcXtk}0-gI>{~g@G?_Rv;o7M1Wp!z%%m2 zjQ~89@G8AM{0wt%BJlNpaZ?07HsIU+GgFDRar^ye#vN;uwNg_z$N2?JFs69=v3~%v zsCaq?pkjbf0Z3f&^a^lR7EddH!GPfh0%u$CG%IlC0RxZ+ylQjtXI(I;g#Y4p2t1)l z6`bGXK7VneL<MZxDLvU?0L1{5o1i>};u8(RH?^SC;6!5<zIg>;)9_6>V9die&qMM0 zCgGa`zyOXJ7{EyZ12`HeegtsWfdL!`Fo1&r1GsZgyo8C@Cf|+&cwrd6X#|XM_@)<h zx{{#^R1$^aD?z1ez<^2$z<^2@p?G(|2?7H+R$u@p1I4Eaclb6#5PrZE10&MmTMt3( z15^bJK<y9&y>Q3g8(>5__NpO>B!EhQ0jL3jfCE$r3_!II#3(@TfDvijYdHvqAa00u z>?H#u*0C1{K~w>h2|?(-va>2WPw;}`%|Lh)1mOWp5ip<@?jR9@*amS}U_h-f2!b0R z3@`wpA&6XnGJpXn3WBf&=oK&kB|s4K0ObG!Py_^V7oZei0E&ko+5yS}2A~)SA{3x> zU;s*jAWlU)a7J*~p`Y3b%5c{ge+oZYP~lo2h(|iruf#g0w5f0-I@PAa9cHEHtzIR& zO*(+S>U63nMLNt3!fAD?p*qzpU{2~(I0>EVXQts5HdHuwooZ>}j;V)KI4+&)in8-o za3~(^r)#h5+>F929`x5ucH8Jw@0x`ppF#2eKxF=T!ZqLkwR0he<5zZKA{{dKsBmFA z)wD)l6{Z~T&J!}hYeO%jxF>k~-NZU@iOFv3aqA)-xHbr)E7gtw!f9XG5wxgq3BagP z;lArsCm4hy3zOZl;tD{(eJb3TP9;(z5wt?>sSCw_677)Dr^4;%RO^Abd<eoyq!Cvq zr`=x%KF5JJ0JjN@G8L{Lgcyb+HKBN4qj01%blR7(7`$!e5Cl@EdK2tUux@?L!;xTj z1`2n`s8ZoFbgJvXAi<*gkZPAzah?Dc@rr22RNi?4SjT&y6)<e-R6DDZ^8`NN0B;31 zFs9+i8VKSL%nGbLO0W*W%A*A95UjiyfWXva00Jvd6CkkiGywuDuNNS&@_GRRdrk-- zFdHF&-Y2_(&u^j~zF_4Qi*@)$LlDjYr2zvFSZ%8Sfz`GO5Lj(&qK&>7e=ve{&_pRP zpovBZ!W^KtzyMSSK}-Ww0SrK`5QHp11;7CG0fMLps9Z@pI(d=_p_^*g3|4?5Fve84 zW?-zSaDl*>Q{fJQv8BRMrrHG>P~l>L0gFx(7!xX7FEG|rI3Zw+sBp!=SW@AfftkYk zIZ{azJVwF7{eMZX#=WKkFkug{+`)uBK&}6W^qLnahvM77VGAsfHly%OH(<a~#tIm4 zlnI35LjVUBLI~iTfdQO3Fveb+KpufkpD>>qd2NCV6;S*M*qLtygS|7mX*0VMq_o-H zl4Yv2zut!82VU8&7oN8Q)kRb7%1y#6bf|EyP`vBLS*<h!$x^doHA`i*lrSbu7-MF_ zhh%|{Hwj~=OwqLg;FSnw>W!MEA9OrG7=tT=JW+b3rTa?D&4jN)8(sStI&NmnSCI~R z()vov>LI%Jj!t16h>M0i34W!u4jK-Hj_c?Y(i-p~-$0&3q^h~GP>Nx2MUW?|scKfb z9A#=VGdhJ81!^-*z!a;^`~$(pd`JrDxC|HyKQLx|NG9lbv=~N41zn5LDMW%g!oUxr zY9UXufL{Y$E1s%FFhbYX=oBUxLy#?U%II1&2z{$IGo@3gXT*nOhmPY+`H+ghnDZei zq2q#}qB^>k^OY6>Oe6;wfJ$`=H_Oy4vmj5JMKCgY=-RngT3MB9Gh8}_!(a+v*qb1t zRBh%ubo?=BpqFd?5j<JyCoxZL1_mA910A(No=~T1S(T{G@Bs%HJU1|)=Nib9LlF$f zvnQ0o7?5XAC`B+J&z{5pR00e@4Ui|A{(PHS@IuaIbZvnW#`lHLc;c?wj3-u0k;wE! z2#{*<!ki^^Z3-acgvRv&`2>)2Oi!Evc^{CV<_AC~3XP8d^7QT~rZ#2abWJ{aMdEZ_ zJ~>V6FgKU~iTE%Qt7Wx-t|frj7@_g4KWZ}%v0BXprYHNLAscw%+^S*iAtyZm%J4!Z z&}EDgW-nG~oC~z-h}8<5WqJY!q&6Tym&JetgT(^U8<1eIHvp*)FKh)h(*X$vYXe9( z(CZqy_7N~!=vo#K3Wn|hLiIo>Xr~^8f}s;ZXdocxnVxV1QWahp4BANoBwA?v4j`Se zT8Cf+wt&<HB&b;h$ONJBHbD9T5{%$3AT{BI$4iE_xt#3)m;<nauAK*wF`8p1K1a)j zwe6gz2a@8ayUv!Cf7C2Tn4WYnJ;4Z#JHQK<l`v)?+6!LzjHG7i3@<eG=c^cJdSZ&z zD&JGH1bw-Jh*flLxX}1FbZs}&6ENKh@RmwowbsEL13*P@z433Eh0Q|a0seeQQ+VO- zA7RTi7tm3P(0Ha22A2sK6kkRCVCv*t{vXfUhWih?9_iSoiyXr+Q(*E?cp>dCwV8Xs zfH9N{jbChj^xzBA6IB=nmnJkG9l(b~f=(9=YoBqhqxg`)AkbU>L)c&nEtsV3C`Kv_ z2i~#hKt5!o(6|N&H-;A`kc4L*CyrsY2;d!b1T94gjpM-nw*b^{wHbfGah14i==kO4 zlj$!<0b{A}^o^6}F8Hp9+vT-<)G{eP=ln~NEqW}OS*A#!rkKu*<;sOJiJRw4jNgQo z)LEM2a|60XFK2tg-?45!2#Yf1c=)oJI2)VC)!00gaOK*|=1~ABz4jQiG~v?{r3H*T zV=Edo!@^k$?oMURnA4q~!Sqe+sLykKU0WJlzOtm(&6wWV1lUjaC2c?cyN&FBzs_o* z>KZYmOsdmd_%`9oTpx!YzwTVZb!pjg5!vtUO0886e%|~nUxpK2zsL90)C@N=%Xrdg zZl3q%kH(bbIJifCk%%%Z8O&lY)g4NhsPJ$vbXWD}f2NtqehYzaN*_*m8t~>OU6lAx z0<++2c9Ek;?%mZaamW>oILYAzpBzW`!gXtJ{)eNovYlB&oqIq2y=uf%&c9|a<#u(C zlzkb+Y1lq7t99(<&A(d(Itl$Udue<3a&x}b+eStrip5v8OW2#g#Y1!>F?xR};a6p8 zb<CU;%i}ktcJ7h%HNv$7NwLd;`A-TPF-3+e8kxA;vg1<yvzNG?4S(GG5(YeUz~hq- z8WUz_ePeFx&ENVjgZ<~T=0=Q-UncvLj3@4ek1&mxG@+q{r)RA3+~T>J?B9RYKjrzy z<?dd%Ex)4i&+^v~hCh$!v5L&WUxiobRBfr3IJO+;W*LRQp5BE(Wl|ao4BkH<8M~7< z#JT9$KU+h7u?k-7ocM&#Qn}PMt}=}c7#eK})LOn-ajNx-Oi{d0!BMcJuU;-6@umCA z*Z>jc7ws=-DepT%zEo;P4awohTG8zJjeHo>+d6Xi_FBj<jMmbNZRRG_4?}D0#YO-x zv@v7D8~Hab-g%(tm*L--VC7{lS9$&RIC|Dp=0*QQWJJoWbk9dm<E<G!er(@Ea~cl$ z<;okkm(a7cJ>PT+`(6uq$+AS~y`8sq`pnd56&JQxJX@izp@eC!xFRPpATDxy13kOB zz}aKhyr{oZ$+wu>Hz!UsrYW-662F+0-#)5wt&#jMB83+{zM5zM%_8r*j5odW+)DDz zS_6+w#N=tGmh7=dLTz4W?upgU5>oN0nc@-G>!jo5XDM@Mjkg}jeuRa6A3dkfp&rWm zOEgj9MC)7So|fGw#FnT1$=>O&vG~1PaXA~t%!-FG!jDha9}@0WhWE*QHaJ@uMm85J zpOXzmrN5m-<E+ffb<WqiTL|_(X__IZ`OHPHpXa>$CvjocH6N{S8`4*r+eu`&oG}-> znSTGznQ2k7Id4ujQsL{&uXP18JJczMpiHeFqs{|U&R_lD=c3EmQRkIpblbO#0qfgi z+%UEbUBQdbo%y``yLo=WoFp=?&|srLwCYFimyJ#i!u}U;r{8}^f%O2s^)TnFAnxX` zB?pNNJVO}rr$%A|qst>%kYaZ8u+CeMFyu*5qT!{D8d>ib8s98qfUL=Yw{icDhlCBU zSoF%Bzmx3K;&|?yA{w1o!SH@Z1~exSiC`YKzFi}JPWs3<ag*`ArzG$?op1UplE}%} z5N<EjJ93G6uUW2$uiA|;ITrnr76S%d#9IxWpS#5wrc1T=bm(5+#U3!i%}W~=`{3EU zZ<1-wiYq+T%DL-5?%6pjjn=TK$Ou1{$gp_+@x(pPk@4K&ax3Q{&rq%%nB=W<YzZ5y zcy9Y`D)0-kbZU6N@a1GSc(pa@geWdYuP*nw`NHb=OECfU40ONUc{#q%h5vSmENHR1 zq#0Pxkhlw6+jA;%{moHN%lxRn`)spzUL}f0egFZh{`CwJzubAPf6S>g;6VV|kNW7T z*&x(*1volEyN#F3AJp6FdR$Krs@SCl;-0L<D38qxJDoj9WLAa8y@ttu7tb62N#}o^ z-wv*BewSG1WZ1%Oo$W|HmR_j4lw@_vW0Pce`SjwB#(Co=@}<q!Gp#_?`wm^_?uK5f zvN+`-hW*OirC)e>Y4BYr!?yBG>7Xiq?oRe8<yd+ii_wEO2MnFfQ<||!_!Qpj>4+ej zu=>d%D0}X`Zwb=g{hx{%?knFFzZ3B>&}Jn$VU+h*WqPC2BK4(~?MD({4<P5ZpJnLE zw1wO0GLf%vepBKGbsk-6S$CAk*bf|nX8j9!7(~$#eZwQpgBO2u1-ZkiCi4Pi9z@T` zg4_z;p-{_a9sp`WWUTRB(Cb}gr>;zR&nSZ@3kPWE21ADHsnOA8jL1G&&&vonH9Mli zh#YM9a5H?p`ID^XS?_<ce!s(}mVM0ujE9|X<npa_#1RFCb`X3<R_V^*1*1OYdG9&i zzM!MVK><jbSh*2<iLY1q7vy3ZogA<78Gj)wdPQpr@hq|TznaFG{uf{o(U+=OVG#qq z^;G#hpK&7<pD~}h8VB9&bi`V7d<Eu%_4^v)oyFG!vtRAFeeXZw%CcOyU!N}-%27h{ zW-lj;3uVsX9^9$zH~aKJ;_JkwYph=Xp32Y@<&|VT!>U9)vn3E1Zc%1~X&>^*^vu9F zlJKdz;9(Pd>X&<-3=THtfT84HdDdh7-t&@!l@a;jwp&$Vbgy5m^Wf;kt<0_I0R;2w zV))$zX5YZ;VEhb-41`_<D~Ydi95tmmjIo<t>l%D3n`gcI)0nuUT14u><;^}TIuCGp zlaze|-UlG);kxbK$<d+o&w_U+`*}<03Q!yRvIYp2*^w<Gtz@-9_5v=aL5Wm!;0yFT z4_8E713#&V?|*V$u16;rpC~DacoFO|nI*kv<cHU=k}6>I#rz%vNP5qUBwy?>GXYco z8v*xZCHb}uv##=Z#QA{>oGrolA3$(eLZUm!dLHhN19(~uwU+`a?<*72oHoQHG>9ha zAqyvc-d<pLEdoWaQ<1Fb8PAgyz0r_V;QZeA;VxK?{sN?;z9gVF5YujQ@N>ntEFY0I zckHnk7#R~rRvne>f16a)0B3}&6S?l7fY?CVV;GR^mIM<FN%NNhlb{5l-kAEgm&k&< zN7>Q29hIfGL%*%lN37qMj_7vlVq~9%WcbUIHtNB`w?Vg*PLkz@)npjh5z~Agx;KE_ zUVouBO;?5(+fpY)PDzi=0r7>3zO1r#pf<GBN!G{v@c^MOXW?O=m7;gOKRsz`WLAtA z1E~FYdNLKUpbDtp)d!aV1rxm!4XC7eIGIXWFeX#A2Q*{~NbD^lyQ@8HFYBQ&vcm4M z`FU_btnWjpGf0PPq`j8Nw+pwe!V%zIx}5qIQa;@yYw#%~3qYXmwGV^b;Y_WWe++`T z2Jjw|Aa~9@!ZCkW-QiEo_;+e?)Xk~{7E@YKP!Uup*R8)l)Oh7n70~E{#Y2FsxBfp_ z@8N&4-oO9Jdei^OdLjRl^>)d!o>l&@;sZ7#tA(BV19~GX%N??=7ySHzK8=>1lDfl- ziFd|8Sa&6sT5m*73>iDuoGWcC)~UH%8XWha&LU#s$QWed1dWOEd85PYAIP#^OlKvZ zud*vw8CljlGLo%1TY9x<%YnXduk>+woDybcHS?_lztIPMvaI)8zZ~8AG845XUYR&C zYfM)4z7|V&w`mQF?lK+nOIMjdD0!qmNEvWMPRtqs8KLy+Tj?HNt>GILP&#$j=qF@J z?{VT3%e1QNWuIWrD@MQ7fr`K<4Su_?;g*r{4!BbmlPP_TH&M;C$i>)`*(gPgteR&E z&XDyynlaXeG%Y<kAR+M9CBfKl=-+eY4v;aN1@qhZ3PglLT%iNIr&ZzJm@@%Q;ID%# z5y+CB*K@L@HzSn0DX{fo0%QW8zPf8}2o8vPsf*{pV*B#a%lacoJq4pg>esq5WLXbn z`6u7PqKSQGXWr#ta3cLAuZ5Z)0tYGzk=_b&PN@v+kdxtpmVBih$o)$qy)6GrHP^Ku zThCiYN)wZfca0LoKzm%V6KQ4~0$lItt(4SY%p$#KK_I>6fae)dpC2=06b){0!OSE_ zlht!C4lt4(|3VJRo9PG`W2tzsoHp!gsd$*2I*jGNs&GwLUDOD}sG6%TbObW0;i@Y* z!Z-@_LUMb*F*7mmZFp>AC$fL5FZ5_3wLd}^-fD?Yqd=+|St<BL`9qDY;yhpZOB-1w zdnWjc8xg0$Vr}6n4enc~T}aRx?jiyeeIo7YEFUp$B8_)eP(s<2nvr}@i>n*M|Aal? zQ?ju4cypU9>=m7mg}s$EZnCh4JNcimH^xmC_V|v;!rsc~T(Yp2ct{rZ9yjKag+1&c zS=d{_*^-4lzC*IGhg(`R-H|TD{c$BLd*U6I5|#hAA7nqf#7h#@3Mv}?b-7uOaCfdB za7tOWlO(Pol{*7nYJE?FrDpP<)BpM2!M)ZMad$lCeCYL%e0r)AlcW3GkfX+fC{RUr zM@-66aZmah68%}$rS|t9D=ABf6Gf>R)NiG0;>9Nv*EZ!&N}x~f=8f&GkN*2LZ~NJ0 z`?tB&3?zI04{vLGeCQ9=fKzZL{7|9$mwgz=x6Ca?;7bi1Lkz;r{>AKllD~Bjv;PSb z>hHmE2q3Cv=x(j71e@Yt0KgqCr@x2|<9A!YIe+ki`C-gHIQiLs0xJ9PhHQrJ%89c? zhOPuyEUdx(W-W0yzQ#2lKq?wQRwn;EaCe~45nO7HS2DN_Z7;(!K|kyOtv&hg0eA!) zDoFxKX>eO;-pZO2`hgVO&6+wiSOui^{-L0|HFtGZR&*E6qz;YHGgIa{IkW+#J-PHR z$V%aiY+GH9I0)eh$N-@3J?I5DwivvxUi`OkGxhpb19;9-C(UnGYxW9M7v|1Kr`gY! z#NUk(e(=K+WTsA9!0dgFgydx|S+?FcPSh81Kx*$#qj^D=_oyj8#WNW=D1u|6r&uap zA1trz$p1Pb<ahgKf<xw>a7_+4RLWh2T1DR^YkXD#)hP{<I=BNnHcwF<L@_ue;PU>9 zmHNLX5|b<9@v7Nj|FyLFe=Sf$2aiWtSKoB6gF~?+<$qPTqW%k_{=ZQ${+}DDf#m7N zZ+-|`Jl-I0kWho5dl>py^`JL5Q1T^xls$ZR8m?R?glb`u;?#p&Ff$i-?0f7UoOT7@ z8e&Z357rwpY!h5@v8C~Tv1nn-<egoGmM2bkXMb~Z(ElTSONb>xN$%T{LpAkDDtR-( zmwPAvK+2ZNyQwNtzRSEb`=^-w2<g>L=R=*>-a*izM)flO?$y6WuYU)N3|(krUQw~V z?2Wk*)rg<|XuZ%dk=|*&qH8a4gM_MQRa+UjaS<bb)0yGxwKwJQ9b7(7^)M&>;e8uC zSJZHn+}5^*Xq6yU%xJrMkRwLo@{XSRowMl=oSNM|cIaQU)@jN1Tz{{0!A=`P|4BWl zIrRDlr+SlUG)8<e)Eq-UpdRGs^*a)3zpf&5ZJc!a-COmEjv|Z9;_a)INy0ZaFvm-U z8%j<0ga3x^bQvFX8E?isQ2ctscg6V4U;owh`vup^UN#R)xw@mDm;`e9R20ztf2_TC zR8!sCEow)w@JbOWf+9t_NSBgVrAQO$O+Y{aK|%sbgaA?L9RVq!DOIF{kU%KXrG%=q zBp`$$El3L`B)L0&cYMEZ+<X2wXN)sO)|0vBGoSgawb@{BZ1%2)8{|zne|n3j78?7o zBDD*?F03FI3XKhMzPmcw<CGhD7{8JF)}#SKjbr%pAHQ`+KMzY38t3g9=4lILXva1y z#Jal;97>FSPDvmwIR2iF`{^l&9_k);8f^_#P-7>Iw+~VIsOs!?TflE_gPN>620PaV zHBnQeyyt>Fy}wo#sz+DeI(5))m}g_}|9PokoZPr`CmVQ{()P%zpS^$Jpg!w%<Ib7v z)ajw^5ndHVAT5%e%1>fmzLcH7zs$UBXiR?d{6}>-usQ9#wM(O)pT#4!rQmpZ_eu6b zV<{8$G1-BnpG0+Q_12`H?8amw-E=&#Q^&l_@yg&7@4HLaC)uyPJTX!b0^HzG`0E4U zCWjXV1qH8N8)>zFWOn)5yWBSu@b<8?7MfaGr%N+y$0_)1-kF@GHlK^SBE+MmgDyFD zZ=|c)jEQSWDyhJ}0p-7}u~I<!l1f?v6)Q@K>SfP!D;xw4e(n+Q*EZBx0485uf6V)2 z8z&9IwGC<Aa_(E^gP()Kbo@rt@(x%0^S`Vbe<{}~Y2eRW@h|<d3jI>vUDA;Kam7FP z%c|~|a#3KyR&ahVW(A}PLuzQk8s=8Hk?HQ0uEnj{WoO`VJZtstl}o^+;tc#P&swN^ zC0B8){TgvK&A3)SF!ZXNdz6fN>cK@-mmeI1@A?8G|BJEQzsz6|;MWC%mCo8f%eT~h z`#+1($|Oqy-~W{ajvtErEpl1S<rsXnn#Vye&%V$+LSCpszy`Euo>R6aYJQ41xHH~= zT%KXPx0F50sHhF}TboI#Zr__~RwH}epInIcbl~rn$?I5v9!ZEu#|NtT=L|ALd&g%y zyJL95ak6<|@Ih(bluNzqgk)U22^geZ-xTgdfs&bf*G0updnRDp-u1v_97PPp`Unit zst-)?rabRmzn_c?7enQI!Uv^zQ_e1seUfp5reJ{ryoPptV5T?abniNQGET<iMN3Ds zK|Pgafn1V|t1t$)JS?W3DIjMgPk9-;w-^>vFBXt7$x|D^#Hg5hynq~@JS8et3(EaL zOEaOc>#Z9Ble`}qTE$eA0`hacb(x#BgOA*E3VzTMO(+t2>lI?PEuVhS#t<5>`ag@; z4OY#Vf^&-Sw71?Ao!<4Fn<$w_U^=jZa|`5(WE__m3XwNK%c2H*Q`i>B&wAG-l5q$V zFkP#js<c1`CFAJ8M5jK`e4$R)q~0^8*OUD-Uhz|uXHqn_%o``9<45iL<!1)&UZ|1@ zHU0aJNLQ-pT}P{tWmXqW>#wGEXFHmjGXx+UUol>h`2$YGZlO->qc@JjtlpCapt!|R zhK?U_g%Q1;re;8@5J*|pd+Gt5gw4SjCP2CnNZA0XJa63N3U6GpdA(;ZP`Lo4S(0&_ zVkik?uw@~>`K>pGWx?0HcilZ1_frg2a}(w92t1yTFW0KF%P6~FZ<p$g;a~6#>|H;T zjJqI);xz^<72?77>Iuo-814mMpWgM$$v7!7l&vus1tjj*6H>e}R~LNYz3Ue_a91ZE zCgZZiP?$$xSOK1-T~EmJ#xO1T8uhNf=v}u@#x;qdD38E<1rwz1#Yf<o2la#;C-^bd z1aJ613*;wJ>(|#F^{zW6<J!egI+_PZDpT*1ad|gUIywh|o5~`+0w9p0GnHwuI|ezE z`i3Z0FZu}hU-Dns9S;lVv+wn&e|QJyQO$Y>KckwI2)``6_d<`Pl8pBet6wtq9xVE0 z|4lmomwktH;k^C5o~GnPiijTRSu$S9)LW)#zBx1ze){xY*_xgn33s#J(%5_EVNVk> z5q?2<&qj}=I`PW*i;V2JPI0pt;h%y-w(WtNKS3HVVoa#ScDuF0n+h}~&6;!qTfyN5 zu57LD=1&A2T*NVRSFAb7B!H`6pJ4oj?vH0LI7B()^;Lod7WS#hL{`SVj#X%nl2_;m zP`}1KvE~euBV)bI?wg%^kD@>i#b~Dr_LGw5;9{Lp1^XI$n^a>YeJ1dl-u8@xk#U?r z$Yyrf=0yO+jU3^wWq-PcNKwD1OXCwh*iN3;5$lOJP828-LcC2pIwgD%ojfmNoY-QZ zOJfl}DB+l|sH!kcY`LpT6A?bJO`i7xCiit|(!vMu<oONLM8v<kwClnLx_VpjH@|~i zK%a!@$%#jDdRwN+^Esx8IfX*>cZo;mg%7Otwq(S5T5^TxNUDh5p6hZ;fh0Yy`si^o zX(nY`{n>$E@0P&LK12-50V?!}gL5k$&UF)uSgbKYM6w)o*E@(|Wwb-pOzD?7xA>^4 z3kL$pOQ|;pWlXajKB>`@wvH-p-f+3Mt+a3eN?xLyWYcy0g3K5E67sjyZix>D|GVJ# z&lfdTZ!K<GraS3o`?i*M@~lt0nsHdg*$PL~-1BsAYOVOs;6`Aqntfq9U<~swOvT2I z^xIxY4G)C~fMNcya<@Tm_v0I2d;~^<-tM*g1^$n$fT0NtGhi41<1sJ<#pmj)^Luwb zCim`KGkxa&$OahN&-@`x09Oi(Okgwu<DS_M`ktj(I=`7oB)^$OB){AjIz>FQuZ+dg zoQQXOH4y6pwf}lXhB7|?jBb<3TZUB`zSG$6keYh13M4d^w0Qq`Bklut6yH;F$pD~f z9X9}%j@-`a?W83CF1tBwt5cwMzjijp&9?69k|xgd3+$uW#+46SFMdS&<YtMDV;+^m zLYW(uGu?)+iu}G?Kb_>Qp5fhOX(k?Y#Nw}$o~?SQnVwxt(N50}rc|jIi^P0MYyt^W z-rO9`apwPAlh^tYKsx*elNuq_fj5OIxAe%fe>%?k3aQCPT`j9AXuXmpdZ8=o#yjZR z>nhD#cO@?waOj*$n&_E}c*3G;&UeYcxhPur9k)~Dlfr@QGc_G-tuLUOw{(^s2G`$# z@$|FnpW5!c)OsRI^}=P7IhouJ2LtOCA@S7~P^$Jbbp(Oq!|uX%_2+j>3mJJVw4-fr zy&c<|!<LV7XY?YQ6WOSWS<&Y$w9MyFv!_utC9gDYTis7@PPt9J*t_$JV|jJ*Lh>@q zq|hthpe6ctAp5gJm);$zWZ<ItQIv6^SCPTY-Sp<9+ksrq4hhN2dyfid^wWa`o*hz? zmsvHfH5!6$^=>)P!*eBP#6f(|4l4R?7^l!1)_}9yZ(k=*a`0ummNjj)I(*~^s<$nA z6PpuLJ=aZt;+4$V5~x;bY;hDIJ;C+tpk|7aSGvFF2f5a}1!6KXE)>W&Kp<~Z|9N)k z*t_GJ%ac8r6YIWTL(s|Pp$%@R=<P0vjmB#$9Dz2jJUiU{T<BHo5aE94zo%(73VPUh z<>!t=d}=O|wzRbHxv=HMA3d|t)ZPm1TI%?oLhtT)UO8=J=21PZuy+?_R^C!}hnf{a z&kL}8bqN15I%Bk-Q^IOig!p`in!mCW51`UJRQ8|CIbR;q4PG6J0jT65DC-X>#zE-F zHgw>#IjF>fs$aX}AZ9|h*^af@_4@e*QDi~QwAtPG`6b7)gcfYGE5J^(y9X*ZZ~16J zb*)`#`D{)%FFWiEp|{cu%MLe~=|pO{&91)tPnjZK`V(Ja0`TOu!I#7t;+AE@ChHcW z<Plvb^sq(z2i^2jkizU>zld<-3GQOOYv#;9-GNW__=Z7bDW%kpZ4>t5b!^3CJBLF} z`1m1Gy?@n%{O1lZIS9b=FYYP8(^fplx3J@Dj`O^`w`PGsP+D<3KJz*JbYLF;<*iu% zG=QwE^!m{**lf%ieOQ$4C<|mesY%$%5P(etSp5TW_5K}mf2%v{19rKU2L4Ca;m{sF zIzMxtd+&j3v7?_uaX4o{0l&r02Y;&`%N56G0HL(6r(QZIv0Ldb7?gaz<N%nFBzAB0 zfjTdE<ag^DX5Q|uunMcyG_R#@6Ds54$J!e-Y*<$h+|)}qa!!U{2q@!M{2{+J>_0I9 zlDU|%@237@C2zMf9g)bVIR5odt^b6{sGdOHlnpSnhy87}R@XVoP?le(?+*LxXsu>( zl))^%PHPSOTWYNmfC-SfaS5~&rp~_UHF8UJcEfj1uVe6B`*h^~bH@qMOLU716p^{X zf6r2c=VmTBJ`@a!x;&j0G4qClY}C;LX+IvhzpgX;FZ1*@t<_-8GS*8&7dVG5un%2G z?T;Ob;TVc#8;ZR=6nkkXmUAf9^s9z_?cph`rq*f_N12huR}C#QC37<+Lo+2iGo|}x zN~UH?`esVD!-ssjgvYuBHC;l0F5!eO;oc>JAl6Bjz@|$u(OOj!vvCly#8{WtJ>Elj z4O3@08|d(o1kZv2`gGxTOUX;xo^K@1-HvXTx7y<Iin@1k6L;q--L8Vz!u#@QZy*Fz z(PWH5Y>ceW7&cHb*2k%rPw&`r4tbgW+hTW|dhzs*D(BFKi4X!d_XrhO*h0~Juui6f zYS}kCdkf;-V=4UvZ_LTRuXb+?@XGVXBza@v7kpFaeJvYtezE$gU7QJBoXK6BiCxbg z5LxtzQ4zCI?oqnLD1D+{#H^mXUgYd;g@OX;vwY}y^lYztuP(7ypD6x-D6U5o*CmSU z6Tt~x=I^`AKXjQVb(yDjJ<}z+KOnm65#0fxPh5FGT+t)0M9!{w@H`;$=n;8zi9Gs5 z<O3p7kBE$%MS9pgAlm2=ZFGq?`oyV-*(vuaUE-8J@y-L{9X;Y5UE&>mV#5PsgC4O# zm)M|B^nXC~*CSRJK%4TRO$E@vd}v?+l$sA!8A0;`pc8UZ{$v3(I3F5Z0KK0Ny<Y%r z&xf`bKyTzjZxlfD@}YSJQ0IK8a{-i?4<!~r+4G_7oscB?qyngEKGd`TI+_n1Er819 zL*)vfHTlq*0;o?u)aMn8U$#rLw4lt8)_iC~MB@Xl_gqAXJ_KE$j5k!q-#%J*@m0A9 zJ9iOvA{@gRZX4N72x~8EBY?XJ7DTWI1XYX1T}9*W;62qzb;n^Cb{H-KLkPuqwh<JG zU|R^P42@H4^i;*1gyAAF>um&57lG7DAaxQ*?F3Rcf&Uwh|EWM5fxnBu-%9W$g5&4F z@v~q!1l0{ii9%4KP*f8-qmw|M1yi7?lW3eN8h01J{v5yl56Slm41NX%zYJ4-hf?p> zh{s&*B*e{vfkG|_iXDxMM&tC+xIQ#a0*xy{<2=x~RWyzljmtpeY|%Iz8mEfJVbC}@ z8b?9nn9#UzG)@=44m>E<8NbesUpK|C%i-5KNMsd~FAt1z!b`P1yOYq|L1=CxG<Ol2 zTM5m;w4E?83!Wi@m!K$tKXn3=IS|x2G;R=$lR@Ju&^Rspx)OdJhF@pJud|VS)1!MV z(P>AbTuJmfr>&XCdbDtAYIF}>%MbW>L7bElg5kzXeIwk%OL37>cwzcogsorT@n2vu zG_DqHYmZ;QgO?H@r3k?EI|(BY)LEGRFYq$j_Bg)m8p+};tnV9vg$UMypmNc+viLG( zlEn#_L?q@z8{sw-HG;O~#;^P1%Opt_7hw|d81rug@j37Z2&xy2yYSkUvre33aRF8m zhj}&&R)C<8Xj>_KnIg%8304w~`PoibA%ZVJP+@4>8~8F=(%31OM-)b(oq!~QrT)~V zypX_`DUim_z&xTcwe5r{BKRr<6^FJJ#h1yE#!kalqcE@9aSb)<5L7nWR&jbPdOa4i z+e$c`^Q2Dj;n%hCWgwE`F&J+I=0Y3c3=w=Eg8GEU-NJh+lN3+Dcq37<PC7)eGXz!j z8mH{5Hm&$JD*|KKMi3!_O(CdaG)^Axd1qQNI4cr`b#f(weITfMG)@igsX?kc2D6R8 zNVO3z6Fv1O3eY%1H10Nj-39Lnd~MH>>P~oJKG;QK2w|8q;M9&cX|gQq!i`mWY}Nt4 zRJ_Ld`<^8EijwLs!7%4wxDbqI7oqMK*cOWNMB{w%o=l`V;It1#5wO$27(z6L5RM_l zW7OYZ)FUwJAsF=-jQTswI&gw_68PH*<X_-;BG~8`*k}$6hbl#5*4uI98YT#;2!aYm z<3`cA>-hCsB=UI@S(4;?3I@LjgY&~wqcB(7ad9;=zretE1s4>R3PGhpQI-&tB@{Id zL5)LEN)VJ16orDIP@8qI2^bW$2SM#YQLGRYD-@N4#_6DO-DsRB8drqIxxU7Uk$p1P z<p;>82Yk=Csz%oYM%Dy|)&$1Z1P0dx0@LuCtoF&~?w<ohchE23Q6KK0S$8f-Z4R{7 z0aEJ#t&K)cc|Cqf%ZeUAK!y+4xUyt?h7Y11OZlqiFw=!CqX`2oGm8RbhkBbeU)s{1 zczH@l2{)hAx8ZwyQe1H<ygK?_!&|@H#(%kqDNofZ+t~B1-{F%Ih)WUB(eE4{fqXry zqyNioS=r_|U)i-di?cd?--cO;Zd#D9xym-Od}YdU7AJHhBJ)194c~@-9Z|O7=3DpY zE0c_~xTqr$pJ)DUSbWay1LSM3^3;WWYvAM#vWP8<%XwC%0Qrhkwvpm1Q;f4<(kY3~ z``JFYQgZ?FHB8y&249(M+}J4{kElF__F*K^O$zcgMcGDzuS_9s?2L{_bY5+H_f*YQ zNLAbm(Z{87(qpH&R->X{wYLK&_Mgh^7mCtj=eSm5!*?Aib52x96`$Igb{&Xc@y*qU z@C!~%M5p_Zs!!;NTaRBTODmq>;*E@sZR^w~IypnCs?cM~k3H1N6^@T1BRmY-YDI`v zrjXKN<uQ3ak2^sMz=`dQZL4x2TKPaq>y^jU_&hY?YL9i>L^w;eRb3`p=|f5jl*bH} z$8Phjy6}0Z#JxHfS9_wnL7{i+OwH}yEkrhI)~W<jii4K^1U@6zI|MtIbyktSRgKMB ztwKvLD34_+k7@I*O7nTJ$JKIoPrY;Y?5wJrwE_yRqJKWbyK{kGDS=<Hl3vP?UJ8(2 zw&0hK*N+B!7lqG1WbMo1f3LcpqN*+q^EV)U)gkSm@ypEhqe<RHP2Qpsuqjd4lnm_7 zHJHC1>E$ER&R6_$0)Dv?zs&u1v<7*@yJ%_t;b31@TyIufPgY!CmVJV1R)T8NO_;wf zX{Q>$%vnEL;$1X8|FEJjYZ^$1!Tj|}J9Uqjuhx%XybJc`^)}#^EE<2xIRbv$i77AJ ziS2(^HThEo%m2l`@u0P+A?hf-Trg+Ee17m1=fT%<LByw$@2)R74@v=8T=Lyvd2DmM z;nh(r_$s2rwtEJcsu1qb>``%pt7Dt2KnA!YDm~w}o9pH3zAKQ?Ld79|o+d^&JUPk$ zU#63CEKVbSyKD**B%9Y1ZlZHDIuR=_n+~){%ReX}pO?`|2j++d>j3kkBq5rtch0}; zQ3&rygm*L|u@mGsuQBds0tEN1C`36seI9sm(etAaBORdk`=Zxrx?FUQf9M<>bPhK9 z(+C8MM^pqNDhd%5iHM3u=tUs(q7ZtKh})f@f=<x04$ycsqBjcB8;R(RMu<ls#G?@6 zkqGf<1UP|WHf+X8H)E%panYYfBHSYo?okN$o<Mhxl?cR26k;V3u@a5oi9ql~A$TGY zJkbbb1Ogd_Kt>{v(FmIegiRE}CK6#2jhOl#2z;)IL`+2^?nEH&L?P}(BJM;Z8X^!4 zQHX{}L_;*fKLX(&g{bZXHFbcRIzfRQpukQLwF9Iwm%|HyPSD8?(8*3va0e*36Lh}= zbiWhS-T`Xw1l{NW-RK16b%63ZLC$LQ^AF-SyVV;PS)327*JycfpO40;-BtNy$Wra& zJ(=G=sZ#GbA~&hhqqtnVmZ_$=OjyhGcro&GE%WPB4?T2`v!SlixRq(QVU)rv!eb9Z zBPGAG9$%j<1u9{_#^p`M(b)NyN$%JuO3%m6L)oq6ei*hP9l;}I+@!)c3ODc^UtRJu z?v2HGCplu>ltRn6iG>jg&IFEHm&^>Ou^5;s9?1;WvyvM&)b$Xl7kh?%s+2xv05zRL z7K3}O<gnP?F$0+C7?K;@Yb`fw=;z^5U;G67LW#31omiNt;6pI0bIH!&EluAjj8Zs< zH>-8|l;J)m>1|3tc7m%*t>+5E6!Zx{zAlO=)s|W>7S<^!VTzrx-b$~^>N^e9JuJ}0 zUf41)k5$cx;e8LV&**ogIhe=R2a_Q(R_Z(Y1E~N;TGxyj`go8aqix7nU>lp7X+sGQ zMf7t|Y!-OR3b^Xd)`R3dI)F3;PubQ?8Zvp*p_kpT7D`#AlZ%Bl3OK^cDwpt#^0Bp- zqgbRJxWU#3mBBxTCl(ed>^1b%Eovw=mDbM~dU^0eM!S(rgq_;O>q^v8zX`)Qg?M!R zFp>a1wB7!kaePc|(dDB89Dlxg5vmki=GTV($0Pft+z(_EILz9aa31B7lW}Qm4JJ2& zJPFpe-cHUK9^-o{*M%%1#MCY(WI)HzUh7{s$Iu(=Uzx|$R$X!xbnph%iz-S<Wq#9G z4v)Boba$+*(rBqlcGF;ErIMIfPud{f!B(W8zU8vMc!F8OpP9uEg6H~sa(%F&PT|2G z9u5~-$$ZIh%KitxDWm!{*TEmPesQH$VyferdVY|-!^Ul+(mqQ{2lapljTqtH8$8=T zNk9Hb|Kur_W5<r2Jr>R)rat%np_R1Bv16KFj~$Z$STAo^8F%0*-p|3VJ~IEG2YTOk z^m(T3_2Q|IwDSu`AD`GJ*hgWlO`1AEz2;nBwW`9rJT~+`sV~uIK;PzeOho0pu>P4# zoIM`}#RXXet%YP%bQ6UVwKO$_^am0{VA)0P17Vl|#D>62L#zrs-3JVNrB3*nL;01e zG?V>oGI5gYMs;5e;^JU7@B4!_hf&wmXM=eMN_Z~Ft{^gXs4-@dQ@$eC&+|1o=h9@% zVZ43!PhPY?JJ$AkpT^*jvOK@xze#ywL+9_yu_M!m``@`($k)_jEl;{F-j@R*`H`oG zBqLm|%b&}$K84M7yL>-s=zOj<ANGp8{zq#ztchEScFlR@vth|_7e9H4kJgv4de?pY z!n!_fx}8As8NPM7f}C|Lyf3GYyyWKcuN)gT#!dSZcWj~N4L5OlxlifbSV=b*EjeD~ z<Z%C6mxuB`pVE1;YHsfGm#~d)XNLO2U4rD*<<EVz{s()ny+&fwZ%ni1GO~8KG}y&X ze)W^J0QQVqSMKCLSZy~&?HXpJ;c(3T8g3+Z_{CcneR<nYlRQ{Ow>qtwtH?80r9VRd z+uOK+u$0KNK8^k2W^upf4pL#LG}1*%-XqVN3ESW{cE3ggd0{9<tL8c~cIZWn3%h(q zF1J$d`nXq~PfKtK47$r-KHdG334QpFrND(j4gPHE__Mq*e#8)Xb-iV<T%UxVeoNU{ zz1>2!N{!8Y2`i!6U9RiKreiWx!Hslj;@%{dc2{B7^XS|(-oJ$ah4+wjQcb5jD2r)Z zV;rE@b<dl_5DLWk3dv_iV|(jarcIvDQw_t5@K28J!W&+c$L@h3@v`vsYI-?48Atpm z8_uWZm?P`Fr+P)Ee64yJm08&xL}b;N|3(h)s6Z@<<Kpeg0{6}zwpf`Us{Qnfl{UW8 zcaco|%CxhToL!oLSNayc`YR3ZSYj~Y)z(^4+ky<`n(TUZFh$vz(pdc+E4qfl6^5^2 zw!utbg&@~})0{2Qo?QaU$D0ZLtkXViccpFJzR)*=*r)mkT`$V&C}sRVXe|;)gCa3A zu5IrzhKDRm*00~wxAkALPtm8qNyI8U#nogZ?~dby(ep<Rpl*#L$t3<KQ8MuT>nn!D ztK@TO8>>Nw^DQSRvYtjZf9MC~3V3co(QCn-I&<I2?jYS8b$EKhN!X-k6Z3v!jREzv zO!N5u{qFdFQV;D%TzCal<WHE9wu|Lc%eemX-g5r*KxCleZOj>xCVG5s<<4Wf_!8dg z5<3g}jKH&}zIn8dgE}rsvnww0hyi|{bV4HG&TTlKC8FbJ(xiiq3+yQ@u0Ol$Ct)&6 z+V&USa^ty<y2f-`VAlq!I}NJ3QHzsiLfJXZR{gFW6@YwiT{TcnK)KkxUh6V#fj(<| zUKfhWS(KRkm$ysWt0s7OGIQTzszhb8bI9JArg>OH?EBO-aI}hTX+7e_PCq5P)U1yu z)UVZ%r(97enn2MOt|EV9=I0^IXqMHZ0ypE1o5oFZkJ^k+ISupPhAGT=JK!!7u`1OR zoNs>fb@(-SW$leWC2ljJhyc43l%=&IIi+7I(c#to%Ze-|{jUsDW`gV$ak*t#9-AK3 zPUQvVgJD-!@tqD$y_Vs)lJ?D&mq|?xzs=WK&jq|Ws9vsq@#Ea&`8@l67w%mXMT7?z z_pW!{&S%SN1zQa5v*iI~yKW;#Hba%7Pliy^qIWA?zFYM1KW|Bug#XZZH+^@paHhj~ zUB~apLqqR%8Qr)L6`sY<s_L{7e>=G8&Pn^L2Z+FArK$KW7mD$;JE%7U&|;`JH@*ri ztdsK^DfFY8M&}Q18X4>wPqjV~SSTdJLgTA@q$XoxpYF{h#E!(@ZU~%EnF_zEK5pW+ zl{M8Z75|DhS7E=n>Qr&gK2^+KU<<180yLnr-hH5K`>{4U_Ry<t?Xyw!D_hL)XCqOH za&2HlEA8j`Nt;Pi&-lzE;;#WaYWy~eOjIM#mAfapb@!E@5$N(C)ICFs%9=^fT|Mcq z6ju<F5ylQKa`A`atF^wv!`wNLG4fK}8fZL%oJ0+bS{hMJ0*$|%lp}nve_H(FHCzd^ zf123{e<zoD0ZBwQKK6KQn(Ptp5%ys<#v?3sHO`|@Vw`t8xxIH6=li<;F7BZvc%p7J zmA7_1!kbu^^$DNvsgsgXw;r>AuDfau9;?gi!{X{BQEs+ks28{|_%EKW;wUgKz0Y&X zH^m!QmsN`|_jHxWsLN_P(#8#3pL|u8Zd$EsBbWLVR_6llA-QAK5(xyPO*PzxU6^9( zvG`$adhGlIUk8sx5BNim#niR8V>?3dN`-R|$V+3AHz)6xSwE<5`Rd}>!w<#^CaRAh zwS?hc6{2;?Rvw8@<54b;szq&T&`*u(Tw<OgJh5zv>OYaf!te$KeO>b2n55LCT$#0Y zHR7v_bx*b@);p0}qtK^Me(Yh9u;x%^ZTxr)`Jv-rtW?qyIhkA%!8?XD?=&1o{_Kc# z!>-I}*STDP=GoK~qN^1=B1>#)>d@)7HF0Qb+nRFpq-{+$TE(`e8C`E%^A_Ep;M|GD zAun`d$C0reyEZjd=+m|}k?2s{nqst;t=z-M?pT+(%U;;UxfFLSa3SAwY|31U2i9WF z;sthW&H{{8oU`!6*3DUXVSVSO%FPt#rh?3Z?mxyw_O5q+IvHq+pBP)acG2#)?c5OD zmm@r`CP{fGeRFQe&i8V7c6GG!%S5}*Plz><i+0X1=*$Z&|6KD=q<ZK24<z%PFBoe- z=j(}`p7Zs>YRr*eV4LU2?%1F?@^dV0j_iRwK6lX#i|V{OfjrrH6^{(=xH^Rl?z}pU zyx(zk7<s=lut*_1k^=U)$hFrr#&?~>RHkBrmn}PpLp$60B%_J8+jdaVuZwO_(b`4$ z+(Z6x?dpwa)zf6AxuEm#7<A4z+9Uk)%I+wN*cx;$=nT9OoztFujdXs3y_3pD7J|CA zWlNHjDvKgidC6wbmQd<@w2vb~lB70~6M;EKmWOh+(#-Ikl||7M^|iqcyE7CYsO2}> zJ^Y7C*9Z&`Id!i5t-2{*bHX7KbCE0wRr*G=!N*p%T!KlgP0o?ts_Wo$o**Ph8WTR9 z1XhYFl(j8elr&hm6iqp|c6yHgZPO#Xb0t?K`~=wviU@7e#LqlI$N&!%NsXc~tqF9f zGr`l*OO7&JdneX7=j`7#ncyWVEhFI<$nMaJcKaJ7!->eb>98gXJf?Cy63$BYhi<e_ zUnAY0;Oz`N4^KkV+omN+>=U*ffoI?)XqhKo?0dp%>vM7wps2k{Sj3>?1_$UoS$cD{ zby_Ou)SCL7P8&`4=;j2xGqrLrvf{}G7w`z8lXI@2fsc;XDiN1KqHFi(mcppf`#faF z&FwY~!61zZozA@{0_-i<)`)XlVS)FKax0CZj4BbFEy`=AbE$8r8T$oKaxS;rUYqHx zV4=k9D>%}xJK9aS3iGj2jF?5+G(=~GCJ?$$=m`6^;!1kTH`>gA+8SL(4`6gpQ0RSZ z55ohsPIR}Huqj`(Px^Cig8tyw>(_QCy4!i#l=-KV|42-rgfdT4>Ovgan{T`&&f78b ziEijBGm!(C`D6qD@xi0EjVGW)h{jqsn=+UtF?(;qNC<KiApVxPB*&ckElBz;@%K6A z)Ha$?o4}KnWC-V)CEJv4$%Q>O{?J!!LoHdUZ-Um}g%myUVK!>N%$EK3s>rPM#4L~@ zykvwOMmWp-dj@=l5uRr3wGP}oPQ}G0zM-va>;FslEjR@{8xBy}2_L6UVTERIOr#5c zbih~(1+b`=oZ9hF%9#J%4fgH1y2h872g0ZbvsU`(#s#e}rZm3E((&H$veeh$Q`CzK zA}xLh@Six|Gdx2GNE|$-+A{xpuUzyXrt;i_INHYL<N*1#dx_3`=uly<2`!=S*N|vE z4fZvsMCZq7p##av;6&#Dbf<961>czYE23cLo~1W-Cf+ezsN{K{R%t1fu2@^`Ex#wJ zANYvfQlfq#cJ|&eH&E~9PgY9k#cj@8BnAXcd=TzNdzU<DKDPD+aI60*<Z#yaRgdfd zo+nY}1g3EQiWgX_hb!35);mTO6*nJTxeAmnjU@$~Upq|PIE8sTui75>A;5Ctg7C~$ z-y1!9Aq1<frYB180|X`vg=biOGv}GUfkh79R%Yl2-CDbxD8Pa#m=A9U3m?3%wAByd zSW`?CxPU2}p9v>C^p0^J*AtF$-n-Bv8%H1~Iv+K7>BT`;eG~YIKLho>V@y$b^H*}f zqCK+Ggx5W?{DcAE@HE&7b?^IN^x_VB*F{vivT%0ZF-oZL`75qqqaN92{HY#Uhx#U= z?tld{xPW&}BhfkAo1zyawHB1<z=~;^Ps_m{Pn<bV@$8W`sy`{*a+Q3oXCp-2Y767Y z`krq)Mb*r^-<EW%N8pY6WAA=T(piSz4dJENw7B{Bc7EZ5q{^8OnZyIP9+m7CQI+oP zJx1>BJl|mVgMrPX`v4u!$SX5IDgaIaz$h62LJW`s01ifLQ%2eQ`LrT@ym0r?e30Pj z?v3Xr5IoI{C2oAQ;FmHror5n2l=_ai#bp9f%f5cPdse2vij8a_c8eA5pj#!sW^E#Q zlHwtj5=xEb=xfcE>fEYadQf#@&8xub68W*1#XD*iN16`a&!qGOyqP1-2!Gn7^bGtH zM@hTAP$y3%m;PJ7E<3?ao643{C(jA}0xKpmtH~1@G*!2Xe{I2}locMz!TZf#tkY_u zB!A)`vb&h#yC&_ZSVvL4D(1CXlNT)TEDqw6ic}}L3Eun(KC-r0-J2%eC@Dv;6eo!Z z+x!V0vV~aP+a|*(_9tGciPXb*6DNBp>_HDLuqZjr0dHqgoiigPyvPNMPhQ(VB(iNs zV=VQ^6iR-_(HsdVpdS~LZ9y{?%q#ELB&W7(2nlz$JLGH97Wq>WiF234-gnpQ6wL3x zHqe`glAvNL53>{44l>~;dU2^OdXbF->cYa^*qQuBX7Y0}l^~k*f>h<;gC6J(tC&}C zpoLys5kl`kXJRS8@g&*7#5+J;MtG?eq2B`~zf1nkPKY+~Zfp`#pe*;9)Z{b^0-%He zL;!%ucL4?3xsykg7{JthfZa<Mdob%+tRmBRLt!ZxR<Nk{C;LYXeM29Mroa6WvnQa3 zRi?lH5wjrxFf@l^?m^IdB=pF%n7aj(goILjin%LV5_k?0DLFs*L>=_7o0}hgT;bA4 z;vu%G7Rz32Oy!}@FclAP1WGF$Vr25QL3{1_+H`Vzfp!adR5zBkRs<*};uCnN<Ac`} z4$B0@6b?&rjNNxkL3-{xMj#va9eoGArmLk7s23*mR=nB<gmzI+TvK?qV{)|I`{jZx zie(4)C-b}1h_0y&@;-xn$RO((<kDZI4nQ_DP`rtA_U5);tX~)F10W2FDlBq?T7IOt z1^_qPkPA9q9RJqt(TcMpS0ayJfrFL%{D+`R#j>miS_NHd^IS<h+X+S{&iq@!j1a9K z>-RnWJ-`9ix6elh=@!ch92DehH~&rrS|vJYGf3-VSuoYx#JTZsp`c57SK>kJ=CWln z4{@YINTDmw!P-6MeoNGkD~KTTVp-CWJ0Lvx2?)160O7(oAndIWR_ID{uyv2Q(GvIL z3Mj}9a6Iw{g!{XIaFh2zpv;<8@u$3_Fq8W_2eJ7<XMLTE1;PlL?)~~frp2-{2T&7d z`>hP!Sic@GX@y1Mme3z*sYfXc()KSY#UNuDWF3RVF-Ro_nn?imF=G!H(J~lwRp6NQ zAoLl=It=5i{I16NZs0KVY)D=rPHqTZ^7}MnF4$E&V<@<FuLYwS<JA(bIUgEi6nSMS z=p6&eL|z#T@{0VvdZfW7TTX3edp~|a6><uoP=y66wwWGu?C;K`M5y%(+`L4b5D>cL zmj<#D?5Y823U1v(eAbNdK%{BTJJKMLd@VW;Isz8slfOfcu12N}9vQO%KiVWNZKs25 z1iN?lgq$?CXHvg!Qcgyu#UIJCsl*{}UfO;SvJmXvhOz-)DWb5qTF$li!~@MpzClsl z`PUlOPAB0}9qW!pAJ8Y);)O_ODbA666`=RZ$I0@Md??Tdw9?u#n@SKu1nMx6qd%`q z3+<pf4kmox+}Do;y-_z6>|Ur4qWwdbjO5E{NqNn;<|X8vnJsl`I|rmA*uCl{e2?kS zN7x%rdnh<|_s9>h8cf~4F>y}Fo6q6qrG_B~Az(R9kwc+0wn)D5mejL$zhypr-=s1z zsN0czOQ}H9mV1KT2Oro}1}YN2LxXBH<F-A71X*|4h3|14dI$>&?2hY(Nbij6KjlN; z6<qW}<Y{&VX9zjb$V&Q8AEUJxREcI+IF3P~^q*$#=V|uO&@M*CaKZFCj@CC4zoVfj z2E`v4BY;SZIKa(Fyx$~hM5a|xschUj{0ZNcw?1n2kJ1L&xQ+M|BmAc5T7tyhb~aff zijL6jW;OBmn+vj$F%t3m9cpVi3E%g(@-@4FA8ne`t2v3^mA925zayxlY}{Tn=}Uf< z2yH>)07&RI@Yh+FRuyPDY}~HdNfEm|beYH)r9u6UhFCgEvnz{B$cft3a`QcOQ8-ej zty%K@<{~E`sL%`GBr8P5sM6o>3rvg)-=;NQ-@GuPBz*f~lkj`!l4qpAx8@t~H<#=p zV?Z0aAp^S`z>zupS8%7C{)iDC%q>+4=y&+X(JRhBq3z{-KSt~<y8Z3-X8L(Z^U>oo zUF|{FPi897MNeYB1&N)^1hpi-CD`!Z=KiL}lX-sa`0BG`M7dMk-}cYfpMMe%cJItB zjrLoNX*(lfAbRpjj-x+gej`6T=pUB^{=>Uh#MF0!Z{_U_v9{e@{v;4GJaQj&wg8yE zd%${N^Ep49_K!;<|5oj-nw?u4A=dff0aE?q>N`odGIoZH+SULyvkya=X6pZ2#!-6t zQ%gvFK{$<V@jd^c{$~ct-5GLdYaF?cU_Ln#9K^D%%erlz=HPF&cTQdRJH72hV&%X; zmy<)(Zb=F;uby{w)cwxXF8G)H5Yl){QUoBc>$U~3oe_4_V2;)YP}c(>q$GqK2uX@D zZ|hp=u`MQ5eiiB$b>!ClF3?`hC{9TVQM)ZE!*D#U`(3m>ia}Z=hBV$Tm1K~dx@qxk zUlMN#g#HwA)L<zAd^yGd%bTTurLmPh+txs3olvP<$Sa}i^z*BFZFlZl8L@2*RW>uo z3qscgE;tK2W?g@AlbL$^#ov`X>!!`Li6q`?2{jb{)Di|w9CB!PVN9{YjzQ;aAG94^ zu1gM47N|=M+2^lI2|@GMy$^ZKU-uzInZGV6WdACUZUk<YH}Ri}c5>oBMeRz$*EPbg z3SE~D_tL$mc2QOD9^XY(-FrtDh{D%NVOhf0r^D=ot`CIS314pxBM4nD4<iU)&kj=; zx*iv%E_^*Gj5+ZirFQ$oe`MOH6BE2b1BI^JhXo2>e;7s;f(ER~L=xwY>GHA8q;x<b zABD*DV4<oR0m(=z^&j1}rEonbx`qK8Wp_4lA}2nfBPbwWh&;3L;9fIlTw;jwm1YU% z0}Evvwz((!*+LyHe*$$Q;ImAOHqJuVXIMbVApsJ663ozBe3n(1s}5DDtVdNfSyojQ zS!PuwS&yrVvP`P-vTUkysGpsbD9}!OauV<d_Ftm{*NQkX6U&_Ni9vDS${fozhnCM1 zO#`1NFhSN;K3UdPUeqs6<9AA&1`l6##_eWAQCHTY2rHRUO)Dr))t~j8lph=7`3AF% zEKxTz9UPBefBfh!SLitjNr8}P@y~e>XlQ3JME7(oN05W#^0mh{*GE|ppA+0d`^4w1 zXSZ0MTcC6ArEr#)COi!-5udl3U11TkKo`Dy$HFclc_qX{;`e8WUFgC)NZ@G&PVnbS ztAD_yAB)=zIa65Lu$;GRAo`&ll6afzGUrg{5Bl2HIjgJxbhGGMqx0U4vA`^>1kb|E zzYnz$I4_@VQ|H|J`lpDc@8s+>%cKpuqHXS9bj!Vg%lx0~Lj5Y=v7JMdCwvPH7yn)L zCza*-<JahS;^*Sc9xS%yaelRaU3yQCi@(B`M@hC%SPg2c*vzb=1n!Q<Rrl<AFOjQ< z`s}9q9R2G(;3|)0U>-6>qkRNi-^g?oQ~A0Sd~RyGh6}in+iDY3{a(dh>+X5~CYf@b zmE9n8wsFN?_wLOmjbr0^yN5Wm^zPxmkE87cLRR%ESi5!&`~%OHyN<2ihpGc)*sAsJ zA>{F3;keE(f8QnzwsD_74b<AUbknRgKV_fvZ7*e?jO`Pde*J!z9(oSwLvmGQ+SA7~ zEq|R)+ZN9}==ZxYaI|>D^l&h9d{*+w059aS{F0&ax%BPJnW0!e-T}eI#*?nbKGUH! zX(}77x{Hmhu0xruza+r};gGJh?Ms=${RdYD5*GtbxQh8`gw}jj$!WFj${d`P^cdiR zq{uBHASp^q`pOa<WC<^CYE#AMiaSiM!agT5KVZdvl{yVTluM9u>X|?L(~l3VEcTyu zz2KwWZavEPwkAbIuGJcsY5l9zdEf<POu_Y{@@l#qSLQA@ooV3AqNcJlmitZ3Czb8? z$?ut`f4z7ya1Wv=>v~B!16gw=6S{c5ZL&X87NV%+`dryItwu6a3Tw?jV6j+w%GJZi z;%!Z=N=fVFSf;|S7p?;~5FVegx7!zd#)4~_RCvD~h#)G;IND@VTAwh%{cb4F+;(MG zRz=EP9C*0+;-YJ#if!BEWM<jyn$tiX#8;u{ZB2#>u6>e_dG*(t<3JpQEYBocllkQ0 zy=V2QDiH|_(~GyHNzMbOlqtw|H*}85`L~peb~Nmb%6Z=z#c*}%zdl#SF5V8WT6@BK z-Jw;b!`|_f>W|F4UwkeD!;p(PlD_<(WL^h(>P%sR&Mv7g@-Z#lgySqA%^nq*XP4aI z&v=z*<d__4pU$B6vh+5X7O6?ovgCoVX;v&Qd%B7|FuHuzwPIa!<Mp=hC)hhb_TO1< z)7d)@t8=y_{6%pdlu^~r#*@og?$g(If}YYzu$`b6(+4|2PSc?~4{H#6f&QS{ap_O6 zh9>fTe^AZ1bkUv<d|lJOrE<JH7Z%p!d%MX231exJThAIFp?vTgA64y}E}ogJSg+0a zP3>yL{m$~7ZrT}0Z=;m?u@0%iST<mb>Y5vkVvXBac-r*oMRmQ6d)xd)u=jpOBbbTC zqThB-)1x~<Uej_r(h3{a{)k%}4m;9v8#6o7N*h}KmT7ypn<TLC57Xw0)bQz_i%oYo zc($i=m4+K(zwJucjY}}Ne0L!)J6Es$H`BYOua(mFE;aFDDW{t<`YAV>GO(27X{p7) zhZ`2#G@T8_?dDt<hPrjN354YOO>nfoyYX;4Y!uVixV%j8oIbxplJ(N|N8I+3Z-Qgl z{rA$9*qbQWjL_+mi&*WAyW5K&_guFZbN3SbwudOue($H-$<GHr?L{;xf|_)&wr{4L z7o{{epxc)}?S=S755q?q@A@MYyv{cj_1h*+&-B|Or$-md?rm(4pSljiyX+|{O^DB2 zFaOc-n0~fHd!BtJWT_wXZn~u(lQ_M-xcn~#<%jsR_s;Lmnmykbl|BSqnLN(H_Eo3x z=>`Tl-M46We}i*dWCZ?G?SgDYI_zo_J+0{Y(yMLo$GtE=r4hJKlo2h(PiYj6Yqb5{ z<UC!rGp%5B@+W+e@Ngq=`(=K>lj*BF8uA+t{RPrtN=@-tO!zbcOJQ#^>L2~JSM0Yp zOzCf=EC+(K!`fu};R)09eu`X^O!zB$croIfgCXs)bjA_t7k+*wXFCa$dM*iJk(#jw z^AGi-e^lyMdsqcV`<+h&-`Tz*MA%uBeb8`;5xD!E6JFlH0znSheQjAgoe?sC(A$Gp zeJDb|Q12dPq&hm^)Q^2JExO|(yAkMLgY1s@ZPuXM%-uAJ#bsvqpaRbM7tU-+EvLWf zL*=@%NY5a%b<qL5{)Mx^eT@e+A2(lBH-)OOUva%HO+TYP3RM~9cD*M}7g0C$KDfAJ z(7P~`>uMuC^FBMWK7iT3aM8O<$kkigAu4;hKJ!v<`p3T1Pp(nY4k_8X4FM|th09wD z%juu{EI+z_k#=~W-O~^t>|eOL^<g=^vXA>xmKY|$++SpU>*w$Ex<1Py*Ewm2;Axh{ zGTp&^yXMR4qrL}II|lfL)gif8sTKNz^LEYr>Z7oO!ySWP3%o;ep{el&u52<h3E9sZ z18(?>Y;DCZr}y?LeR91mGn1UX+!(;8&hCHk+P`qeTcms--@chweboPef5%{L!N5JM zxGBKPUu179a5;UtFa5_I_J9M_a{62!Yp!dejBC`Y!S+J<u-tH}z}-PJ2ijGC5z5xa zh#Vmm5ueT6a>TS_aIj!to~7Gzq_bl{Spa=<os*%9HF+WT<opYdyj^q#@*QaU{)JR; zk)44K2bza}A#JN>IsK>)p+C6eFc31Geyl%zNY(U>3cJ56+pU(g?C0N(_I3<TEh0X; zir-o~S~obem|2yz{4KMlOzwJ`PtdEvQ$De;L{9q*d>Z)rWWahf{Yt-z(H+xZ6<2Ln z?^{cce;cqa!iMGUruj7c6rT0T(luaP%pA>p-j-RDrixcv<Q{nHIMCmgF5NGX=h}7) z@h)4e{itHcfM*er=Q?$3yuP=?vE1iFWc%YKarW@~0dtXyK3OFOe2aH1)0O*QmEVS@ ztv-G>_rDZw@BIce=}oHa;VLyS*STAC8Fc_|zjB?c{PkkPfbVjDTUKQIJ8QHY)auqb zn8?L*F0%t2j;)gTbY;o3P@wK~4FnJm?K{m?PNZi?w%^N(jcj+a^arG|>LM4T3Cn;| zo(%{$KLb|xh>1X2=5N{rNCyH7kd$`;0y&T2bJk_9Quz(ThnNmDP9!kW4M4b9$VgiO zK{=U`zL68zJ_q^h6Abv=_}fMtsVo_n%Mf1iEA!JCm9w*Q>yWpzg0y~1mzI<dLP|@< zeR6H6{I&HKNb%_pzI250sgH(sZtj338fH8*0;dLVzfw*cmV2fAx#`D`*^fo8E09N& z(&F~k%<SU!yX&om7ny)F3`kQaf6V@RxnpqkqWgy8D`n+(fAgzAzW8$%LwW!}oxf7z zw;!`lbO(RTUaKtzO05{=gMt;HbijbYzA6C-WeIiD@L;p50l;>RVQVsa2OxY#7~;@X zhS-oH-YsWXj565WzpOsM{yN4e-u`R+Yz@$oe>b`Dzp9qgvht9*rDe6cLEvyKYk6)O zQcD9HUK%^Z$ur171}V!R;|u`OR+d4w0_04iSes3Y2apNE6rS~<YA|XpAO%ZzRRPOY z)YGWSv5iiKFhr~kDRE|i!x77Q(lx4bG3qTK@ag=PE?8Rc^b2rBW@QMLDhSX=)Ue+S zPmlH2Hx++FTGuIYTFF(A3r~2sj7*z7!Qv+~SW45S;HGaCww=AiD_ykL7~;2o#T5+k z;4VX4#}Gdr1H{GUjewDVF9UvLKx7XCCNf~dcLoe$z^QHks-XM;V^=xAc=2cfFwU%E z<b09=V;_qxz<A(3!#Mq~c>Fa(%*7A~%rV4w|BAyH;*>uO@wva^Z-6s5g|WinX$G7D z;NdC%!V{}Wzte%;_%L?k17_@IVEw<hu7YChW{K?l66#|l?NF&o5#AYVt;>CDtG`m# z{yMr9FH?YuOIsTo@%K;z`$-e`pB3(RBGpRMk?^E&1ydidtx6Ynk|F<?0k)~99a&tj z<Yy(PuqVRmQMfog?}+_@&-gzS*RRb2c8`y30Upv?en1zloJPR9&yeAFS_J60$o3Iv z1G+Z|5Sj!=gU^iBu)kugCim}ZelS)O*}zzhF=I6%D~#&@TjK8_-!s%=GFgBo|1Z4q zA1Lx4D9?bWI{#byU+}N?zu;eO{x^nz1Z?vAf5D^wKt>DnHT9(M_w0E}epl+REEw`@ z$FhpB-r&k(sCov0+Q%`#!Mag&&ui<Jw`?y!+>u2BEFZw;J%ll|;ehsYQVvkic^y!# zn7wWk>8_J6nb~A+FKi57uvzC4eMsb7zaeT!<P5ybo@iX8`~M5?;hEDRPk&r_e($!) zgdZb)k3I2y+dxJFqhUe}hc6@jd@ClG_xS!Po}WS1FNse^n&hIv@&*liCAqxpNu(_E zmp7b8njE+Y`)MyXl(dxeL<p*w-(9`=@FfG{L6B<fk}8a6a1ZlbZN_i(b@O)7W&jtE zkk0JdwljN~=QYw49SuJJumN~Vb8Lt1UXa5}B6OrlKN@WIuwgGemp3DcWM}d6#><hW zzG!eJpzD;+-slC~%mKF&z-=6G6M0BHD9-{Mm137L&A$&R`EVr;yNaBb8(q1plq3?t z?Bxw$<r&dnK7$6B{%~xV?jBgGK~{D-TX)g-DZo(x*Lc8DwQw^42Dp)sUE2h8z|9p{ zd=b#D$#>&T4~gJ9yuJdwdF@GOtWBRZZ8Rc|1v8F#MB#=aH@|h(FT*e$Y>q*gj`aBJ zq*-Ir-#Uex@*-VWc)vz_Yf=*tO0iTj@ZDg>z&fAqWoOO>9&*#}yy%4|X#_KqzZcx_ zdZ+I04FvDy?-@_xkt-m%*rJ1Oc}442&9BL;bq-WebdSSuQ6QLSW6aXvmyU(eYxaF( zxjXFp@1w1!PX(EYZOzFm^6&Q8A2vwo(yP@cvy!k86$Y~UD{@VDVsk!LOuYLyAUj*? ztR|Mp^X@foW-RXAzh=;<=S~>cw4+L8_!K6UsCDYyCzA;9Zj!p%WD~6Db&keQIIv5l zVws8DyYq=TD6QbnTiDAN1XFh#rFb+ycnKI0pEqEiVn<#re>5w5F2R%@q-LvfW$3Mw z1k=eok6tW1`B$~5jPJbL($^2c$JaCKyl;IQ;0EY7cGo9*TaRJxRRVm__a}h-D52Hj z;+cJYW`@WCxNA3%IR2M9eG2gW)!@RQzDxpIb>IIHQ|LhYw{apPR$aL{(R()@xVJhG z3+@8d{>c)ID9OQ6=RK778ZaMno_qv2@fR2{Vsym2GQORgFBma9&lT|Q&HUS8>%U_Y z*Y8Qdj*VfxA?(j^$T<r{cxX1GG@emv|F<-%04R!#d<__PXsQ8nCqe!f3)f^XvDSGf zq(v~<sys002rlCj5}5-Q#m2tLkYm~yc)SF#5hAfL;Xn@`H?h<qGSL!zFX+lpDTxUh zbgmpyNhNlCD0_15RAeNg^7Olo4$#DjyK~oA>;6qh+h?-9_Q2pMSn3}k5nAizvuv<X z1}={{4e)r*i+~2LarwpDYfwvNMwPoY!@+Kr;pXA`KML|01*JA;fr6V?-T@XCQl|hW znU$d_xy)dqA{kZY=NL?Z7Q^RDD1%vr{zp?j@E;$v1sBk`%KbW{v5f_zptkgHV{1mi zcs0Yc{28O*aUTm~r74_@l>+<zUl#1eGqy$&U~Cx=`nxp*AESW&cWZ*?j1F2~7#*U` z7#+BZ86Bie{&vX!+u_0A4)4W*4o->x!E^t!ILY+?%xG?hu}|n<)BkCtyTn-Oof|-} z5tVP3&n9XI0&|`v&$ri}KSiB>mtTcvkY4`}ZEqb_Rr_uY(<v!i0V(P3F6jnIL8Vhb zknRpa8l<Ij(<PnK(g;W>C5@DnNPhS7IluS!p7EaZo%j3W8^dw!x#l&mdH33m$Mx(5 zkyQ{GBCe*(82{$vb!5mILu-%Dx<j|Qds9A%i*?SGuByo!QS04rmj~||L>jx&L^HV8 z$4VOB44CWvX6}hCYLeHW^b_q9+az6Oa68=oe7kS0)fUULB$<NCTuFmsAOvrU!gpEC z`N1qT;To)T=il;LeMdL{+c+!*Kj=VQ_d6+W%OCxn*&Oe2n84d$dokV1f|e6N<UJZs z68~@@qWhf)w`E`7(L#K?(z$P%X}id|Z-i+(%ek+YX*=1uuZ?Lt#<|d_!d_4}oo~kv zzyx~%-E^KEd*?!?_xAj{>0CR8&V`uo?fG=mId;^X3wILid3Dp-cEp_vKPTAp=%%ym zusip$t>k<dNs?1rG^=c~e&iC_{DrYpWCYgeA8gO5ORC}O-~40q&BXqOQhwP1yKXrb zUQ4sSb-_&gMg(kAvN4$@x}~K~zsB&%cE3|0f!@#PGRmn*9H6c_V9+g|oZMemqNzKe z*DY7TYf00$PW;-w9$`@{*_gl*J=gMHKT}d(0Klb|Sp7^z`Nnvb==GLJ{TdX3ZF;9d z4TC=0vq!?E1}xD>%myqEh|qN^ljOV?pHz+&=10_j8LVm@nDKORIcc)73VioGx5tyU zKmDcY_ukhYT=R+|_afS=mBYhUF9fFQc_<D|gmS-=OqxE#*LFvhbQJ&}43e&RgxbGp zC0#kd2fd^#CHSC|bbSIo7$naS2(>#^gLVUH;S@4KyPv>^RM2iN_>c?QT?HSKLA&uv z>b{1UrFYMQcCi7}z%1opl037ZgLmYi%;+ZNT&5Fh-{qss%mVn9P<vTBX!j-1y~Hd% zWRyHJ0J>t7ncpB8NT~e;B;}RVZ}c!rvq4ge4(?ZkGBXa6p}+*_H~@rUmX0w=@-a%* zs|W2m(81NJP-aLHbA<B=wdGkPbpU!#sBNVYwEJ2~JyRO9)R{@rm4Xf~M+e7clyvo@ zgR|$L%!DT9w1g9CKhz4^%^}nt010c5C_|aqNXltRAk@|c^)^cC2B6*+)RWV}D?#%( zpemkFTL2^l>EQO2C^Kw8UQejqs1sxZ#<&lzf(f<V!7x1N;0Is=7C}WAp*90(;0<6v z12<p@c64xx0+bo)#2l|wLhV=}*HBUydx2RBO@JeSU>1v+CC^;w;I~qkrJb5VyUzhD z51>{M^Sh|!0msa@C^`ubV?S|aK;S`aUtl@_8P{l%Fj^FRZAnoCNmv0gzP4lSBNUxD zED80#clO{a4_swz0}(@u<bO-uVP0XASy?Nn-w5n+IEEBH2J1Ozv^u9G9mK5gfC?UD zj0hI7+G@=MVlW_P0t2LA0H}l1o$>g<PCOcl4xW>g+hesTUMjd(9ARywqf!B)<V<i> z+zkbTG%3Eem;%N;r32|-(kIR!<~|h;Mkz(ucpZ!5Zaz@1b$Pn+sd+)=WZdKQKV0OI zgGvW9j`xH!R$ob|p9zX*Ee1G0f{Nt(>pnO<`&*Ri;f6hC^|uIT+`cC*3d{>xAsDh% z2^cby4VZ-}Qb6SZO1@Z99W@>qMF(F{LLJov0{j37L7-GZT@2-XT<~HhE(fa?G(wvy z9@X;_2eXv+w|Io~a|k4ek8SATYa?H+zSmzsk>rcZxgvU~Dyfb`yDc7FM*@lhZ%#?H zhXiQhwVmR_s7i#|iqpO^krA};AbkWdWfWBKgpXH9W4gS6F$c`m?_oic3D9B!Iz}m# zM?j7e_o08&wR{lsz^6xoOp|drN>Ya}^~q=?lM0sH9jNmjOD3(Yi)Fk3%eCS02f>P% z6tuB^gR%7h03qDl$T}?0Q!@1IA3joGwFW+I3BCvZLykvJGNfODBEbu+Vl=3T*F{iZ zA|NOIeN+Dn@H@RT8SC{(XD46`LYS|6G<cSwl)9kU?)oEqZD&F(D+xOv<RBY0snsZW z*c%D;QAI|wXwnO)Fhojn(fgmA3f%RdTn6gd{$H=qy4<36(Cd(HA@zYJXgsU>aDz7r z>U6md6w_s3suI+RHS+(-Anbm51iHqUL1{$?^^s8@VT<M;fMG@b4?x+X0^rkQu;bS- zz-Gq)o81FR62^*zuZ>6pSY7}EAprH9YY8my4%nRd_CVK!ED4hVtYj@BsK!T`dDBxF zwQvr$Oq4vnHeRp+PSPHjzU4pz<e8rk2sXfmL4Y_LY<5~yu>CawAOj#=0{|k3fxtb8 zQ3n78VgN|^E{Myw2`Xv%>|<JvK??~ajWTSWU`-UGUgrC?fhk$<v(w;#2L8n~Sojwt zfi=q8c|ei~ksJz0(%Va}fea)Ozp#Rs`<XEQcEnUa2oT^1V)nG=*R}##!K#?X=;FU* zEI?L81vhPjWKiAz8==&FlnZaO2kT*S;h_BzS`SViTIO;vOV|k^u~Is&U}Ytpjway+ zU<TO~ux`ami~lAAV<r1spd|M}4Lsp*a!@R5rj82!fOaD*+-4i>jiBD|?==t?19D!( zWq32YctG-?gV@|gXqmr=;mnLeQ?#2E6R`=6-_<{c83KfE;}RQA&_uLa<-KTzCStKp zJ@-49tK)+=>PZklIuwG-K>dFATVI<J>i3{G1#=8AmOKEfd-4z*sEdFcEbd1D{Ap5F zr&|EsIJxQ|O3DR0ldtn|SRLm-C?r_UKUA6e**s9aZ}Y)n76YTSO-Qbib+rQBR;@ig zgKxi<P_Izb>>$v|fb^d~3*<Z1AxhTMGyQp{ZOcyu|4K`<9D_9qMxIW)E~1_UnelWi zhboOg)URs_Z6in(wfsBp2iSx4mTeuBI?0gN+DS0H9I_{grIg~c04<JQTyZipLY?UU zCa=NwkCk|g(&xWcr;6J0f332g=2HJ-<wM%%1X*3}@W6c_t9g!W*?Kd`%I|`VnGCWz zZ{5<EnFGD5%We-)>W8ducImV^_`xlUvOOrG56u4ghgtQ)IdIePI~HcX53N+W@BNu@ zuu@UQZ}O39z;gULHP9vpHQZSpu}VFlrvEdZ#?dUO5&XjyaSaYA3Bwaf6C<#MYwK2w zo3;w-78%z_s6LR%d!xKpRlvl&^<JnKAj02M!Ku}}k~jFkBEHhiA%c>$t*eZkpp35B z-YfAt$OMU^1u_4i12^Wm(eN)V&@S1N%g?BUHixhzrU7UQ%7&+a!)Gjjt+WB%E-F9Z zY&b$&Y-Thtp$XLVD&uPta7e1t)!0)cc0dhkKh!w*8jusg4Zfl@gpq@ohb$!2W#8Sy zC}oTU`>2qU3Z8e3ilUR)7LY?KDR>f@V_tzM$rt3X`A|CT1(;kE=OMg2UckXD7=U&f z1!z-%VFDpAltT()R+5)ckEY#V8zv;c*QPn<=@cCr28}_8T50G%5ckj^gcO_0@?6S+ ze?oYx@K7H_eQvVNlle=<wek;jLsWmU(ZkReV66$(rmA9pl!IkdFkRM5_5)p1-1`<z z2fk?J2(S1}n84Rc{Q5UX)_DYA>Ch^qMDw?m#+P|0xlk(}t$ahce_Lt%W@^?6Q32nK zKeRvq{6s**7qDq)-ZhCBm;I$^TWN-P|H>=Z=xRF;qDC*F4by2*g9*McguAxBlZ#A& zej)peiPby;=N_W4MJE2Ce5-$c|A)d88U2Ssu5SH@62%u8f+*SxiYSA1Fd&NT6ZJhZ z0V?>pLbxbdYad985n9Lg;yQvkkL?}IuVw+23p8BEul7*>%A&5t-TXm+y=lKv1d}gA z9-r$6Oj8=cK^r*S@Yve}2j*NMRg|E$`L7%O(|%lg$gSYBR*mg9$j$nAV6MbYLS1!l zpxDH{0Zc;;Wp)htJTU9^yLR5|1{U<^YdqB_;MS3@5F>WKwE}p(Tc4||?)ith!Ew_8 zy}19mX3LnN9ymCXWkfDcK@N@%6mBX|Zr~H@939jQt(;Lv<|N3;9PiQ1;ryk>4I{`W z{-G@9&cH!drByNt%p8L#!hM~&#lO@S!(ejgMkB+$Uq9FPmzp+=%^dz)cp5!d@t0Cx zjv^oWTX<G6m-Ls?T#m^cgs2~T<a54%sgb2n@&Sm-+Y_6!_)85gMP~Lvl<D5hoa$ey zS3I1&7ow>5r04klQeEOvncaWAe&)}S|E1c*W5_@K_4@gK4)rh9Bp#aC2~j~mr{?x; zp#e3D2a|UIs@HS>`Q9!cnA9=baTA6rXu1r&DO%m3Nj+J>o~wc68MB7n>;_<^ezcuq zxov_Ccz<Bgb}kyqky%xlp;tn6`t9!w8X-@|Q+~IFzoOArK~HeFg$Ms^`DX9~Ir;ka z$z!!t&>*hU?H}S|==h-v-T4H)HwP^S(~A4Qoih6m6nOt%=$)47U(Ur+kOZ<*kSZRq zt_Dp>QiGqPMSy&1c^!$>d?8=L4}#=sUVl-BAX0HF)WSP8vUm3lAde7+m~N&@sPxBu z<&5t(P^m;sw{^u|HzKQk%)dyA$f|;~J!GDFgx%yE>%DSnJ~fWpSOn)>Gjpx+R%Lil zW-&EpLnTH~G)$=a<XLYQu69A!m@Wa5h`%h_>nf=nJZ$ao6O&I^CgQBxkB7oSSy28| zD})kLKB&O|(PIju_ECT#`4E@mFZcX_b$b(QJ#Go3V@CO1Z5}#Dkz9(u(DMaG?X6ct z&FnIdwZ_e=OF-P>6FN!q3?7bSP}5C}!=e)sR;h1N@K%SJT1K~m)3C<|CYe{JOI&Xf z9U(Z$#}c(z{Y)0Vy#SMQ&?}~X;R1dEMzCC$fV0Ifbdro89!^63(nKW;hoxIipp>(= zrymxd|3RC0*<>nWWzrEQ=Q&qS?dNiWWhVAogFvdqB9wr#p){O&v8B5S@0&JCg8j?P zC-$cN?IHX0->{`fA~har^q5Y|5>*px5zMf>)t1?b0RLmMN}YR-O<_JeVYcO=WVDh{ zyZsfCP)15YF^M;U4l}uTJQbfAN1jxn8An2i<({l|vCE$9kC~|U@S#La7Xe%419ubM zIvUOdTuT(WyxFKO1^!e5Vnq`kBpMq{VI-Qs*K)=(VoLJHBLQMN_rYIdCm1+?ba`iY zg?ojH2NHxW4=;2?^&Mr9FcV*r$&rN}IumP*PHb`hc;%Db6F&4-Jd9vq{fbOZTj*3M zN|1Ybi!<*>?zl<suRkC&gXfD&qqG4EwWUCsG4Us;hD`#EO69nTOsEX7pl$|29Y-LH zpaa6`-ZLP~*akv^Ss)D0141$V0TUM)%NK=7(vH^IpTbYLebH!e2Tw_&1PP|BIDee# z0aDr&kZL#QfZY5B$T<~2I{#JnL&{Q!d~FZNo+e1S3@Pm)l2H|qbv%&gFr*|0p6sIb z+-PfgYxHKEMUL;eh#yi4kOULVcmmPTugiOK)5~WhQH(V|d5AT%X01R!E60sxX7qv4 z#TP41>T=){P7lOp3IoRGE7i=*1A>#Q4@t;`uc>LI!i>y`w~r#p&dB}ZrQ3TroP69b zWN~+KJHtzB#r+5@%zdw^W4ca%MZ$G<)*fnPeHq{&l=-&$P%(S|D6)6l?LwB@O5~b) zJ^|Fb%;R<{6ub^IqLpvx;UJ`dWbc5C5pm}z5?6;3STPG;UdR&J0YAo3&TH!1$~D^C zJn7Fe*_{drHUma7ebU*TgGTKzMNc<9@akqpz3q$07(OiD+aIW>!nf3sQ^L1-T4ZTS z3PQ3muGg}%LGvWc#rT}kuLV(kNlbf~I)?Ed#aJEGzURIEF)qA$kss6KUc1;D`<tl3 zHDb{_?l)1Mg;imO>6kDz&G5jbj9hZ;*}EuK%Aes;F&k#S5GhQZZ}vwodvNf$CT4J3 zZ}|%YcP&v94Y%-vJ2x4*0jFj0_;}O~AXWAf0aAiD*@G9t?J<KF^ibdz6S)d`!jQHW ztN6okz~VX%1X}8{af|CH=rRZj30b)UqEAs>^yS9i$B?H?p1d|2us9VRopU4+i@kLN zG))JfS<ogY9%ZGzjTzqdJg8aY_R4bEYl_OUdL+W0&tRVm2&4zX0BS-|iU@-Ik9kht zZZ!|!e%|){QX>sY?DpcK{7k&wE*(XF0lBBA_u5w<7F%uOjQ{uvRL|`fACrg;XN%D0 zn_26InY)xv?Z$zr&?8TnWcoFg^C+fI2f&(^QfV*&8m<a*#nqC*_JR+T0UQu61r~bf zGmlBgv2%ri#V;*j@o=(kN<0R&9I_~=mgZ*GoXB~k79Zp`Ho!y*u4_YDrMb~==<l@< zB!<{bMCU9=N(uz|ak#x@sQ$=$^&zugFcVd0h@}3#sAMO($mjc~-*(iFeR_Yhc-8gr z?7B~{lAK*#6=zcZi93AqeoLNrX|9?4S|c&TU-)AeC3hdoUG3dKtB-789C=&(#;f_x zGxCf3GeWm*j0dh5@;7$G1vHG?wLSd1heaY~&g^&fgj%h2!cj2EclA{Z?I)hG>TvNv z4XYsBbvV(t+5MY`zivo{L^ATnVB}*OpBvnsq5F664p0hxYRBF6U;<%Kb4z?$gQ<&r zT7$+8-F13tNs>J2ZsC6qd{XXP4!lzC>hjSOkjw?hFcu}r0sk-RBY7_-X|70IzG=2_ zTt0QKa2!p(Bf8TFOw|nC(J3?syxv`Zk{7&oMVB^$y!Z1zG-|=WY5jlGp~e5E6aP)4 zmi?O^`8OR}`EME}@~`()AQ^1%OCZ^N-6fTLU!4n;eE&X}6caY`!FY`}JSS}zWppQV zmBU~%*gBArtX=_G3y{e&xKhc7ZvG3&ZvP9R?*0q){rndS-TxPoJ^U9!{q--@cMMRL z2-L>oub@AqP`D3;dr&}y!tD$QzoBphg&ipTfWkK@OhaK53jI*%ghCStLiwkXF;U9C zaWre1l<R|@jd)Jxbj|>!72-LqvwlGrs#R(RNPhxdi2L9-(4GQqSqvDY<u8ED8h=W} zWaNTNxlM5}Ax)tE?J~NM)A>O#nP(}m(<ZV*ccMiC3EETW(!mzpNxK(>f(P5dWQx8! zU{H4ppgSSo0?A77!6Z{~0nW3x0MDsF4oFG}0Jn(*8p9($my8j$oCEe~`@v*FTcGb5 z&LBG`1hQKhpaafopzlJ(pvM_gKsE-P{tMYJ126JHjhZH~gu6L-PS>f1pidc<m?Pk6 z8>SH{npDLRDYInj5vlydcYsSM0bD!?X0agTM}ttKSHz7S`Zaxsl_<f2xla961t8;} z|1a`|E!BWjZhikUBhd@n>u3Orm>_)-E4WUtReuF0Mf?B10CxiR|9z+}`TXK4=l?D^ zb85Y>w=^iCw;iohQT>|!JT1MPFNK@$x$U{RP3>2o&(r1=BniOFnHmyGLPBpyxRVNm zja)#;Zw7?deULB`2)QPKhTIGaI#7^@f)Er~pg;}<JSZT7uzv!D4Jgb);WHFkp-=&Z zY$(J-As7m-P_P1_&-FukIc&ntruG?aBf(>vP=_ZKmuUW91qLVu`o*A*%Aq-x^YL(# zKex3s7q0y}GAI%AzsND^inMs9z85?+YogQXBx!PxGFs2paypQVk7rjRCY=PF?a?T3 zce0cNJBcSB+#$OrKxmo-Apiu0z9n=a8#!>q`0}9w4X6MP6=*{Rr9jrKj_x$A4@VZV zVTXJlLNaVf77ApWQb6XM`(MjOLZKre1vb5NF1QzAdVq~Acn7w>a633=ZQ#KE4eO=W zl<Nu};5h#~z(wP6*9S-7;G9}cgEP&u8%&l)awZuw5(PXh<$xzoKJa`;1w7L<z-js) zwg0C~B1Yra+ae^IBwci;C@el+7;#CPaGcrt2)LR4LuQ15>w;r2<oG&p|BTY!B_HH+ zs@wtBO6|x(a$}<4TC>ERYG9D0_XAdx_5gU)XdQYCNv;$;7scu1_6zvWI1boGW!MTE zniU8ictpqZD1hq-Zax^XP_|23KipVLD-ifYq!2{TLgWNQ{trr+x(zcYbI!E3v9?4> zNf$go6Vy0%tntb9#iV0JMO~6taWND3gD#Ox{36Y#Rs{VT!+=PrX8OVuR0n<mXwVp- zBp{p?GyzBv;<)SpI-3M&65^gfsKy$gc7WC|bwPKpgUNxJO)r?aq(U=hPMeQh0Ljn) zBIV<DX_K>%cWaZ2zE^~Vo|tdN>>vRiSN*?$A0MV-kxdvHg97isk}kx3R8aL_k=_}B zU`n5o6c!<QU+$-4?d>$$GFKP34`>@d^^Ps+${N!F86_S**xXdwFd*lPz_oB}8rB}u z4jBJaD?Y72v5hRKlFSNJ5^00$%wH;~=ZWuZAgAw;Q!{WncLEu3yg|7DkTZ$RK;=q+ zv?xi(QW=`yhNUKcuwdq7q65a7O7N1df<$$#Kt-n9BBb}4QmUx*g&{yFjGXp=6_n`s zfT0ptU8W?+P&^eFYJ=5PEGZ~Lx(@?S!lgFxgQwK!q3-_oftdqrLPxuW4_GQn3Xo+S zWce8MUQ?<RScZTRD`J*_J`!pIGr9t(k5~U=7?}sp&h=(20^9%ZP)8l=6YL`m27P6a z8_K6%orxH#)F!M20+jna{vgM7ayS?GF0B)cG4&64DDS_3?)qH?uce`s{{X7W$h8Q& z@s}psOAhM-zMB-@hV)xyQdQMEy6Ehpy97CvDSt(?f}PF+jmcA^FM_XtY@G+lzNP`$ zq6&~%0h#6P{~5;mAP)2YOh96#o5l27mZU4Y%c|++k2{^3Oe+xC{sEAf_JA}rzO2%g zY66+75D+|9L3;l&2!&xlQ{R~igmjQ_$qWczz2E6f@Ga^2l@#H?eWP1z<to^r8K?&2 z=XJOPy39+TPmMks&aPf4g^H!!vdp84kQtS1Gfer@d7Fo=vA|F)F00J%_8fc)O><T5 zlJ+XdW2&?j5+Tz@$TSKvWpD?kh?<b;PsmhF>CC9l!H%~hVsgRQ2NqmkbHUtiBmGO~ z-i+LjGU5`PUR^HrM`2Z_8T|K*`Z(=~IwCX{sDSVz7ZARZKGL~2DYsHaoQu<?%O&y1 zzsl5y|JqR2(fqVsiOaY2oVoC{WUh?pOYw^;O}T8Pb|nJe(o<%-(~^lYqKRVRDoye1 zp*E#oKBdRZg(oG0Wkh4eq*a>y*-C9nlRl+K%ycIuU1dZg#g~<u?Ab%DN;N*E2h4@X zB~4{SL&Xb~n)KO9txEAerF+bD$0gNeM1#dGm6{aULoG^<KBc?Ng}+MRWkmhO>6Mxf zvXxqtG<-_8ndyF&<dhNh7JF4{;${yuD{=XhZZa1hm86ytbr-*=)I`fxYE~lfDP3o# zJ1U7QBkC#^uGGBE8fsGd<z4!Nx$v+gyo{)$n6y&!JWHubY0|rNg_-WKB%q9_t@yGc zkBTqdu>Ssv)U#7D6YylhTc6tFlNt|4b5G7UsyB@!ElG?cQ+?WcywNf+!md@VUz5D} zI;?%<{4l1`-D#Fv&(ocv+a5xTMw`&`Tr#dR%9(m6SMXYyGn(StwZjK3+?-288d``m zLz8V9qf1Nh3x>JjlDoIE^A#q!KZ?tXZoMB^G)DCu52qF1egiN8{I`3dpK+bW_L0wV z#TqkwF+!VJ>|-&mHZr6!1`OVLn?Jt#E*(B<kn7z$JppTZ+W&$*AJLWJ$1|B~jxF+T zm4k>Sn&H*0M^Yl}TaDRH0{&RT-@T>v`VB~Y%n2@oq{F)nxO{r^jGB+|(foA@DW99P zZR1}$=n_-bsOS|v{<vHzDqd^j_Um!Rl2ep#1l|RcI`MOMt`M5<un~DySh6yS_?s`; zle<Hk*vUuiJSd}9eJ3zp<>v4BO4&LSy5-_VCKwsxL)$E0^Q(A6P+!%b!m#IcNrJBG zf-bSr;rezM!kzky_L+km2)nuZW*91+`cw8d0f$mJhRt8`+x(gv7KPs)2EApRB|-Ym zF<bxg$$G2acH0s@ihpy*qHywI5E7FBG13Odz(U2^1^deO5Kfr!<#6=gSMXfrsd978 zVmitJhd|9sh9d*GFpB_r&=AMKe8toSJ6gc#+pd%0(fzMa|FHK5vb|k79cJ5qzyhN& zwQZik@A7M|U%Vt)4z>B@^x^T~jnm84Gv^L$tkUoH7$Kdn_r7vmuusF1mx+TmI2s#Y zS{)fo7;Ombf2CFTZw_9(q+1RZ?md1fJ#n!S;})6pj)26yc?w_8PiV>hCgxCz-ta&a zCEMu0v~g^$H7+-$6&G<grFEX|tDv0u!N!3!{?!JB+fSqpY!ct*E&Odip-=V(gYJ)~ zIDV4`t#bTscv+qhrH-&6?q*Av+WCFf-eAOCk|gnJzCsaxdoV2-Lcxef9Q5gMj6x>s zjj#g-X}d@u{_=o}cuVSQ{zGK6*7@&jfxi`m1eST(UYB&#bVsOivH6v#-sts^-17O; zb$wK53l!>_HNIeb7&o}~Y|0l$u5%cZ`l)2}1!;kwP;lQH@?23`zGK^fOM^W8yMCEf zTdF^9UsZo#t32pHOMSzzOsn5_cNjTB)`1qiOo#tVhaTVP#LBWol=@g^wA|=~!K%fD z`WQaCXLPb<b*YFtzB2NM598X;=9kfF)NcP?(7X9i0n3M~BkUbqt>&iZSC8tH87%#q zgon9P7H1pEEb_m(ReI9D{oO#pcimC3b`;iNXnSFH#lbBteASq*CV2Hlqd3F&Cp=r< zV+bC`-sUu&|L_T?u>SSn_Vtg>7<TsCfo+rhr+?(H4t>w}?$H19&rW*SmtDo9BOu7* zARw^*Pd_`U?df2lW@2aYuiu?ab~k>xLC|$rXTHNa{LWc1WAz>qZ4FMZBE}TG@#lAD zti#l`Jg>Wa5{wG0p0qP$Wo1M(Odu|LPl~<5E-Yk=<5$cr@Sbe{ZRi4CZ+z&z^@abV z_1(ncVdg<=>tV-XrpsOM?+k<hI~!jl`+yH?M?X+_KaH|Eh_%roa)hR&4WtaL!Z4~- zy2@5&FsdY*P*>|Qs-!){x+^dmAGaZ{x`hZ(w_&d0h6vEKp{`b7xKn=*br9$#2mx90 zRmN_vkTr}$i6-<_!w`@Pb3j@(z&Moi!0YxVSPDDx3&ErE!C#fepp?77=)S?Al)WJC z9v~18JW>pK`q+nbl?NkR_JXW?i=ZRmNH&Dyu@A{A3x<*G1!?yzK}X<`YRH?%K95#K zFqUO6D7t?W_yrtEhoIy8g&diMWK&%ety*C`k-tFg<{<D3J+cj1rn-Kx>W<MVe}UXh zNpKr-WEIj$bq!m6gMmja8iJ+Hq^%04hUdZ4HTu;1G#-~e(8koRfG5Bg)Y+u!iFHIu z>EMirvt@<fUFumYlLvIdf@F7o$;}MyM(|Z)#}ra=^Cf9coL76sRwlv9M?L&X+#9w> z=j=<qzQlW7EHHynp8luhsig7}d$Tb7ip=Dy#OI2q&dcz(@B-TzZfl@U?R7^c8P(S} zt!~xtPuyJ(weVHFdB|)W``s#Dw`*2khaNMo!RqUtUNv|ca>@nQ8fZ<pYMRbke)M9H zdD50oTKv+wc7CCzs!q+m>$39TuI9PLiItwDGZl;QZ96?~BfiZ*iS$jQp|Stu^KCim z!<n1B`fs==qNWTlRRU;5F|*2ZPKeSHjs!h?^eYrflWcS}E1qRyrH=>=)U}>ly{&8g zVWX;9q4U#23t0{P%58B|rO;Pvfg|#-!ET>%_3-|*3<=~3t&unQd=*-Dix$&$kCfXg zYZ>h0f2v)!c{LXp8ajEC_2hoP`%hT@$&QJ=sd<;(Q8Ky>Ux(xa5jgK`GCQf`AjT}l zIEJ`slF6W;oOTrFxr(t&W+#~iF&~RO8;wWd5VyHi6lY}ZUX{~5p|vEQ^9;w)G!>z5 z827oXxHm|S``MmYg(#*73^S0>t5$z5CD<c<bmaPpJ>B2}HeAog5L3+B*!w#&nyG46 zr%gJG>vF+uM8mYy@JE>ePqfm^Fu!gsZ-s$aPh>GVR@S(fGoRHbm-*v%p-6Hw>nhD( z-|<TWKR<jbP};GN+F!Biygnf~XyO|g{Z7(0%PjfAw03~qPqEELZ!@mXosN}<YkfOm zYtE!;E^a`)?<k7Rc1-ZARecq*h)kzuHVcp3d1?|@a-py;u@$^E%Sz?hr$*em6N+zJ zAK8ualTA_tjL|pE*Ju_t*lJ<&E;(CLVZ92^uM8{5QYS`fHX@pN<D<?;U~AKrlWv7w zTalKeul&;w?S|oQF2PS=Jz2Kr_zk`va~C5v@hhJHJUVS^DCTjUTCdTZzo75WNZVPJ z2+OqL!xI{=3RV6v;M4jEwQs-%wohuaWGjd9^4LO*WA&ur<z_in!k@QmsOK)vQdHc{ zJP$hgJJ#A92Ur~IRZ#aSEVuOZ!kEnTbzct<vlbhcK4Sb?jiZ6~jkOW`nX%?-lW%yH z#5*It3{H7s3XLgA5zO%rE4o$8BN@~Wx1E8-IXBtwEz3D=(;m8hrg@83oIR_yNV?XT zn{V56^(2bnz^$I*-hv;osqCyav$NB>I8WytosswoqRFL3ZIA=iFU!`JV$JG6|LZp^ zPf%5>7or%7k}P#|R{AHr?#rZlHq`iFz4Us{@^w^fKw=TrBAR5u%3B#!T%!_!EJ~jB zN!UcV&(P8_GnlVt$%o_j5wVOM^-ZR`^l2~K#AHv4v-g(cD{-uvM@cRFx#(U8=CcaK zegw7wF9YxVy5yR~RHi=V5>8-_zuj_>3OPH{uY9!PiA@*2LGPE4DVoj3aWNpC_ww=3 zvv79Xszvl)!35p;*H@mLO7GMKv~1yKiT7MH7Nnv-GEVPvy<o*Jc0(+nLt>Lb!hFFz zp)`z=@KHY}S{UWQBvxSGN6nnfXPB(HGe|O-NXpjHUED8Nsx!V~x=eTl!d%k3loqI} zBh()1saj#Ud`UyHeU;z!Vu7|gh9A4Um_2X`{?Zuv3?oC$3Nu5}3Ohq_3*&VG8`1~3 zt}%}tY&*{mY4M{$PS_YsFwzYpLv;%?LwXDQbuKoF*N#+Rg-d)Fe~X^6$Qfpa@(q&6 zHeuk&tKzOdE+t*4E@@q%yi^VZg(&PrA0;SpuuiAg1C?JjcBzpPHYJ{8=*#sWA-gn7 zM986hNhBaH&<He0gw3g%AxS6RpOe<bxHn}OILySsDYb?~l8#SY=!^7xfrC>H9mUB- zeFZC>XiixR$+Jb%IHQs<HKz>qeDY(LUyIxdf^}f9HhyYBUKi0QhQ4BQmyV0ViVZWS ziq`WL(ppsBQ7ocYYB>rqUH5cQSe;OD;~CWRN+r@NVbz}>rWU4mk)a~t&Y&{$a;$tY zL5!uKQ!jkmRqv7+@HCd+0VQu>l}mo5#<IM`;efW=afZY$SY+<F+aacH`|v-1wI@)w zKM*BGKu7}L>pcI%SG&5?8wU#~7i$Y=Ei)%;2bcf&hIf7LZmg|y>HCI0&D?S+(Hl99 zh@K~&J5hxjQ`QTcyqijuT8h|M0WCoV12Y`<+#9^SlW1>FcG{q~;eocB&g+~?#@))F zEv-YPKbhfsVq4-V*S8lppM*T$*#8;RUAkE^JLGsOZbmFu|0iUMGiD5F523AMWlIC$ z`_&(;u9<)o#4yAsOc#YX6Nq})7oY8(efU`|fk+iHJcaNRu^4#_Ap=to+kt<DjPHU1 zSslKDe|xz~d`^r*jC?^djE>kBfMU#V%x;XDgISFg&^(|bLBxr~`Jfs<4z26RtP!aJ z2^Ucu-3Rdk>xf2T-!>hs3vm$n9!ds=dQsZd(a#Ql7LWV>?epjpl+{Spgbu<h0s$uo zDToKCq9}s!6}u5%?~Wk%qgfGW#J2B9O|WX1gUAYd*CIms@fb1!>)9B4mwne%z(WKM zCJ%v!2tSw45PSmc1EeJIBuI>jjZutwjaiM6j0ufNjUPz-S^AF0bN)uxVMV9wC&Gqz zrwLLX0&F25mk4#`Gu15?#T5zHGJ>G)=wR5A&s<72UV!hPU_=MUTlFr5F5;0ni~t5_ zPBw;j!zTz^$m|IE7)=T{yDA7ptH-7?*rp@OL~WtXZ&Z8nQV`ft;W@-F!Ee1%#{0|v zKq#1xPeNE9j{lwc7MYOD{ZRJ^`Bs>)|NHPv6`t`zphz6=H-vG7Ec6`9n0?eXL=S8S zgd@ZiY1V4Y0A>+Vw0ns6P@_<C?!{0C#>OB|Bhe$!BW?$?AnHE;W75xoh>&oXk~LT@ zCxPaGW=yl<(^VL7g@9N3>ha{w=B(bXO&4D^UcD<TwjNFs>J$AkOOF+q*!ux1p85#b z>ImDo7>E&wa1uPz9THrLRS$aPIMpmvy;I??vw%lb*upU_)fPg=f(Xa4nL&>Qkoe1* z!^5mS5EX2YH>^%kjcJh6%%YHtmGf}}*rH_vZ~|!bcImrD1K1Es+h75C&Zc+_yFDbR zr@eUJjvgZFZ2F)cvHLaQ1aOajIu>d~;AG!2ymmleQPb~^%5Zk@d?=ArS3{oHh}X3t z7O;<?){5uwWCgJ+I3NrG519gSF93D!%R9ErmyU-T^-KJ$UJPHZ##j)&k9x*LPijO@ z9H$&+$Lxt`vtFb>w<L`T)k<RV%%@vSSFBHeD{m0}w2{9ko#(Rn*L=fkWjEQcw<Tgp z*7j=Op1AT`zL>I|))B8t=N?wgSHF4w!A6x$cbG5gWxCxsT(ZPcEWd$iG0PxH&6dZe zj*V^ptI?hP&j7`_0yp26-t^y0o<3i$bh|z)#<XcY|9JU%AhO;jzhAr6Znrn4NTmTs z+L2Ev)9y_HeN^W644V;tt0wgG4;ebaDb~Xbjm1-Cdy1JXTKgq2BUQTlY?)>0(@Dw( zs*3XsrB6sjKGaL@9*%u|{q^>7`$w^MweidZYu%#yB9$IZU9Fc%$13t(%~^b6Go_-5 zUucSpg*D3r3E!%{QL49^<#jcl^)YNL_*Rd|qxszT&D+}QnOmNz+K*aQJkqE%GfSL? zhk7YCY8AS7FZPCCvz*?M{%AQX`I?;gVz!FivS^lXMAd@S(q$o6g`eMqVnmUj<4x*9 zyeY!<`B}Nk6=`K}&3@V$Q~N6?RpnCH!=@*#b!W3Vqt;3lH_Kzr+!d-rtWy{(roPS% zG*g^BGvUN7p2cGCYqv&qa9@w{+qmwUT9>*SDB<NdH`F_8v87pFxwSOc)lA*CGRYQi z?sW2;r>7O};LdgP@vvyy^YibNc@EOjD^#|WhTX}t+m3y-6qYMPw^;T&QKc#7Z`I!? z4Jfm6YhYDv99LzN74q0L7x|V_$Y9|>kX2kz7Ff4XXSZ`6qvAE1VX>dq5W|<mqGhX< zEHpu8o)(NKjlh8P7U?bGTVy!|IV3qmIpltXex!cHeq<ZO`v~_D-y^(7)I!igoI;pF z<Uw!^NDH7fey~E@^}36!OTSCB%ctve0BV3&7gIoJfEHpTLL?$i09^o)F_STgu@DuG z9^xw$UPSJIqyU`&O9|{8SRCrdv|tsQO6F#pLMQ8@dPh~A;&c0%yDf_;jP7xr(NdMN z1ZCZ#6xSw|GmLVL=tIVQ;safO7!A_;WB%+{C+Z)<=0(4667a`<^h_Mhx1%sS(fcqk zFS@k(;se8+=;Wp%|I-G~h*2%OEXxy@4_0&fRwpVS-t&*w{-OO~^-XkOvzdRq&a-2b z;agkRrq_q3HJ-Vn#S3kNn|=HOb8WqwiKEJPhL$HzAEx-Ls+%V_=|AxBSAFzM8Xe_t zocnI${B@JRw$#wMe!fz;i|;K#^TMFU@2FbkAhGP@X^~*+=h-y+OXj}plXUtW=Dt}D zu1~*iVe3Ax72p0+aFE2JDG<iuggq-LOR<_>G{~ZV0(;(FuNVKc=^67ew(c_xiKb^P zSXi@R5g`t~1qxWRT(YRtZ<6!usjFl)+^v~e6LCWy?`Z4MIukt@)(@roQdq6M$+Y+Q z1opP@rAgW;W0Zo04<|EQ=!T{uMi$l0=S(@O?a&b)_(;Xuq3?gx(_Z2wHRGtKeaIX7 zj$Ok2o3NC&*#e)sP@UzoaVqYK8Po4(y`h^&tQ+E#%FP@-ng=XRiC0SO8y#<zn;WN0 z4z9L2f77_6UTFwNt=~Uj09Wk7BR53kn||@Q&Ydb@%|^LB-~DrXzE|~_bo(MuOc4>< zdo(FD;dNVg-*C0jf6xA8*L@>&P5)g!F)_%8@pEY0u0BRdWkB4n9lqwxOTN4h*fdU@ zc~yY~zOg0XbyedmtBVPmBP>ikZ3*F|8Xi7|uUO?mHsP(gYwoRSO)s0CEwTywH5xxU zc;Hif@Bn+w>hjO)v*4k??>R39VEXU|40a86+$>4FN58-H^xvFT*F;kAyG`}<*PT{7 z22jxd3He3ol}dykV{lr%X67~b>!H_NuGSY%ele9@_Kb&LdJ5tO+fym%Vc02>c&!<y z)x&vViYBYfvi3F+7`iC)B_;Yz{nStR&WPCQSmu<QxFfu<9|q0JYpFD)u<WvYx0byL zX;szmS49r-kIKVRbtDiig==ahF<!Ukg)m+h=h+aDmc!*j-ZGLh=2d&eh36TgMZ$-+ zR`3Z7ine74WLI%v8he~7G9pAc4>deYL&ELVc{ODOm`LgJn9V;;QeQUZapjTO#=th( zVbS+DxMbI4J)g+d=jqewIs`Fh=f28g%+7z6z^GezKZA8hgHcOn{0UP!vzJMdb)GJz z?364=lhxbpP;`~dZB&j?BHso^r3mpk-{kE&=}ATEw_E+M33_@=W5QR3xO97u98wuf zF$R1Hf)yDeiB(=unNGoGBK0!!w0PNwY6|kSWM4Pr$x^>XUoch0p>B|vBqZorW1}<m zFlL3-*uvQE*F1u;J*)|X70TYDufVUdBI1jfbB;)tc^#V<6~3?aQL`66Lx<W;PopmU z@y{1BPhP!&A!89)$kJ6V$XF;$+Gxy6YqY}evAm!u<*bs{e*7hqIxyZ=7HMJj9m>b- zBI|aA6(-LX1sPc8V?s<>tBBrr5o3h!;v>c$V49B$Q9C-<8WKN}F~z>nkDo(ZdUf(f z<_F`2X#54HPY1k%&?gYSgw>(0{RF*3LAw*NLvLE<Q%ZRHi=)Ck%Lf<S8dC@z`qLRW zOSCqAh(?dmNLN_;y3AI}WXNY*UrhhHBz=z5@+>*1^1YbE>@epx+H<rP4LOMqbOIfU zQ=_$HA7!%;T4c{r7MZ;R8-|v0>}v70`ALu$*{^~Q;%+3|ZCaGi(HGg!0}kS0Is4qW zExONw4&LkJTv;HU1{9%N@NGYSj_jp}iy}si9_TjsDMx+-e?rZZdYem#=(LFp%}WXw z{pMK=!i`!C%6>w=#M7b4oJFU5+e|_aPCt^Nd&$M1i?QrnZmpwC9B#-=oH!9~qY9Cn z=4BvxDXO9F$4^Oc4DaOVuHTy|tHu4OJBD&2NiXT27`178Ogr(@iGLeM2>s*JG1PXZ zt-z%(rwti+Uh-M@ymZ+S_EXMskdKKbyqz9z`+72OBdhu+L`qN&_2mR7d_IZSN4nH2 zk_cPZoM3Pw+16?%J55swzGc-7xTSt1nLSKDVPt`J8mf<Z`9UA`Qj<UUmi?u~-NfnB zd8|t%OG%?){t1(2(o>Fk+)KGiL|+yWiRI5~6P+6`CVr>i(#!_>#T5toCH|C@U*E~e zKfX8d^jO99C=)i))4bK~xqVHvm3v~FQ3-qG(DKaZ-Fe;*c?v(6VAMG7rH7hnkf?lg zicOAkX+JGq9EX5ud9O47)2uKv&8%20O~U}`gzY538P-sd=*SjU1}Be}E&YHSXZG$} zp(?Yx4Bzih&@JI=n6VTyOsLi67<gSR>21_Lq|eaydD(B5B{?_(GgC^vQ(PCvMvJ<{ zq86tW+_YTxiYy&Pe(T$B8FuY|A8yL@Ms0MqYR<f3wJ&~E?C5zU!)_2!NS8!4X@G>8 z#Xy^q>}5?`^y0;Cp`v|Yl(sU>pXo0O0`(uY?bYp2h~WHEhFLO?9y|J=hRP^2gvf9( zg!abkQLP^)yrQAS4LXqeLB%*tM0os%b^+s$CZS!3jFm3+`Ym*2NN6X6C_G-x7^nD= z0JW4{*G@)K1LE$nK1400(0-)hU<qBuY#HVmI|D?f>nn48NxKj(7&F{K?dJ|rH?RB& z{2AZzQ{%3&$dHl0((g5KEe!A3WhMw~#v~Z{rNj24x=yZl(hHZ!alM<0AZ#XBmh2fG z!LL|t1b);-3<-*BN^`4+KA5+72f=s2@+)^MPfwpPJ?(X+@AEF3*Cl(y%|hH3p_D8c zWKpdb-E{0BZV>9z@?x=-Uhu7CY_*TDo_J>JmMHm2z@KhU3ISKcF4fG3j#><ld{^6| zBpEzIo$m)9v_(t0FMY}pF|wM-ydrklVz}3G!Wn!p-EP)|7ff+5o)h+vYkQR_n8NT= zPM9wDHo>BZTno>3JT;maq2&aP2AUXmykxA3$pnq-JumYI!4yJilCje~+XYM1wQ-UR zeKO_*!D_n<)HwIN)>+ZSY6B%>Mf-E)vy3NbIJmdt#Q<#w=xoW@>vxi|WabkzM!@|I z@#&zu;%Q9$;rnfJnq39mb~7PSF8wKtcWTxJZECBG?-I$_-l$8q*8F5i3aiql=+N}M zP}*oFlRVkhWggeLmo5+fQT3E1>3{oh<9?MjK*AgAS9lC*l>gBfT1<#uCJmjC25-&} z<ityLJBLf2`1I#^id#*H8u7f!^5=RL;YRu)m_P|r9V^?4f}wC-Ga^hA>4lQIGSh_S zr47?fePT$mW`5zlX-za+Ch3ofxi5w|*(?f@xiytZDhi`!HR)}cv_2;8yim$a)~qVb zC@p0Ds`-HDPLw6pKMR*`uc(r%^gDt{(uc?8$Cemn*AKc&?_rgBrF0WE6UjM6%20&H zw^3`TnY{BON+wn^c}GCRKbTY9GQjkjzOtZ=q=mNS*8cbbJfTr4@jI3(;dnjuJ7%`z zM(H@2lH?(g$MQ>sdz~VBDpzcC92XJ<XVpf$U4D)tdk?=^cTQ}*aOK;tT9Uc4y|-Yb zC3j_eYONm3ef-(mxTAMHpcmU(o%(TTTXxYCi7Cp09lXiYFzZViUSD)of9<rUx?yGK zM2^wm>BWJdMeC-pZ1&0@#gPWrE;S#r*$p>~v3;qw{1khf@urUSr}IAy#L4G<Y(H+S zPG?AXdXP8Civ5Q+dPy}uJ8$yo)V9^D)4HLkt(Ye<_t%VNes~ebH=)YWHk1-{9;RQa zdCjG5q!jF2C-BA^B`myRWO^Esou9k<aC;Rlizn}U>fk~tMt0LW7I!NwU7Gs%-RMYM zuPX0_C+Rg3j$b@lrwqqoZi-P+iV=twL3<WK*MXSF^7I(Y;;g^)INrZuWV#9}O#Bf{ zWJ^<^=R@@z{JHKov&$n=_Ft>1EFw~V632QYQR}7|aVA)(*UH%E6`@)Fkg0D$n&~Tx zikmG**_>Cj&g=GJ=7#gSh>BRfzJj>wQ{>N=Av&*j&=bz;xo=0=vs(xoxwPepOS4Hz z&8pikIqj<Yt&<p*gLaPXEQdu#lHF&7uY!Zrx}=T~aOZwc=yk;QA0zW73u5UXOS3!1 zDf{%&iEk2yr8;DDu8Lc9`}T)i@!UV)P-z;U;rHMFLKkwOk4YZVoGZ;Ka4L}c=*#9? z7lQ|sd1aB4H+}?rsx)*(SDr2x0;Vl@qAKW{*mt2B2c6+lH<vwGM%lk_he?<cbT6tb z3a$k>HE&0w68%|dHaer@kC#6w{5do&P(bbW$D@(mWxxK-rFnZr!gLo5G!JPumPZx- zXc!fC$0BV%z8(y%KB9Rz#48&@$wUD2TbF7+$|qC9_uKGuUAkI5Gwk+PZ(e!xiMfTU zKp$Vm8tv()lv<*W#F|B}gM1&&EHCQ<pM;m~#F`y7*~ihp8J91zj-x3Vm$_n&$?F)G ze~ApaljZpgWHUW^t?t((uo1?>_{4{KBP>PJPf+#Gs!k%Mq5PlKvqVb2<m2IcLmaJX z$HNU8e)F-3lm@DQ3bLrZa5vt2MKUs1$A(k8acRUb$Qo(H{Eqb_#Ou8!9FIdhro>{Q z6%Xy((8Xe*8`^M4abnukDr-U~gbPNXFjFAlJz&`W^n*b7u7CIXkuu(cr#a}6?`<ml zQIYSVCOr2GPWbbH?u1-vbD1&i@HzLL$>-~?gg^0g&LMQpiF7CTl{c-DM>tqXlD3No z?m1d>?41f37sp12f<NOync`3OPj~ve8LW$+3Oo>B)Vp}g^`&Dn>SI-M{JE-Wfv*;^ z^)j#Ag6@FAm6~ONB5HSINc?#rAhF~YQgqPL4R)Kt{aBBCI`XLYSeW1X%4#g=evCPX z+2#1k{w|%5sXPpnRKrU?vB+gGdSL4Fe0yN$(`^Pt`O2v=&IW3jx}o}T&wwc%hh9~( zn;TboDqiXjZ;};x;uT#IV_&}qomI%!@wi6=Hg03Tq?_a3V>iNEo9{$$uvILa>;p@Z z-C?QBk;hmnjijqP+}*<j59BWdyQ}0-THLe^8zKzlria75NHnVKVeP_shKtNzt}_1u zW!p0qdAf}eOD0ipcUqd=3JaO`_aqvJL~_$2nFMEFx$>6&M8SWXf35tj{k77az;^aq z*TPwmUh5L9+~ClLj&4r2JV#Hl29@ZWYV`K85n8AZjP;sO6T35Ly1U1w_tzaaBd4@} zzQQ8g?Gx+q_j3b(|G0}y-O^{Ci?}QtPFr`rEWVi%-p~GOeV3tjB__Q8d-vmV+0-pg z=K10F$K|RizfQHQ-!2RO<x{thGS8Qpkd<3f4V3D<;jOFel#a)#qn_e=nGXYIJg1CZ z4aqCUwD552_L{t<$S7((&@MgEx&!0cS>7f)DDZ@RbW(T}``N9M_(gudd~B7TXr$tD zcflL8FJ&=HtcMF#o;xo%41N~cwx@93xx8PSQH{|R5L)`_a%=bXkNf+vPB!7YhVAQC zovmzf;dXa`w6>PrGW~z=Tze~QEwg9(k8fXl8*VLAWcpWaUw<n*IpoXqM|Zg;UzuOM z$*>Ch9Zu*bHT!JY)Z{rUYh<WJO*QKc{G*G>^Ggluo$guykeNnERZPBeV%5oMrSb)K zmn#xks^)Uql7>EaC9)jN=d=|MeXh(n@?{x;^#-S_JGgG^7lR5#Hm9e^^rGRw+Ey{j zokIhk+5A^lZ5l6kq1Q42&+n&3aRrtT-`B%T3!F(LX-ecq*44CJK^wZaeSw;lH`2wE zNOD1Afwq)0()Gb6UwlCI9YeLMXtdpr=dbUFh3KVR9u8A)4_qFOUmjM;-P`8Q3!?c! zrtz6T$415!{Wf-CPyM2u3w%ZX(xowZ_NZqxJ4#qSjcb-`P_U0{SwSd0T5dotzt1th zrr$T|SNqlPevYi1o%3?;R?jgmWl_r1_KMI=8QVIcsRg^Sx+Ttsm*YI+n6#s1!M>xd z!A7aAy@i{Gjvtzzp7T9Po*Eg)ZuuaOwdAC?s6-aJIOck~cV3>KcXbl85V!LRV@8NO zcRyw<uO#LqlHKJs^W}6+v*2!1yGOX0_b>34p1xv{EXK5LkNSeinyPivfxv`{nBYP) z@;lbd!;6Mfq=CsV`)cw#-fB;G2#U9VHPpF#<U1=|$ZZWCy&qes%^EYGm)W|mmD{2& z?9keAOSQej{?Gpy;Yxj!;em{RaDj$^!293*V}zWwhlRPWwYkeH9eZo=?n?_<`+wem z`OkYUleATxrxfsgX@(uw!;MisBh^UHq5epHJ@Pw6+U-3nqLvyX6?XlH;h`_aEOg3D z&vA1jX#9hC(Ak9~U`Bm`lwEi8KWoKkW>#<%Vcth7?qyf)2Le2|*W&|E5ypO4Qh4f* z^mNe$Cl8x8Q-3c*tIVbE7>k%YBinSk2z~s`&O6o=?U@yE>KPJ8mKiadz}J1%*4=NC zWnNEW+H!Qto{AYyJd{r1*?Z%GXtd*+F8ZSWgSc$D-1gipvdD2rHriR!zAMQXZ#P`W zz+EcEp=HK!CH`}n^3nr$N-z8Gw_@+UV<aS!>Y%yF=lM;cxnAo{t2c_{z3848#@3n^ zbKY+3iesr_oBm0iU?=`gh%cu?Bh`-6++&5Ccu~-%puYP7&**!U;9Aa-Q>2tPlR0@+ zGY-u=yhLd#6XZ<2)%TywuOO{ZoGAoqHs3B=|CID$IW?e|Df)_1&5B<uaCjPia%4Eq z+cr+wcXHrW^@yWkfBQjWiM!ldl*gjC&wF`;j@JWf-b=rG2EOYA-zhHsG5JYGhtA8L zcJI%X35U}~0z-_2&(jU7kni;8tGf5C9KQ78tK2^^ecq*q8%ghXe~i{XRWIl>=gD16 z@@j7->T&`3{65;(*>yTzVZ)rUswtOeJ?qb64%q45wOe0_Jr>T)6hz54dqanC>F9;+ z=_Pb8thd^HBlkT*57GS7C28~c+#87vmzu$)V4VocoOanwK2$!USLDf<viI_2ZUu4U z1mcN4bxTUT2;-EB>n5cmjXtMz5Tt8XYL)YDI7Yi{K%$64eWKJgNh^tH>4+k~(;7gc zY?5p}`#UHtku!-l7q3XcfX6y|xFf_hs{G!@Q^xJqQ(0}&!aU{ev|^Ff;;R)L)HjSC z(w`n--3pE-cL}`XRrU_lrkF(i^wp@)eel3sh~+suZF59njviJ-VO%Z7Plj5TQqjQo z%QP2-Vkl2!Ii-#i6O&fb3y9Ol+WI6c_Qag3i1ZAR^ozTjJ6O015W+a=5JPo7S$onI zB~jZAJ<xhl_ygNq`CFmP#U~thZ}0{Jr&GqxT~j7B<sDNd1J>(|T~o!-5OyATQF-Ik zqXG-J|A(;ejB2Wh+I>ZoUJbpMKtczRUX-2$5JHzGO$1bmC>^9j=%IIkgf2~x4$`D4 zNB~iKQy@r{Uhm=ie%!V0pSu>!+56dh%9%4WnLV@5929a#-dYDR93B~vKPmUOx(LNI z34&7pX8tNV8&`H7wNbG9`#Zg}zhj?wR7<Nx<tn#BwPt<xo8(T;MC?-Af#}8m)03yW zcRe5>|NZxv;MV`wW9a{GEB<c}_Rsb51{ob3ACJ7Ct!w=S9A>TpX(bU(A*A)CqX8La z+4jUo5p#1!wVPD_Y_)xaVxvy6eWX@{>zeo5p@0ScQ(QZ58~q0~LZ55d{DZ$Ev(3jN zm$R?`G@KcY^3z7k?N}?*NJ@hIsJzWD)NJSRGPC(nJr^!CuO51XDarO4!gW?^h&hDu ztdae@V^xvMyHZMLjdu&^ZAiPx!@QPjSQh3iqo}!3xaw8b!@m>R{MT(o?8if{!5AV2 zvQZ8L6VEKyI8t{rhBXsQbG>+Y!esN96~8CCIZPu!J<Yj@o#cphBkqO~^Yi3{yh}F^ zlIvz7zUGqbE$HG>NZ6$%xYF-&A<m}$#Qj&rn_(#+EP<v&?Sy$rGc1UDIsFeUNtmPx ziHctsCGjQoT~2Z}#xOBj8}e>(Vg|0>lCQECbZcB7E>F$%IJY;f{{B;=T!x(Wk4n{L z{<{^_*U4bR-YpjvM=Zab*t^5GHwPRy6SMN2*xJSL-FITH@bC9-UDxSz5Vq}Vcz=Ul zxD9E3cEym=ND$Mg+zXQk^8f^(tB0hn%GjW%j0E$Z_$ZkdUlwLAG+93_775EdHJ9V^ zr;hw^GW{c9rG|pzrMwX3%--0MD)qs*AN98C=kvKM&h8#!GV0yCjmi<bgx&D4N#aqi z#l;ua9Fc6^_vPJcycV~1J`c`}F&02o5QMCIYymW9Jb%M$q`URPE~(uJ-Y&LpMVS}Q zM5ouj)@Oa&j@qSHnZ+yA)4Fzz$XvuFT*Zl|3yru)=?A;nuzn}3+vZo+M{$U#uaNHQ zf3G1*zt8-q?E&%gzJJxKpMOhmP<Y?!_(aXHtm0o^Do2^HTx9ugWmg(_;AAQ$gccmv zx|$DJt{H$Q9!AYAsro$nJBtk`LDl!UbI!jpHK1Ff	`m6^m%TH~ej;vEk`{OngXu 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 diff --git a/lib/mcollective/vendor/json/java/src/json/ext/ByteListTranscoder.java b/lib/mcollective/vendor/json/java/src/json/ext/ByteListTranscoder.java deleted file mode 100644 index ed9e54b..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/ByteListTranscoder.java +++ /dev/null @@ -1,167 +0,0 @@ -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import org.jruby.exceptions.RaiseException; -import org.jruby.runtime.ThreadContext; -import org.jruby.util.ByteList; - -/** - * A class specialized in transcoding a certain String format into another, - * using UTF-8 ByteLists as both input and output. - */ -abstract class ByteListTranscoder { - protected final ThreadContext context; - - protected ByteList src; - protected int srcEnd; - /** Position where the last read character started */ - protected int charStart; - /** Position of the next character to read */ - protected int pos; - - private ByteList out; - /** - * When a character that can be copied straight into the output is found, - * its index is stored on this variable, and copying is delayed until - * the sequence of characters that can be copied ends. - * - * <p>The variable stores -1 when not in a plain sequence. - */ - private int quoteStart = -1; - - protected ByteListTranscoder(ThreadContext context) { - this.context = context; - } - - protected void init(ByteList src, ByteList out) { - this.init(src, 0, src.length(), out); - } - - protected void init(ByteList src, int start, int end, ByteList out) { - this.src = src; - this.pos = start; - this.charStart = start; - this.srcEnd = end; - this.out = out; - } - - /** - * Returns whether there are any characters left to be read. - */ - protected boolean hasNext() { - return pos < srcEnd; - } - - /** - * Returns the next character in the buffer. - */ - private char next() { - return src.charAt(pos++); - } - - /** - * Reads an UTF-8 character from the input and returns its code point, - * while advancing the input position. - * - * <p>Raises an {@link #invalidUtf8()} exception if an invalid byte - * is found. - */ - protected int readUtf8Char() { - charStart = pos; - char head = next(); - if (head <= 0x7f) { // 0b0xxxxxxx (ASCII) - return head; - } - if (head <= 0xbf) { // 0b10xxxxxx - throw invalidUtf8(); // tail byte with no head - } - if (head <= 0xdf) { // 0b110xxxxx - ensureMin(1); - int cp = ((head & 0x1f) << 6) - | nextPart(); - if (cp < 0x0080) throw invalidUtf8(); - return cp; - } - if (head <= 0xef) { // 0b1110xxxx - ensureMin(2); - int cp = ((head & 0x0f) << 12) - | (nextPart() << 6) - | nextPart(); - if (cp < 0x0800) throw invalidUtf8(); - return cp; - } - if (head <= 0xf7) { // 0b11110xxx - ensureMin(3); - int cp = ((head & 0x07) << 18) - | (nextPart() << 12) - | (nextPart() << 6) - | nextPart(); - if (!Character.isValidCodePoint(cp)) throw invalidUtf8(); - return cp; - } - // 0b11111xxx? - throw invalidUtf8(); - } - - /** - * Throws a GeneratorError if the input list doesn't have at least this - * many bytes left. - */ - protected void ensureMin(int n) { - if (pos + n > srcEnd) throw incompleteUtf8(); - } - - /** - * Reads the next byte of a multi-byte UTF-8 character and returns its - * contents (lower 6 bits). - * - * <p>Throws a GeneratorError if the byte is not a valid tail. - */ - private int nextPart() { - char c = next(); - // tail bytes must be 0b10xxxxxx - if ((c & 0xc0) != 0x80) throw invalidUtf8(); - return c & 0x3f; - } - - - protected void quoteStart() { - if (quoteStart == -1) quoteStart = charStart; - } - - /** - * When in a sequence of characters that can be copied directly, - * interrupts the sequence and copies it to the output buffer. - * - * @param endPos The offset until which the direct character quoting should - * occur. You may pass {@link #pos} to quote until the most - * recently read character, or {@link #charStart} to quote - * until the character before it. - */ - protected void quoteStop(int endPos) { - if (quoteStart != -1) { - out.append(src, quoteStart, endPos - quoteStart); - quoteStart = -1; - } - } - - protected void append(int b) { - out.append(b); - } - - protected void append(byte[] origin, int start, int length) { - out.append(origin, start, length); - } - - - protected abstract RaiseException invalidUtf8(); - - protected RaiseException incompleteUtf8() { - return invalidUtf8(); - } -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/Generator.java b/lib/mcollective/vendor/json/java/src/json/ext/Generator.java deleted file mode 100644 index 230d68f..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/Generator.java +++ /dev/null @@ -1,441 +0,0 @@ -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import org.jruby.Ruby; -import org.jruby.RubyArray; -import org.jruby.RubyBignum; -import org.jruby.RubyBoolean; -import org.jruby.RubyClass; -import org.jruby.RubyFixnum; -import org.jruby.RubyFloat; -import org.jruby.RubyHash; -import org.jruby.RubyNumeric; -import org.jruby.RubyString; -import org.jruby.runtime.ThreadContext; -import org.jruby.runtime.builtin.IRubyObject; -import org.jruby.util.ByteList; - -public final class Generator { - private Generator() { - throw new RuntimeException(); - } - - /** - * Encodes the given object as a JSON string, using the given handler. - */ - static <T extends IRubyObject> RubyString - generateJson(ThreadContext context, T object, - Handler<? super T> handler, IRubyObject[] args) { - Session session = new Session(context, args.length > 0 ? args[0] - : null); - return session.infect(handler.generateNew(session, object)); - } - - /** - * Encodes the given object as a JSON string, detecting the appropriate handler - * for the given object. - */ - static <T extends IRubyObject> RubyString - generateJson(ThreadContext context, T object, IRubyObject[] args) { - Handler<? super T> handler = getHandlerFor(context.getRuntime(), object); - return generateJson(context, object, handler, args); - } - - /** - * Encodes the given object as a JSON string, using the appropriate - * handler if one is found or calling #to_json if not. - */ - public static <T extends IRubyObject> RubyString - generateJson(ThreadContext context, T object, - GeneratorState config) { - Session session = new Session(context, config); - Handler<? super T> handler = getHandlerFor(context.getRuntime(), object); - return handler.generateNew(session, object); - } - - /** - * Returns the best serialization handler for the given object. - */ - // Java's generics can't handle this satisfactorily, so I'll just leave - // the best I could get and ignore the warnings - @SuppressWarnings("unchecked") - private static <T extends IRubyObject> - Handler<? super T> getHandlerFor(Ruby runtime, T object) { - RubyClass metaClass = object.getMetaClass(); - if (metaClass == runtime.getString()) return (Handler)STRING_HANDLER; - if (metaClass == runtime.getFixnum()) return (Handler)FIXNUM_HANDLER; - if (metaClass == runtime.getHash()) return (Handler)HASH_HANDLER; - if (metaClass == runtime.getArray()) return (Handler)ARRAY_HANDLER; - if (object.isNil()) return (Handler)NIL_HANDLER; - if (object == runtime.getTrue()) return (Handler)TRUE_HANDLER; - if (object == runtime.getFalse()) return (Handler)FALSE_HANDLER; - if (metaClass == runtime.getFloat()) return (Handler)FLOAT_HANDLER; - if (metaClass == runtime.getBignum()) return (Handler)BIGNUM_HANDLER; - return GENERIC_HANDLER; - } - - - /* Generator context */ - - /** - * A class that concentrates all the information that is shared by - * generators working on a single session. - * - * <p>A session is defined as the process of serializing a single root - * object; any handler directly called by container handlers (arrays and - * hashes/objects) shares this object with its caller. - * - * <p>Note that anything called indirectly (via {@link GENERIC_HANDLER}) - * won't be part of the session. - */ - static class Session { - private final ThreadContext context; - private GeneratorState state; - private IRubyObject possibleState; - private RuntimeInfo info; - private StringEncoder stringEncoder; - - private boolean tainted = false; - private boolean untrusted = false; - - Session(ThreadContext context, GeneratorState state) { - this.context = context; - this.state = state; - } - - Session(ThreadContext context, IRubyObject possibleState) { - this.context = context; - this.possibleState = possibleState == null || possibleState.isNil() - ? null : possibleState; - } - - public ThreadContext getContext() { - return context; - } - - public Ruby getRuntime() { - return context.getRuntime(); - } - - public GeneratorState getState() { - if (state == null) { - state = GeneratorState.fromState(context, getInfo(), possibleState); - } - return state; - } - - public RuntimeInfo getInfo() { - if (info == null) info = RuntimeInfo.forRuntime(getRuntime()); - return info; - } - - public StringEncoder getStringEncoder() { - if (stringEncoder == null) { - stringEncoder = new StringEncoder(context, getState().asciiOnly()); - } - return stringEncoder; - } - - public void infectBy(IRubyObject object) { - if (object.isTaint()) tainted = true; - if (object.isUntrusted()) untrusted = true; - } - - public <T extends IRubyObject> T infect(T object) { - if (tainted) object.setTaint(true); - if (untrusted) object.setUntrusted(true); - return object; - } - } - - - /* Handler base classes */ - - private static abstract class Handler<T extends IRubyObject> { - /** - * Returns an estimative of how much space the serialization of the - * given object will take. Used for allocating enough buffer space - * before invoking other methods. - */ - int guessSize(Session session, T object) { - return 4; - } - - RubyString generateNew(Session session, T object) { - ByteList buffer = new ByteList(guessSize(session, object)); - generate(session, object, buffer); - return RubyString.newString(session.getRuntime(), buffer); - } - - abstract void generate(Session session, T object, ByteList buffer); - } - - /** - * A handler that returns a fixed keyword regardless of the passed object. - */ - private static class KeywordHandler<T extends IRubyObject> - extends Handler<T> { - private final ByteList keyword; - - private KeywordHandler(String keyword) { - this.keyword = new ByteList(ByteList.plain(keyword), false); - } - - @Override - int guessSize(Session session, T object) { - return keyword.length(); - } - - @Override - RubyString generateNew(Session session, T object) { - return RubyString.newStringShared(session.getRuntime(), keyword); - } - - @Override - void generate(Session session, T object, ByteList buffer) { - buffer.append(keyword); - } - } - - - /* Handlers */ - - static final Handler<RubyBignum> BIGNUM_HANDLER = - new Handler<RubyBignum>() { - @Override - void generate(Session session, RubyBignum object, ByteList buffer) { - // JRUBY-4751: RubyBignum.to_s() returns generic object - // representation (fixed in 1.5, but we maintain backwards - // compatibility; call to_s(IRubyObject[]) then - buffer.append(((RubyString)object.to_s(IRubyObject.NULL_ARRAY)).getByteList()); - } - }; - - static final Handler<RubyFixnum> FIXNUM_HANDLER = - new Handler<RubyFixnum>() { - @Override - void generate(Session session, RubyFixnum object, ByteList buffer) { - buffer.append(object.to_s().getByteList()); - } - }; - - static final Handler<RubyFloat> FLOAT_HANDLER = - new Handler<RubyFloat>() { - @Override - void generate(Session session, RubyFloat object, ByteList buffer) { - double value = RubyFloat.num2dbl(object); - - if (Double.isInfinite(value) || Double.isNaN(value)) { - if (!session.getState().allowNaN()) { - throw Utils.newException(session.getContext(), - Utils.M_GENERATOR_ERROR, - object + " not allowed in JSON"); - } - } - buffer.append(((RubyString)object.to_s()).getByteList()); - } - }; - - static final Handler<RubyArray> ARRAY_HANDLER = - new Handler<RubyArray>() { - @Override - int guessSize(Session session, RubyArray object) { - GeneratorState state = session.getState(); - int depth = state.getDepth(); - int perItem = - 4 // prealloc - + (depth + 1) * state.getIndent().length() // indent - + 1 + state.getArrayNl().length(); // ',' arrayNl - return 2 + object.size() * perItem; - } - - @Override - void generate(Session session, RubyArray object, ByteList buffer) { - ThreadContext context = session.getContext(); - Ruby runtime = context.getRuntime(); - GeneratorState state = session.getState(); - int depth = state.increaseDepth(); - - ByteList indentUnit = state.getIndent(); - byte[] shift = Utils.repeat(indentUnit, depth); - - ByteList arrayNl = state.getArrayNl(); - byte[] delim = new byte[1 + arrayNl.length()]; - delim[0] = ','; - System.arraycopy(arrayNl.unsafeBytes(), arrayNl.begin(), delim, 1, - arrayNl.length()); - - session.infectBy(object); - - buffer.append((byte)'['); - buffer.append(arrayNl); - boolean firstItem = true; - for (int i = 0, t = object.getLength(); i < t; i++) { - IRubyObject element = object.eltInternal(i); - session.infectBy(element); - if (firstItem) { - firstItem = false; - } else { - buffer.append(delim); - } - buffer.append(shift); - Handler<IRubyObject> handler = getHandlerFor(runtime, element); - handler.generate(session, element, buffer); - } - - state.decreaseDepth(); - if (arrayNl.length() != 0) { - buffer.append(arrayNl); - buffer.append(shift, 0, state.getDepth() * indentUnit.length()); - } - - buffer.append((byte)']'); - } - }; - - static final Handler<RubyHash> HASH_HANDLER = - new Handler<RubyHash>() { - @Override - int guessSize(Session session, RubyHash object) { - GeneratorState state = session.getState(); - int perItem = - 12 // key, colon, comma - + (state.getDepth() + 1) * state.getIndent().length() - + state.getSpaceBefore().length() - + state.getSpace().length(); - return 2 + object.size() * perItem; - } - - @Override - void generate(final Session session, RubyHash object, - final ByteList buffer) { - ThreadContext context = session.getContext(); - final Ruby runtime = context.getRuntime(); - final GeneratorState state = session.getState(); - final int depth = state.increaseDepth(); - - final ByteList objectNl = state.getObjectNl(); - final byte[] indent = Utils.repeat(state.getIndent(), depth); - final ByteList spaceBefore = state.getSpaceBefore(); - final ByteList space = state.getSpace(); - - buffer.append((byte)'{'); - buffer.append(objectNl); - object.visitAll(new RubyHash.Visitor() { - private boolean firstPair = true; - - @Override - public void visit(IRubyObject key, IRubyObject value) { - if (firstPair) { - firstPair = false; - } else { - buffer.append((byte)','); - buffer.append(objectNl); - } - if (objectNl.length() != 0) buffer.append(indent); - - STRING_HANDLER.generate(session, key.asString(), buffer); - session.infectBy(key); - - buffer.append(spaceBefore); - buffer.append((byte)':'); - buffer.append(space); - - Handler<IRubyObject> valueHandler = getHandlerFor(runtime, value); - valueHandler.generate(session, value, buffer); - session.infectBy(value); - } - }); - state.decreaseDepth(); - if (objectNl.length() != 0) { - buffer.append(objectNl); - if (indent.length != 0) { - for (int i = 0; i < state.getDepth(); i++) { - buffer.append(indent); - } - } - } - buffer.append((byte)'}'); - } - }; - - static final Handler<RubyString> STRING_HANDLER = - new Handler<RubyString>() { - @Override - int guessSize(Session session, RubyString object) { - // for most applications, most strings will be just a set of - // printable ASCII characters without any escaping, so let's - // just allocate enough space for that + the quotes - return 2 + object.getByteList().length(); - } - - @Override - void generate(Session session, RubyString object, ByteList buffer) { - RuntimeInfo info = session.getInfo(); - RubyString src; - - if (info.encodingsSupported() && - object.encoding(session.getContext()) != info.utf8) { - src = (RubyString)object.encode(session.getContext(), - info.utf8); - } else { - src = object; - } - - session.getStringEncoder().encode(src.getByteList(), buffer); - } - }; - - static final Handler<RubyBoolean> TRUE_HANDLER = - new KeywordHandler<RubyBoolean>("true"); - static final Handler<RubyBoolean> FALSE_HANDLER = - new KeywordHandler<RubyBoolean>("false"); - static final Handler<IRubyObject> NIL_HANDLER = - new KeywordHandler<IRubyObject>("null"); - - /** - * The default handler (<code>Object#to_json</code>): coerces the object - * to string using <code>#to_s</code>, and serializes that string. - */ - static final Handler<IRubyObject> OBJECT_HANDLER = - new Handler<IRubyObject>() { - @Override - RubyString generateNew(Session session, IRubyObject object) { - RubyString str = object.asString(); - return STRING_HANDLER.generateNew(session, str); - } - - @Override - void generate(Session session, IRubyObject object, ByteList buffer) { - RubyString str = object.asString(); - STRING_HANDLER.generate(session, str, buffer); - } - }; - - /** - * A handler that simply calls <code>#to_json(state)</code> on the - * given object. - */ - static final Handler<IRubyObject> GENERIC_HANDLER = - new Handler<IRubyObject>() { - @Override - RubyString generateNew(Session session, IRubyObject object) { - IRubyObject result = - object.callMethod(session.getContext(), "to_json", - new IRubyObject[] {session.getState()}); - if (result instanceof RubyString) return (RubyString)result; - throw session.getRuntime().newTypeError("to_json must return a String"); - } - - @Override - void generate(Session session, IRubyObject object, ByteList buffer) { - RubyString result = generateNew(session, object); - buffer.append(result.getByteList()); - } - }; -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/GeneratorMethods.java b/lib/mcollective/vendor/json/java/src/json/ext/GeneratorMethods.java deleted file mode 100644 index 28a612d..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/GeneratorMethods.java +++ /dev/null @@ -1,231 +0,0 @@ -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import org.jruby.Ruby; -import org.jruby.RubyArray; -import org.jruby.RubyBoolean; -import org.jruby.RubyFixnum; -import org.jruby.RubyFloat; -import org.jruby.RubyHash; -import org.jruby.RubyInteger; -import org.jruby.RubyModule; -import org.jruby.RubyNumeric; -import org.jruby.RubyString; -import org.jruby.anno.JRubyMethod; -import org.jruby.runtime.ThreadContext; -import org.jruby.runtime.builtin.IRubyObject; -import org.jruby.util.ByteList; - -/** - * A class that populates the - * <code>Json::Ext::Generator::GeneratorMethods</code> module. - * - * @author mernen - */ -class GeneratorMethods { - /** - * Populates the given module with all modules and their methods - * @param info - * @param generatorMethodsModule The module to populate - * (normally <code>JSON::Generator::GeneratorMethods</code>) - */ - static void populate(RuntimeInfo info, RubyModule module) { - defineMethods(module, "Array", RbArray.class); - defineMethods(module, "FalseClass", RbFalse.class); - defineMethods(module, "Float", RbFloat.class); - defineMethods(module, "Hash", RbHash.class); - defineMethods(module, "Integer", RbInteger.class); - defineMethods(module, "NilClass", RbNil.class); - defineMethods(module, "Object", RbObject.class); - defineMethods(module, "String", RbString.class); - defineMethods(module, "TrueClass", RbTrue.class); - - info.stringExtendModule = module.defineModuleUnder("String") - .defineModuleUnder("Extend"); - info.stringExtendModule.defineAnnotatedMethods(StringExtend.class); - } - - /** - * Convenience method for defining methods on a submodule. - * @param parentModule - * @param submoduleName - * @param klass - */ - private static void defineMethods(RubyModule parentModule, - String submoduleName, Class klass) { - RubyModule submodule = parentModule.defineModuleUnder(submoduleName); - submodule.defineAnnotatedMethods(klass); - } - - - public static class RbHash { - @JRubyMethod(rest=true) - public static IRubyObject to_json(ThreadContext context, - IRubyObject vSelf, IRubyObject[] args) { - return Generator.generateJson(context, (RubyHash)vSelf, - Generator.HASH_HANDLER, args); - } - } - - public static class RbArray { - @JRubyMethod(rest=true) - public static IRubyObject to_json(ThreadContext context, - IRubyObject vSelf, IRubyObject[] args) { - return Generator.generateJson(context, (RubyArray)vSelf, - Generator.ARRAY_HANDLER, args); - } - } - - public static class RbInteger { - @JRubyMethod(rest=true) - public static IRubyObject to_json(ThreadContext context, - IRubyObject vSelf, IRubyObject[] args) { - return Generator.generateJson(context, vSelf, args); - } - } - - public static class RbFloat { - @JRubyMethod(rest=true) - public static IRubyObject to_json(ThreadContext context, - IRubyObject vSelf, IRubyObject[] args) { - return Generator.generateJson(context, (RubyFloat)vSelf, - Generator.FLOAT_HANDLER, args); - } - } - - public static class RbString { - @JRubyMethod(rest=true) - public static IRubyObject to_json(ThreadContext context, - IRubyObject vSelf, IRubyObject[] args) { - return Generator.generateJson(context, (RubyString)vSelf, - Generator.STRING_HANDLER, args); - } - - /** - * <code>{@link RubyString String}#to_json_raw(*)</code> - * - * <p>This method creates a JSON text from the result of a call to - * {@link #to_json_raw_object} of this String. - */ - @JRubyMethod(rest=true) - public static IRubyObject to_json_raw(ThreadContext context, - IRubyObject vSelf, IRubyObject[] args) { - RubyHash obj = toJsonRawObject(context, Utils.ensureString(vSelf)); - return Generator.generateJson(context, obj, - Generator.HASH_HANDLER, args); - } - - /** - * <code>{@link RubyString String}#to_json_raw_object(*)</code> - * - * <p>This method creates a raw object Hash, that can be nested into - * other data structures and will be unparsed as a raw string. This - * method should be used if you want to convert raw strings to JSON - * instead of UTF-8 strings, e.g. binary data. - */ - @JRubyMethod(rest=true) - public static IRubyObject to_json_raw_object(ThreadContext context, - IRubyObject vSelf, IRubyObject[] args) { - return toJsonRawObject(context, Utils.ensureString(vSelf)); - } - - private static RubyHash toJsonRawObject(ThreadContext context, - RubyString self) { - Ruby runtime = context.getRuntime(); - RubyHash result = RubyHash.newHash(runtime); - - IRubyObject createId = RuntimeInfo.forRuntime(runtime) - .jsonModule.callMethod(context, "create_id"); - result.op_aset(context, createId, self.getMetaClass().to_s()); - - ByteList bl = self.getByteList(); - byte[] uBytes = bl.unsafeBytes(); - RubyArray array = runtime.newArray(bl.length()); - for (int i = bl.begin(), t = bl.begin() + bl.length(); i < t; i++) { - array.store(i, runtime.newFixnum(uBytes[i] & 0xff)); - } - - result.op_aset(context, runtime.newString("raw"), array); - return result; - } - - @JRubyMethod(required=1, module=true) - public static IRubyObject included(ThreadContext context, - IRubyObject vSelf, IRubyObject module) { - RuntimeInfo info = RuntimeInfo.forRuntime(context.getRuntime()); - return module.callMethod(context, "extend", info.stringExtendModule); - } - } - - public static class StringExtend { - /** - * <code>{@link RubyString String}#json_create(o)</code> - * - * <p>Raw Strings are JSON Objects (the raw bytes are stored in an - * array for the key "raw"). The Ruby String can be created by this - * module method. - */ - @JRubyMethod(required=1) - public static IRubyObject json_create(ThreadContext context, - IRubyObject vSelf, IRubyObject vHash) { - Ruby runtime = context.getRuntime(); - RubyHash o = vHash.convertToHash(); - IRubyObject rawData = o.fastARef(runtime.newString("raw")); - if (rawData == null) { - throw runtime.newArgumentError("\"raw\" value not defined " - + "for encoded String"); - } - RubyArray ary = Utils.ensureArray(rawData); - byte[] bytes = new byte[ary.getLength()]; - for (int i = 0, t = ary.getLength(); i < t; i++) { - IRubyObject element = ary.eltInternal(i); - if (element instanceof RubyFixnum) { - bytes[i] = (byte)RubyNumeric.fix2long(element); - } else { - throw runtime.newTypeError(element, runtime.getFixnum()); - } - } - return runtime.newString(new ByteList(bytes, false)); - } - } - - public static class RbTrue { - @JRubyMethod(rest=true) - public static IRubyObject to_json(ThreadContext context, - IRubyObject vSelf, IRubyObject[] args) { - return Generator.generateJson(context, (RubyBoolean)vSelf, - Generator.TRUE_HANDLER, args); - } - } - - public static class RbFalse { - @JRubyMethod(rest=true) - public static IRubyObject to_json(ThreadContext context, - IRubyObject vSelf, IRubyObject[] args) { - return Generator.generateJson(context, (RubyBoolean)vSelf, - Generator.FALSE_HANDLER, args); - } - } - - public static class RbNil { - @JRubyMethod(rest=true) - public static IRubyObject to_json(ThreadContext context, - IRubyObject vSelf, IRubyObject[] args) { - return Generator.generateJson(context, vSelf, - Generator.NIL_HANDLER, args); - } - } - - public static class RbObject { - @JRubyMethod(rest=true) - public static IRubyObject to_json(ThreadContext context, - IRubyObject self, IRubyObject[] args) { - return RbString.to_json(context, self.asString(), args); - } - } -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/GeneratorService.java b/lib/mcollective/vendor/json/java/src/json/ext/GeneratorService.java deleted file mode 100644 index b8deb22..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/GeneratorService.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import java.io.IOException; - -import org.jruby.Ruby; -import org.jruby.RubyClass; -import org.jruby.RubyModule; -import org.jruby.runtime.load.BasicLibraryService; - -/** - * The service invoked by JRuby's {@link org.jruby.runtime.load.LoadService LoadService}. - * Defines the <code>JSON::Ext::Generator</code> module. - * @author mernen - */ -public class GeneratorService implements BasicLibraryService { - public boolean basicLoad(Ruby runtime) throws IOException { - runtime.getLoadService().require("json/common"); - RuntimeInfo info = RuntimeInfo.initRuntime(runtime); - - info.jsonModule = runtime.defineModule("JSON"); - RubyModule jsonExtModule = info.jsonModule.defineModuleUnder("Ext"); - RubyModule generatorModule = jsonExtModule.defineModuleUnder("Generator"); - - RubyClass stateClass = - generatorModule.defineClassUnder("State", runtime.getObject(), - GeneratorState.ALLOCATOR); - stateClass.defineAnnotatedMethods(GeneratorState.class); - info.generatorStateClass = stateClass; - - RubyModule generatorMethods = - generatorModule.defineModuleUnder("GeneratorMethods"); - GeneratorMethods.populate(info, generatorMethods); - - return true; - } -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/GeneratorState.java b/lib/mcollective/vendor/json/java/src/json/ext/GeneratorState.java deleted file mode 100644 index dc99000..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/GeneratorState.java +++ /dev/null @@ -1,473 +0,0 @@ -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import org.jruby.Ruby; -import org.jruby.RubyBoolean; -import org.jruby.RubyClass; -import org.jruby.RubyHash; -import org.jruby.RubyInteger; -import org.jruby.RubyNumeric; -import org.jruby.RubyObject; -import org.jruby.RubyString; -import org.jruby.anno.JRubyMethod; -import org.jruby.runtime.Block; -import org.jruby.runtime.ObjectAllocator; -import org.jruby.runtime.ThreadContext; -import org.jruby.runtime.Visibility; -import org.jruby.runtime.builtin.IRubyObject; -import org.jruby.util.ByteList; - -/** - * The <code>JSON::Ext::Generator::State</code> class. - * - * <p>This class is used to create State instances, that are use to hold data - * while generating a JSON text from a a Ruby data structure. - * - * @author mernen - */ -public class GeneratorState extends RubyObject { - /** - * The indenting unit string. Will be repeated several times for larger - * indenting levels. - */ - private ByteList indent = ByteList.EMPTY_BYTELIST; - /** - * The spacing to be added after a semicolon on a JSON object. - * @see #spaceBefore - */ - private ByteList space = ByteList.EMPTY_BYTELIST; - /** - * The spacing to be added before a semicolon on a JSON object. - * @see #space - */ - private ByteList spaceBefore = ByteList.EMPTY_BYTELIST; - /** - * Any suffix to be added after the comma for each element on a JSON object. - * It is assumed to be a newline, if set. - */ - private ByteList objectNl = ByteList.EMPTY_BYTELIST; - /** - * Any suffix to be added after the comma for each element on a JSON Array. - * It is assumed to be a newline, if set. - */ - private ByteList arrayNl = ByteList.EMPTY_BYTELIST; - - /** - * The maximum level of nesting of structures allowed. - * <code>0</code> means disabled. - */ - private int maxNesting = DEFAULT_MAX_NESTING; - static final int DEFAULT_MAX_NESTING = 19; - /** - * Whether special float values (<code>NaN</code>, <code>Infinity</code>, - * <code>-Infinity</code>) are accepted. - * If set to <code>false</code>, an exception will be thrown upon - * encountering one. - */ - private boolean allowNaN = DEFAULT_ALLOW_NAN; - static final boolean DEFAULT_ALLOW_NAN = false; - /** - * XXX - */ - private boolean asciiOnly = DEFAULT_ASCII_ONLY; - static final boolean DEFAULT_ASCII_ONLY = false; - - /** - * The current depth (inside a #to_json call) - */ - private int depth = 0; - - static final ObjectAllocator ALLOCATOR = new ObjectAllocator() { - public IRubyObject allocate(Ruby runtime, RubyClass klazz) { - return new GeneratorState(runtime, klazz); - } - }; - - public GeneratorState(Ruby runtime, RubyClass metaClass) { - super(runtime, metaClass); - } - - /** - * <code>State.from_state(opts)</code> - * - * <p>Creates a State object from <code>opts</code>, which ought to be - * {@link RubyHash Hash} to create a new <code>State</code> instance - * configured by <codes>opts</code>, something else to create an - * unconfigured instance. If <code>opts</code> is a <code>State</code> - * object, it is just returned. - * @param clazzParam The receiver of the method call - * ({@link RubyClass} <code>State</code>) - * @param opts The object to use as a base for the new <code>State</code> - * @param block The block passed to the method - * @return A <code>GeneratorState</code> as determined above - */ - @JRubyMethod(meta=true) - public static IRubyObject from_state(ThreadContext context, - IRubyObject klass, IRubyObject opts) { - return fromState(context, opts); - } - - static GeneratorState fromState(ThreadContext context, IRubyObject opts) { - return fromState(context, RuntimeInfo.forRuntime(context.getRuntime()), opts); - } - - static GeneratorState fromState(ThreadContext context, RuntimeInfo info, - IRubyObject opts) { - RubyClass klass = info.generatorStateClass; - if (opts != null) { - // if the given parameter is a Generator::State, return itself - if (klass.isInstance(opts)) return (GeneratorState)opts; - - // if the given parameter is a Hash, pass it to the instantiator - if (context.getRuntime().getHash().isInstance(opts)) { - return (GeneratorState)klass.newInstance(context, - new IRubyObject[] {opts}, Block.NULL_BLOCK); - } - } - - // for other values, return the safe prototype - return (GeneratorState)info.getSafeStatePrototype(context).dup(); - } - - /** - * <code>State#initialize(opts = {})</code> - * - * Instantiates a new <code>State</code> object, configured by <code>opts</code>. - * - * <code>opts</code> can have the following keys: - * - * <dl> - * <dt><code>:indent</code> - * <dd>a {@link RubyString String} used to indent levels (default: <code>""</code>) - * <dt><code>:space</code> - * <dd>a String that is put after a <code>':'</code> or <code>','</code> - * delimiter (default: <code>""</code>) - * <dt><code>:space_before</code> - * <dd>a String that is put before a <code>":"</code> pair delimiter - * (default: <code>""</code>) - * <dt><code>:object_nl</code> - * <dd>a String that is put at the end of a JSON object (default: <code>""</code>) - * <dt><code>:array_nl</code> - * <dd>a String that is put at the end of a JSON array (default: <code>""</code>) - * <dt><code>:allow_nan</code> - * <dd><code>true</code> if <code>NaN</code>, <code>Infinity</code>, and - * <code>-Infinity</code> should be generated, otherwise an exception is - * thrown if these values are encountered. - * This options defaults to <code>false</code>. - */ - @JRubyMethod(optional=1, visibility=Visibility.PRIVATE) - public IRubyObject initialize(ThreadContext context, IRubyObject[] args) { - configure(context, args.length > 0 ? args[0] : null); - return this; - } - - @JRubyMethod - public IRubyObject initialize_copy(ThreadContext context, IRubyObject vOrig) { - Ruby runtime = context.getRuntime(); - if (!(vOrig instanceof GeneratorState)) { - throw runtime.newTypeError(vOrig, getType()); - } - GeneratorState orig = (GeneratorState)vOrig; - this.indent = orig.indent; - this.space = orig.space; - this.spaceBefore = orig.spaceBefore; - this.objectNl = orig.objectNl; - this.arrayNl = orig.arrayNl; - this.maxNesting = orig.maxNesting; - this.allowNaN = orig.allowNaN; - this.asciiOnly = orig.asciiOnly; - this.depth = orig.depth; - return this; - } - - /** - * XXX - */ - @JRubyMethod - public IRubyObject generate(ThreadContext context, IRubyObject obj) { - RubyString result = Generator.generateJson(context, obj, this); - if (!objectOrArrayLiteral(result)) { - throw Utils.newException(context, Utils.M_GENERATOR_ERROR, - "only generation of JSON objects or arrays allowed"); - } - return result; - } - - /** - * Ensures the given string is in the form "[...]" or "{...}", being - * possibly surrounded by white space. - * The string's encoding must be ASCII-compatible. - * @param value - * @return - */ - private static boolean objectOrArrayLiteral(RubyString value) { - ByteList bl = value.getByteList(); - int len = bl.length(); - - for (int pos = 0; pos < len - 1; pos++) { - int b = bl.get(pos); - if (Character.isWhitespace(b)) continue; - - // match the opening brace - switch (b) { - case '[': - return matchClosingBrace(bl, pos, len, ']'); - case '{': - return matchClosingBrace(bl, pos, len, '}'); - default: - return false; - } - } - return false; - } - - private static boolean matchClosingBrace(ByteList bl, int pos, int len, - int brace) { - for (int endPos = len - 1; endPos > pos; endPos--) { - int b = bl.get(endPos); - if (Character.isWhitespace(b)) continue; - return b == brace; - } - return false; - } - - @JRubyMethod(name="[]", required=1) - public IRubyObject op_aref(ThreadContext context, IRubyObject vName) { - String name = vName.asJavaString(); - if (getMetaClass().isMethodBound(name, true)) { - return send(context, vName, Block.NULL_BLOCK); - } - return context.getRuntime().getNil(); - } - - public ByteList getIndent() { - return indent; - } - - @JRubyMethod(name="indent") - public RubyString indent_get(ThreadContext context) { - return context.getRuntime().newString(indent); - } - - @JRubyMethod(name="indent=") - public IRubyObject indent_set(ThreadContext context, IRubyObject indent) { - this.indent = prepareByteList(context, indent); - return indent; - } - - public ByteList getSpace() { - return space; - } - - @JRubyMethod(name="space") - public RubyString space_get(ThreadContext context) { - return context.getRuntime().newString(space); - } - - @JRubyMethod(name="space=") - public IRubyObject space_set(ThreadContext context, IRubyObject space) { - this.space = prepareByteList(context, space); - return space; - } - - public ByteList getSpaceBefore() { - return spaceBefore; - } - - @JRubyMethod(name="space_before") - public RubyString space_before_get(ThreadContext context) { - return context.getRuntime().newString(spaceBefore); - } - - @JRubyMethod(name="space_before=") - public IRubyObject space_before_set(ThreadContext context, - IRubyObject spaceBefore) { - this.spaceBefore = prepareByteList(context, spaceBefore); - return spaceBefore; - } - - public ByteList getObjectNl() { - return objectNl; - } - - @JRubyMethod(name="object_nl") - public RubyString object_nl_get(ThreadContext context) { - return context.getRuntime().newString(objectNl); - } - - @JRubyMethod(name="object_nl=") - public IRubyObject object_nl_set(ThreadContext context, - IRubyObject objectNl) { - this.objectNl = prepareByteList(context, objectNl); - return objectNl; - } - - public ByteList getArrayNl() { - return arrayNl; - } - - @JRubyMethod(name="array_nl") - public RubyString array_nl_get(ThreadContext context) { - return context.getRuntime().newString(arrayNl); - } - - @JRubyMethod(name="array_nl=") - public IRubyObject array_nl_set(ThreadContext context, - IRubyObject arrayNl) { - this.arrayNl = prepareByteList(context, arrayNl); - return arrayNl; - } - - @JRubyMethod(name="check_circular?") - public RubyBoolean check_circular_p(ThreadContext context) { - return context.getRuntime().newBoolean(maxNesting != 0); - } - - /** - * Returns the maximum level of nesting configured for this state. - */ - public int getMaxNesting() { - return maxNesting; - } - - @JRubyMethod(name="max_nesting") - public RubyInteger max_nesting_get(ThreadContext context) { - return context.getRuntime().newFixnum(maxNesting); - } - - @JRubyMethod(name="max_nesting=") - public IRubyObject max_nesting_set(IRubyObject max_nesting) { - maxNesting = RubyNumeric.fix2int(max_nesting); - return max_nesting; - } - - public boolean allowNaN() { - return allowNaN; - } - - @JRubyMethod(name="allow_nan?") - public RubyBoolean allow_nan_p(ThreadContext context) { - return context.getRuntime().newBoolean(allowNaN); - } - - public boolean asciiOnly() { - return asciiOnly; - } - - @JRubyMethod(name="ascii_only?") - public RubyBoolean ascii_only_p(ThreadContext context) { - return context.getRuntime().newBoolean(asciiOnly); - } - - public int getDepth() { - return depth; - } - - @JRubyMethod(name="depth") - public RubyInteger depth_get(ThreadContext context) { - return context.getRuntime().newFixnum(depth); - } - - @JRubyMethod(name="depth=") - public IRubyObject depth_set(IRubyObject vDepth) { - depth = RubyNumeric.fix2int(vDepth); - return vDepth; - } - - private ByteList prepareByteList(ThreadContext context, IRubyObject value) { - RubyString str = value.convertToString(); - RuntimeInfo info = RuntimeInfo.forRuntime(context.getRuntime()); - if (info.encodingsSupported() && str.encoding(context) != info.utf8) { - str = (RubyString)str.encode(context, info.utf8); - } - return str.getByteList().dup(); - } - - /** - * <code>State#configure(opts)</code> - * - * <p>Configures this State instance with the {@link RubyHash Hash} - * <code>opts</code>, and returns itself. - * @param vOpts The options hash - * @return The receiver - */ - @JRubyMethod - public IRubyObject configure(ThreadContext context, IRubyObject vOpts) { - OptionsReader opts = new OptionsReader(context, vOpts); - - ByteList indent = opts.getString("indent"); - if (indent != null) this.indent = indent; - - ByteList space = opts.getString("space"); - if (space != null) this.space = space; - - ByteList spaceBefore = opts.getString("space_before"); - if (spaceBefore != null) this.spaceBefore = spaceBefore; - - ByteList arrayNl = opts.getString("array_nl"); - if (arrayNl != null) this.arrayNl = arrayNl; - - ByteList objectNl = opts.getString("object_nl"); - if (objectNl != null) this.objectNl = objectNl; - - maxNesting = opts.getInt("max_nesting", DEFAULT_MAX_NESTING); - allowNaN = opts.getBool("allow_nan", DEFAULT_ALLOW_NAN); - asciiOnly = opts.getBool("ascii_only", DEFAULT_ASCII_ONLY); - - depth = opts.getInt("depth", 0); - - return this; - } - - /** - * <code>State#to_h()</code> - * - * <p>Returns the configuration instance variables as a hash, that can be - * passed to the configure method. - * @return - */ - @JRubyMethod - public RubyHash to_h(ThreadContext context) { - Ruby runtime = context.getRuntime(); - RubyHash result = RubyHash.newHash(runtime); - - result.op_aset(context, runtime.newSymbol("indent"), indent_get(context)); - result.op_aset(context, runtime.newSymbol("space"), space_get(context)); - result.op_aset(context, runtime.newSymbol("space_before"), space_before_get(context)); - result.op_aset(context, runtime.newSymbol("object_nl"), object_nl_get(context)); - result.op_aset(context, runtime.newSymbol("array_nl"), array_nl_get(context)); - result.op_aset(context, runtime.newSymbol("allow_nan"), allow_nan_p(context)); - result.op_aset(context, runtime.newSymbol("ascii_only"), ascii_only_p(context)); - result.op_aset(context, runtime.newSymbol("max_nesting"), max_nesting_get(context)); - result.op_aset(context, runtime.newSymbol("depth"), depth_get(context)); - return result; - } - - public int increaseDepth() { - depth++; - checkMaxNesting(); - return depth; - } - - public int decreaseDepth() { - return --depth; - } - - /** - * Checks if the current depth is allowed as per this state's options. - * @param context - * @param depth The corrent depth - */ - private void checkMaxNesting() { - if (maxNesting != 0 && depth > maxNesting) { - depth--; - throw Utils.newException(getRuntime().getCurrentContext(), - Utils.M_NESTING_ERROR, "nesting of " + depth + " is too deep"); - } - } -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/OptionsReader.java b/lib/mcollective/vendor/json/java/src/json/ext/OptionsReader.java deleted file mode 100644 index 018ace4..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/OptionsReader.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import org.jruby.Ruby; -import org.jruby.RubyClass; -import org.jruby.RubyHash; -import org.jruby.RubyNumeric; -import org.jruby.RubyString; -import org.jruby.runtime.ThreadContext; -import org.jruby.runtime.builtin.IRubyObject; -import org.jruby.util.ByteList; - -final class OptionsReader { - private final ThreadContext context; - private final Ruby runtime; - private final RubyHash opts; - private RuntimeInfo info; - - OptionsReader(ThreadContext context, IRubyObject vOpts) { - this.context = context; - this.runtime = context.getRuntime(); - - if (vOpts == null || vOpts.isNil()) { - opts = null; - } else if (vOpts.respondsTo("to_hash")) { - opts = vOpts.convertToHash(); - } else { - opts = vOpts.callMethod(context, "to_h").convertToHash(); - } - } - - private RuntimeInfo getRuntimeInfo() { - if (info != null) return info; - info = RuntimeInfo.forRuntime(runtime); - return info; - } - - /** - * Efficiently looks up items with a {@link RubySymbol Symbol} key - * @param key The Symbol name to look up for - * @return The item in the {@link RubyHash Hash}, or <code>null</code> - * if not found - */ - IRubyObject get(String key) { - return opts == null ? null : opts.fastARef(runtime.newSymbol(key)); - } - - boolean getBool(String key, boolean defaultValue) { - IRubyObject value = get(key); - return value == null ? defaultValue : value.isTrue(); - } - - int getInt(String key, int defaultValue) { - IRubyObject value = get(key); - if (value == null) return defaultValue; - if (!value.isTrue()) return 0; - return RubyNumeric.fix2int(value); - } - - /** - * Reads the setting from the options hash. If no entry is set for this - * key or if it evaluates to <code>false</code>, returns null; attempts to - * coerce the value to {@link RubyString String} otherwise. - * @param key The Symbol name to look up for - * @return <code>null</code> if the key is not in the Hash or if - * its value evaluates to <code>false</code> - * @throws RaiseException <code>TypeError</code> if the value does not - * evaluate to <code>false</code> and can't be - * converted to string - */ - ByteList getString(String key) { - RubyString str = getString(key, null); - return str == null ? null : str.getByteList().dup(); - } - - RubyString getString(String key, RubyString defaultValue) { - IRubyObject value = get(key); - if (value == null || !value.isTrue()) return defaultValue; - - RubyString str = value.convertToString(); - RuntimeInfo info = getRuntimeInfo(); - if (info.encodingsSupported() && str.encoding(context) != info.utf8) { - str = (RubyString)str.encode(context, info.utf8); - } - return str; - } - - /** - * Reads the setting from the options hash. If it is <code>nil</code> or - * undefined, returns the default value given. - * If not, ensures it is a RubyClass instance and shares the same - * allocator as the default value (i.e. for the basic types which have - * their specific allocators, this ensures the passed value is - * a subclass of them). - */ - RubyClass getClass(String key, RubyClass defaultValue) { - IRubyObject value = get(key); - - if (value == null || value.isNil()) return defaultValue; - - if (value instanceof RubyClass && - ((RubyClass)value).getAllocator() == defaultValue.getAllocator()) { - return (RubyClass)value; - } - throw runtime.newTypeError(key + " option must be a subclass of " - + defaultValue); - } - - public RubyHash getHash(String key) { - IRubyObject value = get(key); - if (value == null || value.isNil()) return new RubyHash(runtime); - return (RubyHash) value; - } -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/Parser.java b/lib/mcollective/vendor/json/java/src/json/ext/Parser.java deleted file mode 100644 index c92600e..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/Parser.java +++ /dev/null @@ -1,2295 +0,0 @@ - -// line 1 "Parser.rl" -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import org.jruby.Ruby; -import org.jruby.RubyArray; -import org.jruby.RubyClass; -import org.jruby.RubyEncoding; -import org.jruby.RubyFloat; -import org.jruby.RubyHash; -import org.jruby.RubyInteger; -import org.jruby.RubyModule; -import org.jruby.RubyNumeric; -import org.jruby.RubyObject; -import org.jruby.RubyString; -import org.jruby.anno.JRubyMethod; -import org.jruby.exceptions.JumpException; -import org.jruby.exceptions.RaiseException; -import org.jruby.runtime.Block; -import org.jruby.runtime.ObjectAllocator; -import org.jruby.runtime.ThreadContext; -import org.jruby.runtime.Visibility; -import org.jruby.runtime.builtin.IRubyObject; -import org.jruby.util.ByteList; - -/** - * The <code>JSON::Ext::Parser</code> class. - * - * <p>This is the JSON parser implemented as a Java class. To use it as the - * standard parser, set - * <pre>JSON.parser = JSON::Ext::Parser</pre> - * This is performed for you when you <code>include "json/ext"</code>. - * - * <p>This class does not perform the actual parsing, just acts as an interface - * to Ruby code. When the {@link #parse()} method is invoked, a - * Parser.ParserSession object is instantiated, which handles the process. - * - * @author mernen - */ -public class Parser extends RubyObject { - private final RuntimeInfo info; - private RubyString vSource; - private RubyString createId; - private boolean createAdditions; - private int maxNesting; - private boolean allowNaN; - private boolean symbolizeNames; - private RubyClass objectClass; - private RubyClass arrayClass; - private RubyHash match_string; - - private static final int DEFAULT_MAX_NESTING = 19; - - private static final String JSON_MINUS_INFINITY = "-Infinity"; - // constant names in the JSON module containing those values - private static final String CONST_NAN = "NaN"; - private static final String CONST_INFINITY = "Infinity"; - private static final String CONST_MINUS_INFINITY = "MinusInfinity"; - - static final ObjectAllocator ALLOCATOR = new ObjectAllocator() { - public IRubyObject allocate(Ruby runtime, RubyClass klazz) { - return new Parser(runtime, klazz); - } - }; - - /** - * Multiple-value return for internal parser methods. - * - * <p>All the <code>parse<var>Stuff</var></code> methods return instances of - * <code>ParserResult</code> when successful, or <code>null</code> when - * there's a problem with the input data. - */ - static final class ParserResult { - /** - * The result of the successful parsing. Should never be - * <code>null</code>. - */ - final IRubyObject result; - /** - * The point where the parser returned. - */ - final int p; - - ParserResult(IRubyObject result, int p) { - this.result = result; - this.p = p; - } - } - - public Parser(Ruby runtime, RubyClass metaClass) { - super(runtime, metaClass); - info = RuntimeInfo.forRuntime(runtime); - } - - /** - * <code>Parser.new(source, opts = {})</code> - * - * <p>Creates a new <code>JSON::Ext::Parser</code> instance for the string - * <code>source</code>. - * It will be configured by the <code>opts</code> Hash. - * <code>opts</code> can have the following keys: - * - * <dl> - * <dt><code>:max_nesting</code> - * <dd>The maximum depth of nesting allowed in the parsed data - * structures. Disable depth checking with <code>:max_nesting => false|nil|0</code>, - * it defaults to 19. - * - * <dt><code>:allow_nan</code> - * <dd>If set to <code>true</code>, allow <code>NaN</code>, - * <code>Infinity</code> and <code>-Infinity</code> in defiance of RFC 4627 - * to be parsed by the Parser. This option defaults to <code>false</code>. - * - * <dt><code>:symbolize_names</code> - * <dd>If set to <code>true</code>, returns symbols for the names (keys) in - * a JSON object. Otherwise strings are returned, which is also the default. - * - * <dt><code>:create_additions</code> - * <dd>If set to <code>false</code>, the Parser doesn't create additions - * even if a matchin class and <code>create_id</code> was found. This option - * defaults to <code>true</code>. - * - * <dt><code>:object_class</code> - * <dd>Defaults to Hash. - * - * <dt><code>:array_class</code> - * <dd>Defaults to Array. - * </dl> - */ - @JRubyMethod(name = "new", required = 1, optional = 1, meta = true) - public static IRubyObject newInstance(IRubyObject clazz, IRubyObject[] args, Block block) { - Parser parser = (Parser)((RubyClass)clazz).allocate(); - - parser.callInit(args, block); - - return parser; - } - - @JRubyMethod(required = 1, optional = 1, visibility = Visibility.PRIVATE) - public IRubyObject initialize(ThreadContext context, IRubyObject[] args) { - Ruby runtime = context.getRuntime(); - RubyString source = convertEncoding(context, args[0].convertToString()); - - OptionsReader opts = new OptionsReader(context, args.length > 1 ? args[1] : null); - this.maxNesting = opts.getInt("max_nesting", DEFAULT_MAX_NESTING); - this.allowNaN = opts.getBool("allow_nan", false); - this.symbolizeNames = opts.getBool("symbolize_names", false); - this.createId = opts.getString("create_id", getCreateId(context)); - this.createAdditions = opts.getBool("create_additions", true); - this.objectClass = opts.getClass("object_class", runtime.getHash()); - this.arrayClass = opts.getClass("array_class", runtime.getArray()); - this.match_string = opts.getHash("match_string"); - - this.vSource = source; - return this; - } - - /** - * Checks the given string's encoding. If a non-UTF-8 encoding is detected, - * a converted copy is returned. - * Returns the source string if no conversion is needed. - */ - private RubyString convertEncoding(ThreadContext context, RubyString source) { - ByteList bl = source.getByteList(); - int len = bl.length(); - if (len < 2) { - throw Utils.newException(context, Utils.M_PARSER_ERROR, - "A JSON text must at least contain two octets!"); - } - - if (info.encodingsSupported()) { - RubyEncoding encoding = (RubyEncoding)source.encoding(context); - if (encoding != info.ascii8bit) { - return (RubyString)source.encode(context, info.utf8); - } - - String sniffedEncoding = sniffByteList(bl); - if (sniffedEncoding == null) return source; // assume UTF-8 - return reinterpretEncoding(context, source, sniffedEncoding); - } - - String sniffedEncoding = sniffByteList(bl); - if (sniffedEncoding == null) return source; // assume UTF-8 - Ruby runtime = context.getRuntime(); - return (RubyString)info.jsonModule. - callMethod(context, "iconv", - new IRubyObject[] { - runtime.newString("utf-8"), - runtime.newString(sniffedEncoding), - source}); - } - - /** - * Checks the first four bytes of the given ByteList to infer its encoding, - * using the principle demonstrated on section 3 of RFC 4627 (JSON). - */ - private static String sniffByteList(ByteList bl) { - if (bl.length() < 4) return null; - if (bl.get(0) == 0 && bl.get(2) == 0) { - return bl.get(1) == 0 ? "utf-32be" : "utf-16be"; - } - if (bl.get(1) == 0 && bl.get(3) == 0) { - return bl.get(2) == 0 ? "utf-32le" : "utf-16le"; - } - return null; - } - - /** - * Assumes the given (binary) RubyString to be in the given encoding, then - * converts it to UTF-8. - */ - private RubyString reinterpretEncoding(ThreadContext context, - RubyString str, String sniffedEncoding) { - RubyEncoding actualEncoding = info.getEncoding(context, sniffedEncoding); - RubyEncoding targetEncoding = info.utf8; - RubyString dup = (RubyString)str.dup(); - dup.force_encoding(context, actualEncoding); - return (RubyString)dup.encode_bang(context, targetEncoding); - } - - /** - * <code>Parser#parse()</code> - * - * <p>Parses the current JSON text <code>source</code> and returns the - * complete data structure as a result. - */ - @JRubyMethod - public IRubyObject parse(ThreadContext context) { - return new ParserSession(this, context).parse(); - } - - /** - * <code>Parser#source()</code> - * - * <p>Returns a copy of the current <code>source</code> string, that was - * used to construct this Parser. - */ - @JRubyMethod(name = "source") - public IRubyObject source_get() { - return vSource.dup(); - } - - /** - * Queries <code>JSON.create_id</code>. Returns <code>null</code> if it is - * set to <code>nil</code> or <code>false</code>, and a String if not. - */ - private RubyString getCreateId(ThreadContext context) { - IRubyObject v = info.jsonModule.callMethod(context, "create_id"); - return v.isTrue() ? v.convertToString() : null; - } - - /** - * A string parsing session. - * - * <p>Once a ParserSession is instantiated, the source string should not - * change until the parsing is complete. The ParserSession object assumes - * the source {@link RubyString} is still associated to its original - * {@link ByteList}, which in turn must still be bound to the same - * <code>byte[]</code> value (and on the same offset). - */ - // Ragel uses lots of fall-through - @SuppressWarnings("fallthrough") - private static class ParserSession { - private final Parser parser; - private final ThreadContext context; - private final ByteList byteList; - private final byte[] data; - private final StringDecoder decoder; - private int currentNesting = 0; - - // initialization value for all state variables. - // no idea about the origins of this value, ask Flori ;) - private static final int EVIL = 0x666; - - private ParserSession(Parser parser, ThreadContext context) { - this.parser = parser; - this.context = context; - this.byteList = parser.vSource.getByteList(); - this.data = byteList.unsafeBytes(); - this.decoder = new StringDecoder(context); - } - - private RaiseException unexpectedToken(int absStart, int absEnd) { - RubyString msg = getRuntime().newString("unexpected token at '") - .cat(data, absStart, absEnd - absStart) - .cat((byte)'\''); - return newException(Utils.M_PARSER_ERROR, msg); - } - - private Ruby getRuntime() { - return context.getRuntime(); - } - - -// line 324 "Parser.rl" - - - -// line 306 "Parser.java" -private static byte[] init__JSON_value_actions_0() -{ - return new byte [] { - 0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, - 5, 1, 6, 1, 7, 1, 8, 1, 9 - }; -} - -private static final byte _JSON_value_actions[] = init__JSON_value_actions_0(); - - -private static byte[] init__JSON_value_key_offsets_0() -{ - return new byte [] { - 0, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 - }; -} - -private static final byte _JSON_value_key_offsets[] = init__JSON_value_key_offsets_0(); - - -private static char[] init__JSON_value_trans_keys_0() -{ - return new char [] { - 34, 45, 73, 78, 91, 102, 110, 116, 123, 48, 57, 110, - 102, 105, 110, 105, 116, 121, 97, 78, 97, 108, 115, 101, - 117, 108, 108, 114, 117, 101, 0 - }; -} - -private static final char _JSON_value_trans_keys[] = init__JSON_value_trans_keys_0(); - - -private static byte[] init__JSON_value_single_lengths_0() -{ - return new byte [] { - 0, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 - }; -} - -private static final byte _JSON_value_single_lengths[] = init__JSON_value_single_lengths_0(); - - -private static byte[] init__JSON_value_range_lengths_0() -{ - return new byte [] { - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; -} - -private static final byte _JSON_value_range_lengths[] = init__JSON_value_range_lengths_0(); - - -private static byte[] init__JSON_value_index_offsets_0() -{ - return new byte [] { - 0, 0, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, - 31, 33, 35, 37, 39, 41, 43, 45, 47, 49 - }; -} - -private static final byte _JSON_value_index_offsets[] = init__JSON_value_index_offsets_0(); - - -private static byte[] init__JSON_value_trans_targs_0() -{ - return new byte [] { - 21, 21, 2, 9, 21, 11, 15, 18, 21, 21, 0, 3, - 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 21, - 0, 10, 0, 21, 0, 12, 0, 13, 0, 14, 0, 21, - 0, 16, 0, 17, 0, 21, 0, 19, 0, 20, 0, 21, - 0, 0, 0 - }; -} - -private static final byte _JSON_value_trans_targs[] = init__JSON_value_trans_targs_0(); - - -private static byte[] init__JSON_value_trans_actions_0() -{ - return new byte [] { - 13, 11, 0, 0, 15, 0, 0, 0, 17, 11, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 3, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5, - 0, 0, 0 - }; -} - -private static final byte _JSON_value_trans_actions[] = init__JSON_value_trans_actions_0(); - - -private static byte[] init__JSON_value_from_state_actions_0() -{ - return new byte [] { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 19 - }; -} - -private static final byte _JSON_value_from_state_actions[] = init__JSON_value_from_state_actions_0(); - - -static final int JSON_value_start = 1; -static final int JSON_value_first_final = 21; -static final int JSON_value_error = 0; - -static final int JSON_value_en_main = 1; - - -// line 430 "Parser.rl" - - - ParserResult parseValue(int p, int pe) { - int cs = EVIL; - IRubyObject result = null; - - -// line 428 "Parser.java" - { - cs = JSON_value_start; - } - -// line 437 "Parser.rl" - -// line 435 "Parser.java" - { - int _klen; - int _trans = 0; - int _acts; - int _nacts; - int _keys; - int _goto_targ = 0; - - _goto: while (true) { - switch ( _goto_targ ) { - case 0: - if ( p == pe ) { - _goto_targ = 4; - continue _goto; - } - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } -case 1: - _acts = _JSON_value_from_state_actions[cs]; - _nacts = (int) _JSON_value_actions[_acts++]; - while ( _nacts-- > 0 ) { - switch ( _JSON_value_actions[_acts++] ) { - case 9: -// line 415 "Parser.rl" - { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } - break; -// line 467 "Parser.java" - } - } - - _match: do { - _keys = _JSON_value_key_offsets[cs]; - _trans = _JSON_value_index_offsets[cs]; - _klen = _JSON_value_single_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + _klen - 1; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + ((_upper-_lower) >> 1); - if ( data[p] < _JSON_value_trans_keys[_mid] ) - _upper = _mid - 1; - else if ( data[p] > _JSON_value_trans_keys[_mid] ) - _lower = _mid + 1; - else { - _trans += (_mid - _keys); - break _match; - } - } - _keys += _klen; - _trans += _klen; - } - - _klen = _JSON_value_range_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + (_klen<<1) - 2; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + (((_upper-_lower) >> 1) & ~1); - if ( data[p] < _JSON_value_trans_keys[_mid] ) - _upper = _mid - 2; - else if ( data[p] > _JSON_value_trans_keys[_mid+1] ) - _lower = _mid + 2; - else { - _trans += ((_mid - _keys)>>1); - break _match; - } - } - _trans += _klen; - } - } while (false); - - cs = _JSON_value_trans_targs[_trans]; - - if ( _JSON_value_trans_actions[_trans] != 0 ) { - _acts = _JSON_value_trans_actions[_trans]; - _nacts = (int) _JSON_value_actions[_acts++]; - while ( _nacts-- > 0 ) - { - switch ( _JSON_value_actions[_acts++] ) - { - case 0: -// line 332 "Parser.rl" - { - result = getRuntime().getNil(); - } - break; - case 1: -// line 335 "Parser.rl" - { - result = getRuntime().getFalse(); - } - break; - case 2: -// line 338 "Parser.rl" - { - result = getRuntime().getTrue(); - } - break; - case 3: -// line 341 "Parser.rl" - { - if (parser.allowNaN) { - result = getConstant(CONST_NAN); - } else { - throw unexpectedToken(p - 2, pe); - } - } - break; - case 4: -// line 348 "Parser.rl" - { - if (parser.allowNaN) { - result = getConstant(CONST_INFINITY); - } else { - throw unexpectedToken(p - 7, pe); - } - } - break; - case 5: -// line 355 "Parser.rl" - { - if (pe > p + 9 && - absSubSequence(p, p + 9).toString().equals(JSON_MINUS_INFINITY)) { - - if (parser.allowNaN) { - result = getConstant(CONST_MINUS_INFINITY); - {p = (( p + 10))-1;} - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } else { - throw unexpectedToken(p, pe); - } - } - ParserResult res = parseFloat(p, pe); - if (res != null) { - result = res.result; - {p = (( res.p))-1;} - } - res = parseInteger(p, pe); - if (res != null) { - result = res.result; - {p = (( res.p))-1;} - } - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } - break; - case 6: -// line 381 "Parser.rl" - { - ParserResult res = parseString(p, pe); - if (res == null) { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } else { - result = res.result; - {p = (( res.p))-1;} - } - } - break; - case 7: -// line 391 "Parser.rl" - { - currentNesting++; - ParserResult res = parseArray(p, pe); - currentNesting--; - if (res == null) { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } else { - result = res.result; - {p = (( res.p))-1;} - } - } - break; - case 8: -// line 403 "Parser.rl" - { - currentNesting++; - ParserResult res = parseObject(p, pe); - currentNesting--; - if (res == null) { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } else { - result = res.result; - {p = (( res.p))-1;} - } - } - break; -// line 639 "Parser.java" - } - } - } - -case 2: - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } - if ( ++p != pe ) { - _goto_targ = 1; - continue _goto; - } -case 4: -case 5: - } - break; } - } - -// line 438 "Parser.rl" - - if (cs >= JSON_value_first_final && result != null) { - return new ParserResult(result, p); - } else { - return null; - } - } - - -// line 669 "Parser.java" -private static byte[] init__JSON_integer_actions_0() -{ - return new byte [] { - 0, 1, 0 - }; -} - -private static final byte _JSON_integer_actions[] = init__JSON_integer_actions_0(); - - -private static byte[] init__JSON_integer_key_offsets_0() -{ - return new byte [] { - 0, 0, 4, 7, 9, 11 - }; -} - -private static final byte _JSON_integer_key_offsets[] = init__JSON_integer_key_offsets_0(); - - -private static char[] init__JSON_integer_trans_keys_0() -{ - return new char [] { - 45, 48, 49, 57, 48, 49, 57, 48, 57, 48, 57, 0 - }; -} - -private static final char _JSON_integer_trans_keys[] = init__JSON_integer_trans_keys_0(); - - -private static byte[] init__JSON_integer_single_lengths_0() -{ - return new byte [] { - 0, 2, 1, 0, 0, 0 - }; -} - -private static final byte _JSON_integer_single_lengths[] = init__JSON_integer_single_lengths_0(); - - -private static byte[] init__JSON_integer_range_lengths_0() -{ - return new byte [] { - 0, 1, 1, 1, 1, 0 - }; -} - -private static final byte _JSON_integer_range_lengths[] = init__JSON_integer_range_lengths_0(); - - -private static byte[] init__JSON_integer_index_offsets_0() -{ - return new byte [] { - 0, 0, 4, 7, 9, 11 - }; -} - -private static final byte _JSON_integer_index_offsets[] = init__JSON_integer_index_offsets_0(); - - -private static byte[] init__JSON_integer_indicies_0() -{ - return new byte [] { - 0, 2, 3, 1, 2, 3, 1, 1, 4, 3, 4, 1, - 0 - }; -} - -private static final byte _JSON_integer_indicies[] = init__JSON_integer_indicies_0(); - - -private static byte[] init__JSON_integer_trans_targs_0() -{ - return new byte [] { - 2, 0, 3, 4, 5 - }; -} - -private static final byte _JSON_integer_trans_targs[] = init__JSON_integer_trans_targs_0(); - - -private static byte[] init__JSON_integer_trans_actions_0() -{ - return new byte [] { - 0, 0, 0, 0, 1 - }; -} - -private static final byte _JSON_integer_trans_actions[] = init__JSON_integer_trans_actions_0(); - - -static final int JSON_integer_start = 1; -static final int JSON_integer_first_final = 5; -static final int JSON_integer_error = 0; - -static final int JSON_integer_en_main = 1; - - -// line 457 "Parser.rl" - - - ParserResult parseInteger(int p, int pe) { - int cs = EVIL; - - -// line 775 "Parser.java" - { - cs = JSON_integer_start; - } - -// line 463 "Parser.rl" - int memo = p; - -// line 783 "Parser.java" - { - int _klen; - int _trans = 0; - int _acts; - int _nacts; - int _keys; - int _goto_targ = 0; - - _goto: while (true) { - switch ( _goto_targ ) { - case 0: - if ( p == pe ) { - _goto_targ = 4; - continue _goto; - } - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } -case 1: - _match: do { - _keys = _JSON_integer_key_offsets[cs]; - _trans = _JSON_integer_index_offsets[cs]; - _klen = _JSON_integer_single_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + _klen - 1; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + ((_upper-_lower) >> 1); - if ( data[p] < _JSON_integer_trans_keys[_mid] ) - _upper = _mid - 1; - else if ( data[p] > _JSON_integer_trans_keys[_mid] ) - _lower = _mid + 1; - else { - _trans += (_mid - _keys); - break _match; - } - } - _keys += _klen; - _trans += _klen; - } - - _klen = _JSON_integer_range_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + (_klen<<1) - 2; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + (((_upper-_lower) >> 1) & ~1); - if ( data[p] < _JSON_integer_trans_keys[_mid] ) - _upper = _mid - 2; - else if ( data[p] > _JSON_integer_trans_keys[_mid+1] ) - _lower = _mid + 2; - else { - _trans += ((_mid - _keys)>>1); - break _match; - } - } - _trans += _klen; - } - } while (false); - - _trans = _JSON_integer_indicies[_trans]; - cs = _JSON_integer_trans_targs[_trans]; - - if ( _JSON_integer_trans_actions[_trans] != 0 ) { - _acts = _JSON_integer_trans_actions[_trans]; - _nacts = (int) _JSON_integer_actions[_acts++]; - while ( _nacts-- > 0 ) - { - switch ( _JSON_integer_actions[_acts++] ) - { - case 0: -// line 451 "Parser.rl" - { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } - break; -// line 870 "Parser.java" - } - } - } - -case 2: - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } - if ( ++p != pe ) { - _goto_targ = 1; - continue _goto; - } -case 4: -case 5: - } - break; } - } - -// line 465 "Parser.rl" - - if (cs < JSON_integer_first_final) { - return null; - } - - ByteList num = absSubSequence(memo, p); - // note: this is actually a shared string, but since it is temporary and - // read-only, it doesn't really matter - RubyString expr = RubyString.newStringLight(getRuntime(), num); - RubyInteger number = RubyNumeric.str2inum(getRuntime(), expr, 10, true); - return new ParserResult(number, p + 1); - } - - -// line 905 "Parser.java" -private static byte[] init__JSON_float_actions_0() -{ - return new byte [] { - 0, 1, 0 - }; -} - -private static final byte _JSON_float_actions[] = init__JSON_float_actions_0(); - - -private static byte[] init__JSON_float_key_offsets_0() -{ - return new byte [] { - 0, 0, 4, 7, 10, 12, 18, 22, 24, 30, 35 - }; -} - -private static final byte _JSON_float_key_offsets[] = init__JSON_float_key_offsets_0(); - - -private static char[] init__JSON_float_trans_keys_0() -{ - return new char [] { - 45, 48, 49, 57, 48, 49, 57, 46, 69, 101, 48, 57, - 69, 101, 45, 46, 48, 57, 43, 45, 48, 57, 48, 57, - 69, 101, 45, 46, 48, 57, 46, 69, 101, 48, 57, 0 - }; -} - -private static final char _JSON_float_trans_keys[] = init__JSON_float_trans_keys_0(); - - -private static byte[] init__JSON_float_single_lengths_0() -{ - return new byte [] { - 0, 2, 1, 3, 0, 2, 2, 0, 2, 3, 0 - }; -} - -private static final byte _JSON_float_single_lengths[] = init__JSON_float_single_lengths_0(); - - -private static byte[] init__JSON_float_range_lengths_0() -{ - return new byte [] { - 0, 1, 1, 0, 1, 2, 1, 1, 2, 1, 0 - }; -} - -private static final byte _JSON_float_range_lengths[] = init__JSON_float_range_lengths_0(); - - -private static byte[] init__JSON_float_index_offsets_0() -{ - return new byte [] { - 0, 0, 4, 7, 11, 13, 18, 22, 24, 29, 34 - }; -} - -private static final byte _JSON_float_index_offsets[] = init__JSON_float_index_offsets_0(); - - -private static byte[] init__JSON_float_indicies_0() -{ - return new byte [] { - 0, 2, 3, 1, 2, 3, 1, 4, 5, 5, 1, 6, - 1, 5, 5, 1, 6, 7, 8, 8, 9, 1, 9, 1, - 1, 1, 1, 9, 7, 4, 5, 5, 3, 1, 1, 0 - }; -} - -private static final byte _JSON_float_indicies[] = init__JSON_float_indicies_0(); - - -private static byte[] init__JSON_float_trans_targs_0() -{ - return new byte [] { - 2, 0, 3, 9, 4, 6, 5, 10, 7, 8 - }; -} - -private static final byte _JSON_float_trans_targs[] = init__JSON_float_trans_targs_0(); - - -private static byte[] init__JSON_float_trans_actions_0() -{ - return new byte [] { - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 - }; -} - -private static final byte _JSON_float_trans_actions[] = init__JSON_float_trans_actions_0(); - - -static final int JSON_float_start = 1; -static final int JSON_float_first_final = 10; -static final int JSON_float_error = 0; - -static final int JSON_float_en_main = 1; - - -// line 493 "Parser.rl" - - - ParserResult parseFloat(int p, int pe) { - int cs = EVIL; - - -// line 1014 "Parser.java" - { - cs = JSON_float_start; - } - -// line 499 "Parser.rl" - int memo = p; - -// line 1022 "Parser.java" - { - int _klen; - int _trans = 0; - int _acts; - int _nacts; - int _keys; - int _goto_targ = 0; - - _goto: while (true) { - switch ( _goto_targ ) { - case 0: - if ( p == pe ) { - _goto_targ = 4; - continue _goto; - } - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } -case 1: - _match: do { - _keys = _JSON_float_key_offsets[cs]; - _trans = _JSON_float_index_offsets[cs]; - _klen = _JSON_float_single_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + _klen - 1; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + ((_upper-_lower) >> 1); - if ( data[p] < _JSON_float_trans_keys[_mid] ) - _upper = _mid - 1; - else if ( data[p] > _JSON_float_trans_keys[_mid] ) - _lower = _mid + 1; - else { - _trans += (_mid - _keys); - break _match; - } - } - _keys += _klen; - _trans += _klen; - } - - _klen = _JSON_float_range_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + (_klen<<1) - 2; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + (((_upper-_lower) >> 1) & ~1); - if ( data[p] < _JSON_float_trans_keys[_mid] ) - _upper = _mid - 2; - else if ( data[p] > _JSON_float_trans_keys[_mid+1] ) - _lower = _mid + 2; - else { - _trans += ((_mid - _keys)>>1); - break _match; - } - } - _trans += _klen; - } - } while (false); - - _trans = _JSON_float_indicies[_trans]; - cs = _JSON_float_trans_targs[_trans]; - - if ( _JSON_float_trans_actions[_trans] != 0 ) { - _acts = _JSON_float_trans_actions[_trans]; - _nacts = (int) _JSON_float_actions[_acts++]; - while ( _nacts-- > 0 ) - { - switch ( _JSON_float_actions[_acts++] ) - { - case 0: -// line 484 "Parser.rl" - { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } - break; -// line 1109 "Parser.java" - } - } - } - -case 2: - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } - if ( ++p != pe ) { - _goto_targ = 1; - continue _goto; - } -case 4: -case 5: - } - break; } - } - -// line 501 "Parser.rl" - - if (cs < JSON_float_first_final) { - return null; - } - - ByteList num = absSubSequence(memo, p); - // note: this is actually a shared string, but since it is temporary and - // read-only, it doesn't really matter - RubyString expr = RubyString.newStringLight(getRuntime(), num); - RubyFloat number = RubyNumeric.str2fnum(getRuntime(), expr, true); - return new ParserResult(number, p + 1); - } - - -// line 1144 "Parser.java" -private static byte[] init__JSON_string_actions_0() -{ - return new byte [] { - 0, 2, 0, 1 - }; -} - -private static final byte _JSON_string_actions[] = init__JSON_string_actions_0(); - - -private static byte[] init__JSON_string_key_offsets_0() -{ - return new byte [] { - 0, 0, 1, 5, 8, 14, 20, 26, 32 - }; -} - -private static final byte _JSON_string_key_offsets[] = init__JSON_string_key_offsets_0(); - - -private static char[] init__JSON_string_trans_keys_0() -{ - return new char [] { - 34, 34, 92, 0, 31, 117, 0, 31, 48, 57, 65, 70, - 97, 102, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, - 97, 102, 48, 57, 65, 70, 97, 102, 0 - }; -} - -private static final char _JSON_string_trans_keys[] = init__JSON_string_trans_keys_0(); - - -private static byte[] init__JSON_string_single_lengths_0() -{ - return new byte [] { - 0, 1, 2, 1, 0, 0, 0, 0, 0 - }; -} - -private static final byte _JSON_string_single_lengths[] = init__JSON_string_single_lengths_0(); - - -private static byte[] init__JSON_string_range_lengths_0() -{ - return new byte [] { - 0, 0, 1, 1, 3, 3, 3, 3, 0 - }; -} - -private static final byte _JSON_string_range_lengths[] = init__JSON_string_range_lengths_0(); - - -private static byte[] init__JSON_string_index_offsets_0() -{ - return new byte [] { - 0, 0, 2, 6, 9, 13, 17, 21, 25 - }; -} - -private static final byte _JSON_string_index_offsets[] = init__JSON_string_index_offsets_0(); - - -private static byte[] init__JSON_string_indicies_0() -{ - return new byte [] { - 0, 1, 2, 3, 1, 0, 4, 1, 0, 5, 5, 5, - 1, 6, 6, 6, 1, 7, 7, 7, 1, 0, 0, 0, - 1, 1, 0 - }; -} - -private static final byte _JSON_string_indicies[] = init__JSON_string_indicies_0(); - - -private static byte[] init__JSON_string_trans_targs_0() -{ - return new byte [] { - 2, 0, 8, 3, 4, 5, 6, 7 - }; -} - -private static final byte _JSON_string_trans_targs[] = init__JSON_string_trans_targs_0(); - - -private static byte[] init__JSON_string_trans_actions_0() -{ - return new byte [] { - 0, 0, 1, 0, 0, 0, 0, 0 - }; -} - -private static final byte _JSON_string_trans_actions[] = init__JSON_string_trans_actions_0(); - - -static final int JSON_string_start = 1; -static final int JSON_string_first_final = 8; -static final int JSON_string_error = 0; - -static final int JSON_string_en_main = 1; - - -// line 545 "Parser.rl" - - - ParserResult parseString(int p, int pe) { - int cs = EVIL; - IRubyObject result = null; - - -// line 1254 "Parser.java" - { - cs = JSON_string_start; - } - -// line 552 "Parser.rl" - int memo = p; - -// line 1262 "Parser.java" - { - int _klen; - int _trans = 0; - int _acts; - int _nacts; - int _keys; - int _goto_targ = 0; - - _goto: while (true) { - switch ( _goto_targ ) { - case 0: - if ( p == pe ) { - _goto_targ = 4; - continue _goto; - } - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } -case 1: - _match: do { - _keys = _JSON_string_key_offsets[cs]; - _trans = _JSON_string_index_offsets[cs]; - _klen = _JSON_string_single_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + _klen - 1; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + ((_upper-_lower) >> 1); - if ( data[p] < _JSON_string_trans_keys[_mid] ) - _upper = _mid - 1; - else if ( data[p] > _JSON_string_trans_keys[_mid] ) - _lower = _mid + 1; - else { - _trans += (_mid - _keys); - break _match; - } - } - _keys += _klen; - _trans += _klen; - } - - _klen = _JSON_string_range_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + (_klen<<1) - 2; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + (((_upper-_lower) >> 1) & ~1); - if ( data[p] < _JSON_string_trans_keys[_mid] ) - _upper = _mid - 2; - else if ( data[p] > _JSON_string_trans_keys[_mid+1] ) - _lower = _mid + 2; - else { - _trans += ((_mid - _keys)>>1); - break _match; - } - } - _trans += _klen; - } - } while (false); - - _trans = _JSON_string_indicies[_trans]; - cs = _JSON_string_trans_targs[_trans]; - - if ( _JSON_string_trans_actions[_trans] != 0 ) { - _acts = _JSON_string_trans_actions[_trans]; - _nacts = (int) _JSON_string_actions[_acts++]; - while ( _nacts-- > 0 ) - { - switch ( _JSON_string_actions[_acts++] ) - { - case 0: -// line 520 "Parser.rl" - { - int offset = byteList.begin(); - ByteList decoded = decoder.decode(byteList, memo + 1 - offset, - p - offset); - result = getRuntime().newString(decoded); - if (result == null) { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } else { - {p = (( p + 1))-1;} - } - } - break; - case 1: -// line 533 "Parser.rl" - { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } - break; -// line 1364 "Parser.java" - } - } - } - -case 2: - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } - if ( ++p != pe ) { - _goto_targ = 1; - continue _goto; - } -case 4: -case 5: - } - break; } - } - -// line 554 "Parser.rl" - - if (parser.createAdditions) { - RubyHash match_string = parser.match_string; - if (match_string != null) { - final IRubyObject[] memoArray = { result, null }; - try { - match_string.visitAll(new RubyHash.Visitor() { - @Override - public void visit(IRubyObject pattern, IRubyObject klass) { - if (pattern.callMethod(context, "===", memoArray[0]).isTrue()) { - memoArray[1] = klass; - throw JumpException.SPECIAL_JUMP; - } - } - }); - } catch (JumpException e) { } - if (memoArray[1] != null) { - RubyClass klass = (RubyClass) memoArray[1]; - if (klass.respondsTo("json_creatable?") && - klass.callMethod(context, "json_creatable?").isTrue()) { - result = klass.callMethod(context, "json_create", result); - } - } - } - } - - if (cs >= JSON_string_first_final && result != null) { - return new ParserResult(result, p + 1); - } else { - return null; - } - } - - -// line 1419 "Parser.java" -private static byte[] init__JSON_array_actions_0() -{ - return new byte [] { - 0, 1, 0, 1, 1 - }; -} - -private static final byte _JSON_array_actions[] = init__JSON_array_actions_0(); - - -private static byte[] init__JSON_array_key_offsets_0() -{ - return new byte [] { - 0, 0, 1, 18, 25, 41, 43, 44, 46, 47, 49, 50, - 52, 53, 55, 56, 58, 59 - }; -} - -private static final byte _JSON_array_key_offsets[] = init__JSON_array_key_offsets_0(); - - -private static char[] init__JSON_array_trans_keys_0() -{ - return new char [] { - 91, 13, 32, 34, 45, 47, 73, 78, 91, 93, 102, 110, - 116, 123, 9, 10, 48, 57, 13, 32, 44, 47, 93, 9, - 10, 13, 32, 34, 45, 47, 73, 78, 91, 102, 110, 116, - 123, 9, 10, 48, 57, 42, 47, 42, 42, 47, 10, 42, - 47, 42, 42, 47, 10, 42, 47, 42, 42, 47, 10, 0 - }; -} - -private static final char _JSON_array_trans_keys[] = init__JSON_array_trans_keys_0(); - - -private static byte[] init__JSON_array_single_lengths_0() -{ - return new byte [] { - 0, 1, 13, 5, 12, 2, 1, 2, 1, 2, 1, 2, - 1, 2, 1, 2, 1, 0 - }; -} - -private static final byte _JSON_array_single_lengths[] = init__JSON_array_single_lengths_0(); - - -private static byte[] init__JSON_array_range_lengths_0() -{ - return new byte [] { - 0, 0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 - }; -} - -private static final byte _JSON_array_range_lengths[] = init__JSON_array_range_lengths_0(); - - -private static byte[] init__JSON_array_index_offsets_0() -{ - return new byte [] { - 0, 0, 2, 18, 25, 40, 43, 45, 48, 50, 53, 55, - 58, 60, 63, 65, 68, 70 - }; -} - -private static final byte _JSON_array_index_offsets[] = init__JSON_array_index_offsets_0(); - - -private static byte[] init__JSON_array_indicies_0() -{ - return new byte [] { - 0, 1, 0, 0, 2, 2, 3, 2, 2, 2, 4, 2, - 2, 2, 2, 0, 2, 1, 5, 5, 6, 7, 4, 5, - 1, 6, 6, 2, 2, 8, 2, 2, 2, 2, 2, 2, - 2, 6, 2, 1, 9, 10, 1, 11, 9, 11, 6, 9, - 6, 10, 12, 13, 1, 14, 12, 14, 5, 12, 5, 13, - 15, 16, 1, 17, 15, 17, 0, 15, 0, 16, 1, 0 - }; -} - -private static final byte _JSON_array_indicies[] = init__JSON_array_indicies_0(); - - -private static byte[] init__JSON_array_trans_targs_0() -{ - return new byte [] { - 2, 0, 3, 13, 17, 3, 4, 9, 5, 6, 8, 7, - 10, 12, 11, 14, 16, 15 - }; -} - -private static final byte _JSON_array_trans_targs[] = init__JSON_array_trans_targs_0(); - - -private static byte[] init__JSON_array_trans_actions_0() -{ - return new byte [] { - 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 - }; -} - -private static final byte _JSON_array_trans_actions[] = init__JSON_array_trans_actions_0(); - - -static final int JSON_array_start = 1; -static final int JSON_array_first_final = 17; -static final int JSON_array_error = 0; - -static final int JSON_array_en_main = 1; - - -// line 620 "Parser.rl" - - - ParserResult parseArray(int p, int pe) { - int cs = EVIL; - - if (parser.maxNesting > 0 && currentNesting > parser.maxNesting) { - throw newException(Utils.M_NESTING_ERROR, - "nesting of " + currentNesting + " is too deep"); - } - - // this is guaranteed to be a RubyArray due to the earlier - // allocator test at OptionsReader#getClass - RubyArray result = - (RubyArray)parser.arrayClass.newInstance(context, - IRubyObject.NULL_ARRAY, Block.NULL_BLOCK); - - -// line 1550 "Parser.java" - { - cs = JSON_array_start; - } - -// line 637 "Parser.rl" - -// line 1557 "Parser.java" - { - int _klen; - int _trans = 0; - int _acts; - int _nacts; - int _keys; - int _goto_targ = 0; - - _goto: while (true) { - switch ( _goto_targ ) { - case 0: - if ( p == pe ) { - _goto_targ = 4; - continue _goto; - } - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } -case 1: - _match: do { - _keys = _JSON_array_key_offsets[cs]; - _trans = _JSON_array_index_offsets[cs]; - _klen = _JSON_array_single_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + _klen - 1; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + ((_upper-_lower) >> 1); - if ( data[p] < _JSON_array_trans_keys[_mid] ) - _upper = _mid - 1; - else if ( data[p] > _JSON_array_trans_keys[_mid] ) - _lower = _mid + 1; - else { - _trans += (_mid - _keys); - break _match; - } - } - _keys += _klen; - _trans += _klen; - } - - _klen = _JSON_array_range_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + (_klen<<1) - 2; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + (((_upper-_lower) >> 1) & ~1); - if ( data[p] < _JSON_array_trans_keys[_mid] ) - _upper = _mid - 2; - else if ( data[p] > _JSON_array_trans_keys[_mid+1] ) - _lower = _mid + 2; - else { - _trans += ((_mid - _keys)>>1); - break _match; - } - } - _trans += _klen; - } - } while (false); - - _trans = _JSON_array_indicies[_trans]; - cs = _JSON_array_trans_targs[_trans]; - - if ( _JSON_array_trans_actions[_trans] != 0 ) { - _acts = _JSON_array_trans_actions[_trans]; - _nacts = (int) _JSON_array_actions[_acts++]; - while ( _nacts-- > 0 ) - { - switch ( _JSON_array_actions[_acts++] ) - { - case 0: -// line 593 "Parser.rl" - { - ParserResult res = parseValue(p, pe); - if (res == null) { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } else { - result.append(res.result); - {p = (( res.p))-1;} - } - } - break; - case 1: -// line 604 "Parser.rl" - { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } - break; -// line 1657 "Parser.java" - } - } - } - -case 2: - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } - if ( ++p != pe ) { - _goto_targ = 1; - continue _goto; - } -case 4: -case 5: - } - break; } - } - -// line 638 "Parser.rl" - - if (cs >= JSON_array_first_final) { - return new ParserResult(result, p + 1); - } else { - throw unexpectedToken(p, pe); - } - } - - -// line 1687 "Parser.java" -private static byte[] init__JSON_object_actions_0() -{ - return new byte [] { - 0, 1, 0, 1, 1, 1, 2 - }; -} - -private static final byte _JSON_object_actions[] = init__JSON_object_actions_0(); - - -private static byte[] init__JSON_object_key_offsets_0() -{ - return new byte [] { - 0, 0, 1, 8, 14, 16, 17, 19, 20, 36, 43, 49, - 51, 52, 54, 55, 57, 58, 60, 61, 63, 64, 66, 67, - 69, 70, 72, 73 - }; -} - -private static final byte _JSON_object_key_offsets[] = init__JSON_object_key_offsets_0(); - - -private static char[] init__JSON_object_trans_keys_0() -{ - return new char [] { - 123, 13, 32, 34, 47, 125, 9, 10, 13, 32, 47, 58, - 9, 10, 42, 47, 42, 42, 47, 10, 13, 32, 34, 45, - 47, 73, 78, 91, 102, 110, 116, 123, 9, 10, 48, 57, - 13, 32, 44, 47, 125, 9, 10, 13, 32, 34, 47, 9, - 10, 42, 47, 42, 42, 47, 10, 42, 47, 42, 42, 47, - 10, 42, 47, 42, 42, 47, 10, 42, 47, 42, 42, 47, - 10, 0 - }; -} - -private static final char _JSON_object_trans_keys[] = init__JSON_object_trans_keys_0(); - - -private static byte[] init__JSON_object_single_lengths_0() -{ - return new byte [] { - 0, 1, 5, 4, 2, 1, 2, 1, 12, 5, 4, 2, - 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, - 1, 2, 1, 0 - }; -} - -private static final byte _JSON_object_single_lengths[] = init__JSON_object_single_lengths_0(); - - -private static byte[] init__JSON_object_range_lengths_0() -{ - return new byte [] { - 0, 0, 1, 1, 0, 0, 0, 0, 2, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 - }; -} - -private static final byte _JSON_object_range_lengths[] = init__JSON_object_range_lengths_0(); - - -private static byte[] init__JSON_object_index_offsets_0() -{ - return new byte [] { - 0, 0, 2, 9, 15, 18, 20, 23, 25, 40, 47, 53, - 56, 58, 61, 63, 66, 68, 71, 73, 76, 78, 81, 83, - 86, 88, 91, 93 - }; -} - -private static final byte _JSON_object_index_offsets[] = init__JSON_object_index_offsets_0(); - - -private static byte[] init__JSON_object_indicies_0() -{ - return new byte [] { - 0, 1, 0, 0, 2, 3, 4, 0, 1, 5, 5, 6, - 7, 5, 1, 8, 9, 1, 10, 8, 10, 5, 8, 5, - 9, 7, 7, 11, 11, 12, 11, 11, 11, 11, 11, 11, - 11, 7, 11, 1, 13, 13, 14, 15, 4, 13, 1, 14, - 14, 2, 16, 14, 1, 17, 18, 1, 19, 17, 19, 14, - 17, 14, 18, 20, 21, 1, 22, 20, 22, 13, 20, 13, - 21, 23, 24, 1, 25, 23, 25, 7, 23, 7, 24, 26, - 27, 1, 28, 26, 28, 0, 26, 0, 27, 1, 0 - }; -} - -private static final byte _JSON_object_indicies[] = init__JSON_object_indicies_0(); - - -private static byte[] init__JSON_object_trans_targs_0() -{ - return new byte [] { - 2, 0, 3, 23, 27, 3, 4, 8, 5, 7, 6, 9, - 19, 9, 10, 15, 11, 12, 14, 13, 16, 18, 17, 20, - 22, 21, 24, 26, 25 - }; -} - -private static final byte _JSON_object_trans_targs[] = init__JSON_object_trans_targs_0(); - - -private static byte[] init__JSON_object_trans_actions_0() -{ - return new byte [] { - 0, 0, 3, 0, 5, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0 - }; -} - -private static final byte _JSON_object_trans_actions[] = init__JSON_object_trans_actions_0(); - - -static final int JSON_object_start = 1; -static final int JSON_object_first_final = 27; -static final int JSON_object_error = 0; - -static final int JSON_object_en_main = 1; - - -// line 694 "Parser.rl" - - - ParserResult parseObject(int p, int pe) { - int cs = EVIL; - IRubyObject lastName = null; - - if (parser.maxNesting > 0 && currentNesting > parser.maxNesting) { - throw newException(Utils.M_NESTING_ERROR, - "nesting of " + currentNesting + " is too deep"); - } - - // this is guaranteed to be a RubyHash due to the earlier - // allocator test at OptionsReader#getClass - RubyHash result = - (RubyHash)parser.objectClass.newInstance(context, - IRubyObject.NULL_ARRAY, Block.NULL_BLOCK); - - -// line 1829 "Parser.java" - { - cs = JSON_object_start; - } - -// line 712 "Parser.rl" - -// line 1836 "Parser.java" - { - int _klen; - int _trans = 0; - int _acts; - int _nacts; - int _keys; - int _goto_targ = 0; - - _goto: while (true) { - switch ( _goto_targ ) { - case 0: - if ( p == pe ) { - _goto_targ = 4; - continue _goto; - } - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } -case 1: - _match: do { - _keys = _JSON_object_key_offsets[cs]; - _trans = _JSON_object_index_offsets[cs]; - _klen = _JSON_object_single_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + _klen - 1; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + ((_upper-_lower) >> 1); - if ( data[p] < _JSON_object_trans_keys[_mid] ) - _upper = _mid - 1; - else if ( data[p] > _JSON_object_trans_keys[_mid] ) - _lower = _mid + 1; - else { - _trans += (_mid - _keys); - break _match; - } - } - _keys += _klen; - _trans += _klen; - } - - _klen = _JSON_object_range_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + (_klen<<1) - 2; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + (((_upper-_lower) >> 1) & ~1); - if ( data[p] < _JSON_object_trans_keys[_mid] ) - _upper = _mid - 2; - else if ( data[p] > _JSON_object_trans_keys[_mid+1] ) - _lower = _mid + 2; - else { - _trans += ((_mid - _keys)>>1); - break _match; - } - } - _trans += _klen; - } - } while (false); - - _trans = _JSON_object_indicies[_trans]; - cs = _JSON_object_trans_targs[_trans]; - - if ( _JSON_object_trans_actions[_trans] != 0 ) { - _acts = _JSON_object_trans_actions[_trans]; - _nacts = (int) _JSON_object_actions[_acts++]; - while ( _nacts-- > 0 ) - { - switch ( _JSON_object_actions[_acts++] ) - { - case 0: -// line 652 "Parser.rl" - { - ParserResult res = parseValue(p, pe); - if (res == null) { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } else { - result.op_aset(context, lastName, res.result); - {p = (( res.p))-1;} - } - } - break; - case 1: -// line 663 "Parser.rl" - { - ParserResult res = parseString(p, pe); - if (res == null) { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } else { - RubyString name = (RubyString)res.result; - if (parser.symbolizeNames) { - lastName = context.getRuntime().is1_9() - ? name.intern19() - : name.intern(); - } else { - lastName = name; - } - {p = (( res.p))-1;} - } - } - break; - case 2: -// line 681 "Parser.rl" - { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } - break; -// line 1956 "Parser.java" - } - } - } - -case 2: - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } - if ( ++p != pe ) { - _goto_targ = 1; - continue _goto; - } -case 4: -case 5: - } - break; } - } - -// line 713 "Parser.rl" - - if (cs < JSON_object_first_final) { - return null; - } - - IRubyObject returnedResult = result; - - // attempt to de-serialize object - if (parser.createAdditions) { - IRubyObject vKlassName = result.op_aref(context, parser.createId); - if (!vKlassName.isNil()) { - // might throw ArgumentError, we let it propagate - IRubyObject klass = parser.info.jsonModule. - callMethod(context, "deep_const_get", vKlassName); - if (klass.respondsTo("json_creatable?") && - klass.callMethod(context, "json_creatable?").isTrue()) { - - returnedResult = klass.callMethod(context, "json_create", result); - } - } - } - return new ParserResult(returnedResult, p + 1); - } - - -// line 2002 "Parser.java" -private static byte[] init__JSON_actions_0() -{ - return new byte [] { - 0, 1, 0, 1, 1 - }; -} - -private static final byte _JSON_actions[] = init__JSON_actions_0(); - - -private static byte[] init__JSON_key_offsets_0() -{ - return new byte [] { - 0, 0, 7, 9, 10, 12, 13, 15, 16, 18, 19 - }; -} - -private static final byte _JSON_key_offsets[] = init__JSON_key_offsets_0(); - - -private static char[] init__JSON_trans_keys_0() -{ - return new char [] { - 13, 32, 47, 91, 123, 9, 10, 42, 47, 42, 42, 47, - 10, 42, 47, 42, 42, 47, 10, 13, 32, 47, 9, 10, - 0 - }; -} - -private static final char _JSON_trans_keys[] = init__JSON_trans_keys_0(); - - -private static byte[] init__JSON_single_lengths_0() -{ - return new byte [] { - 0, 5, 2, 1, 2, 1, 2, 1, 2, 1, 3 - }; -} - -private static final byte _JSON_single_lengths[] = init__JSON_single_lengths_0(); - - -private static byte[] init__JSON_range_lengths_0() -{ - return new byte [] { - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 - }; -} - -private static final byte _JSON_range_lengths[] = init__JSON_range_lengths_0(); - - -private static byte[] init__JSON_index_offsets_0() -{ - return new byte [] { - 0, 0, 7, 10, 12, 15, 17, 20, 22, 25, 27 - }; -} - -private static final byte _JSON_index_offsets[] = init__JSON_index_offsets_0(); - - -private static byte[] init__JSON_indicies_0() -{ - return new byte [] { - 0, 0, 2, 3, 4, 0, 1, 5, 6, 1, 7, 5, - 7, 0, 5, 0, 6, 8, 9, 1, 10, 8, 10, 11, - 8, 11, 9, 11, 11, 12, 11, 1, 0 - }; -} - -private static final byte _JSON_indicies[] = init__JSON_indicies_0(); - - -private static byte[] init__JSON_trans_targs_0() -{ - return new byte [] { - 1, 0, 2, 10, 10, 3, 5, 4, 7, 9, 8, 10, - 6 - }; -} - -private static final byte _JSON_trans_targs[] = init__JSON_trans_targs_0(); - - -private static byte[] init__JSON_trans_actions_0() -{ - return new byte [] { - 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0 - }; -} - -private static final byte _JSON_trans_actions[] = init__JSON_trans_actions_0(); - - -static final int JSON_start = 1; -static final int JSON_first_final = 10; -static final int JSON_error = 0; - -static final int JSON_en_main = 1; - - -// line 771 "Parser.rl" - - - public IRubyObject parse() { - int cs = EVIL; - int p, pe; - IRubyObject result = null; - - -// line 2115 "Parser.java" - { - cs = JSON_start; - } - -// line 779 "Parser.rl" - p = byteList.begin(); - pe = p + byteList.length(); - -// line 2124 "Parser.java" - { - int _klen; - int _trans = 0; - int _acts; - int _nacts; - int _keys; - int _goto_targ = 0; - - _goto: while (true) { - switch ( _goto_targ ) { - case 0: - if ( p == pe ) { - _goto_targ = 4; - continue _goto; - } - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } -case 1: - _match: do { - _keys = _JSON_key_offsets[cs]; - _trans = _JSON_index_offsets[cs]; - _klen = _JSON_single_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + _klen - 1; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + ((_upper-_lower) >> 1); - if ( data[p] < _JSON_trans_keys[_mid] ) - _upper = _mid - 1; - else if ( data[p] > _JSON_trans_keys[_mid] ) - _lower = _mid + 1; - else { - _trans += (_mid - _keys); - break _match; - } - } - _keys += _klen; - _trans += _klen; - } - - _klen = _JSON_range_lengths[cs]; - if ( _klen > 0 ) { - int _lower = _keys; - int _mid; - int _upper = _keys + (_klen<<1) - 2; - while (true) { - if ( _upper < _lower ) - break; - - _mid = _lower + (((_upper-_lower) >> 1) & ~1); - if ( data[p] < _JSON_trans_keys[_mid] ) - _upper = _mid - 2; - else if ( data[p] > _JSON_trans_keys[_mid+1] ) - _lower = _mid + 2; - else { - _trans += ((_mid - _keys)>>1); - break _match; - } - } - _trans += _klen; - } - } while (false); - - _trans = _JSON_indicies[_trans]; - cs = _JSON_trans_targs[_trans]; - - if ( _JSON_trans_actions[_trans] != 0 ) { - _acts = _JSON_trans_actions[_trans]; - _nacts = (int) _JSON_actions[_acts++]; - while ( _nacts-- > 0 ) - { - switch ( _JSON_actions[_acts++] ) - { - case 0: -// line 743 "Parser.rl" - { - currentNesting = 1; - ParserResult res = parseObject(p, pe); - if (res == null) { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } else { - result = res.result; - {p = (( res.p))-1;} - } - } - break; - case 1: -// line 755 "Parser.rl" - { - currentNesting = 1; - ParserResult res = parseArray(p, pe); - if (res == null) { - p--; - { p += 1; _goto_targ = 5; if (true) continue _goto;} - } else { - result = res.result; - {p = (( res.p))-1;} - } - } - break; -// line 2232 "Parser.java" - } - } - } - -case 2: - if ( cs == 0 ) { - _goto_targ = 5; - continue _goto; - } - if ( ++p != pe ) { - _goto_targ = 1; - continue _goto; - } -case 4: -case 5: - } - break; } - } - -// line 782 "Parser.rl" - - if (cs >= JSON_first_final && p == pe) { - return result; - } else { - throw unexpectedToken(p, pe); - } - } - - /** - * Returns a subsequence of the source ByteList, based on source - * array byte offsets (i.e., the ByteList's own begin offset is not - * automatically added). - * @param start - * @param end - */ - private ByteList absSubSequence(int absStart, int absEnd) { - int offset = byteList.begin(); - return (ByteList)byteList.subSequence(absStart - offset, - absEnd - offset); - } - - /** - * Retrieves a constant directly descended from the <code>JSON</code> module. - * @param name The constant name - */ - private IRubyObject getConstant(String name) { - return parser.info.jsonModule.getConstant(name); - } - - private RaiseException newException(String className, String message) { - return Utils.newException(context, className, message); - } - - private RaiseException newException(String className, RubyString message) { - return Utils.newException(context, className, message); - } - - private RaiseException newException(String className, - String messageBegin, ByteList messageEnd) { - return newException(className, - getRuntime().newString(messageBegin).cat(messageEnd)); - } - } -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/Parser.rl b/lib/mcollective/vendor/json/java/src/json/ext/Parser.rl deleted file mode 100644 index e576b97..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/Parser.rl +++ /dev/null @@ -1,825 +0,0 @@ -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import org.jruby.Ruby; -import org.jruby.RubyArray; -import org.jruby.RubyClass; -import org.jruby.RubyEncoding; -import org.jruby.RubyFloat; -import org.jruby.RubyHash; -import org.jruby.RubyInteger; -import org.jruby.RubyModule; -import org.jruby.RubyNumeric; -import org.jruby.RubyObject; -import org.jruby.RubyString; -import org.jruby.anno.JRubyMethod; -import org.jruby.exceptions.JumpException; -import org.jruby.exceptions.RaiseException; -import org.jruby.runtime.Block; -import org.jruby.runtime.ObjectAllocator; -import org.jruby.runtime.ThreadContext; -import org.jruby.runtime.Visibility; -import org.jruby.runtime.builtin.IRubyObject; -import org.jruby.util.ByteList; - -/** - * The <code>JSON::Ext::Parser</code> class. - * - * <p>This is the JSON parser implemented as a Java class. To use it as the - * standard parser, set - * <pre>JSON.parser = JSON::Ext::Parser</pre> - * This is performed for you when you <code>include "json/ext"</code>. - * - * <p>This class does not perform the actual parsing, just acts as an interface - * to Ruby code. When the {@link #parse()} method is invoked, a - * Parser.ParserSession object is instantiated, which handles the process. - * - * @author mernen - */ -public class Parser extends RubyObject { - private final RuntimeInfo info; - private RubyString vSource; - private RubyString createId; - private boolean createAdditions; - private int maxNesting; - private boolean allowNaN; - private boolean symbolizeNames; - private RubyClass objectClass; - private RubyClass arrayClass; - private RubyHash match_string; - - private static final int DEFAULT_MAX_NESTING = 19; - - private static final String JSON_MINUS_INFINITY = "-Infinity"; - // constant names in the JSON module containing those values - private static final String CONST_NAN = "NaN"; - private static final String CONST_INFINITY = "Infinity"; - private static final String CONST_MINUS_INFINITY = "MinusInfinity"; - - static final ObjectAllocator ALLOCATOR = new ObjectAllocator() { - public IRubyObject allocate(Ruby runtime, RubyClass klazz) { - return new Parser(runtime, klazz); - } - }; - - /** - * Multiple-value return for internal parser methods. - * - * <p>All the <code>parse<var>Stuff</var></code> methods return instances of - * <code>ParserResult</code> when successful, or <code>null</code> when - * there's a problem with the input data. - */ - static final class ParserResult { - /** - * The result of the successful parsing. Should never be - * <code>null</code>. - */ - final IRubyObject result; - /** - * The point where the parser returned. - */ - final int p; - - ParserResult(IRubyObject result, int p) { - this.result = result; - this.p = p; - } - } - - public Parser(Ruby runtime, RubyClass metaClass) { - super(runtime, metaClass); - info = RuntimeInfo.forRuntime(runtime); - } - - /** - * <code>Parser.new(source, opts = {})</code> - * - * <p>Creates a new <code>JSON::Ext::Parser</code> instance for the string - * <code>source</code>. - * It will be configured by the <code>opts</code> Hash. - * <code>opts</code> can have the following keys: - * - * <dl> - * <dt><code>:max_nesting</code> - * <dd>The maximum depth of nesting allowed in the parsed data - * structures. Disable depth checking with <code>:max_nesting => false|nil|0</code>, - * it defaults to 19. - * - * <dt><code>:allow_nan</code> - * <dd>If set to <code>true</code>, allow <code>NaN</code>, - * <code>Infinity</code> and <code>-Infinity</code> in defiance of RFC 4627 - * to be parsed by the Parser. This option defaults to <code>false</code>. - * - * <dt><code>:symbolize_names</code> - * <dd>If set to <code>true</code>, returns symbols for the names (keys) in - * a JSON object. Otherwise strings are returned, which is also the default. - * - * <dt><code>:create_additions</code> - * <dd>If set to <code>false</code>, the Parser doesn't create additions - * even if a matchin class and <code>create_id</code> was found. This option - * defaults to <code>true</code>. - * - * <dt><code>:object_class</code> - * <dd>Defaults to Hash. - * - * <dt><code>:array_class</code> - * <dd>Defaults to Array. - * </dl> - */ - @JRubyMethod(name = "new", required = 1, optional = 1, meta = true) - public static IRubyObject newInstance(IRubyObject clazz, IRubyObject[] args, Block block) { - Parser parser = (Parser)((RubyClass)clazz).allocate(); - - parser.callInit(args, block); - - return parser; - } - - @JRubyMethod(required = 1, optional = 1, visibility = Visibility.PRIVATE) - public IRubyObject initialize(ThreadContext context, IRubyObject[] args) { - Ruby runtime = context.getRuntime(); - RubyString source = convertEncoding(context, args[0].convertToString()); - - OptionsReader opts = new OptionsReader(context, args.length > 1 ? args[1] : null); - this.maxNesting = opts.getInt("max_nesting", DEFAULT_MAX_NESTING); - this.allowNaN = opts.getBool("allow_nan", false); - this.symbolizeNames = opts.getBool("symbolize_names", false); - this.createId = opts.getString("create_id", getCreateId(context)); - this.createAdditions = opts.getBool("create_additions", true); - this.objectClass = opts.getClass("object_class", runtime.getHash()); - this.arrayClass = opts.getClass("array_class", runtime.getArray()); - this.match_string = opts.getHash("match_string"); - - this.vSource = source; - return this; - } - - /** - * Checks the given string's encoding. If a non-UTF-8 encoding is detected, - * a converted copy is returned. - * Returns the source string if no conversion is needed. - */ - private RubyString convertEncoding(ThreadContext context, RubyString source) { - ByteList bl = source.getByteList(); - int len = bl.length(); - if (len < 2) { - throw Utils.newException(context, Utils.M_PARSER_ERROR, - "A JSON text must at least contain two octets!"); - } - - if (info.encodingsSupported()) { - RubyEncoding encoding = (RubyEncoding)source.encoding(context); - if (encoding != info.ascii8bit) { - return (RubyString)source.encode(context, info.utf8); - } - - String sniffedEncoding = sniffByteList(bl); - if (sniffedEncoding == null) return source; // assume UTF-8 - return reinterpretEncoding(context, source, sniffedEncoding); - } - - String sniffedEncoding = sniffByteList(bl); - if (sniffedEncoding == null) return source; // assume UTF-8 - Ruby runtime = context.getRuntime(); - return (RubyString)info.jsonModule. - callMethod(context, "iconv", - new IRubyObject[] { - runtime.newString("utf-8"), - runtime.newString(sniffedEncoding), - source}); - } - - /** - * Checks the first four bytes of the given ByteList to infer its encoding, - * using the principle demonstrated on section 3 of RFC 4627 (JSON). - */ - private static String sniffByteList(ByteList bl) { - if (bl.length() < 4) return null; - if (bl.get(0) == 0 && bl.get(2) == 0) { - return bl.get(1) == 0 ? "utf-32be" : "utf-16be"; - } - if (bl.get(1) == 0 && bl.get(3) == 0) { - return bl.get(2) == 0 ? "utf-32le" : "utf-16le"; - } - return null; - } - - /** - * Assumes the given (binary) RubyString to be in the given encoding, then - * converts it to UTF-8. - */ - private RubyString reinterpretEncoding(ThreadContext context, - RubyString str, String sniffedEncoding) { - RubyEncoding actualEncoding = info.getEncoding(context, sniffedEncoding); - RubyEncoding targetEncoding = info.utf8; - RubyString dup = (RubyString)str.dup(); - dup.force_encoding(context, actualEncoding); - return (RubyString)dup.encode_bang(context, targetEncoding); - } - - /** - * <code>Parser#parse()</code> - * - * <p>Parses the current JSON text <code>source</code> and returns the - * complete data structure as a result. - */ - @JRubyMethod - public IRubyObject parse(ThreadContext context) { - return new ParserSession(this, context).parse(); - } - - /** - * <code>Parser#source()</code> - * - * <p>Returns a copy of the current <code>source</code> string, that was - * used to construct this Parser. - */ - @JRubyMethod(name = "source") - public IRubyObject source_get() { - return vSource.dup(); - } - - /** - * Queries <code>JSON.create_id</code>. Returns <code>null</code> if it is - * set to <code>nil</code> or <code>false</code>, and a String if not. - */ - private RubyString getCreateId(ThreadContext context) { - IRubyObject v = info.jsonModule.callMethod(context, "create_id"); - return v.isTrue() ? v.convertToString() : null; - } - - /** - * A string parsing session. - * - * <p>Once a ParserSession is instantiated, the source string should not - * change until the parsing is complete. The ParserSession object assumes - * the source {@link RubyString} is still associated to its original - * {@link ByteList}, which in turn must still be bound to the same - * <code>byte[]</code> value (and on the same offset). - */ - // Ragel uses lots of fall-through - @SuppressWarnings("fallthrough") - private static class ParserSession { - private final Parser parser; - private final ThreadContext context; - private final ByteList byteList; - private final byte[] data; - private final StringDecoder decoder; - private int currentNesting = 0; - - // initialization value for all state variables. - // no idea about the origins of this value, ask Flori ;) - private static final int EVIL = 0x666; - - private ParserSession(Parser parser, ThreadContext context) { - this.parser = parser; - this.context = context; - this.byteList = parser.vSource.getByteList(); - this.data = byteList.unsafeBytes(); - this.decoder = new StringDecoder(context); - } - - private RaiseException unexpectedToken(int absStart, int absEnd) { - RubyString msg = getRuntime().newString("unexpected token at '") - .cat(data, absStart, absEnd - absStart) - .cat((byte)'\''); - return newException(Utils.M_PARSER_ERROR, msg); - } - - private Ruby getRuntime() { - return context.getRuntime(); - } - - %%{ - machine JSON_common; - - cr = '\n'; - cr_neg = [^\n]; - ws = [ \t\r\n]; - c_comment = '/*' ( any* - (any* '*/' any* ) ) '*/'; - cpp_comment = '//' cr_neg* cr; - comment = c_comment | cpp_comment; - ignore = ws | comment; - name_separator = ':'; - value_separator = ','; - Vnull = 'null'; - Vfalse = 'false'; - Vtrue = 'true'; - VNaN = 'NaN'; - VInfinity = 'Infinity'; - VMinusInfinity = '-Infinity'; - begin_value = [nft"\-[{NI] | digit; - begin_object = '{'; - end_object = '}'; - begin_array = '['; - end_array = ']'; - begin_string = '"'; - begin_name = begin_string; - begin_number = digit | '-'; - }%% - - %%{ - machine JSON_value; - include JSON_common; - - write data; - - action parse_null { - result = getRuntime().getNil(); - } - action parse_false { - result = getRuntime().getFalse(); - } - action parse_true { - result = getRuntime().getTrue(); - } - action parse_nan { - if (parser.allowNaN) { - result = getConstant(CONST_NAN); - } else { - throw unexpectedToken(p - 2, pe); - } - } - action parse_infinity { - if (parser.allowNaN) { - result = getConstant(CONST_INFINITY); - } else { - throw unexpectedToken(p - 7, pe); - } - } - action parse_number { - if (pe > fpc + 9 && - absSubSequence(fpc, fpc + 9).toString().equals(JSON_MINUS_INFINITY)) { - - if (parser.allowNaN) { - result = getConstant(CONST_MINUS_INFINITY); - fexec p + 10; - fhold; - fbreak; - } else { - throw unexpectedToken(p, pe); - } - } - ParserResult res = parseFloat(fpc, pe); - if (res != null) { - result = res.result; - fexec res.p; - } - res = parseInteger(fpc, pe); - if (res != null) { - result = res.result; - fexec res.p; - } - fhold; - fbreak; - } - action parse_string { - ParserResult res = parseString(fpc, pe); - if (res == null) { - fhold; - fbreak; - } else { - result = res.result; - fexec res.p; - } - } - action parse_array { - currentNesting++; - ParserResult res = parseArray(fpc, pe); - currentNesting--; - if (res == null) { - fhold; - fbreak; - } else { - result = res.result; - fexec res.p; - } - } - action parse_object { - currentNesting++; - ParserResult res = parseObject(fpc, pe); - currentNesting--; - if (res == null) { - fhold; - fbreak; - } else { - result = res.result; - fexec res.p; - } - } - action exit { - fhold; - fbreak; - } - - main := ( Vnull @parse_null | - Vfalse @parse_false | - Vtrue @parse_true | - VNaN @parse_nan | - VInfinity @parse_infinity | - begin_number >parse_number | - begin_string >parse_string | - begin_array >parse_array | - begin_object >parse_object - ) %*exit; - }%% - - ParserResult parseValue(int p, int pe) { - int cs = EVIL; - IRubyObject result = null; - - %% write init; - %% write exec; - - if (cs >= JSON_value_first_final && result != null) { - return new ParserResult(result, p); - } else { - return null; - } - } - - %%{ - machine JSON_integer; - - write data; - - action exit { - fhold; - fbreak; - } - - main := '-'? ( '0' | [1-9][0-9]* ) ( ^[0-9] @exit ); - }%% - - ParserResult parseInteger(int p, int pe) { - int cs = EVIL; - - %% write init; - int memo = p; - %% write exec; - - if (cs < JSON_integer_first_final) { - return null; - } - - ByteList num = absSubSequence(memo, p); - // note: this is actually a shared string, but since it is temporary and - // read-only, it doesn't really matter - RubyString expr = RubyString.newStringLight(getRuntime(), num); - RubyInteger number = RubyNumeric.str2inum(getRuntime(), expr, 10, true); - return new ParserResult(number, p + 1); - } - - %%{ - machine JSON_float; - include JSON_common; - - write data; - - action exit { - fhold; - fbreak; - } - - main := '-'? - ( ( ( '0' | [1-9][0-9]* ) '.' [0-9]+ ( [Ee] [+\-]?[0-9]+ )? ) - | ( ( '0' | [1-9][0-9]* ) ( [Ee] [+\-]? [0-9]+ ) ) ) - ( ^[0-9Ee.\-] @exit ); - }%% - - ParserResult parseFloat(int p, int pe) { - int cs = EVIL; - - %% write init; - int memo = p; - %% write exec; - - if (cs < JSON_float_first_final) { - return null; - } - - ByteList num = absSubSequence(memo, p); - // note: this is actually a shared string, but since it is temporary and - // read-only, it doesn't really matter - RubyString expr = RubyString.newStringLight(getRuntime(), num); - RubyFloat number = RubyNumeric.str2fnum(getRuntime(), expr, true); - return new ParserResult(number, p + 1); - } - - %%{ - machine JSON_string; - include JSON_common; - - write data; - - action parse_string { - int offset = byteList.begin(); - ByteList decoded = decoder.decode(byteList, memo + 1 - offset, - p - offset); - result = getRuntime().newString(decoded); - if (result == null) { - fhold; - fbreak; - } else { - fexec p + 1; - } - } - - action exit { - fhold; - fbreak; - } - - main := '"' - ( ( ^(["\\]|0..0x1f) - | '\\'["\\/bfnrt] - | '\\u'[0-9a-fA-F]{4} - | '\\'^(["\\/bfnrtu]|0..0x1f) - )* %parse_string - ) '"' @exit; - }%% - - ParserResult parseString(int p, int pe) { - int cs = EVIL; - IRubyObject result = null; - - %% write init; - int memo = p; - %% write exec; - - if (parser.createAdditions) { - RubyHash match_string = parser.match_string; - if (match_string != null) { - final IRubyObject[] memoArray = { result, null }; - try { - match_string.visitAll(new RubyHash.Visitor() { - @Override - public void visit(IRubyObject pattern, IRubyObject klass) { - if (pattern.callMethod(context, "===", memoArray[0]).isTrue()) { - memoArray[1] = klass; - throw JumpException.SPECIAL_JUMP; - } - } - }); - } catch (JumpException e) { } - if (memoArray[1] != null) { - RubyClass klass = (RubyClass) memoArray[1]; - if (klass.respondsTo("json_creatable?") && - klass.callMethod(context, "json_creatable?").isTrue()) { - result = klass.callMethod(context, "json_create", result); - } - } - } - } - - if (cs >= JSON_string_first_final && result != null) { - return new ParserResult(result, p + 1); - } else { - return null; - } - } - - %%{ - machine JSON_array; - include JSON_common; - - write data; - - action parse_value { - ParserResult res = parseValue(fpc, pe); - if (res == null) { - fhold; - fbreak; - } else { - result.append(res.result); - fexec res.p; - } - } - - action exit { - fhold; - fbreak; - } - - next_element = value_separator ignore* begin_value >parse_value; - - main := begin_array - ignore* - ( ( begin_value >parse_value - ignore* ) - ( ignore* - next_element - ignore* )* )? - ignore* - end_array @exit; - }%% - - ParserResult parseArray(int p, int pe) { - int cs = EVIL; - - if (parser.maxNesting > 0 && currentNesting > parser.maxNesting) { - throw newException(Utils.M_NESTING_ERROR, - "nesting of " + currentNesting + " is too deep"); - } - - // this is guaranteed to be a RubyArray due to the earlier - // allocator test at OptionsReader#getClass - RubyArray result = - (RubyArray)parser.arrayClass.newInstance(context, - IRubyObject.NULL_ARRAY, Block.NULL_BLOCK); - - %% write init; - %% write exec; - - if (cs >= JSON_array_first_final) { - return new ParserResult(result, p + 1); - } else { - throw unexpectedToken(p, pe); - } - } - - %%{ - machine JSON_object; - include JSON_common; - - write data; - - action parse_value { - ParserResult res = parseValue(fpc, pe); - if (res == null) { - fhold; - fbreak; - } else { - result.op_aset(context, lastName, res.result); - fexec res.p; - } - } - - action parse_name { - ParserResult res = parseString(fpc, pe); - if (res == null) { - fhold; - fbreak; - } else { - RubyString name = (RubyString)res.result; - if (parser.symbolizeNames) { - lastName = context.getRuntime().is1_9() - ? name.intern19() - : name.intern(); - } else { - lastName = name; - } - fexec res.p; - } - } - - action exit { - fhold; - fbreak; - } - - a_pair = ignore* - begin_name >parse_name - ignore* name_separator ignore* - begin_value >parse_value; - - main := begin_object - (a_pair (ignore* value_separator a_pair)*)? - ignore* end_object @exit; - }%% - - ParserResult parseObject(int p, int pe) { - int cs = EVIL; - IRubyObject lastName = null; - - if (parser.maxNesting > 0 && currentNesting > parser.maxNesting) { - throw newException(Utils.M_NESTING_ERROR, - "nesting of " + currentNesting + " is too deep"); - } - - // this is guaranteed to be a RubyHash due to the earlier - // allocator test at OptionsReader#getClass - RubyHash result = - (RubyHash)parser.objectClass.newInstance(context, - IRubyObject.NULL_ARRAY, Block.NULL_BLOCK); - - %% write init; - %% write exec; - - if (cs < JSON_object_first_final) { - return null; - } - - IRubyObject returnedResult = result; - - // attempt to de-serialize object - if (parser.createAdditions) { - IRubyObject vKlassName = result.op_aref(context, parser.createId); - if (!vKlassName.isNil()) { - // might throw ArgumentError, we let it propagate - IRubyObject klass = parser.info.jsonModule. - callMethod(context, "deep_const_get", vKlassName); - if (klass.respondsTo("json_creatable?") && - klass.callMethod(context, "json_creatable?").isTrue()) { - - returnedResult = klass.callMethod(context, "json_create", result); - } - } - } - return new ParserResult(returnedResult, p + 1); - } - - %%{ - machine JSON; - include JSON_common; - - write data; - - action parse_object { - currentNesting = 1; - ParserResult res = parseObject(fpc, pe); - if (res == null) { - fhold; - fbreak; - } else { - result = res.result; - fexec res.p; - } - } - - action parse_array { - currentNesting = 1; - ParserResult res = parseArray(fpc, pe); - if (res == null) { - fhold; - fbreak; - } else { - result = res.result; - fexec res.p; - } - } - - main := ignore* - ( begin_object >parse_object - | begin_array >parse_array ) - ignore*; - }%% - - public IRubyObject parse() { - int cs = EVIL; - int p, pe; - IRubyObject result = null; - - %% write init; - p = byteList.begin(); - pe = p + byteList.length(); - %% write exec; - - if (cs >= JSON_first_final && p == pe) { - return result; - } else { - throw unexpectedToken(p, pe); - } - } - - /** - * Returns a subsequence of the source ByteList, based on source - * array byte offsets (i.e., the ByteList's own begin offset is not - * automatically added). - * @param start - * @param end - */ - private ByteList absSubSequence(int absStart, int absEnd) { - int offset = byteList.begin(); - return (ByteList)byteList.subSequence(absStart - offset, - absEnd - offset); - } - - /** - * Retrieves a constant directly descended from the <code>JSON</code> module. - * @param name The constant name - */ - private IRubyObject getConstant(String name) { - return parser.info.jsonModule.getConstant(name); - } - - private RaiseException newException(String className, String message) { - return Utils.newException(context, className, message); - } - - private RaiseException newException(String className, RubyString message) { - return Utils.newException(context, className, message); - } - - private RaiseException newException(String className, - String messageBegin, ByteList messageEnd) { - return newException(className, - getRuntime().newString(messageBegin).cat(messageEnd)); - } - } -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/ParserService.java b/lib/mcollective/vendor/json/java/src/json/ext/ParserService.java deleted file mode 100644 index e0805a7..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/ParserService.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import java.io.IOException; - -import org.jruby.Ruby; -import org.jruby.RubyClass; -import org.jruby.RubyModule; -import org.jruby.runtime.load.BasicLibraryService; - -/** - * The service invoked by JRuby's {@link org.jruby.runtime.load.LoadService LoadService}. - * Defines the <code>JSON::Ext::Parser</code> class. - * @author mernen - */ -public class ParserService implements BasicLibraryService { - public boolean basicLoad(Ruby runtime) throws IOException { - runtime.getLoadService().require("json/common"); - RuntimeInfo info = RuntimeInfo.initRuntime(runtime); - - info.jsonModule = runtime.defineModule("JSON"); - RubyModule jsonExtModule = info.jsonModule.defineModuleUnder("Ext"); - RubyClass parserClass = - jsonExtModule.defineClassUnder("Parser", runtime.getObject(), - Parser.ALLOCATOR); - parserClass.defineAnnotatedMethods(Parser.class); - return true; - } -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/RuntimeInfo.java b/lib/mcollective/vendor/json/java/src/json/ext/RuntimeInfo.java deleted file mode 100644 index f446afe..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/RuntimeInfo.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import java.lang.ref.WeakReference; -import java.util.HashMap; -import java.util.Map; -import java.util.WeakHashMap; -import org.jruby.Ruby; -import org.jruby.RubyClass; -import org.jruby.RubyEncoding; -import org.jruby.RubyModule; -import org.jruby.runtime.ThreadContext; -import org.jruby.runtime.builtin.IRubyObject; - - -final class RuntimeInfo { - // since the vast majority of cases runs just one runtime, - // we optimize for that - private static WeakReference<Ruby> runtime1 = new WeakReference<Ruby>(null); - private static RuntimeInfo info1; - // store remaining runtimes here (does not include runtime1) - private static Map<Ruby, RuntimeInfo> runtimes; - - // these fields are filled by the service loaders - /** JSON */ - RubyModule jsonModule; - /** JSON::Ext::Generator::GeneratorMethods::String::Extend */ - RubyModule stringExtendModule; - /** JSON::Ext::Generator::State */ - RubyClass generatorStateClass; - /** JSON::SAFE_STATE_PROTOTYPE */ - GeneratorState safeStatePrototype; - - final RubyEncoding utf8; - final RubyEncoding ascii8bit; - // other encodings - private final Map<String, RubyEncoding> encodings; - - private RuntimeInfo(Ruby runtime) { - RubyClass encodingClass = runtime.getEncoding(); - if (encodingClass == null) { // 1.8 mode - utf8 = ascii8bit = null; - encodings = null; - } else { - ThreadContext context = runtime.getCurrentContext(); - - utf8 = (RubyEncoding)RubyEncoding.find(context, - encodingClass, runtime.newString("utf-8")); - ascii8bit = (RubyEncoding)RubyEncoding.find(context, - encodingClass, runtime.newString("ascii-8bit")); - encodings = new HashMap<String, RubyEncoding>(); - } - } - - static RuntimeInfo initRuntime(Ruby runtime) { - synchronized (RuntimeInfo.class) { - if (runtime1.get() == runtime) { - return info1; - } else if (runtime1.get() == null) { - runtime1 = new WeakReference<Ruby>(runtime); - info1 = new RuntimeInfo(runtime); - return info1; - } else { - if (runtimes == null) { - runtimes = new WeakHashMap<Ruby, RuntimeInfo>(1); - } - RuntimeInfo cache = runtimes.get(runtime); - if (cache == null) { - cache = new RuntimeInfo(runtime); - runtimes.put(runtime, cache); - } - return cache; - } - } - } - - public static RuntimeInfo forRuntime(Ruby runtime) { - synchronized (RuntimeInfo.class) { - if (runtime1.get() == runtime) return info1; - RuntimeInfo cache = null; - if (runtimes != null) cache = runtimes.get(runtime); - assert cache != null : "Runtime given has not initialized JSON::Ext"; - return cache; - } - } - - public boolean encodingsSupported() { - return utf8 != null; - } - - public RubyEncoding getEncoding(ThreadContext context, String name) { - synchronized (encodings) { - RubyEncoding encoding = encodings.get(name); - if (encoding == null) { - Ruby runtime = context.getRuntime(); - encoding = (RubyEncoding)RubyEncoding.find(context, - runtime.getEncoding(), runtime.newString(name)); - encodings.put(name, encoding); - } - return encoding; - } - } - - public GeneratorState getSafeStatePrototype(ThreadContext context) { - if (safeStatePrototype == null) { - IRubyObject value = jsonModule.getConstant("SAFE_STATE_PROTOTYPE"); - if (!(value instanceof GeneratorState)) { - throw context.getRuntime().newTypeError(value, generatorStateClass); - } - safeStatePrototype = (GeneratorState)value; - } - return safeStatePrototype; - } -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/StringDecoder.java b/lib/mcollective/vendor/json/java/src/json/ext/StringDecoder.java deleted file mode 100644 index a4ee975..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/StringDecoder.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import org.jruby.exceptions.RaiseException; -import org.jruby.runtime.ThreadContext; -import org.jruby.util.ByteList; - -/** - * A decoder that reads a JSON-encoded string from the given sources and - * returns its decoded form on a new ByteList. Escaped Unicode characters - * are encoded as UTF-8. - */ -final class StringDecoder extends ByteListTranscoder { - /** - * Stores the offset of the high surrogate when reading a surrogate pair, - * or -1 when not. - */ - private int surrogatePairStart = -1; - - // Array used for writing multi-byte characters into the buffer at once - private final byte[] aux = new byte[4]; - - StringDecoder(ThreadContext context) { - super(context); - } - - ByteList decode(ByteList src, int start, int end) { - ByteList out = new ByteList(end - start); - init(src, start, end, out); - while (hasNext()) { - handleChar(readUtf8Char()); - } - quoteStop(pos); - return out; - } - - private void handleChar(int c) { - if (c == '\\') { - quoteStop(charStart); - handleEscapeSequence(); - } else { - quoteStart(); - } - } - - private void handleEscapeSequence() { - ensureMin(1); - switch (readUtf8Char()) { - case 'b': - append('\b'); - break; - case 'f': - append('\f'); - break; - case 'n': - append('\n'); - break; - case 'r': - append('\r'); - break; - case 't': - append('\t'); - break; - case 'u': - ensureMin(4); - int cp = readHex(); - if (Character.isHighSurrogate((char)cp)) { - handleLowSurrogate((char)cp); - } else if (Character.isLowSurrogate((char)cp)) { - // low surrogate with no high surrogate - throw invalidUtf8(); - } else { - writeUtf8Char(cp); - } - break; - default: // '\\', '"', '/'... - quoteStart(); - } - } - - private void handleLowSurrogate(char highSurrogate) { - surrogatePairStart = charStart; - ensureMin(1); - int lowSurrogate = readUtf8Char(); - - if (lowSurrogate == '\\') { - ensureMin(5); - if (readUtf8Char() != 'u') throw invalidUtf8(); - lowSurrogate = readHex(); - } - - if (Character.isLowSurrogate((char)lowSurrogate)) { - writeUtf8Char(Character.toCodePoint(highSurrogate, - (char)lowSurrogate)); - surrogatePairStart = -1; - } else { - throw invalidUtf8(); - } - } - - private void writeUtf8Char(int codePoint) { - if (codePoint < 0x80) { - append(codePoint); - } else if (codePoint < 0x800) { - aux[0] = (byte)(0xc0 | (codePoint >>> 6)); - aux[1] = tailByte(codePoint & 0x3f); - append(aux, 0, 2); - } else if (codePoint < 0x10000) { - aux[0] = (byte)(0xe0 | (codePoint >>> 12)); - aux[1] = tailByte(codePoint >>> 6); - aux[2] = tailByte(codePoint); - append(aux, 0, 3); - } else { - aux[0] = (byte)(0xf0 | codePoint >>> 18); - aux[1] = tailByte(codePoint >>> 12); - aux[2] = tailByte(codePoint >>> 6); - aux[3] = tailByte(codePoint); - append(aux, 0, 4); - } - } - - private byte tailByte(int value) { - return (byte)(0x80 | (value & 0x3f)); - } - - /** - * Reads a 4-digit unsigned hexadecimal number from the source. - */ - private int readHex() { - int numberStart = pos; - int result = 0; - int length = 4; - for (int i = 0; i < length; i++) { - int digit = readUtf8Char(); - int digitValue; - if (digit >= '0' && digit <= '9') { - digitValue = digit - '0'; - } else if (digit >= 'a' && digit <= 'f') { - digitValue = 10 + digit - 'a'; - } else if (digit >= 'A' && digit <= 'F') { - digitValue = 10 + digit - 'A'; - } else { - throw new NumberFormatException("Invalid base 16 number " - + src.subSequence(numberStart, numberStart + length)); - } - result = result * 16 + digitValue; - } - return result; - } - - @Override - protected RaiseException invalidUtf8() { - ByteList message = new ByteList( - ByteList.plain("partial character in source, " + - "but hit end near ")); - int start = surrogatePairStart != -1 ? surrogatePairStart : charStart; - message.append(src, start, srcEnd - start); - return Utils.newException(context, Utils.M_PARSER_ERROR, - context.getRuntime().newString(message)); - } -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/StringEncoder.java b/lib/mcollective/vendor/json/java/src/json/ext/StringEncoder.java deleted file mode 100644 index 57bd19b..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/StringEncoder.java +++ /dev/null @@ -1,106 +0,0 @@ -package json.ext; - -import org.jruby.exceptions.RaiseException; -import org.jruby.runtime.ThreadContext; -import org.jruby.util.ByteList; - -/** - * An encoder that reads from the given source and outputs its representation - * to another ByteList. The source string is fully checked for UTF-8 validity, - * and throws a GeneratorError if any problem is found. - */ -final class StringEncoder extends ByteListTranscoder { - private final boolean asciiOnly; - - // Escaped characters will reuse this array, to avoid new allocations - // or appending them byte-by-byte - private final byte[] aux = - new byte[] {/* First unicode character */ - '\\', 'u', 0, 0, 0, 0, - /* Second unicode character (for surrogate pairs) */ - '\\', 'u', 0, 0, 0, 0, - /* "\X" characters */ - '\\', 0}; - // offsets on the array above - private static final int ESCAPE_UNI1_OFFSET = 0; - private static final int ESCAPE_UNI2_OFFSET = ESCAPE_UNI1_OFFSET + 6; - private static final int ESCAPE_CHAR_OFFSET = ESCAPE_UNI2_OFFSET + 6; - /** Array used for code point decomposition in surrogates */ - private final char[] utf16 = new char[2]; - - private static final byte[] HEX = - new byte[] {'0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; - - StringEncoder(ThreadContext context, boolean asciiOnly) { - super(context); - this.asciiOnly = asciiOnly; - } - - void encode(ByteList src, ByteList out) { - init(src, out); - append('"'); - while (hasNext()) { - handleChar(readUtf8Char()); - } - quoteStop(pos); - append('"'); - } - - private void handleChar(int c) { - switch (c) { - case '"': - case '\\': - escapeChar((char)c); - break; - case '\n': - escapeChar('n'); - break; - case '\r': - escapeChar('r'); - break; - case '\t': - escapeChar('t'); - break; - case '\f': - escapeChar('f'); - break; - case '\b': - escapeChar('b'); - break; - default: - if (c >= 0x20 && c <= 0x7f || - (c >= 0x80 && !asciiOnly)) { - quoteStart(); - } else { - quoteStop(charStart); - escapeUtf8Char(c); - } - } - } - - private void escapeChar(char c) { - quoteStop(charStart); - aux[ESCAPE_CHAR_OFFSET + 1] = (byte)c; - append(aux, ESCAPE_CHAR_OFFSET, 2); - } - - private void escapeUtf8Char(int codePoint) { - int numChars = Character.toChars(codePoint, utf16, 0); - escapeCodeUnit(utf16[0], ESCAPE_UNI1_OFFSET + 2); - if (numChars > 1) escapeCodeUnit(utf16[1], ESCAPE_UNI2_OFFSET + 2); - append(aux, ESCAPE_UNI1_OFFSET, 6 * numChars); - } - - private void escapeCodeUnit(char c, int auxOffset) { - for (int i = 0; i < 4; i++) { - aux[auxOffset + i] = HEX[(c >>> (12 - 4 * i)) & 0xf]; - } - } - - @Override - protected RaiseException invalidUtf8() { - return Utils.newException(context, Utils.M_GENERATOR_ERROR, - "source sequence is illegal/malformed utf-8"); - } -} diff --git a/lib/mcollective/vendor/json/java/src/json/ext/Utils.java b/lib/mcollective/vendor/json/java/src/json/ext/Utils.java deleted file mode 100644 index 7a1dfee..0000000 --- a/lib/mcollective/vendor/json/java/src/json/ext/Utils.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * This code is copyrighted work by Daniel Luz <dev at mernen dot com>. - * - * Distributed under the Ruby and GPLv2 licenses; see COPYING and GPL files - * for details. - */ -package json.ext; - -import org.jruby.Ruby; -import org.jruby.RubyArray; -import org.jruby.RubyClass; -import org.jruby.RubyException; -import org.jruby.RubyHash; -import org.jruby.RubyString; -import org.jruby.exceptions.RaiseException; -import org.jruby.runtime.Block; -import org.jruby.runtime.ThreadContext; -import org.jruby.runtime.builtin.IRubyObject; -import org.jruby.util.ByteList; - -/** - * Library of miscellaneous utility functions - */ -final class Utils { - public static final String M_GENERATOR_ERROR = "GeneratorError"; - public static final String M_NESTING_ERROR = "NestingError"; - public static final String M_PARSER_ERROR = "ParserError"; - - private Utils() { - throw new RuntimeException(); - } - - /** - * Safe {@link RubyArray} type-checking. - * Returns the given object if it is an <code>Array</code>, - * or throws an exception if not. - * @param object The object to test - * @return The given object if it is an <code>Array</code> - * @throws RaiseException <code>TypeError</code> if the object is not - * of the expected type - */ - static RubyArray ensureArray(IRubyObject object) throws RaiseException { - if (object instanceof RubyArray) return (RubyArray)object; - Ruby runtime = object.getRuntime(); - throw runtime.newTypeError(object, runtime.getArray()); - } - - static RubyHash ensureHash(IRubyObject object) throws RaiseException { - if (object instanceof RubyHash) return (RubyHash)object; - Ruby runtime = object.getRuntime(); - throw runtime.newTypeError(object, runtime.getHash()); - } - - static RubyString ensureString(IRubyObject object) throws RaiseException { - if (object instanceof RubyString) return (RubyString)object; - Ruby runtime = object.getRuntime(); - throw runtime.newTypeError(object, runtime.getString()); - } - - static RaiseException newException(ThreadContext context, - String className, String message) { - return newException(context, className, - context.getRuntime().newString(message)); - } - - static RaiseException newException(ThreadContext context, - String className, RubyString message) { - RuntimeInfo info = RuntimeInfo.forRuntime(context.getRuntime()); - RubyClass klazz = info.jsonModule.getClass(className); - RubyException excptn = - (RubyException)klazz.newInstance(context, - new IRubyObject[] {message}, Block.NULL_BLOCK); - return new RaiseException(excptn); - } - - static byte[] repeat(ByteList a, int n) { - return repeat(a.unsafeBytes(), a.begin(), a.length(), n); - } - - static byte[] repeat(byte[] a, int begin, int length, int n) { - if (length == 0) return ByteList.NULL_ARRAY; - int resultLen = length * n; - byte[] result = new byte[resultLen]; - for (int pos = 0; pos < resultLen; pos += length) { - System.arraycopy(a, begin, result, pos, length); - } - return result; - } -} diff --git a/lib/mcollective/vendor/json/json-java.gemspec b/lib/mcollective/vendor/json/json-java.gemspec deleted file mode 100644 index 144f650..0000000 --- a/lib/mcollective/vendor/json/json-java.gemspec +++ /dev/null @@ -1,20 +0,0 @@ -#! /usr/bin/env jruby -require "rubygems" - -spec = Gem::Specification.new do |s| - s.name = "json" - s.version = File.read("VERSION").chomp - s.summary = "JSON implementation for JRuby" - s.description = "A JSON implementation as a JRuby extension." - s.author = "Daniel Luz" - s.email = "dev+ruby@mernen.com" - s.homepage = "http://json-jruby.rubyforge.org/" - s.platform = 'java' - s.rubyforge_project = "json-jruby" - - s.files = Dir["{docs,lib,tests}/**/*"] -end - -if $0 == __FILE__ - Gem::Builder.new(spec).build -end diff --git a/lib/mcollective/vendor/json/lib/json.rb b/lib/mcollective/vendor/json/lib/json.rb deleted file mode 100644 index 789b0de..0000000 --- a/lib/mcollective/vendor/json/lib/json.rb +++ /dev/null @@ -1,10 +0,0 @@ -require 'json/common' -module JSON - require 'json/version' - - begin - require 'json/ext' - rescue LoadError - require 'json/pure' - end -end diff --git a/lib/mcollective/vendor/json/lib/json/Array.xpm b/lib/mcollective/vendor/json/lib/json/Array.xpm deleted file mode 100644 index 27c4801..0000000 --- a/lib/mcollective/vendor/json/lib/json/Array.xpm +++ /dev/null @@ -1,21 +0,0 @@ -/* XPM */ -static char * Array_xpm[] = { -"16 16 2 1", -" c None", -". c #000000", -" ", -" ", -" ", -" .......... ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" .......... ", -" ", -" ", -" "}; diff --git a/lib/mcollective/vendor/json/lib/json/FalseClass.xpm b/lib/mcollective/vendor/json/lib/json/FalseClass.xpm deleted file mode 100644 index 25ce608..0000000 --- a/lib/mcollective/vendor/json/lib/json/FalseClass.xpm +++ /dev/null @@ -1,21 +0,0 @@ -/* XPM */ -static char * False_xpm[] = { -"16 16 2 1", -" c None", -". c #FF0000", -" ", -" ", -" ", -" ...... ", -" . ", -" . ", -" . ", -" ...... ", -" . ", -" . ", -" . ", -" . ", -" . ", -" ", -" ", -" "}; diff --git a/lib/mcollective/vendor/json/lib/json/Hash.xpm b/lib/mcollective/vendor/json/lib/json/Hash.xpm deleted file mode 100644 index cd8f6f7..0000000 --- a/lib/mcollective/vendor/json/lib/json/Hash.xpm +++ /dev/null @@ -1,21 +0,0 @@ -/* XPM */ -static char * Hash_xpm[] = { -"16 16 2 1", -" c None", -". c #000000", -" ", -" ", -" ", -" . . ", -" . . ", -" . . ", -" ......... ", -" . . ", -" . . ", -" ......... ", -" . . ", -" . . ", -" . . ", -" ", -" ", -" "}; diff --git a/lib/mcollective/vendor/json/lib/json/Key.xpm b/lib/mcollective/vendor/json/lib/json/Key.xpm deleted file mode 100644 index 9fd7281..0000000 --- a/lib/mcollective/vendor/json/lib/json/Key.xpm +++ /dev/null @@ -1,73 +0,0 @@ -/* XPM */ -static char * Key_xpm[] = { -"16 16 54 1", -" c None", -". c #110007", -"+ c #0E0900", -"@ c #000013", -"# c #070600", -"$ c #F6F006", -"% c #ECE711", -"& c #E5EE00", -"* c #16021E", -"= c #120900", -"- c #EDF12B", -"; c #000033", -"> c #0F0000", -", c #FFFE03", -"' c #E6E500", -") c #16021B", -"! c #F7F502", -"~ c #000E00", -"{ c #130000", -"] c #FFF000", -"^ c #FFE711", -"/ c #140005", -"( c #190025", -"_ c #E9DD27", -": c #E7DC04", -"< c #FFEC09", -"[ c #FFE707", -"} c #FFDE10", -"| c #150021", -"1 c #160700", -"2 c #FAF60E", -"3 c #EFE301", -"4 c #FEF300", -"5 c #E7E000", -"6 c #FFFF08", -"7 c #0E0206", -"8 c #040000", -"9 c #03052E", -"0 c #041212", -"a c #070300", -"b c #F2E713", -"c c #F9DE13", -"d c #36091E", -"e c #00001C", -"f c #1F0010", -"g c #FFF500", -"h c #DEDE00", -"i c #050A00", -"j c #FAF14A", -"k c #F5F200", -"l c #040404", -"m c #1A0D00", -"n c #EDE43D", -"o c #ECE007", -" ", -" ", -" .+@ ", -" #$%&* ", -" =-;>,') ", -" >!~{]^/ ", -" (_:<[}| ", -" 1234567 ", -" 890abcd ", -" efghi ", -" >jkl ", -" mnol ", -" >kl ", -" ll ", -" ", -" "}; diff --git a/lib/mcollective/vendor/json/lib/json/NilClass.xpm b/lib/mcollective/vendor/json/lib/json/NilClass.xpm deleted file mode 100644 index 3509f06..0000000 --- a/lib/mcollective/vendor/json/lib/json/NilClass.xpm +++ /dev/null @@ -1,21 +0,0 @@ -/* XPM */ -static char * False_xpm[] = { -"16 16 2 1", -" c None", -". c #000000", -" ", -" ", -" ", -" ... ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" ... ", -" ", -" ", -" "}; diff --git a/lib/mcollective/vendor/json/lib/json/Numeric.xpm b/lib/mcollective/vendor/json/lib/json/Numeric.xpm deleted file mode 100644 index e071e2e..0000000 --- a/lib/mcollective/vendor/json/lib/json/Numeric.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -static char * Numeric_xpm[] = { -"16 16 9 1", -" c None", -". c #FF0000", -"+ c #0000FF", -"@ c #0023DB", -"# c #00EA14", -"$ c #00FF00", -"% c #004FAF", -"& c #0028D6", -"* c #00F20C", -" ", -" ", -" ", -" ... +++@#$$$$ ", -" .+ %& $$ ", -" . + $ ", -" . + $$ ", -" . ++$$$$ ", -" . + $$ ", -" . + $ ", -" . + $ ", -" . + $ $$ ", -" .....++++*$$ ", -" ", -" ", -" "}; diff --git a/lib/mcollective/vendor/json/lib/json/String.xpm b/lib/mcollective/vendor/json/lib/json/String.xpm deleted file mode 100644 index f79a89c..0000000 --- a/lib/mcollective/vendor/json/lib/json/String.xpm +++ /dev/null @@ -1,96 +0,0 @@ -/* XPM */ -static char * String_xpm[] = { -"16 16 77 1", -" c None", -". c #000000", -"+ c #040404", -"@ c #080806", -"# c #090606", -"$ c #EEEAE1", -"% c #E7E3DA", -"& c #E0DBD1", -"* c #D4B46F", -"= c #0C0906", -"- c #E3C072", -"; c #E4C072", -"> c #060505", -", c #0B0A08", -"' c #D5B264", -") c #D3AF5A", -"! c #080602", -"~ c #E1B863", -"{ c #DDB151", -"] c #DBAE4A", -"^ c #DDB152", -"/ c #DDB252", -"( c #070705", -"_ c #0C0A07", -": c #D3A33B", -"< c #020201", -"[ c #DAAA41", -"} c #040302", -"| c #E4D9BF", -"1 c #0B0907", -"2 c #030201", -"3 c #020200", -"4 c #C99115", -"5 c #080704", -"6 c #DBC8A2", -"7 c #E7D7B4", -"8 c #E0CD9E", -"9 c #080601", -"0 c #040400", -"a c #010100", -"b c #0B0B08", -"c c #DCBF83", -"d c #DCBC75", -"e c #DEB559", -"f c #040301", -"g c #BC8815", -"h c #120E07", -"i c #060402", -"j c #0A0804", -"k c #D4A747", -"l c #D6A12F", -"m c #0E0C05", -"n c #C8C1B0", -"o c #1D1B15", -"p c #D7AD51", -"q c #070502", -"r c #080804", -"s c #BC953B", -"t c #C4BDAD", -"u c #0B0807", -"v c #DBAC47", -"w c #1B150A", -"x c #B78A2C", -"y c #D8A83C", -"z c #D4A338", -"A c #0F0B03", -"B c #181105", -"C c #C59325", -"D c #C18E1F", -"E c #060600", -"F c #CC992D", -"G c #B98B25", -"H c #B3831F", -"I c #C08C1C", -"J c #060500", -"K c #0E0C03", -"L c #0D0A00", -" ", -" .+@# ", -" .$%&*= ", -" .-;>,')! ", -" .~. .{]. ", -" .^/. (_:< ", -" .[.}|$12 ", -" 345678}90 ", -" a2bcdefgh ", -" ijkl.mno ", -" <pq. rstu ", -" .]v. wx= ", -" .yzABCDE ", -" .FGHIJ ", -" 0KL0 ", -" "}; diff --git a/lib/mcollective/vendor/json/lib/json/TrueClass.xpm b/lib/mcollective/vendor/json/lib/json/TrueClass.xpm deleted file mode 100644 index 143eef4..0000000 --- a/lib/mcollective/vendor/json/lib/json/TrueClass.xpm +++ /dev/null @@ -1,21 +0,0 @@ -/* XPM */ -static char * TrueClass_xpm[] = { -"16 16 2 1", -" c None", -". c #0BF311", -" ", -" ", -" ", -" ......... ", -" . ", -" . ", -" . ", -" . ", -" . ", -" . ", -" . ", -" . ", -" . ", -" ", -" ", -" "}; diff --git a/lib/mcollective/vendor/json/lib/json/add/core.rb b/lib/mcollective/vendor/json/lib/json/add/core.rb deleted file mode 100644 index 7a901d0..0000000 --- a/lib/mcollective/vendor/json/lib/json/add/core.rb +++ /dev/null @@ -1,147 +0,0 @@ -# This file contains implementations of ruby core's custom objects for -# serialisation/deserialisation. - -unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED - require 'json' -end -require 'date' - -class Symbol - def to_json(*a) - { - JSON.create_id => self.class.name, - 's' => to_s, - }.to_json(*a) - end - - def self.json_create(o) - o['s'].to_sym - end -end - -class Time - def self.json_create(object) - if usec = object.delete('u') # used to be tv_usec -> tv_nsec - object['n'] = usec * 1000 - end - if respond_to?(:tv_nsec) - at(*object.values_at('s', 'n')) - else - at(object['s'], object['n'] / 1000) - end - end - - def to_json(*args) - { - JSON.create_id => self.class.name, - 's' => tv_sec, - 'n' => respond_to?(:tv_nsec) ? tv_nsec : tv_usec * 1000 - }.to_json(*args) - end -end - -class Date - def self.json_create(object) - civil(*object.values_at('y', 'm', 'd', 'sg')) - end - - alias start sg unless method_defined?(:start) - - def to_json(*args) - { - JSON.create_id => self.class.name, - 'y' => year, - 'm' => month, - 'd' => day, - 'sg' => start, - }.to_json(*args) - end -end - -class DateTime - def self.json_create(object) - args = object.values_at('y', 'm', 'd', 'H', 'M', 'S') - of_a, of_b = object['of'].split('/') - if of_b and of_b != '0' - args << Rational(of_a.to_i, of_b.to_i) - else - args << of_a - end - args << object['sg'] - civil(*args) - end - - alias start sg unless method_defined?(:start) - - def to_json(*args) - { - JSON.create_id => self.class.name, - 'y' => year, - 'm' => month, - 'd' => day, - 'H' => hour, - 'M' => min, - 'S' => sec, - 'of' => offset.to_s, - 'sg' => start, - }.to_json(*args) - end -end - -class Range - def self.json_create(object) - new(*object['a']) - end - - def to_json(*args) - { - JSON.create_id => self.class.name, - 'a' => [ first, last, exclude_end? ] - }.to_json(*args) - end -end - -class Struct - def self.json_create(object) - new(*object['v']) - end - - def to_json(*args) - klass = self.class.name - klass.to_s.empty? and raise JSON::JSONError, "Only named structs are supported!" - { - JSON.create_id => klass, - 'v' => values, - }.to_json(*args) - end -end - -class Exception - def self.json_create(object) - result = new(object['m']) - result.set_backtrace object['b'] - result - end - - def to_json(*args) - { - JSON.create_id => self.class.name, - 'm' => message, - 'b' => backtrace, - }.to_json(*args) - end -end - -class Regexp - def self.json_create(object) - new(object['s'], object['o']) - end - - def to_json(*) - { - JSON.create_id => self.class.name, - 'o' => options, - 's' => source, - }.to_json - end -end diff --git a/lib/mcollective/vendor/json/lib/json/add/rails.rb b/lib/mcollective/vendor/json/lib/json/add/rails.rb deleted file mode 100644 index af95e52..0000000 --- a/lib/mcollective/vendor/json/lib/json/add/rails.rb +++ /dev/null @@ -1,8 +0,0 @@ -# This file used to implementations of rails custom objects for -# serialisation/deserialisation and is obsoleted now. - -unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED - require 'json' -end - -$DEBUG and warn "required json/add/rails which is obsolete now!" diff --git a/lib/mcollective/vendor/json/lib/json/common.rb b/lib/mcollective/vendor/json/lib/json/common.rb deleted file mode 100644 index f8ce2da..0000000 --- a/lib/mcollective/vendor/json/lib/json/common.rb +++ /dev/null @@ -1,419 +0,0 @@ -require 'json/version' - -module JSON - class << self - # If _object_ is string-like parse the string and return the parsed result - # as a Ruby data structure. Otherwise generate a JSON text from the Ruby - # data structure object and return it. - # - # The _opts_ argument is passed through to generate/parse respectively, see - # generate and parse for their documentation. - def [](object, opts = {}) - if object.respond_to? :to_str - JSON.parse(object.to_str, opts) - else - JSON.generate(object, opts) - end - end - - # Returns the JSON parser class, that is used by JSON. This might be either - # JSON::Ext::Parser or JSON::Pure::Parser. - attr_reader :parser - - # Set the JSON parser class _parser_ to be used by JSON. - def parser=(parser) # :nodoc: - @parser = parser - remove_const :Parser if JSON.const_defined_in?(self, :Parser) - const_set :Parser, parser - end - - # Return the constant located at _path_. The format of _path_ has to be - # either ::A::B::C or A::B::C. In any case A has to be located at the top - # level (absolute namespace path?). If there doesn't exist a constant at - # the given path, an ArgumentError is raised. - def deep_const_get(path) # :nodoc: - path.to_s.split(/::/).inject(Object) do |p, c| - case - when c.empty? then p - when JSON.const_defined_in?(p, c) then p.const_get(c) - else - begin - p.const_missing(c) - rescue NameError => e - raise ArgumentError, "can't get const #{path}: #{e}" - end - end - end - end - - # Set the module _generator_ to be used by JSON. - def generator=(generator) # :nodoc: - old, $VERBOSE = $VERBOSE, nil - @generator = generator - generator_methods = generator::GeneratorMethods - for const in generator_methods.constants - klass = deep_const_get(const) - modul = generator_methods.const_get(const) - klass.class_eval do - instance_methods(false).each do |m| - m.to_s == 'to_json' and remove_method m - end - include modul - end - end - self.state = generator::State - const_set :State, self.state - const_set :SAFE_STATE_PROTOTYPE, State.new - const_set :FAST_STATE_PROTOTYPE, State.new( - :indent => '', - :space => '', - :object_nl => "", - :array_nl => "", - :max_nesting => false - ) - const_set :PRETTY_STATE_PROTOTYPE, State.new( - :indent => ' ', - :space => ' ', - :object_nl => "\n", - :array_nl => "\n" - ) - ensure - $VERBOSE = old - end - - # Returns the JSON generator modul, that is used by JSON. This might be - # either JSON::Ext::Generator or JSON::Pure::Generator. - attr_reader :generator - - # Returns the JSON generator state class, that is used by JSON. This might - # be either JSON::Ext::Generator::State or JSON::Pure::Generator::State. - attr_accessor :state - - # This is create identifier, that is used to decide, if the _json_create_ - # hook of a class should be called. It defaults to 'json_class'. - attr_accessor :create_id - end - self.create_id = 'json_class' - - NaN = 0.0/0 - - Infinity = 1.0/0 - - MinusInfinity = -Infinity - - # The base exception for JSON errors. - class JSONError < StandardError; end - - # This exception is raised, if a parser error occurs. - class ParserError < JSONError; end - - # This exception is raised, if the nesting of parsed datastructures is too - # deep. - class NestingError < ParserError; end - - # :stopdoc: - class CircularDatastructure < NestingError; end - # :startdoc: - - # This exception is raised, if a generator or unparser error occurs. - class GeneratorError < JSONError; end - # For backwards compatibility - UnparserError = GeneratorError - - # This exception is raised, if the required unicode support is missing on the - # system. Usually this means, that the iconv library is not installed. - class MissingUnicodeSupport < JSONError; end - - module_function - - # Parse the JSON document _source_ into a Ruby data structure and return it. - # - # _opts_ can have the following - # keys: - # * *max_nesting*: The maximum depth of nesting allowed in the parsed data - # structures. Disable depth checking with :max_nesting => false, it defaults - # to 19. - # * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in - # defiance of RFC 4627 to be parsed by the Parser. This option defaults - # to false. - # * *symbolize_names*: If set to true, returns symbols for the names - # (keys) in a JSON object. Otherwise strings are returned, which is also - # the default. - # * *create_additions*: If set to false, the Parser doesn't create - # additions even if a matchin class and create_id was found. This option - # defaults to true. - # * *object_class*: Defaults to Hash - # * *array_class*: Defaults to Array - def parse(source, opts = {}) - Parser.new(source, opts).parse - end - - # Parse the JSON document _source_ into a Ruby data structure and return it. - # The bang version of the parse method, defaults to the more dangerous values - # for the _opts_ hash, so be sure only to parse trusted _source_ documents. - # - # _opts_ can have the following keys: - # * *max_nesting*: The maximum depth of nesting allowed in the parsed data - # structures. Enable depth checking with :max_nesting => anInteger. The parse! - # methods defaults to not doing max depth checking: This can be dangerous, - # if someone wants to fill up your stack. - # * *allow_nan*: If set to true, allow NaN, Infinity, and -Infinity in - # defiance of RFC 4627 to be parsed by the Parser. This option defaults - # to true. - # * *create_additions*: If set to false, the Parser doesn't create - # additions even if a matchin class and create_id was found. This option - # defaults to true. - def parse!(source, opts = {}) - opts = { - :max_nesting => false, - :allow_nan => true - }.update(opts) - Parser.new(source, opts).parse - end - - # Generate a JSON document from the Ruby data structure _obj_ and return - # it. _state_ is * a JSON::State object, - # * or a Hash like object (responding to to_hash), - # * an object convertible into a hash by a to_h method, - # that is used as or to configure a State object. - # - # It defaults to a state object, that creates the shortest possible JSON text - # in one line, checks for circular data structures and doesn't allow NaN, - # Infinity, and -Infinity. - # - # A _state_ hash can have the following keys: - # * *indent*: a string used to indent levels (default: ''), - # * *space*: a string that is put after, a : or , delimiter (default: ''), - # * *space_before*: a string that is put before a : pair delimiter (default: ''), - # * *object_nl*: a string that is put at the end of a JSON object (default: ''), - # * *array_nl*: a string that is put at the end of a JSON array (default: ''), - # * *allow_nan*: true if NaN, Infinity, and -Infinity should be - # generated, otherwise an exception is thrown, if these values are - # encountered. This options defaults to false. - # * *max_nesting*: The maximum depth of nesting allowed in the data - # structures from which JSON is to be generated. Disable depth checking - # with :max_nesting => false, it defaults to 19. - # - # See also the fast_generate for the fastest creation method with the least - # amount of sanity checks, and the pretty_generate method for some - # defaults for a pretty output. - def generate(obj, opts = nil) - state = SAFE_STATE_PROTOTYPE.dup - if opts - if opts.respond_to? :to_hash - opts = opts.to_hash - elsif opts.respond_to? :to_h - opts = opts.to_h - else - raise TypeError, "can't convert #{opts.class} into Hash" - end - state = state.configure(opts) - end - state.generate(obj) - end - - # :stopdoc: - # I want to deprecate these later, so I'll first be silent about them, and - # later delete them. - alias unparse generate - module_function :unparse - # :startdoc: - - # Generate a JSON document from the Ruby data structure _obj_ and return it. - # This method disables the checks for circles in Ruby objects. - # - # *WARNING*: Be careful not to pass any Ruby data structures with circles as - # _obj_ argument, because this will cause JSON to go into an infinite loop. - def fast_generate(obj, opts = nil) - state = FAST_STATE_PROTOTYPE.dup - if opts - if opts.respond_to? :to_hash - opts = opts.to_hash - elsif opts.respond_to? :to_h - opts = opts.to_h - else - raise TypeError, "can't convert #{opts.class} into Hash" - end - state.configure(opts) - end - state.generate(obj) - end - - # :stopdoc: - # I want to deprecate these later, so I'll first be silent about them, and later delete them. - alias fast_unparse fast_generate - module_function :fast_unparse - # :startdoc: - - # Generate a JSON document from the Ruby data structure _obj_ and return it. - # The returned document is a prettier form of the document returned by - # #unparse. - # - # The _opts_ argument can be used to configure the generator, see the - # generate method for a more detailed explanation. - def pretty_generate(obj, opts = nil) - state = PRETTY_STATE_PROTOTYPE.dup - if opts - if opts.respond_to? :to_hash - opts = opts.to_hash - elsif opts.respond_to? :to_h - opts = opts.to_h - else - raise TypeError, "can't convert #{opts.class} into Hash" - end - state.configure(opts) - end - state.generate(obj) - end - - # :stopdoc: - # I want to deprecate these later, so I'll first be silent about them, and later delete them. - alias pretty_unparse pretty_generate - module_function :pretty_unparse - # :startdoc: - - # Load a ruby data structure from a JSON _source_ and return it. A source can - # either be a string-like object, an IO like object, or an object responding - # to the read method. If _proc_ was given, it will be called with any nested - # Ruby object as an argument recursively in depth first order. - # - # This method is part of the implementation of the load/dump interface of - # Marshal and YAML. - def load(source, proc = nil) - if source.respond_to? :to_str - source = source.to_str - elsif source.respond_to? :to_io - source = source.to_io.read - else - source = source.read - end - result = parse(source, :max_nesting => false, :allow_nan => true) - recurse_proc(result, &proc) if proc - result - end - - def recurse_proc(result, &proc) - case result - when Array - result.each { |x| recurse_proc x, &proc } - proc.call result - when Hash - result.each { |x, y| recurse_proc x, &proc; recurse_proc y, &proc } - proc.call result - else - proc.call result - end - end - - alias restore load - module_function :restore - - # Dumps _obj_ as a JSON string, i.e. calls generate on the object and returns - # the result. - # - # If anIO (an IO like object or an object that responds to the write method) - # was given, the resulting JSON is written to it. - # - # If the number of nested arrays or objects exceeds _limit_ an ArgumentError - # exception is raised. This argument is similar (but not exactly the - # same!) to the _limit_ argument in Marshal.dump. - # - # This method is part of the implementation of the load/dump interface of - # Marshal and YAML. - def dump(obj, anIO = nil, limit = nil) - if anIO and limit.nil? - anIO = anIO.to_io if anIO.respond_to?(:to_io) - unless anIO.respond_to?(:write) - limit = anIO - anIO = nil - end - end - limit ||= 0 - result = generate(obj, :allow_nan => true, :max_nesting => limit) - if anIO - anIO.write result - anIO - else - result - end - rescue JSON::NestingError - raise ArgumentError, "exceed depth limit" - end - - # Swap consecutive bytes of _string_ in place. - def self.swap!(string) # :nodoc: - 0.upto(string.size / 2) do |i| - break unless string[2 * i + 1] - string[2 * i], string[2 * i + 1] = string[2 * i + 1], string[2 * i] - end - string - end - - # Shortuct for iconv. - if ::String.method_defined?(:encode) - def self.iconv(to, from, string) - string.encode(to, from) - end - else - require 'iconv' - def self.iconv(to, from, string) - Iconv.iconv(to, from, string).first - end - end - - if ::Object.method(:const_defined?).arity == 1 - def self.const_defined_in?(modul, constant) - modul.const_defined?(constant) - end - else - def self.const_defined_in?(modul, constant) - modul.const_defined?(constant, false) - end - end -end - -module ::Kernel - private - - # Outputs _objs_ to STDOUT as JSON strings in the shortest form, that is in - # one line. - def j(*objs) - objs.each do |obj| - puts JSON::generate(obj, :allow_nan => true, :max_nesting => false) - end - nil - end - - # Ouputs _objs_ to STDOUT as JSON strings in a pretty format, with - # indentation and over many lines. - def jj(*objs) - objs.each do |obj| - puts JSON::pretty_generate(obj, :allow_nan => true, :max_nesting => false) - end - nil - end - - # If _object_ is string-like parse the string and return the parsed result as - # a Ruby data structure. Otherwise generate a JSON text from the Ruby data - # structure object and return it. - # - # The _opts_ argument is passed through to generate/parse respectively, see - # generate and parse for their documentation. - def JSON(object, *args) - if object.respond_to? :to_str - JSON.parse(object.to_str, args.first) - else - JSON.generate(object, args.first) - end - end -end - -class ::Class - # Returns true, if this class can be used to create an instance - # from a serialised JSON string. The class has to implement a class - # method _json_create_ that expects a hash as first parameter, which includes - # the required data. - def json_creatable? - respond_to?(:json_create) - end -end diff --git a/lib/mcollective/vendor/json/lib/json/editor.rb b/lib/mcollective/vendor/json/lib/json/editor.rb deleted file mode 100644 index 3450455..0000000 --- a/lib/mcollective/vendor/json/lib/json/editor.rb +++ /dev/null @@ -1,1369 +0,0 @@ -# To use the GUI JSON editor, start the edit_json.rb executable script. It -# requires ruby-gtk to be installed. - -require 'gtk2' -require 'json' -require 'rbconfig' -require 'open-uri' - -module JSON - module Editor - include Gtk - - # Beginning of the editor window title - TITLE = 'JSON Editor'.freeze - - # Columns constants - ICON_COL, TYPE_COL, CONTENT_COL = 0, 1, 2 - - # JSON primitive types (Containers) - CONTAINER_TYPES = %w[Array Hash].sort - # All JSON primitive types - ALL_TYPES = (%w[TrueClass FalseClass Numeric String NilClass] + - CONTAINER_TYPES).sort - - # The Nodes necessary for the tree representation of a JSON document - ALL_NODES = (ALL_TYPES + %w[Key]).sort - - DEFAULT_DIALOG_KEY_PRESS_HANDLER = lambda do |dialog, event| - case event.keyval - when Gdk::Keyval::GDK_Return - dialog.response Dialog::RESPONSE_ACCEPT - when Gdk::Keyval::GDK_Escape - dialog.response Dialog::RESPONSE_REJECT - end - end - - # Returns the Gdk::Pixbuf of the icon named _name_ from the icon cache. - def Editor.fetch_icon(name) - @icon_cache ||= {} - unless @icon_cache.key?(name) - path = File.dirname(__FILE__) - @icon_cache[name] = Gdk::Pixbuf.new(File.join(path, name + '.xpm')) - end - @icon_cache[name] - end - - # Opens an error dialog on top of _window_ showing the error message - # _text_. - def Editor.error_dialog(window, text) - dialog = MessageDialog.new(window, Dialog::MODAL, - MessageDialog::ERROR, - MessageDialog::BUTTONS_CLOSE, text) - dialog.show_all - dialog.run - rescue TypeError - dialog = MessageDialog.new(Editor.window, Dialog::MODAL, - MessageDialog::ERROR, - MessageDialog::BUTTONS_CLOSE, text) - dialog.show_all - dialog.run - ensure - dialog.destroy if dialog - end - - # Opens a yes/no question dialog on top of _window_ showing the error - # message _text_. If yes was answered _true_ is returned, otherwise - # _false_. - def Editor.question_dialog(window, text) - dialog = MessageDialog.new(window, Dialog::MODAL, - MessageDialog::QUESTION, - MessageDialog::BUTTONS_YES_NO, text) - dialog.show_all - dialog.run do |response| - return Gtk::Dialog::RESPONSE_YES === response - end - ensure - dialog.destroy if dialog - end - - # Convert the tree model starting from Gtk::TreeIter _iter_ into a Ruby - # data structure and return it. - def Editor.model2data(iter) - return nil if iter.nil? - case iter.type - when 'Hash' - hash = {} - iter.each { |c| hash[c.content] = Editor.model2data(c.first_child) } - hash - when 'Array' - array = Array.new(iter.n_children) - iter.each_with_index { |c, i| array[i] = Editor.model2data(c) } - array - when 'Key' - iter.content - when 'String' - iter.content - when 'Numeric' - content = iter.content - if /\./.match(content) - content.to_f - else - content.to_i - end - when 'TrueClass' - true - when 'FalseClass' - false - when 'NilClass' - nil - else - fail "Unknown type found in model: #{iter.type}" - end - end - - # Convert the Ruby data structure _data_ into tree model data for Gtk and - # returns the whole model. If the parameter _model_ wasn't given a new - # Gtk::TreeStore is created as the model. The _parent_ parameter specifies - # the parent node (iter, Gtk:TreeIter instance) to which the data is - # appended, alternativeley the result of the yielded block is used as iter. - def Editor.data2model(data, model = nil, parent = nil) - model ||= TreeStore.new(Gdk::Pixbuf, String, String) - iter = if block_given? - yield model - else - model.append(parent) - end - case data - when Hash - iter.type = 'Hash' - data.sort.each do |key, value| - pair_iter = model.append(iter) - pair_iter.type = 'Key' - pair_iter.content = key.to_s - Editor.data2model(value, model, pair_iter) - end - when Array - iter.type = 'Array' - data.each do |value| - Editor.data2model(value, model, iter) - end - when Numeric - iter.type = 'Numeric' - iter.content = data.to_s - when String, true, false, nil - iter.type = data.class.name - iter.content = data.nil? ? 'null' : data.to_s - else - iter.type = 'String' - iter.content = data.to_s - end - model - end - - # The Gtk::TreeIter class is reopened and some auxiliary methods are added. - class Gtk::TreeIter - include Enumerable - - # Traverse each of this Gtk::TreeIter instance's children - # and yield to them. - def each - n_children.times { |i| yield nth_child(i) } - end - - # Recursively traverse all nodes of this Gtk::TreeIter's subtree - # (including self) and yield to them. - def recursive_each(&block) - yield self - each do |i| - i.recursive_each(&block) - end - end - - # Remove the subtree of this Gtk::TreeIter instance from the - # model _model_. - def remove_subtree(model) - while current = first_child - model.remove(current) - end - end - - # Returns the type of this node. - def type - self[TYPE_COL] - end - - # Sets the type of this node to _value_. This implies setting - # the respective icon accordingly. - def type=(value) - self[TYPE_COL] = value - self[ICON_COL] = Editor.fetch_icon(value) - end - - # Returns the content of this node. - def content - self[CONTENT_COL] - end - - # Sets the content of this node to _value_. - def content=(value) - self[CONTENT_COL] = value - end - end - - # This module bundles some method, that can be used to create a menu. It - # should be included into the class in question. - module MenuExtension - include Gtk - - # Creates a Menu, that includes MenuExtension. _treeview_ is the - # Gtk::TreeView, on which it operates. - def initialize(treeview) - @treeview = treeview - @menu = Menu.new - end - - # Returns the Gtk::TreeView of this menu. - attr_reader :treeview - - # Returns the menu. - attr_reader :menu - - # Adds a Gtk::SeparatorMenuItem to this instance's #menu. - def add_separator - menu.append SeparatorMenuItem.new - end - - # Adds a Gtk::MenuItem to this instance's #menu. _label_ is the label - # string, _klass_ is the item type, and _callback_ is the procedure, that - # is called if the _item_ is activated. - def add_item(label, keyval = nil, klass = MenuItem, &callback) - label = "#{label} (C-#{keyval.chr})" if keyval - item = klass.new(label) - item.signal_connect(:activate, &callback) - if keyval - self.signal_connect(:'key-press-event') do |item, event| - if event.state & Gdk::Window::ModifierType::CONTROL_MASK != 0 and - event.keyval == keyval - callback.call item - end - end - end - menu.append item - item - end - - # This method should be implemented in subclasses to create the #menu of - # this instance. It has to be called after an instance of this class is - # created, to build the menu. - def create - raise NotImplementedError - end - - def method_missing(*a, &b) - treeview.__send__(*a, &b) - end - end - - # This class creates the popup menu, that opens when clicking onto the - # treeview. - class PopUpMenu - include MenuExtension - - # Change the type or content of the selected node. - def change_node(item) - if current = selection.selected - parent = current.parent - old_type, old_content = current.type, current.content - if ALL_TYPES.include?(old_type) - @clipboard_data = Editor.model2data(current) - type, content = ask_for_element(parent, current.type, - current.content) - if type - current.type, current.content = type, content - current.remove_subtree(model) - toplevel.display_status("Changed a node in tree.") - window.change - end - else - toplevel.display_status( - "Cannot change node of type #{old_type} in tree!") - end - end - end - - # Cut the selected node and its subtree, and save it into the - # clipboard. - def cut_node(item) - if current = selection.selected - if current and current.type == 'Key' - @clipboard_data = { - current.content => Editor.model2data(current.first_child) - } - else - @clipboard_data = Editor.model2data(current) - end - model.remove(current) - window.change - toplevel.display_status("Cut a node from tree.") - end - end - - # Copy the selected node and its subtree, and save it into the - # clipboard. - def copy_node(item) - if current = selection.selected - if current and current.type == 'Key' - @clipboard_data = { - current.content => Editor.model2data(current.first_child) - } - else - @clipboard_data = Editor.model2data(current) - end - window.change - toplevel.display_status("Copied a node from tree.") - end - end - - # Paste the data in the clipboard into the selected Array or Hash by - # appending it. - def paste_node_appending(item) - if current = selection.selected - if @clipboard_data - case current.type - when 'Array' - Editor.data2model(@clipboard_data, model, current) - expand_collapse(current) - when 'Hash' - if @clipboard_data.is_a? Hash - parent = current.parent - hash = Editor.model2data(current) - model.remove(current) - hash.update(@clipboard_data) - Editor.data2model(hash, model, parent) - if parent - expand_collapse(parent) - elsif @expanded - expand_all - end - window.change - else - toplevel.display_status( - "Cannot paste non-#{current.type} data into '#{current.type}'!") - end - else - toplevel.display_status( - "Cannot paste node below '#{current.type}'!") - end - else - toplevel.display_status("Nothing to paste in clipboard!") - end - else - toplevel.display_status("Append a node into the root first!") - end - end - - # Paste the data in the clipboard into the selected Array inserting it - # before the selected element. - def paste_node_inserting_before(item) - if current = selection.selected - if @clipboard_data - parent = current.parent or return - parent_type = parent.type - if parent_type == 'Array' - selected_index = parent.each_with_index do |c, i| - break i if c == current - end - Editor.data2model(@clipboard_data, model, parent) do |m| - m.insert_before(parent, current) - end - expand_collapse(current) - toplevel.display_status("Inserted an element to " + - "'#{parent_type}' before index #{selected_index}.") - window.change - else - toplevel.display_status( - "Cannot insert node below '#{parent_type}'!") - end - else - toplevel.display_status("Nothing to paste in clipboard!") - end - else - toplevel.display_status("Append a node into the root first!") - end - end - - # Append a new node to the selected Hash or Array. - def append_new_node(item) - if parent = selection.selected - parent_type = parent.type - case parent_type - when 'Hash' - key, type, content = ask_for_hash_pair(parent) - key or return - iter = create_node(parent, 'Key', key) - iter = create_node(iter, type, content) - toplevel.display_status( - "Added a (key, value)-pair to '#{parent_type}'.") - window.change - when 'Array' - type, content = ask_for_element(parent) - type or return - iter = create_node(parent, type, content) - window.change - toplevel.display_status("Appendend an element to '#{parent_type}'.") - else - toplevel.display_status("Cannot append to '#{parent_type}'!") - end - else - type, content = ask_for_element - type or return - iter = create_node(nil, type, content) - window.change - end - end - - # Insert a new node into an Array before the selected element. - def insert_new_node(item) - if current = selection.selected - parent = current.parent or return - parent_parent = parent.parent - parent_type = parent.type - if parent_type == 'Array' - selected_index = parent.each_with_index do |c, i| - break i if c == current - end - type, content = ask_for_element(parent) - type or return - iter = model.insert_before(parent, current) - iter.type, iter.content = type, content - toplevel.display_status("Inserted an element to " + - "'#{parent_type}' before index #{selected_index}.") - window.change - else - toplevel.display_status( - "Cannot insert node below '#{parent_type}'!") - end - else - toplevel.display_status("Append a node into the root first!") - end - end - - # Recursively collapse/expand a subtree starting from the selected node. - def collapse_expand(item) - if current = selection.selected - if row_expanded?(current.path) - collapse_row(current.path) - else - expand_row(current.path, true) - end - else - toplevel.display_status("Append a node into the root first!") - end - end - - # Create the menu. - def create - add_item("Change node", ?n, &method(:change_node)) - add_separator - add_item("Cut node", ?X, &method(:cut_node)) - add_item("Copy node", ?C, &method(:copy_node)) - add_item("Paste node (appending)", ?A, &method(:paste_node_appending)) - add_item("Paste node (inserting before)", ?I, - &method(:paste_node_inserting_before)) - add_separator - add_item("Append new node", ?a, &method(:append_new_node)) - add_item("Insert new node before", ?i, &method(:insert_new_node)) - add_separator - add_item("Collapse/Expand node (recursively)", ?e, - &method(:collapse_expand)) - - menu.show_all - signal_connect(:button_press_event) do |widget, event| - if event.kind_of? Gdk::EventButton and event.button == 3 - menu.popup(nil, nil, event.button, event.time) - end - end - signal_connect(:popup_menu) do - menu.popup(nil, nil, 0, Gdk::Event::CURRENT_TIME) - end - end - end - - # This class creates the File pulldown menu. - class FileMenu - include MenuExtension - - # Clear the model and filename, but ask to save the JSON document, if - # unsaved changes have occured. - def new(item) - window.clear - end - - # Open a file and load it into the editor. Ask to save the JSON document - # first, if unsaved changes have occured. - def open(item) - window.file_open - end - - def open_location(item) - window.location_open - end - - # Revert the current JSON document in the editor to the saved version. - def revert(item) - window.instance_eval do - @filename and file_open(@filename) - end - end - - # Save the current JSON document. - def save(item) - window.file_save - end - - # Save the current JSON document under the given filename. - def save_as(item) - window.file_save_as - end - - # Quit the editor, after asking to save any unsaved changes first. - def quit(item) - window.quit - end - - # Create the menu. - def create - title = MenuItem.new('File') - title.submenu = menu - add_item('New', &method(:new)) - add_item('Open', ?o, &method(:open)) - add_item('Open location', ?l, &method(:open_location)) - add_item('Revert', &method(:revert)) - add_separator - add_item('Save', ?s, &method(:save)) - add_item('Save As', ?S, &method(:save_as)) - add_separator - add_item('Quit', ?q, &method(:quit)) - title - end - end - - # This class creates the Edit pulldown menu. - class EditMenu - include MenuExtension - - # Copy data from model into primary clipboard. - def copy(item) - data = Editor.model2data(model.iter_first) - json = JSON.pretty_generate(data, :max_nesting => false) - c = Gtk::Clipboard.get(Gdk::Selection::PRIMARY) - c.text = json - end - - # Copy json text from primary clipboard into model. - def paste(item) - c = Gtk::Clipboard.get(Gdk::Selection::PRIMARY) - if json = c.wait_for_text - window.ask_save if @changed - begin - window.edit json - rescue JSON::ParserError - window.clear - end - end - end - - # Find a string in all nodes' contents and select the found node in the - # treeview. - def find(item) - @search = ask_for_find_term(@search) or return - iter = model.get_iter('0') or return - iter.recursive_each do |i| - if @iter - if @iter != i - next - else - @iter = nil - next - end - elsif @search.match(i[CONTENT_COL]) - set_cursor(i.path, nil, false) - @iter = i - break - end - end - end - - # Repeat the last search given by #find. - def find_again(item) - @search or return - iter = model.get_iter('0') - iter.recursive_each do |i| - if @iter - if @iter != i - next - else - @iter = nil - next - end - elsif @search.match(i[CONTENT_COL]) - set_cursor(i.path, nil, false) - @iter = i - break - end - end - end - - # Sort (Reverse sort) all elements of the selected array by the given - # expression. _x_ is the element in question. - def sort(item) - if current = selection.selected - if current.type == 'Array' - parent = current.parent - ary = Editor.model2data(current) - order, reverse = ask_for_order - order or return - begin - block = eval "lambda { |x| #{order} }" - if reverse - ary.sort! { |a,b| block[b] <=> block[a] } - else - ary.sort! { |a,b| block[a] <=> block[b] } - end - rescue => e - Editor.error_dialog(self, "Failed to sort Array with #{order}: #{e}!") - else - Editor.data2model(ary, model, parent) do |m| - m.insert_before(parent, current) - end - model.remove(current) - expand_collapse(parent) - window.change - toplevel.display_status("Array has been sorted.") - end - else - toplevel.display_status("Only Array nodes can be sorted!") - end - else - toplevel.display_status("Select an Array to sort first!") - end - end - - # Create the menu. - def create - title = MenuItem.new('Edit') - title.submenu = menu - add_item('Copy', ?c, &method(:copy)) - add_item('Paste', ?v, &method(:paste)) - add_separator - add_item('Find', ?f, &method(:find)) - add_item('Find Again', ?g, &method(:find_again)) - add_separator - add_item('Sort', ?S, &method(:sort)) - title - end - end - - class OptionsMenu - include MenuExtension - - # Collapse/Expand all nodes by default. - def collapsed_nodes(item) - if expanded - self.expanded = false - collapse_all - else - self.expanded = true - expand_all - end - end - - # Toggle pretty saving mode on/off. - def pretty_saving(item) - @pretty_item.toggled - window.change - end - - attr_reader :pretty_item - - # Create the menu. - def create - title = MenuItem.new('Options') - title.submenu = menu - add_item('Collapsed nodes', nil, CheckMenuItem, &method(:collapsed_nodes)) - @pretty_item = add_item('Pretty saving', nil, CheckMenuItem, - &method(:pretty_saving)) - @pretty_item.active = true - window.unchange - title - end - end - - # This class inherits from Gtk::TreeView, to configure it and to add a lot - # of behaviour to it. - class JSONTreeView < Gtk::TreeView - include Gtk - - # Creates a JSONTreeView instance, the parameter _window_ is - # a MainWindow instance and used for self delegation. - def initialize(window) - @window = window - super(TreeStore.new(Gdk::Pixbuf, String, String)) - self.selection.mode = SELECTION_BROWSE - - @expanded = false - self.headers_visible = false - add_columns - add_popup_menu - end - - # Returns the MainWindow instance of this JSONTreeView. - attr_reader :window - - # Returns true, if nodes are autoexpanding, false otherwise. - attr_accessor :expanded - - private - - def add_columns - cell = CellRendererPixbuf.new - column = TreeViewColumn.new('Icon', cell, - 'pixbuf' => ICON_COL - ) - append_column(column) - - cell = CellRendererText.new - column = TreeViewColumn.new('Type', cell, - 'text' => TYPE_COL - ) - append_column(column) - - cell = CellRendererText.new - cell.editable = true - column = TreeViewColumn.new('Content', cell, - 'text' => CONTENT_COL - ) - cell.signal_connect(:edited, &method(:cell_edited)) - append_column(column) - end - - def unify_key(iter, key) - return unless iter.type == 'Key' - parent = iter.parent - if parent.any? { |c| c != iter and c.content == key } - old_key = key - i = 0 - begin - key = sprintf("%s.%d", old_key, i += 1) - end while parent.any? { |c| c != iter and c.content == key } - end - iter.content = key - end - - def cell_edited(cell, path, value) - iter = model.get_iter(path) - case iter.type - when 'Key' - unify_key(iter, value) - toplevel.display_status('Key has been changed.') - when 'FalseClass' - value.downcase! - if value == 'true' - iter.type, iter.content = 'TrueClass', 'true' - end - when 'TrueClass' - value.downcase! - if value == 'false' - iter.type, iter.content = 'FalseClass', 'false' - end - when 'Numeric' - iter.content = - if value == 'Infinity' - value - else - (Integer(value) rescue Float(value) rescue 0).to_s - end - when 'String' - iter.content = value - when 'Hash', 'Array' - return - else - fail "Unknown type found in model: #{iter.type}" - end - window.change - end - - def configure_value(value, type) - value.editable = false - case type - when 'Array', 'Hash' - value.text = '' - when 'TrueClass' - value.text = 'true' - when 'FalseClass' - value.text = 'false' - when 'NilClass' - value.text = 'null' - when 'Numeric', 'String' - value.text ||= '' - value.editable = true - else - raise ArgumentError, "unknown type '#{type}' encountered" - end - end - - def add_popup_menu - menu = PopUpMenu.new(self) - menu.create - end - - public - - # Create a _type_ node with content _content_, and add it to _parent_ - # in the model. If _parent_ is nil, create a new model and put it into - # the editor treeview. - def create_node(parent, type, content) - iter = if parent - model.append(parent) - else - new_model = Editor.data2model(nil) - toplevel.view_new_model(new_model) - new_model.iter_first - end - iter.type, iter.content = type, content - expand_collapse(parent) if parent - iter - end - - # Ask for a hash key, value pair to be added to the Hash node _parent_. - def ask_for_hash_pair(parent) - key_input = type_input = value_input = nil - - dialog = Dialog.new("New (key, value) pair for Hash", nil, nil, - [ Stock::OK, Dialog::RESPONSE_ACCEPT ], - [ Stock::CANCEL, Dialog::RESPONSE_REJECT ] - ) - dialog.width_request = 640 - - hbox = HBox.new(false, 5) - hbox.pack_start(Label.new("Key:"), false) - hbox.pack_start(key_input = Entry.new) - key_input.text = @key || '' - dialog.vbox.pack_start(hbox, false) - key_input.signal_connect(:activate) do - if parent.any? { |c| c.content == key_input.text } - toplevel.display_status('Key already exists in Hash!') - key_input.text = '' - else - toplevel.display_status('Key has been changed.') - end - end - - hbox = HBox.new(false, 5) - hbox.pack_start(Label.new("Type:"), false) - hbox.pack_start(type_input = ComboBox.new(true)) - ALL_TYPES.each { |t| type_input.append_text(t) } - type_input.active = @type || 0 - dialog.vbox.pack_start(hbox, false) - - type_input.signal_connect(:changed) do - value_input.editable = false - case ALL_TYPES[type_input.active] - when 'Array', 'Hash' - value_input.text = '' - when 'TrueClass' - value_input.text = 'true' - when 'FalseClass' - value_input.text = 'false' - when 'NilClass' - value_input.text = 'null' - else - value_input.text = '' - value_input.editable = true - end - end - - hbox = HBox.new(false, 5) - hbox.pack_start(Label.new("Value:"), false) - hbox.pack_start(value_input = Entry.new) - value_input.width_chars = 60 - value_input.text = @value || '' - dialog.vbox.pack_start(hbox, false) - - dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER) - dialog.show_all - self.focus = dialog - dialog.run do |response| - if response == Dialog::RESPONSE_ACCEPT - @key = key_input.text - type = ALL_TYPES[@type = type_input.active] - content = value_input.text - return @key, type, content - end - end - return - ensure - dialog.destroy - end - - # Ask for an element to be appended _parent_. - def ask_for_element(parent = nil, default_type = nil, value_text = @content) - type_input = value_input = nil - - dialog = Dialog.new( - "New element into #{parent ? parent.type : 'root'}", - nil, nil, - [ Stock::OK, Dialog::RESPONSE_ACCEPT ], - [ Stock::CANCEL, Dialog::RESPONSE_REJECT ] - ) - hbox = HBox.new(false, 5) - hbox.pack_start(Label.new("Type:"), false) - hbox.pack_start(type_input = ComboBox.new(true)) - default_active = 0 - types = parent ? ALL_TYPES : CONTAINER_TYPES - types.each_with_index do |t, i| - type_input.append_text(t) - if t == default_type - default_active = i - end - end - type_input.active = default_active - dialog.vbox.pack_start(hbox, false) - type_input.signal_connect(:changed) do - configure_value(value_input, types[type_input.active]) - end - - hbox = HBox.new(false, 5) - hbox.pack_start(Label.new("Value:"), false) - hbox.pack_start(value_input = Entry.new) - value_input.width_chars = 60 - value_input.text = value_text if value_text - configure_value(value_input, types[type_input.active]) - - dialog.vbox.pack_start(hbox, false) - - dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER) - dialog.show_all - self.focus = dialog - dialog.run do |response| - if response == Dialog::RESPONSE_ACCEPT - type = types[type_input.active] - @content = case type - when 'Numeric' - if (t = value_input.text) == 'Infinity' - 1 / 0.0 - else - Integer(t) rescue Float(t) rescue 0 - end - else - value_input.text - end.to_s - return type, @content - end - end - return - ensure - dialog.destroy if dialog - end - - # Ask for an order criteria for sorting, using _x_ for the element in - # question. Returns the order criterium, and true/false for reverse - # sorting. - def ask_for_order - dialog = Dialog.new( - "Give an order criterium for 'x'.", - nil, nil, - [ Stock::OK, Dialog::RESPONSE_ACCEPT ], - [ Stock::CANCEL, Dialog::RESPONSE_REJECT ] - ) - hbox = HBox.new(false, 5) - - hbox.pack_start(Label.new("Order:"), false) - hbox.pack_start(order_input = Entry.new) - order_input.text = @order || 'x' - order_input.width_chars = 60 - - hbox.pack_start(reverse_checkbox = CheckButton.new('Reverse'), false) - - dialog.vbox.pack_start(hbox, false) - - dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER) - dialog.show_all - self.focus = dialog - dialog.run do |response| - if response == Dialog::RESPONSE_ACCEPT - return @order = order_input.text, reverse_checkbox.active? - end - end - return - ensure - dialog.destroy if dialog - end - - # Ask for a find term to search for in the tree. Returns the term as a - # string. - def ask_for_find_term(search = nil) - dialog = Dialog.new( - "Find a node matching regex in tree.", - nil, nil, - [ Stock::OK, Dialog::RESPONSE_ACCEPT ], - [ Stock::CANCEL, Dialog::RESPONSE_REJECT ] - ) - hbox = HBox.new(false, 5) - - hbox.pack_start(Label.new("Regex:"), false) - hbox.pack_start(regex_input = Entry.new) - hbox.pack_start(icase_checkbox = CheckButton.new('Icase'), false) - regex_input.width_chars = 60 - if search - regex_input.text = search.source - icase_checkbox.active = search.casefold? - end - - dialog.vbox.pack_start(hbox, false) - - dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER) - dialog.show_all - self.focus = dialog - dialog.run do |response| - if response == Dialog::RESPONSE_ACCEPT - begin - return Regexp.new(regex_input.text, icase_checkbox.active? ? Regexp::IGNORECASE : 0) - rescue => e - Editor.error_dialog(self, "Evaluation of regex /#{regex_input.text}/ failed: #{e}!") - return - end - end - end - return - ensure - dialog.destroy if dialog - end - - # Expand or collapse row pointed to by _iter_ according - # to the #expanded attribute. - def expand_collapse(iter) - if expanded - expand_row(iter.path, true) - else - collapse_row(iter.path) - end - end - end - - # The editor main window - class MainWindow < Gtk::Window - include Gtk - - def initialize(encoding) - @changed = false - @encoding = encoding - super(TOPLEVEL) - display_title - set_default_size(800, 600) - signal_connect(:delete_event) { quit } - - vbox = VBox.new(false, 0) - add(vbox) - #vbox.border_width = 0 - - @treeview = JSONTreeView.new(self) - @treeview.signal_connect(:'cursor-changed') do - display_status('') - end - - menu_bar = create_menu_bar - vbox.pack_start(menu_bar, false, false, 0) - - sw = ScrolledWindow.new(nil, nil) - sw.shadow_type = SHADOW_ETCHED_IN - sw.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) - vbox.pack_start(sw, true, true, 0) - sw.add(@treeview) - - @status_bar = Statusbar.new - vbox.pack_start(@status_bar, false, false, 0) - - @filename ||= nil - if @filename - data = read_data(@filename) - view_new_model Editor.data2model(data) - end - - signal_connect(:button_release_event) do |_,event| - if event.button == 2 - c = Gtk::Clipboard.get(Gdk::Selection::PRIMARY) - if url = c.wait_for_text - location_open url - end - false - else - true - end - end - end - - # Creates the menu bar with the pulldown menus and returns it. - def create_menu_bar - menu_bar = MenuBar.new - @file_menu = FileMenu.new(@treeview) - menu_bar.append @file_menu.create - @edit_menu = EditMenu.new(@treeview) - menu_bar.append @edit_menu.create - @options_menu = OptionsMenu.new(@treeview) - menu_bar.append @options_menu.create - menu_bar - end - - # Sets editor status to changed, to indicate that the edited data - # containts unsaved changes. - def change - @changed = true - display_title - end - - # Sets editor status to unchanged, to indicate that the edited data - # doesn't containt unsaved changes. - def unchange - @changed = false - display_title - end - - # Puts a new model _model_ into the Gtk::TreeView to be edited. - def view_new_model(model) - @treeview.model = model - @treeview.expanded = true - @treeview.expand_all - unchange - end - - # Displays _text_ in the status bar. - def display_status(text) - @cid ||= nil - @status_bar.pop(@cid) if @cid - @cid = @status_bar.get_context_id('dummy') - @status_bar.push(@cid, text) - end - - # Opens a dialog, asking, if changes should be saved to a file. - def ask_save - if Editor.question_dialog(self, - "Unsaved changes to JSON model. Save?") - if @filename - file_save - else - file_save_as - end - end - end - - # Quit this editor, that is, leave this editor's main loop. - def quit - ask_save if @changed - if Gtk.main_level > 0 - destroy - Gtk.main_quit - end - nil - end - - # Display the new title according to the editor's current state. - def display_title - title = TITLE.dup - title << ": #@filename" if @filename - title << " *" if @changed - self.title = title - end - - # Clear the current model, after asking to save all unsaved changes. - def clear - ask_save if @changed - @filename = nil - self.view_new_model nil - end - - def check_pretty_printed(json) - pretty = !!((nl_index = json.index("\n")) && nl_index != json.size - 1) - @options_menu.pretty_item.active = pretty - end - private :check_pretty_printed - - # Open the data at the location _uri_, if given. Otherwise open a dialog - # to ask for the _uri_. - def location_open(uri = nil) - uri = ask_for_location unless uri - uri or return - ask_save if @changed - data = load_location(uri) or return - view_new_model Editor.data2model(data) - end - - # Open the file _filename_ or call the #select_file method to ask for a - # filename. - def file_open(filename = nil) - filename = select_file('Open as a JSON file') unless filename - data = load_file(filename) or return - view_new_model Editor.data2model(data) - end - - # Edit the string _json_ in the editor. - def edit(json) - if json.respond_to? :read - json = json.read - end - data = parse_json json - view_new_model Editor.data2model(data) - end - - # Save the current file. - def file_save - if @filename - store_file(@filename) - else - file_save_as - end - end - - # Save the current file as the filename - def file_save_as - filename = select_file('Save as a JSON file') - store_file(filename) - end - - # Store the current JSON document to _path_. - def store_file(path) - if path - data = Editor.model2data(@treeview.model.iter_first) - File.open(path + '.tmp', 'wb') do |output| - data or break - if @options_menu.pretty_item.active? - output.puts JSON.pretty_generate(data, :max_nesting => false) - else - output.write JSON.generate(data, :max_nesting => false) - end - end - File.rename path + '.tmp', path - @filename = path - toplevel.display_status("Saved data to '#@filename'.") - unchange - end - rescue SystemCallError => e - Editor.error_dialog(self, "Failed to store JSON file: #{e}!") - end - - # Load the file named _filename_ into the editor as a JSON document. - def load_file(filename) - if filename - if File.directory?(filename) - Editor.error_dialog(self, "Try to select a JSON file!") - nil - else - @filename = filename - if data = read_data(filename) - toplevel.display_status("Loaded data from '#@filename'.") - end - display_title - data - end - end - end - - # Load the data at location _uri_ into the editor as a JSON document. - def load_location(uri) - data = read_data(uri) or return - @filename = nil - toplevel.display_status("Loaded data from '#{uri}'.") - display_title - data - end - - def parse_json(json) - check_pretty_printed(json) - if @encoding && !/^utf8$/i.match(@encoding) - json = JSON.iconv 'utf-8', @encoding, json - end - JSON::parse(json, :max_nesting => false, :create_additions => false) - end - private :parse_json - - # Read a JSON document from the file named _filename_, parse it into a - # ruby data structure, and return the data. - def read_data(filename) - open(filename) do |f| - json = f.read - return parse_json(json) - end - rescue => e - Editor.error_dialog(self, "Failed to parse JSON file: #{e}!") - return - end - - # Open a file selecton dialog, displaying _message_, and return the - # selected filename or nil, if no file was selected. - def select_file(message) - filename = nil - fs = FileSelection.new(message) - fs.set_modal(true) - @default_dir = File.join(Dir.pwd, '') unless @default_dir - fs.set_filename(@default_dir) - fs.set_transient_for(self) - fs.signal_connect(:destroy) { Gtk.main_quit } - fs.ok_button.signal_connect(:clicked) do - filename = fs.filename - @default_dir = File.join(File.dirname(filename), '') - fs.destroy - Gtk.main_quit - end - fs.cancel_button.signal_connect(:clicked) do - fs.destroy - Gtk.main_quit - end - fs.show_all - Gtk.main - filename - end - - # Ask for location URI a to load data from. Returns the URI as a string. - def ask_for_location - dialog = Dialog.new( - "Load data from location...", - nil, nil, - [ Stock::OK, Dialog::RESPONSE_ACCEPT ], - [ Stock::CANCEL, Dialog::RESPONSE_REJECT ] - ) - hbox = HBox.new(false, 5) - - hbox.pack_start(Label.new("Location:"), false) - hbox.pack_start(location_input = Entry.new) - location_input.width_chars = 60 - location_input.text = @location || '' - - dialog.vbox.pack_start(hbox, false) - - dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER) - dialog.show_all - dialog.run do |response| - if response == Dialog::RESPONSE_ACCEPT - return @location = location_input.text - end - end - return - ensure - dialog.destroy if dialog - end - end - - class << self - # Starts a JSON Editor. If a block was given, it yields - # to the JSON::Editor::MainWindow instance. - def start(encoding = 'utf8') # :yield: window - Gtk.init - @window = Editor::MainWindow.new(encoding) - @window.icon_list = [ Editor.fetch_icon('json') ] - yield @window if block_given? - @window.show_all - Gtk.main - end - - # Edit the string _json_ with encoding _encoding_ in the editor. - def edit(json, encoding = 'utf8') - start(encoding) do |window| - window.edit json - end - end - - attr_reader :window - end - end -end diff --git a/lib/mcollective/vendor/json/lib/json/ext.rb b/lib/mcollective/vendor/json/lib/json/ext.rb deleted file mode 100644 index 1fbc3fd..0000000 --- a/lib/mcollective/vendor/json/lib/json/ext.rb +++ /dev/null @@ -1,28 +0,0 @@ -require 'json/common' - -module JSON - # This module holds all the modules/classes that implement JSON's - # functionality as C extensions. - module Ext - begin - if defined?(RUBY_ENGINE) == 'constant' and RUBY_ENGINE == 'ruby' and RUBY_VERSION =~ /\A1\.9\./ - require 'json/ext/1.9/parser' - require 'json/ext/1.9/generator' - elsif !defined?(RUBY_ENGINE) && RUBY_VERSION =~ /\A1\.8\./ - require 'json/ext/1.8/parser' - require 'json/ext/1.8/generator' - else - require 'json/ext/parser' - require 'json/ext/generator' - end - rescue LoadError - require 'json/ext/parser' - require 'json/ext/generator' - end - $DEBUG and warn "Using Ext extension for JSON." - JSON.parser = Parser - JSON.generator = Generator - end - - JSON_LOADED = true unless defined?(::JSON::JSON_LOADED) -end diff --git a/lib/mcollective/vendor/json/lib/json/ext/.keep b/lib/mcollective/vendor/json/lib/json/ext/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/lib/mcollective/vendor/json/lib/json/json.xpm b/lib/mcollective/vendor/json/lib/json/json.xpm deleted file mode 100644 index 2cb626b..0000000 --- a/lib/mcollective/vendor/json/lib/json/json.xpm +++ /dev/null @@ -1,1499 +0,0 @@ -/* XPM */ -static char * json_xpm[] = { -"64 64 1432 2", -" c None", -". c #641839", -"+ c #CF163C", -"@ c #D31C3B", -"# c #E11A38", -"$ c #5F242D", -"% c #320C22", -"& c #9B532D", -"* c #F32E34", -"= c #820F33", -"- c #4B0F34", -"; c #8E1237", -"> c #944029", -", c #961325", -"' c #A00C24", -") c #872C23", -"! c #694021", -"~ c #590D1F", -"{ c #420528", -"] c #D85A2D", -"^ c #7E092B", -"/ c #0E0925", -"( c #0D081F", -"_ c #0F081E", -": c #12071F", -"< c #360620", -"[ c #682A21", -"} c #673F21", -"| c #780E21", -"1 c #A82320", -"2 c #8D1D1F", -"3 c #970127", -"4 c #0D0123", -"5 c #0D0324", -"6 c #3B1E28", -"7 c #C28429", -"8 c #0C0523", -"9 c #0C041E", -"0 c #0E031A", -"a c #11031A", -"b c #13031B", -"c c #13031C", -"d c #11031D", -"e c #19051E", -"f c #390E20", -"g c #9C0C20", -"h c #C00721", -"i c #980320", -"j c #14031E", -"k c #CD9F32", -"l c #C29F2E", -"m c #0F0325", -"n c #0D0321", -"o c #0E0324", -"p c #D08329", -"q c #9D1B27", -"r c #1C0320", -"s c #0D011A", -"t c #120117", -"u c #130017", -"v c #150018", -"w c #160119", -"x c #17021A", -"y c #15021B", -"z c #11021E", -"A c #0F021F", -"B c #8C1821", -"C c #CF4522", -"D c #831821", -"E c #BA7033", -"F c #EDB339", -"G c #C89733", -"H c #280727", -"I c #0F051F", -"J c #0E0420", -"K c #591F27", -"L c #E47129", -"M c #612224", -"N c #0C021D", -"O c #120018", -"P c #140017", -"Q c #170017", -"R c #190018", -"S c #1B0019", -"T c #1B011A", -"U c #18011B", -"V c #15011C", -"W c #12031E", -"X c #460A21", -"Y c #A13823", -"Z c #784323", -"` c #5A0C21", -" . c #BC4530", -".. c #EB5B38", -"+. c #CE4E3B", -"@. c #DD9334", -"#. c #751A27", -"$. c #11071E", -"%. c #0F041C", -"&. c #1E0824", -"*. c #955A28", -"=. c #9A5027", -"-. c #1E0321", -";. c #11011A", -">. c #140018", -",. c #180018", -"'. c #1F001A", -"). c #20001B", -"!. c #1E001A", -"~. c #1B001A", -"{. c #16021B", -"]. c #16041E", -"^. c #220622", -"/. c #5F3525", -"(. c #DE5724", -"_. c #611021", -":. c #0F0925", -"<. c #D1892E", -"[. c #F27036", -"}. c #EC633B", -"|. c #DA293C", -"1. c #E64833", -"2. c #912226", -"3. c #11081C", -"4. c #110419", -"5. c #0F041E", -"6. c #451425", -"7. c #BF6F28", -"8. c #332225", -"9. c #0E021E", -"0. c #13001B", -"a. c #17001A", -"b. c #1C001B", -"c. c #21001C", -"d. c #23001C", -"e. c #21001B", -"f. c #19021A", -"g. c #17041E", -"h. c #150721", -"i. c #602424", -"j. c #D51223", -"k. c #540820", -"l. c #D04D2D", -"m. c #EA8933", -"n. c #875637", -"o. c #88543A", -"p. c #E5923A", -"q. c #891931", -"r. c #130B25", -"s. c #10051B", -"t. c #110217", -"u. c #12021A", -"v. c #761826", -"w. c #E2A728", -"x. c #300224", -"y. c #10011E", -"z. c #16001B", -"A. c #1B001B", -"B. c #21001A", -"C. c #1E0019", -"D. c #1D0019", -"E. c #1A011A", -"F. c #17031C", -"G. c #120720", -"H. c #4E0822", -"I. c #670721", -"J. c #C07630", -"K. c #F59734", -"L. c #BE1B35", -"M. c #0E1435", -"N. c #522037", -"O. c #DB8039", -"P. c #D45933", -"Q. c #420927", -"R. c #0F041D", -"S. c #140118", -"T. c #13021D", -"U. c #100423", -"V. c #7B6227", -"W. c #C04326", -"X. c #0E0020", -"Y. c #13001D", -"Z. c #18001B", -"`. c #1E001B", -" + c #22001C", -".+ c #22001B", -"++ c #1B011B", -"@+ c #16041D", -"#+ c #130520", -"$+ c #860521", -"%+ c #710520", -"&+ c #670A2A", -"*+ c #A66431", -"=+ c #E97536", -"-+ c #F8833A", -";+ c #F77A3A", -">+ c #C45337", -",+ c #0A1C35", -"'+ c #993638", -")+ c #F7863B", -"!+ c #F49736", -"~+ c #94462B", -"{+ c #0E031F", -"]+ c #130119", -"^+ c #160018", -"/+ c #16011B", -"(+ c #15021F", -"_+ c #120123", -":+ c #A65C28", -"<+ c #5C4D23", -"[+ c #0F001F", -"}+ c #14001D", -"|+ c #1A001B", -"1+ c #1F001B", -"2+ c #24001D", -"3+ c #25001D", -"4+ c #24001C", -"5+ c #1F001C", -"6+ c #1A011C", -"7+ c #16021E", -"8+ c #3F0421", -"9+ c #BC0522", -"0+ c #1C041E", -"a+ c #7F5531", -"b+ c #E68A38", -"c+ c #F8933E", -"d+ c #FA7942", -"e+ c #FB7543", -"f+ c #FA6F41", -"g+ c #F1793D", -"h+ c #7D3B3A", -"i+ c #28263B", -"j+ c #D45441", -"k+ c #F8A238", -"l+ c #996B2D", -"m+ c #0E0421", -"n+ c #12011A", -"o+ c #180019", -"p+ c #17001C", -"q+ c #12001F", -"r+ c #4C2B2A", -"s+ c #DB8130", -"t+ c #540023", -"u+ c #0F0120", -"v+ c #16011C", -"w+ c #22001D", -"x+ c #25001F", -"y+ c #26001F", -"z+ c #25001E", -"A+ c #24001E", -"B+ c #1D001C", -"C+ c #18011D", -"D+ c #16031F", -"E+ c #3C0522", -"F+ c #9B0821", -"G+ c #13041E", -"H+ c #F6462E", -"I+ c #E6AB37", -"J+ c #E7A03E", -"K+ c #FA9F44", -"L+ c #FB8A48", -"M+ c #FD7A4A", -"N+ c #FD794A", -"O+ c #FD7748", -"P+ c #FD7E45", -"Q+ c #FD8343", -"R+ c #FB5D42", -"S+ c #6E3A40", -"T+ c #EE8A37", -"U+ c #7E252B", -"V+ c #100520", -"W+ c #13011A", -"X+ c #170019", -"Y+ c #15001C", -"Z+ c #0F0020", -"`+ c #564427", -" @ c #E0BA29", -".@ c #5E2B25", -"+@ c #10011F", -"@@ c #17011C", -"#@ c #1E001D", -"$@ c #23001F", -"%@ c #250020", -"&@ c #24001F", -"*@ c #23001E", -"=@ c #21001E", -"-@ c #1B001C", -";@ c #17021D", -">@ c #14041E", -",@ c #AC0B25", -"'@ c #5E1420", -")@ c #F28635", -"!@ c #C2733E", -"~@ c #984C44", -"{@ c #EA9148", -"]@ c #FB844B", -"^@ c #FD7E4C", -"/@ c #FE7E4C", -"(@ c #FE7E4B", -"_@ c #FE7749", -":@ c #FD7148", -"<@ c #FB7D46", -"[@ c #F89641", -"}@ c #B95634", -"|@ c #0D0927", -"1@ c #11041D", -"2@ c #150119", -"3@ c #180017", -"4@ c #16001A", -"5@ c #13001E", -"6@ c #110023", -"7@ c #944C29", -"8@ c #EE6229", -"9@ c #3D0324", -"0@ c #12021F", -"a@ c #19011D", -"b@ c #21001F", -"c@ c #22001F", -"d@ c #20001E", -"e@ c #1F001D", -"f@ c #1C001C", -"g@ c #19011C", -"h@ c #3D1621", -"i@ c #B53622", -"j@ c #31061F", -"k@ c #841D34", -"l@ c #F2703F", -"m@ c #C14445", -"n@ c #E67349", -"o@ c #FB8E4B", -"p@ c #FD834C", -"q@ c #FE834D", -"r@ c #FE834C", -"s@ c #FE804C", -"t@ c #FD814B", -"u@ c #FB7D49", -"v@ c #F79B43", -"w@ c #AF1234", -"x@ c #0D0625", -"y@ c #13021C", -"z@ c #1A0019", -"A@ c #190019", -"B@ c #410225", -"C@ c #D39729", -"D@ c #AA5927", -"E@ c #0E0422", -"F@ c #15021E", -"G@ c #1A011D", -"H@ c #1D001D", -"I@ c #15031D", -"J@ c #240820", -"K@ c #A01023", -"L@ c #670B21", -"M@ c #3D0D33", -"N@ c #E63C3E", -"O@ c #EF7C45", -"P@ c #F59048", -"Q@ c #FB944A", -"R@ c #FD904A", -"S@ c #FE8E4B", -"T@ c #FE854A", -"U@ c #FE854B", -"V@ c #FE884C", -"W@ c #FC954B", -"X@ c #F8AB45", -"Y@ c #C37A35", -"Z@ c #0D0425", -"`@ c #13011B", -" # c #170018", -".# c #1A0018", -"+# c #1C0019", -"@# c #15001B", -"## c #100120", -"$# c #311F25", -"%# c #E68E28", -"&# c #7A1425", -"*# c #130321", -"=# c #17011E", -"-# c #1A001D", -";# c #19001B", -"># c #16021C", -",# c #130521", -"'# c #6F3123", -")# c #6D3022", -"!# c #C89433", -"~# c #EA7E3E", -"{# c #DB2943", -"]# c #EF7745", -"^# c #FB8544", -"/# c #FD9A43", -"(# c #FE9941", -"_# c #FE9D43", -":# c #FEA548", -"<# c #FEAE49", -"[# c #FCB944", -"}# c #CA9F35", -"|# c #0E0225", -"1# c #11001B", -"2# c #160019", -"3# c #12011B", -"4# c #0F0220", -"5# c #351D26", -"6# c #D85B28", -"7# c #6C0F26", -"8# c #190121", -"9# c #1B001E", -"0# c #1A001C", -"a# c #1D001B", -"b# c #130220", -"c# c #703A23", -"d# c #713A23", -"e# c #140327", -"f# c #411B36", -"g# c #C8713E", -"h# c #7A3A3F", -"i# c #CE2C3C", -"j# c #E77338", -"k# c #9C6535", -"l# c #9C6233", -"m# c #9C6332", -"n# c #9C6A35", -"o# c #C37D3C", -"p# c #FEAC41", -"q# c #FEC23E", -"r# c #826330", -"s# c #100122", -"t# c #120019", -"u# c #150017", -"v# c #190017", -"w# c #1B0018", -"x# c #12001A", -"y# c #10021F", -"z# c #1A0326", -"A# c #5F292A", -"B# c #7B4E29", -"C# c #3C0E25", -"D# c #1A0020", -"E# c #14021F", -"F# c #723B23", -"G# c #14001A", -"H# c #58042A", -"I# c #A28337", -"J# c #C8813B", -"K# c #B14B38", -"L# c #761231", -"M# c #5A132A", -"N# c #0D0726", -"O# c #0C0623", -"P# c #0B0723", -"Q# c #0B0A26", -"R# c #321C2D", -"S# c #C45B33", -"T# c #FEBB33", -"U# c #13052A", -"V# c #13011F", -"W# c #160017", -"X# c #15001A", -"Y# c #12001D", -"Z# c #94062A", -"`# c #630D2C", -" $ c #85292B", -".$ c #AA5E29", -"+$ c #1F0123", -"@$ c #19011F", -"#$ c #1E001C", -"$$ c #15031F", -"%$ c #712122", -"&$ c #712223", -"*$ c #14011B", -"=$ c #110321", -"-$ c #AF0C2B", -";$ c #E7D534", -">$ c #EAC934", -",$ c #84582D", -"'$ c #1B0824", -")$ c #11041E", -"!$ c #10021B", -"~$ c #100119", -"{$ c #100218", -"]$ c #0F041A", -"^$ c #0E0720", -"/$ c #2C1026", -"($ c #D8A328", -"_$ c #140322", -":$ c #160016", -"<$ c #14001F", -"[$ c #120024", -"}$ c #100128", -"|$ c #3C032F", -"1$ c #2C062E", -"2$ c #29022B", -"3$ c #A31D29", -"4$ c #976A25", -"5$ c #1A0321", -"6$ c #17031E", -"7$ c #1B021D", -"8$ c #20001C", -"9$ c #14041F", -"0$ c #703422", -"a$ c #6F3522", -"b$ c #8D0328", -"c$ c #920329", -"d$ c #0F0326", -"e$ c #100321", -"f$ c #11021B", -"g$ c #130117", -"h$ c #140016", -"i$ c #150015", -"j$ c #140015", -"k$ c #130116", -"l$ c #120219", -"m$ c #11031C", -"n$ c #12031D", -"o$ c #170016", -"p$ c #160020", -"q$ c #250029", -"r$ c #670033", -"s$ c #DCA238", -"t$ c #F5C736", -"u$ c #9A732E", -"v$ c #110227", -"w$ c #110324", -"x$ c #811924", -"y$ c #A04323", -"z$ c #250721", -"A$ c #1A041F", -"B$ c #1E011D", -"C$ c #1C011C", -"D$ c #18031D", -"E$ c #130721", -"F$ c #6F3623", -"G$ c #6B3622", -"H$ c #1A001A", -"I$ c #14011F", -"J$ c #12011E", -"K$ c #11011C", -"L$ c #140117", -"M$ c #170015", -"N$ c #150016", -"O$ c #120119", -"P$ c #11011B", -"Q$ c #11001A", -"R$ c #130018", -"S$ c #170118", -"T$ c #170119", -"U$ c #18021E", -"V$ c #1A0126", -"W$ c #6F2332", -"X$ c #E5563B", -"Y$ c #F1B83F", -"Z$ c #F6CC38", -"`$ c #9D7A2D", -" % c #130123", -".% c #130320", -"+% c #2A0721", -"@% c #B00E24", -"#% c #7D0B23", -"$% c #1F0522", -"%% c #1E0220", -"&% c #1D011E", -"*% c #1A031E", -"=% c #15051F", -"-% c #241322", -";% c #A32F23", -">% c #670E21", -",% c #1C001A", -"'% c #19001A", -")% c #180016", -"!% c #160118", -"~% c #140219", -"{% c #11021C", -"]% c #10021E", -"^% c #0F011D", -"/% c #170117", -"(% c #160219", -"_% c #17041D", -":% c #190523", -"<% c #8C042E", -"[% c #B65838", -"}% c #E9D73F", -"|% c #EED43E", -"1% c #D85538", -"2% c #493129", -"3% c #130120", -"4% c #15021D", -"5% c #330822", -"6% c #8A0825", -"7% c #3C0424", -"8% c #1E0322", -"9% c #1C0321", -"0% c #180421", -"a% c #130822", -"b% c #AF2D24", -"c% c #BC5623", -"d% c #2F071F", -"e% c #1A041C", -"f% c #1C031C", -"g% c #1D011C", -"h% c #160117", -"i% c #150419", -"j% c #12081D", -"k% c #0F0923", -"l% c #A77027", -"m% c #A60525", -"n% c #11021A", -"o% c #130218", -"p% c #150319", -"q% c #16061D", -"r% c #180923", -"s% c #9C1D2B", -"t% c #A32636", -"u% c #A66E3B", -"v% c #4B2E3C", -"w% c #412C36", -"x% c #36012D", -"y% c #140123", -"z% c #17001E", -"A% c #19011B", -"B% c #1A0421", -"C% c #340425", -"D% c #9E0326", -"E% c #1F0424", -"F% c #1C0524", -"G% c #180724", -"H% c #A91024", -"I% c #D55D24", -"J% c #90071E", -"K% c #3C051D", -"L% c #1C021C", -"M% c #1C011A", -"N% c #1D001A", -"O% c #160116", -"P% c #150216", -"Q% c #140217", -"R% c #140618", -"S% c #120D1D", -"T% c #231925", -"U% c #B16A2E", -"V% c #FDAC34", -"W% c #D58631", -"X% c #280E2A", -"Y% c #0D0A23", -"Z% c #0F0920", -"`% c #120C21", -" & c #1F1026", -".& c #A3352E", -"+& c #EE9F36", -"@& c #5D2A3C", -"#& c #960D3C", -"$& c #970638", -"%& c #A00330", -"&& c #4D0126", -"*& c #1C001F", -"=& c #280120", -"-& c #290223", -";& c #1F0425", -">& c #260726", -",& c #340A26", -"'& c #850925", -")& c #3A0823", -"!& c #82071D", -"~& c #5E071D", -"{& c #18051C", -"]& c #18021A", -"^& c #190118", -"/& c #160217", -"(& c #150418", -"_& c #130618", -":& c #110718", -"<& c #10081A", -"[& c #110D1D", -"}& c #291C24", -"|& c #A73B2D", -"1& c #FD6B36", -"2& c #FD853C", -"3& c #FD863B", -"4& c #C24A35", -"5& c #6B442F", -"6& c #6D302D", -"7& c #6E252E", -"8& c #8E3B32", -"9& c #DE7739", -"0& c #F48E3F", -"a& c #DD8D41", -"b& c #854F3D", -"c& c #7E2D35", -"d& c #33082B", -"e& c #1C0222", -"f& c #20001F", -"g& c #1F0222", -"h& c #1A0524", -"i& c #440C27", -"j& c #BC1427", -"k& c #20041B", -"l& c #53061C", -"m& c #25071B", -"n& c #11061A", -"o& c #130418", -"p& c #140317", -"q& c #150217", -"r& c #160318", -"s& c #12051B", -"t& c #100C1D", -"u& c #0E101E", -"v& c #0C121F", -"w& c #0C1321", -"x& c #781725", -"y& c #B25D2C", -"z& c #FA6335", -"A& c #FD633C", -"B& c #FE6D42", -"C& c #FE7C42", -"D& c #FE813F", -"E& c #FE873C", -"F& c #FD743B", -"G& c #FB683B", -"H& c #FA7A3E", -"I& c #F98242", -"J& c #F97844", -"K& c #F98943", -"L& c #F79C3D", -"M& c #A25133", -"N& c #280B28", -"O& c #1D021F", -"P& c #1F011C", -"Q& c #280321", -"R& c #1C0724", -"S& c #3F1C27", -"T& c #D33C27", -"U& c #0E061B", -"V& c #0C091C", -"W& c #0C0A1B", -"X& c #0E091A", -"Y& c #11081B", -"Z& c #100A20", -"`& c #0E0D23", -" * c #551227", -".* c #B21829", -"+* c #C42329", -"@* c #C62C29", -"#* c #C55429", -"$* c #E76F2B", -"%* c #F14232", -"&* c #F95E3A", -"** c #FC6740", -"=* c #FE6E45", -"-* c #FE7246", -";* c #FE7545", -">* c #FE7744", -",* c #FD7745", -"'* c #FD7845", -")* c #FD7847", -"!* c #FD7948", -"~* c #FD7B44", -"{* c #FC7C3B", -"]* c #6F3130", -"^* c #140B24", -"/* c #19031D", -"(* c #1C011B", -"_* c #5A011F", -":* c #B70421", -"<* c #380824", -"[* c #3E2626", -"}* c #9F5626", -"|* c #13051E", -"1* c #360A21", -"2* c #361223", -"3* c #371724", -"4* c #381824", -"5* c #3B1524", -"6* c #3E1E26", -"7* c #471A29", -"8* c #DB252E", -"9* c #ED2733", -"0* c #EE5436", -"a* c #F04237", -"b* c #F33934", -"c* c #F53D2F", -"d* c #D7312B", -"e* c #AF212B", -"f* c #3A2C31", -"g* c #F65F39", -"h* c #FB6F41", -"i* c #FD6D45", -"j* c #FE7047", -"k* c #FE7647", -"l* c #FE7847", -"m* c #FE7848", -"n* c #FE7748", -"o* c #FE7948", -"p* c #FE7C48", -"q* c #FE7C47", -"r* c #FE7642", -"s* c #FE7439", -"t* c #6D332C", -"u* c #100B21", -"v* c #16031B", -"w* c #2B001B", -"x* c #22011F", -"y* c #220521", -"z* c #1B0A23", -"A* c #421425", -"B* c #951924", -"C* c #381023", -"D* c #E94028", -"E* c #E7302B", -"F* c #EF432D", -"G* c #F4302E", -"H* c #F32C30", -"I* c #CB4432", -"J* c #DD3235", -"K* c #EF4B3A", -"L* c #F0333E", -"M* c #CC3D3F", -"N* c #E4313C", -"O* c #F34834", -"P* c #D13E2C", -"Q* c #431825", -"R* c #0E1424", -"S* c #3C202C", -"T* c #F15537", -"U* c #F97140", -"V* c #FC6E45", -"W* c #FE7547", -"X* c #FE7947", -"Y* c #FE7B48", -"Z* c #FE7D48", -"`* c #FE8047", -" = c #FE7A42", -".= c #FE7A38", -"+= c #6D442B", -"@= c #0F0B21", -"#= c #15031A", -"$= c #49001B", -"%= c #2F001C", -"&= c #21021E", -"*= c #220620", -"== c #1B0D23", -"-= c #641625", -";= c #951823", -">= c #390F25", -",= c #AC3A2A", -"'= c #B6492E", -")= c #ED7531", -"!= c #F45A34", -"~= c #F54C36", -"{= c #C72D39", -"]= c #DE283C", -"^= c #F33B40", -"/= c #F34142", -"(= c #D0393F", -"_= c #E72E39", -":= c #DB3C2E", -"<= c #461724", -"[= c #0F0D1E", -"}= c #140B1E", -"|= c #341427", -"1= c #CB4834", -"2= c #F7743F", -"3= c #FB7145", -"4= c #FE7747", -"5= c #FE7A47", -"6= c #FF7B48", -"7= c #FF7C48", -"8= c #FE7F47", -"9= c #FE8247", -"0= c #FE8642", -"a= c #FE8439", -"b= c #6D442D", -"c= c #0F0A21", -"d= c #14031A", -"e= c #20031D", -"f= c #210821", -"g= c #191024", -"h= c #CC1C25", -"i= c #961423", -"j= c #2C162C", -"k= c #BD242E", -"l= c #EF2C31", -"m= c #F54C34", -"n= c #F34037", -"o= c #F5353A", -"p= c #F7413D", -"q= c #F8423D", -"r= c #F93A39", -"s= c #F95731", -"t= c #341425", -"u= c #110A1D", -"v= c #140619", -"w= c #18051B", -"x= c #200F26", -"y= c #864833", -"z= c #F8773F", -"A= c #FC7445", -"B= c #FF7E48", -"C= c #FF7E49", -"D= c #FF7D49", -"E= c #FF7D48", -"F= c #FE8347", -"G= c #FE8743", -"H= c #FE893B", -"I= c #6E452F", -"J= c #100E23", -"K= c #14041A", -"L= c #55041D", -"M= c #540921", -"N= c #161124", -"O= c #CE6A25", -"P= c #3F1129", -"Q= c #170A29", -"R= c #0F0F29", -"S= c #15132B", -"T= c #1E182D", -"U= c #A82B3D", -"V= c #CB6633", -"W= c #CC6932", -"X= c #CC3D2D", -"Y= c #331225", -"Z= c #0F091C", -"`= c #120417", -" - c #160216", -".- c #190419", -"+- c #210F26", -"@- c #8C4934", -"#- c #F97A40", -"$- c #FC7545", -"%- c #FF7B49", -"&- c #FE7D46", -"*- c #FE7E43", -"=- c #FD7B3E", -"-- c #FA6934", -";- c #532328", -">- c #130B1D", -",- c #150519", -"'- c #14041C", -")- c #120920", -"!- c #C43624", -"~- c #A21E23", -"{- c #F87C30", -"]- c #C9302D", -"^- c #300F2A", -"/- c #591129", -"(- c #171328", -"_- c #171628", -":- c #141829", -"<- c #101A2B", -"[- c #0F172B", -"}- c #0F1226", -"|- c #0E0C20", -"1- c #100619", -"2- c #140316", -"3- c #19051B", -"4- c #3C1428", -"5- c #E04B36", -"6- c #FA7B41", -"7- c #FD7346", -"8- c #FE7548", -"9- c #FF7849", -"0- c #FF7749", -"a- c #FE7B47", -"b- c #FE7945", -"c- c #FC7740", -"d- c #FA7E39", -"e- c #C1432F", -"f- c #131523", -"g- c #130A1C", -"h- c #420621", -"i- c #D08423", -"j- c #F87739", -"k- c #C03D37", -"l- c #962B34", -"m- c #A14332", -"n- c #E54B30", -"o- c #9E3E2F", -"p- c #7F262E", -"q- c #922D2E", -"r- c #9C4B2E", -"s- c #65212C", -"t- c #101628", -"u- c #101022", -"v- c #11091C", -"w- c #130619", -"x- c #160A1E", -"y- c #43252C", -"z- c #F66439", -"A- c #FA6942", -"B- c #FD6C47", -"C- c #FE6E48", -"D- c #FE6F48", -"E- c #FE7049", -"F- c #FE714A", -"G- c #FE744A", -"H- c #FE7846", -"I- c #FD7243", -"J- c #FC703E", -"K- c #FA6C37", -"L- c #81312B", -"M- c #121123", -"N- c #15071D", -"O- c #16031A", -"P- c #17021B", -"Q- c #8F3D22", -"R- c #F8393E", -"S- c #E42A3D", -"T- c #E7473B", -"U- c #FB503B", -"V- c #FB4F3A", -"W- c #F95439", -"X- c #ED4C38", -"Y- c #F45938", -"Z- c #FB6537", -"`- c #EA5236", -" ; c #CE6232", -".; c #CD392C", -"+; c #181425", -"@; c #120F21", -"#; c #130D20", -"$; c #151225", -"%; c #903431", -"&; c #F8703D", -"*; c #FB6344", -"=; c #FD6748", -"-; c #FE6849", -";; c #FE6949", -">; c #FE6A49", -",; c #FE6C4A", -"'; c #FE704A", -"); c #FE734A", -"!; c #FE7449", -"~; c #FE7347", -"{; c #FE7145", -"]; c #FD6C42", -"^; c #FD753D", -"/; c #F36E35", -"(; c #CB452C", -"_; c #600D24", -":; c #1C061F", -"<; c #1E031F", -"[; c #5B3821", -"}; c #CE9822", -"|; c #FA4341", -"1; c #FB4341", -"2; c #FC4541", -"3; c #FC4542", -"4; c #FC4143", -"5; c #FC4D42", -"6; c #FB5042", -"7; c #FB5342", -"8; c #FC5242", -"9; c #FD4F40", -"0; c #FD503E", -"a; c #FB6339", -"b; c #F45E33", -"c; c #A12A2E", -"d; c #401E2C", -"e; c #452D2F", -"f; c #F74F38", -"g; c #FA5940", -"h; c #FC6245", -"i; c #FE6447", -"j; c #FE6449", -"k; c #FE6549", -"l; c #FE6749", -"m; c #FE6B49", -"n; c #FE6D49", -"o; c #FE6D48", -"p; c #FE6D47", -"q; c #FE6D45", -"r; c #FE6C44", -"s; c #FE6A42", -"t; c #FE663C", -"u; c #FC6233", -"v; c #752129", -"w; c #1F0922", -"x; c #750520", -"y; c #81061F", -"z; c #FA3D42", -"A; c #FB4142", -"B; c #FD4543", -"C; c #FD4844", -"D; c #FD4A45", -"E; c #FD4D45", -"F; c #FD5045", -"G; c #FD5345", -"H; c #FE5346", -"I; c #FE5445", -"J; c #FD5444", -"K; c #FC4F41", -"L; c #FA513D", -"M; c #F95339", -"N; c #F63736", -"O; c #F75737", -"P; c #F95F3B", -"Q; c #FB5840", -"R; c #FD5F43", -"S; c #FE6345", -"T; c #FE6547", -"U; c #FE6548", -"V; c #FE6448", -"W; c #FE6248", -"X; c #FE6348", -"Y; c #FE6748", -"Z; c #FE6848", -"`; c #FE6846", -" > c #FE6A45", -".> c #FE6D43", -"+> c #FE703F", -"@> c #FC6F36", -"#> c #6F302B", -"$> c #140A22", -"%> c #FA3B42", -"&> c #FC4243", -"*> c #FD4744", -"=> c #FE4A45", -"-> c #FE4C47", -";> c #FE4D47", -">> c #FE5047", -",> c #FE5347", -"'> c #FE5447", -")> c #FD5246", -"!> c #FB503F", -"~> c #FA543D", -"{> c #9B3D3B", -"]> c #A3433B", -"^> c #F9683D", -"/> c #FC6940", -"(> c #FE6342", -"_> c #FE6645", -":> c #FE6646", -"<> c #FE6147", -"[> c #FE6048", -"}> c #FE6148", -"|> c #FE6746", -"1> c #FE6A46", -"2> c #FE6F45", -"3> c #FE7441", -"4> c #FC7D39", -"5> c #6C422E", -"6> c #0F0F23", -"7> c #FA4142", -"8> c #FC4643", -"9> c #FE4D46", -"0> c #FE4E47", -"a> c #FE4F48", -"b> c #FE5148", -"c> c #FE5348", -"d> c #FE5548", -"e> c #FE5247", -"f> c #FD5445", -"g> c #FC5544", -"h> c #F96041", -"i> c #D33F3D", -"j> c #392D39", -"k> c #973C38", -"l> c #F94E3A", -"m> c #FD693E", -"n> c #FE6C43", -"o> c #FE6047", -"p> c #FE5D47", -"q> c #FE5E48", -"r> c #FE6948", -"s> c #FE6947", -"t> c #FE6B47", -"u> c #FE6E46", -"v> c #FD6D43", -"w> c #FB723D", -"x> c #D54A33", -"y> c #301C29", -"z> c #FB4A42", -"A> c #FD4B44", -"B> c #FE4F47", -"C> c #FE5048", -"D> c #FE5648", -"E> c #FE5848", -"F> c #FE5747", -"G> c #FE5547", -"H> c #FC5945", -"I> c #F95742", -"J> c #F3543D", -"K> c #A33336", -"L> c #302032", -"M> c #152433", -"N> c #CD3E38", -"O> c #FD5A3F", -"P> c #FE6343", -"Q> c #FE6446", -"R> c #FE6247", -"S> c #FE6A47", -"T> c #FC6542", -"U> c #FB6A3B", -"V> c #FA6D34", -"W> c #D73C2D", -"X> c #442428", -"Y> c #281323", -"Z> c #FD4E42", -"`> c #FD4D43", -" , c #FE4D45", -"., c #FE5248", -"+, c #FE5947", -"@, c #FE5C47", -"#, c #FE5B47", -"$, c #FE5A47", -"%, c #FE5847", -"&, c #FC5C45", -"*, c #F95B43", -"=, c #F3613F", -"-, c #E74F37", -";, c #8C2431", -">, c #161E2F", -",, c #CD4E33", -"', c #FD503A", -"), c #FE5D40", -"!, c #FE6445", -"~, c #FE6946", -"{, c #FE6847", -"], c #FE6747", -"^, c #FD6644", -"/, c #FD6241", -"(, c #FD5B3D", -"_, c #FE6739", -":, c #FE6135", -"<, c #AB4830", -"[, c #733E2A", -"}, c #161224", -"|, c #FC4E42", -"1, c #FE4D44", -"2, c #FE4E46", -"3, c #FE5147", -"4, c #FE5E47", -"5, c #FD5C46", -"6, c #FA5B44", -"7, c #F45441", -"8, c #EB393A", -"9, c #CC3433", -"0, c #47212F", -"a, c #59242F", -"b, c #FC6734", -"c, c #FC6F3A", -"d, c #FC723E", -"e, c #FD6540", -"f, c #FE6442", -"g, c #FE6643", -"h, c #FE6944", -"i, c #FE6546", -"j, c #FE6444", -"k, c #FE6143", -"l, c #FE5E41", -"m, c #FE613F", -"n, c #FE683C", -"o, c #FE7937", -"p, c #A25030", -"q, c #692629", -"r, c #151122", -"s, c #FA573F", -"t, c #FB4D40", -"u, c #FC4F43", -"v, c #FE5246", -"w, c #FF6347", -"x, c #FE5F48", -"y, c #F65942", -"z, c #F0493D", -"A, c #ED3736", -"B, c #73262F", -"C, c #10152C", -"D, c #3B292F", -"E, c #363034", -"F, c #AC3938", -"G, c #FC6B3B", -"H, c #FD763C", -"I, c #FE6D3F", -"J, c #FE6341", -"K, c #FE6642", -"L, c #FE6745", -"M, c #FE6245", -"N, c #FE6244", -"O, c #FE6841", -"P, c #FF683B", -"Q, c #EC7035", -"R, c #D0412D", -"S, c #3A1627", -"T, c #CF3938", -"U, c #F6543C", -"V, c #FB5040", -"W, c #FD5544", -"X, c #FE5A48", -"Y, c #FE5D48", -"Z, c #FE5F47", -"`, c #FF6147", -" ' c #FD5C45", -".' c #FB5B43", -"+' c #FA5A42", -"@' c #F76040", -"#' c #F4623D", -"$' c #F26D38", -"%' c #EC4130", -"&' c #380E2B", -"*' c #13122C", -"=' c #362D31", -"-' c #353435", -";' c #352E37", -">' c #2D3337", -",' c #CC5838", -"'' c #CD6F3A", -")' c #CE6E3D", -"!' c #FE793F", -"~' c #FD7541", -"{' c #FD6243", -"]' c #FE6545", -"^' c #FF6543", -"/' c #FF6240", -"(' c #FE723B", -"_' c #FE8034", -":' c #442D2C", -"<' c #311725", -"[' c #222830", -"}' c #B73B36", -"|' c #F94C3D", -"1' c #FD5543", -"2' c #FE5B48", -"3' c #FF5E47", -"4' c #FE5C48", -"5' c #FC5B44", -"6' c #F95640", -"7' c #C34E3D", -"8' c #A45A3A", -"9' c #F37438", -"0' c #F28935", -"a' c #AF422F", -"b' c #240D2B", -"c' c #88292F", -"d' c #FA8E34", -"e' c #FC7E38", -"f' c #FC5939", -"g' c #694A37", -"h' c #693437", -"i' c #382638", -"j' c #142439", -"k' c #9F483A", -"l' c #C45E3C", -"m' c #FD7240", -"n' c #FF6645", -"o' c #FF6245", -"p' c #FF6045", -"q' c #FF6146", -"r' c #FF6246", -"s' c #FF6446", -"t' c #FF6545", -"u' c #FE763F", -"v' c #FE7237", -"w' c #C65331", -"x' c #3D272A", -"y' c #0D1E2B", -"z' c #683032", -"A' c #F9453A", -"B' c #FD5341", -"C' c #FE5A46", -"D' c #FF5A48", -"E' c #FE5948", -"F' c #FD5A47", -"G' c #FC5D43", -"H' c #F95B3D", -"I' c #713F37", -"J' c #1E2D32", -"K' c #C44531", -"L' c #EF7A2F", -"M' c #6B2E2C", -"N' c #0F0E2C", -"O' c #F56633", -"P' c #FA803A", -"Q' c #FC673E", -"R' c #FD673E", -"S' c #FC6F3C", -"T' c #FA6E3B", -"U' c #C6633A", -"V' c #A06739", -"W' c #835638", -"X' c #381F38", -"Y' c #713B38", -"Z' c #7B503C", -"`' c #FE7741", -" ) c #FE7344", -".) c #FE6D46", -"+) c #FF6946", -"@) c #FF5E46", -"#) c #FF5D46", -"$) c #FF5D47", -"%) c #FF5F48", -"&) c #FF6248", -"*) c #FE6941", -"=) c #FC783C", -"-) c #C46B35", -";) c #892730", -">) c #111629", -",) c #1F2630", -"') c #AD3939", -")) c #FC5D41", -"!) c #FE5946", -"~) c #FF5848", -"{) c #FE5549", -"]) c #FC5E42", -"^) c #FA673B", -"/) c #DB7033", -"() c #392E2B", -"_) c #311A28", -":) c #3C2127", -"<) c #1D1027", -"[) c #92102C", -"}) c #F58336", -"|) c #FA673E", -"1) c #FD6642", -"2) c #FD5A41", -"3) c #FC6D41", -"4) c #FC6D3F", -"5) c #FD683E", -"6) c #F38C39", -"7) c #CE6535", -"8) c #612E34", -"9) c #1D2637", -"0) c #71513E", -"a) c #FF6847", -"b) c #FF5F47", -"c) c #FF5A46", -"d) c #FF5847", -"e) c #FF5748", -"f) c #FF594A", -"g) c #FF5E4B", -"h) c #FE654C", -"i) c #FE694B", -"j) c #FE6B48", -"k) c #FC6A43", -"l) c #F7683E", -"m) c #EC6E39", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" . + @ # $ % ", -" & * = - ; > , ' ) ! ~ ", -" { ] ^ / ( _ : < [ } | 1 2 ", -" 3 4 5 6 7 8 9 0 a b c d e f g h i j ", -" k l m n o p q r s t u v w x y z A B C D ", -" E F G H I J K L M N O P Q R S T U V W X Y Z ` ", -" ...+.@.#.$.%.&.*.=.-.;.>.,.S '.).!.~.{.].^./.(._. ", -" :.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.!.S f.g.h.i.j.k. ", -" l.m.n.o.p.q.r.s.t.u.J v.w.x.y.z.A.c.d.d.B.C.D.E.F.G.H.I. ", -" J.K.L.M.N.O.P.Q.R.t S.T.U.V.W.X.Y.Z.`. +d.d..+B.'.++@+#+$+%+ ", -" &+*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+_+:+<+[+}+|+1+d.2+3+4+d.5+6+7+8+9+0+ ", -" a+b+c+d+e+f+g+h+i+j+k+l+m+n+^+o+p+q+r+s+t+u+v+b.w+x+y+z+A+w+B+C+D+E+F+G+ ", -" H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+Q ,.X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@#@-@;@>@,@'@ ", -" )@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@R ,.4@5@6@7@8@9@0@a@#@b@c@=@d@e@f@g@>@h@i@j@ ", -" k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@^+R S z@A@z.q+B@C@D@E@F@G@H@#@e@#@#@f@g@I@J@K@L@ ", -" M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #.#+#+#S A@@###$#%#&#*#=#-#f@B+B+B+f@;#>#,#'#)# ", -" !#~#{#]#^#/#(#(#_#:#<#[#}#|#1#^+.#S +#+#z@2#3#4#5#6#7#8#9#0#A.B+B+a#A.@@b#c#d# ", -" e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#.#w#S R ^+x#y#z#A#B#C#D#-#A.a#`.`.b.g@E#d#F# ", -" G#0@H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#>.W#3@v#R R X+X#Y#s#Z#`# $.$+$@$g@f@5+5+#$6+$$%$&$ ", -" *$=$-$;$>$,$'$)$!$~${$]$^$/$($_$*$u#:$Q 3@,.X+z.<$[$}$|$1$2$3$4$5$6$7$e@8$#$G@9$0$a$ ", -" ,.4@E#b$c$d$e$f$g$h$i$j$k$l$m$n$`@>.:$o$3@,. #a.p$q$r$s$t$u$v$w$x$y$z$A$B$#@C$D$E$F$G$ ", -" R S H$v+I$J$K$n+L$:$o$o$M$N$L$O$P$Q$R$N$o$3@S$T$U$V$W$X$Y$Z$`$ %.%+%@%#%$%%%&%*%=%-%;%>% ", -" E.,%~.'%Z.4@v W#o$)%)%)%Q !%~%{%]%^%Q$u u#/%(%_%:%<%[%}%|%1%2%3%4%=%5%6%7%8%9%0%a%b%c%d% ", -" e%f%g%a#,%,%z@R 3@3@3@)%Q h%i%j%k%l%m%{+n%o%p%q%r%s%t%u%v%w%x%y%z%A%*%B%C%D%E%F%G%H%I% ", -" J%K%L%M%N%D.S v#)%)%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&f@a##@=&-&;&>&,&'&)& ", -" !&~&{&]&^&.#w#^&/%/&(&_&:&<&[&}&|&1&2&3&4&5&6&7&8&9&0&a&b&c&d&e&e@1+5+e@f&g&h&i&j& ", -" k&l&m&n&o&p&q&r&i%s&3.t&u&v&w&x&y&z&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&1+`.e@f&Q&R&S&T& ", -" 0 U&V&W&X&<&Y&j%Z&`& *.*+*@*#*$*%*&***=*-*;*>*>*,*'*)*!*~*{*]*^*/*(*a#B+#@_*:*<*[*}* ", -" |*1*2*3*4*5*6*7*8*9*0*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*E.w*d.e@x*y*z*A*B* ", -" C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*l*X*o*o*Y*Z*`* =.=+=@=#='%$=%=e@&=*===-=;= ", -" >=,='=)=!=~={=]=^=/=(=_=:=<=[=}=|=1=2=3=4=5=p*6=6=7=8=9=0=a=b=c=d=A@~.b.B+e=f=g=h=i= ", -" j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z=A=5=Z*B=C=D=E=8=F=G=H=I=J=K=S$R z@'%L=M=N=O= ", -" P=Q=R=S=T=U=V=W=X=Y=Z=`= -.-+-@-#-$-5=p*E=D=%-%-q*&-*-=---;->-,-/%3@^+'-)-!-~- ", -" {-]-^-/-(-_-:-<-[-}-|-1-2- -3-4-5-6-7-8-n*m*9-0-9-o*a-b-c-d-e-f-g-(&h%w c h-i- ", -" j-k-l-m-n-o-p-q-r-s-t-u-v-w-,-x-y-z-A-B-C-D-E-E-F-G-_@m*H-I-J-K-L-M-N-O-P-(+Q- ", -" R-S-T-U-V-W-X-Y-Z-`- ;.;+;@;#;$;%;&;*;=;-;-;;;>;,;';);!;~;{;];^;/;(;_;:;<;[;}; ", -" |;1;2;3;4;5;6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;j;k;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y; ", -" z;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;k;Y;Z;`; >r;.>+>@>#>$> ", -" %>&>*>=>->;>>>,>'>,>)>F;8;!>~>{>]>^>/>(>_>:>i;<>[>X;}>i;|>1>q;2>3>4>5>6> ", -" 7>8>=>9>0>a>b>c>d>,>e>e>f>g>h>i>j>k>l>m>n>:>i;o>p>q>W;r>s>t>p;u>v>w>x>y> ", -" z>A>9>0>B>C>c>D>E>F>G>G>F>H>I>J>K>L>M>N>O>P>Q>R>o>R>T;s>S>S>S>t>1>T>U>V>W>X>Y> ", -" Z>`> ,9>B>.,D>+,@,#,$,%,$,&,*,=,-,;,>,,,',),P>!,!,_>~,t>s>{,],{,],^,/,(,_,:,<,[,}, ", -" |,`>1,2,3,G>+,4,o>o>4,@,@,5,6,7,8,9,0,a,b,c,d,e,f,g,h, >~,|>T;T;T;i,j,k,l,m,n,o,p,q,r, ", -" s,t,u,v,G>%,@,o>w,R>x,p>@,5,6,y,z,A,B,C,D,E,F,G,H,I,J,K,L,L,i,i;i;i;Q>S;M,N,P>O,P,Q,R,S, ", -" T,U,V,W,%,X,Y,Z,`,[>q>@, '.'+'@'#'$'%'&'*'='-';'>',''')'!'~'{'N,i,:>_>]'M,M,Q>_>^'/'('_':'<' ", -" ['}'|'1'$,X,2'p>3'4'2'@,5'6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l'd,m'g, > >n'o'p'q'r's't'.>u'v'w'x' ", -" y'z'A'B'C'X,X,2'D'E'E'F'G'H'I'J'K'L'M'N'O'P'Q'R'S'T'U'V'W'X'Y'Z'`' ).)+)r'@)#)$)%)&)l;1>*)=)-);) ", -" >),)')))!)X,E'X,~){)d>!)])^)/)()_):)<)[)})|)1)f,2)3)4)5)6)7)8)9)0)*--*a)b)c)d)e)f)g)h)i)j)k)l)m) ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" "}; diff --git a/lib/mcollective/vendor/json/lib/json/pure.rb b/lib/mcollective/vendor/json/lib/json/pure.rb deleted file mode 100644 index dbac93c..0000000 --- a/lib/mcollective/vendor/json/lib/json/pure.rb +++ /dev/null @@ -1,15 +0,0 @@ -require 'json/common' -require 'json/pure/parser' -require 'json/pure/generator' - -module JSON - # This module holds all the modules/classes that implement JSON's - # functionality in pure ruby. - module Pure - $DEBUG and warn "Using Pure library for JSON." - JSON.parser = Parser - JSON.generator = Generator - end - - JSON_LOADED = true unless defined?(::JSON::JSON_LOADED) -end diff --git a/lib/mcollective/vendor/json/lib/json/pure/generator.rb b/lib/mcollective/vendor/json/lib/json/pure/generator.rb deleted file mode 100644 index 44cca60..0000000 --- a/lib/mcollective/vendor/json/lib/json/pure/generator.rb +++ /dev/null @@ -1,441 +0,0 @@ -module JSON - MAP = { - "\x0" => '\u0000', - "\x1" => '\u0001', - "\x2" => '\u0002', - "\x3" => '\u0003', - "\x4" => '\u0004', - "\x5" => '\u0005', - "\x6" => '\u0006', - "\x7" => '\u0007', - "\b" => '\b', - "\t" => '\t', - "\n" => '\n', - "\xb" => '\u000b', - "\f" => '\f', - "\r" => '\r', - "\xe" => '\u000e', - "\xf" => '\u000f', - "\x10" => '\u0010', - "\x11" => '\u0011', - "\x12" => '\u0012', - "\x13" => '\u0013', - "\x14" => '\u0014', - "\x15" => '\u0015', - "\x16" => '\u0016', - "\x17" => '\u0017', - "\x18" => '\u0018', - "\x19" => '\u0019', - "\x1a" => '\u001a', - "\x1b" => '\u001b', - "\x1c" => '\u001c', - "\x1d" => '\u001d', - "\x1e" => '\u001e', - "\x1f" => '\u001f', - '"' => '\"', - '\\' => '\\\\', - } # :nodoc: - - # Convert a UTF8 encoded Ruby string _string_ to a JSON string, encoded with - # UTF16 big endian characters as \u????, and return it. - if defined?(::Encoding) - def utf8_to_json(string) # :nodoc: - string = string.dup - string << '' # XXX workaround: avoid buffer sharing - string.force_encoding(::Encoding::ASCII_8BIT) - string.gsub!(/["\\\x0-\x1f]/) { MAP[$&] } - string.force_encoding(::Encoding::UTF_8) - string - end - - def utf8_to_json_ascii(string) # :nodoc: - string = string.dup - string << '' # XXX workaround: avoid buffer sharing - string.force_encoding(::Encoding::ASCII_8BIT) - string.gsub!(/["\\\x0-\x1f]/) { MAP[$&] } - string.gsub!(/( - (?: - [\xc2-\xdf][\x80-\xbf] | - [\xe0-\xef][\x80-\xbf]{2} | - [\xf0-\xf4][\x80-\xbf]{3} - )+ | - [\x80-\xc1\xf5-\xff] # invalid - )/nx) { |c| - c.size == 1 and raise GeneratorError, "invalid utf8 byte: '#{c}'" - s = JSON.iconv('utf-16be', 'utf-8', c).unpack('H*')[0] - s.gsub!(/.{4}/n, '\\\\u\&') - } - string.force_encoding(::Encoding::UTF_8) - string - rescue => e - raise GeneratorError, "Caught #{e.class}: #{e}" - end - else - def utf8_to_json(string) # :nodoc: - string.gsub(/["\\\x0-\x1f]/) { MAP[$&] } - end - - def utf8_to_json_ascii(string) # :nodoc: - string = string.gsub(/["\\\x0-\x1f]/) { MAP[$&] } - string.gsub!(/( - (?: - [\xc2-\xdf][\x80-\xbf] | - [\xe0-\xef][\x80-\xbf]{2} | - [\xf0-\xf4][\x80-\xbf]{3} - )+ | - [\x80-\xc1\xf5-\xff] # invalid - )/nx) { |c| - c.size == 1 and raise GeneratorError, "invalid utf8 byte: '#{c}'" - s = JSON.iconv('utf-16be', 'utf-8', c).unpack('H*')[0] - s.gsub!(/.{4}/n, '\\\\u\&') - } - string - rescue => e - raise GeneratorError, "Caught #{e.class}: #{e}" - end - end - module_function :utf8_to_json, :utf8_to_json_ascii - - module Pure - module Generator - # This class is used to create State instances, that are use to hold data - # while generating a JSON text from a a Ruby data structure. - class State - # Creates a State object from _opts_, which ought to be Hash to create - # a new State instance configured by _opts_, something else to create - # an unconfigured instance. If _opts_ is a State object, it is just - # returned. - def self.from_state(opts) - case - when self === opts - opts - when opts.respond_to?(:to_hash) - new(opts.to_hash) - when opts.respond_to?(:to_h) - new(opts.to_h) - else - SAFE_STATE_PROTOTYPE.dup - end - end - - # Instantiates a new State object, configured by _opts_. - # - # _opts_ can have the following keys: - # - # * *indent*: a string used to indent levels (default: ''), - # * *space*: a string that is put after, a : or , delimiter (default: ''), - # * *space_before*: a string that is put before a : pair delimiter (default: ''), - # * *object_nl*: a string that is put at the end of a JSON object (default: ''), - # * *array_nl*: a string that is put at the end of a JSON array (default: ''), - # * *check_circular*: is deprecated now, use the :max_nesting option instead, - # * *max_nesting*: sets the maximum level of data structure nesting in - # the generated JSON, max_nesting = 0 if no maximum should be checked. - # * *allow_nan*: true if NaN, Infinity, and -Infinity should be - # generated, otherwise an exception is thrown, if these values are - # encountered. This options defaults to false. - def initialize(opts = {}) - @indent = '' - @space = '' - @space_before = '' - @object_nl = '' - @array_nl = '' - @allow_nan = false - @ascii_only = false - configure opts - end - - # This string is used to indent levels in the JSON text. - attr_accessor :indent - - # This string is used to insert a space between the tokens in a JSON - # string. - attr_accessor :space - - # This string is used to insert a space before the ':' in JSON objects. - attr_accessor :space_before - - # This string is put at the end of a line that holds a JSON object (or - # Hash). - attr_accessor :object_nl - - # This string is put at the end of a line that holds a JSON array. - attr_accessor :array_nl - - # This integer returns the maximum level of data structure nesting in - # the generated JSON, max_nesting = 0 if no maximum is checked. - attr_accessor :max_nesting - - # This integer returns the current depth data structure nesting in the - # generated JSON. - attr_accessor :depth - - def check_max_nesting # :nodoc: - return if @max_nesting.zero? - current_nesting = depth + 1 - current_nesting > @max_nesting and - raise NestingError, "nesting of #{current_nesting} is too deep" - end - - # Returns true, if circular data structures are checked, - # otherwise returns false. - def check_circular? - !@max_nesting.zero? - end - - # Returns true if NaN, Infinity, and -Infinity should be considered as - # valid JSON and output. - def allow_nan? - @allow_nan - end - - def ascii_only? - @ascii_only - end - - # Configure this State instance with the Hash _opts_, and return - # itself. - def configure(opts) - @indent = opts[:indent] if opts.key?(:indent) - @space = opts[:space] if opts.key?(:space) - @space_before = opts[:space_before] if opts.key?(:space_before) - @object_nl = opts[:object_nl] if opts.key?(:object_nl) - @array_nl = opts[:array_nl] if opts.key?(:array_nl) - @allow_nan = !!opts[:allow_nan] if opts.key?(:allow_nan) - @ascii_only = opts[:ascii_only] if opts.key?(:ascii_only) - @depth = opts[:depth] || 0 - if !opts.key?(:max_nesting) # defaults to 19 - @max_nesting = 19 - elsif opts[:max_nesting] - @max_nesting = opts[:max_nesting] - else - @max_nesting = 0 - end - self - end - - # Returns the configuration instance variables as a hash, that can be - # passed to the configure method. - def to_h - result = {} - for iv in %w[indent space space_before object_nl array_nl allow_nan max_nesting ascii_only depth] - result[iv.intern] = instance_variable_get("@#{iv}") - end - result - end - - # Generates a valid JSON document from object +obj+ and returns the - # result. If no valid JSON document can be created this method raises a - # GeneratorError exception. - def generate(obj) - result = obj.to_json(self) - if result !~ /\A\s*(?:\[.*\]|\{.*\})\s*\Z/m - raise GeneratorError, "only generation of JSON objects or arrays allowed" - end - result - end - - # Return the value returned by method +name+. - def [](name) - __send__ name - end - end - - module GeneratorMethods - module Object - # Converts this object to a string (calling #to_s), converts - # it to a JSON string, and returns the result. This is a fallback, if no - # special method #to_json was defined for some object. - def to_json(*) to_s.to_json end - end - - module Hash - # Returns a JSON string containing a JSON object, that is unparsed from - # this Hash instance. - # _state_ is a JSON::State object, that can also be used to configure the - # produced JSON string output further. - # _depth_ is used to find out nesting depth, to indent accordingly. - def to_json(state = nil, *) - state = State.from_state(state) - state.check_max_nesting - json_transform(state) - end - - private - - def json_shift(state) - state.object_nl.empty? or return '' - state.indent * state.depth - end - - def json_transform(state) - delim = ',' - delim << state.object_nl - result = '{' - result << state.object_nl - depth = state.depth += 1 - first = true - indent = !state.object_nl.empty? - each { |key,value| - result << delim unless first - result << state.indent * depth if indent - result << key.to_s.to_json(state) - result << state.space_before - result << ':' - result << state.space - result << value.to_json(state) - first = false - } - depth = state.depth -= 1 - result << state.object_nl - result << state.indent * depth if indent if indent - result << '}' - result - end - end - - module Array - # Returns a JSON string containing a JSON array, that is unparsed from - # this Array instance. - # _state_ is a JSON::State object, that can also be used to configure the - # produced JSON string output further. - def to_json(state = nil, *) - state = State.from_state(state) - state.check_max_nesting - json_transform(state) - end - - private - - def json_transform(state) - delim = ',' - delim << state.array_nl - result = '[' - result << state.array_nl - depth = state.depth += 1 - first = true - indent = !state.array_nl.empty? - each { |value| - result << delim unless first - result << state.indent * depth if indent - result << value.to_json(state) - first = false - } - depth = state.depth -= 1 - result << state.array_nl - result << state.indent * depth if indent - result << ']' - end - end - - module Integer - # Returns a JSON string representation for this Integer number. - def to_json(*) to_s end - end - - module Float - # Returns a JSON string representation for this Float number. - def to_json(state = nil, *) - state = State.from_state(state) - case - when infinite? - if state.allow_nan? - to_s - else - raise GeneratorError, "#{self} not allowed in JSON" - end - when nan? - if state.allow_nan? - to_s - else - raise GeneratorError, "#{self} not allowed in JSON" - end - else - to_s - end - end - end - - module String - if defined?(::Encoding) - # This string should be encoded with UTF-8 A call to this method - # returns a JSON string encoded with UTF16 big endian characters as - # \u????. - def to_json(state = nil, *args) - state = State.from_state(state) - if encoding == ::Encoding::UTF_8 - string = self - else - string = encode(::Encoding::UTF_8) - end - if state.ascii_only? - '"' << JSON.utf8_to_json_ascii(string) << '"' - else - '"' << JSON.utf8_to_json(string) << '"' - end - end - else - # This string should be encoded with UTF-8 A call to this method - # returns a JSON string encoded with UTF16 big endian characters as - # \u????. - def to_json(state = nil, *args) - state = State.from_state(state) - if state.ascii_only? - '"' << JSON.utf8_to_json_ascii(self) << '"' - else - '"' << JSON.utf8_to_json(self) << '"' - end - end - end - - # Module that holds the extinding methods if, the String module is - # included. - module Extend - # Raw Strings are JSON Objects (the raw bytes are stored in an - # array for the key "raw"). The Ruby String can be created by this - # module method. - def json_create(o) - o['raw'].pack('C*') - end - end - - # Extends _modul_ with the String::Extend module. - def self.included(modul) - modul.extend Extend - end - - # This method creates a raw object hash, that can be nested into - # other data structures and will be unparsed as a raw string. This - # method should be used, if you want to convert raw strings to JSON - # instead of UTF-8 strings, e. g. binary data. - def to_json_raw_object - { - JSON.create_id => self.class.name, - 'raw' => self.unpack('C*'), - } - end - - # This method creates a JSON text from the result of - # a call to to_json_raw_object of this String. - def to_json_raw(*args) - to_json_raw_object.to_json(*args) - end - end - - module TrueClass - # Returns a JSON string for true: 'true'. - def to_json(*) 'true' end - end - - module FalseClass - # Returns a JSON string for false: 'false'. - def to_json(*) 'false' end - end - - module NilClass - # Returns a JSON string for nil: 'null'. - def to_json(*) 'null' end - end - end - end - end -end diff --git a/lib/mcollective/vendor/json/lib/json/pure/parser.rb b/lib/mcollective/vendor/json/lib/json/pure/parser.rb deleted file mode 100644 index 8043e67..0000000 --- a/lib/mcollective/vendor/json/lib/json/pure/parser.rb +++ /dev/null @@ -1,320 +0,0 @@ -require 'strscan' - -module JSON - module Pure - # This class implements the JSON parser that is used to parse a JSON string - # into a Ruby data structure. - class Parser < StringScanner - STRING = /" ((?:[^\x0-\x1f"\\] | - # escaped special characters: - \\["\\\/bfnrt] | - \\u[0-9a-fA-F]{4} | - # match all but escaped special characters: - \\[\x20-\x21\x23-\x2e\x30-\x5b\x5d-\x61\x63-\x65\x67-\x6d\x6f-\x71\x73\x75-\xff])*) - "/nx - INTEGER = /(-?0|-?[1-9]\d*)/ - FLOAT = /(-? - (?:0|[1-9]\d*) - (?: - \.\d+(?i:e[+-]?\d+) | - \.\d+ | - (?i:e[+-]?\d+) - ) - )/x - NAN = /NaN/ - INFINITY = /Infinity/ - MINUS_INFINITY = /-Infinity/ - OBJECT_OPEN = /\{/ - OBJECT_CLOSE = /\}/ - ARRAY_OPEN = /\[/ - ARRAY_CLOSE = /\]/ - PAIR_DELIMITER = /:/ - COLLECTION_DELIMITER = /,/ - TRUE = /true/ - FALSE = /false/ - NULL = /null/ - IGNORE = %r( - (?: - //[^\n\r]*[\n\r]| # line comments - /\* # c-style comments - (?: - [^*/]| # normal chars - /[^*]| # slashes that do not start a nested comment - \*[^/]| # asterisks that do not end this comment - /(?=\*/) # single slash before this comment's end - )* - \*/ # the End of this comment - |[ \t\r\n]+ # whitespaces: space, horicontal tab, lf, cr - )+ - )mx - - UNPARSED = Object.new - - # Creates a new JSON::Pure::Parser instance for the string _source_. - # - # It will be configured by the _opts_ hash. _opts_ can have the following - # keys: - # * *max_nesting*: The maximum depth of nesting allowed in the parsed data - # structures. Disable depth checking with :max_nesting => false|nil|0, - # it defaults to 19. - # * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in - # defiance of RFC 4627 to be parsed by the Parser. This option defaults - # to false. - # * *symbolize_names*: If set to true, returns symbols for the names - # (keys) in a JSON object. Otherwise strings are returned, which is also - # the default. - # * *create_additions*: If set to false, the Parser doesn't create - # additions even if a matchin class and create_id was found. This option - # defaults to true. - # * *object_class*: Defaults to Hash - # * *array_class*: Defaults to Array - def initialize(source, opts = {}) - opts ||= {} - if defined?(::Encoding) - if source.encoding == ::Encoding::ASCII_8BIT - b = source[0, 4].bytes.to_a - source = case - when b.size >= 4 && b[0] == 0 && b[1] == 0 && b[2] == 0 - source.dup.force_encoding(::Encoding::UTF_32BE).encode!(::Encoding::UTF_8) - when b.size >= 4 && b[0] == 0 && b[2] == 0 - source.dup.force_encoding(::Encoding::UTF_16BE).encode!(::Encoding::UTF_8) - when b.size >= 4 && b[1] == 0 && b[2] == 0 && b[3] == 0 - source.dup.force_encoding(::Encoding::UTF_32LE).encode!(::Encoding::UTF_8) - - when b.size >= 4 && b[1] == 0 && b[3] == 0 - source.dup.force_encoding(::Encoding::UTF_16LE).encode!(::Encoding::UTF_8) - else - source.dup - end - else - source = source.encode(::Encoding::UTF_8) - end - source.force_encoding(::Encoding::ASCII_8BIT) - else - b = source - source = case - when b.size >= 4 && b[0] == 0 && b[1] == 0 && b[2] == 0 - JSON.iconv('utf-8', 'utf-32be', b) - when b.size >= 4 && b[0] == 0 && b[2] == 0 - JSON.iconv('utf-8', 'utf-16be', b) - when b.size >= 4 && b[1] == 0 && b[2] == 0 && b[3] == 0 - JSON.iconv('utf-8', 'utf-32le', b) - when b.size >= 4 && b[1] == 0 && b[3] == 0 - JSON.iconv('utf-8', 'utf-16le', b) - else - b - end - end - super source - if !opts.key?(:max_nesting) # defaults to 19 - @max_nesting = 19 - elsif opts[:max_nesting] - @max_nesting = opts[:max_nesting] - else - @max_nesting = 0 - end - @allow_nan = !!opts[:allow_nan] - @symbolize_names = !!opts[:symbolize_names] - @create_additions = opts.key?(:create_additions) ? !!opts[:create_additions] : true - @create_id = opts[:create_id] || JSON.create_id - @object_class = opts[:object_class] || Hash - @array_class = opts[:array_class] || Array - @match_string = opts[:match_string] - end - - alias source string - - # Parses the current JSON string _source_ and returns the complete data - # structure as a result. - def parse - reset - obj = nil - until eos? - case - when scan(OBJECT_OPEN) - obj and raise ParserError, "source '#{peek(20)}' not in JSON!" - @current_nesting = 1 - obj = parse_object - when scan(ARRAY_OPEN) - obj and raise ParserError, "source '#{peek(20)}' not in JSON!" - @current_nesting = 1 - obj = parse_array - when skip(IGNORE) - ; - else - raise ParserError, "source '#{peek(20)}' not in JSON!" - end - end - obj or raise ParserError, "source did not contain any JSON!" - obj - end - - private - - # Unescape characters in strings. - UNESCAPE_MAP = Hash.new { |h, k| h[k] = k.chr } - UNESCAPE_MAP.update({ - ?" => '"', - ?\\ => '\\', - ?/ => '/', - ?b => "\b", - ?f => "\f", - ?n => "\n", - ?r => "\r", - ?t => "\t", - ?u => nil, - }) - - EMPTY_8BIT_STRING = '' - if ::String.method_defined?(:encode) - EMPTY_8BIT_STRING.force_encoding Encoding::ASCII_8BIT - end - - def parse_string - if scan(STRING) - return '' if self[1].empty? - string = self[1].gsub(%r((?:\\[\\bfnrt"/]|(?:\\u(?:[A-Fa-f\d]{4}))+|\\[\x20-\xff]))n) do |c| - if u = UNESCAPE_MAP[$&[1]] - u - else # \uXXXX - bytes = EMPTY_8BIT_STRING.dup - i = 0 - while c[6 * i] == ?\\ && c[6 * i + 1] == ?u - bytes << c[6 * i + 2, 2].to_i(16) << c[6 * i + 4, 2].to_i(16) - i += 1 - end - JSON.iconv('utf-8', 'utf-16be', bytes) - end - end - if string.respond_to?(:force_encoding) - string.force_encoding(::Encoding::UTF_8) - end - if @create_additions and @match_string - for (regexp, klass) in @match_string - klass.json_creatable? or next - string =~ regexp and return klass.json_create(string) - end - end - string - else - UNPARSED - end - rescue => e - raise ParserError, "Caught #{e.class} at '#{peek(20)}': #{e}" - end - - def parse_value - case - when scan(FLOAT) - Float(self[1]) - when scan(INTEGER) - Integer(self[1]) - when scan(TRUE) - true - when scan(FALSE) - false - when scan(NULL) - nil - when (string = parse_string) != UNPARSED - string - when scan(ARRAY_OPEN) - @current_nesting += 1 - ary = parse_array - @current_nesting -= 1 - ary - when scan(OBJECT_OPEN) - @current_nesting += 1 - obj = parse_object - @current_nesting -= 1 - obj - when @allow_nan && scan(NAN) - NaN - when @allow_nan && scan(INFINITY) - Infinity - when @allow_nan && scan(MINUS_INFINITY) - MinusInfinity - else - UNPARSED - end - end - - def parse_array - raise NestingError, "nesting of #@current_nesting is too deep" if - @max_nesting.nonzero? && @current_nesting > @max_nesting - result = @array_class.new - delim = false - until eos? - case - when (value = parse_value) != UNPARSED - delim = false - result << value - skip(IGNORE) - if scan(COLLECTION_DELIMITER) - delim = true - elsif match?(ARRAY_CLOSE) - ; - else - raise ParserError, "expected ',' or ']' in array at '#{peek(20)}'!" - end - when scan(ARRAY_CLOSE) - if delim - raise ParserError, "expected next element in array at '#{peek(20)}'!" - end - break - when skip(IGNORE) - ; - else - raise ParserError, "unexpected token in array at '#{peek(20)}'!" - end - end - result - end - - def parse_object - raise NestingError, "nesting of #@current_nesting is too deep" if - @max_nesting.nonzero? && @current_nesting > @max_nesting - result = @object_class.new - delim = false - until eos? - case - when (string = parse_string) != UNPARSED - skip(IGNORE) - unless scan(PAIR_DELIMITER) - raise ParserError, "expected ':' in object at '#{peek(20)}'!" - end - skip(IGNORE) - unless (value = parse_value).equal? UNPARSED - result[@symbolize_names ? string.to_sym : string] = value - delim = false - skip(IGNORE) - if scan(COLLECTION_DELIMITER) - delim = true - elsif match?(OBJECT_CLOSE) - ; - else - raise ParserError, "expected ',' or '}' in object at '#{peek(20)}'!" - end - else - raise ParserError, "expected value in object at '#{peek(20)}'!" - end - when scan(OBJECT_CLOSE) - if delim - raise ParserError, "expected next name, value pair in object at '#{peek(20)}'!" - end - if @create_additions and klassname = result[@create_id] - klass = JSON.deep_const_get klassname - break unless klass and klass.json_creatable? - result = klass.json_create(result) - end - break - when skip(IGNORE) - ; - else - raise ParserError, "unexpected token in object at '#{peek(20)}'!" - end - end - result - end - end - end -end diff --git a/lib/mcollective/vendor/json/lib/json/version.rb b/lib/mcollective/vendor/json/lib/json/version.rb deleted file mode 100644 index 86a741a..0000000 --- a/lib/mcollective/vendor/json/lib/json/version.rb +++ /dev/null @@ -1,8 +0,0 @@ -module JSON - # JSON version - VERSION = '1.5.1' - VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc: - VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc: - VERSION_MINOR = VERSION_ARRAY[1] # :nodoc: - VERSION_BUILD = VERSION_ARRAY[2] # :nodoc: -end diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail1.json b/lib/mcollective/vendor/json/tests/fixtures/fail1.json deleted file mode 100644 index 6216b86..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail1.json +++ /dev/null @@ -1 +0,0 @@ -"A JSON payload should be an object or array, not a string." \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail10.json b/lib/mcollective/vendor/json/tests/fixtures/fail10.json deleted file mode 100644 index 5d8c004..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail10.json +++ /dev/null @@ -1 +0,0 @@ -{"Extra value after close": true} "misplaced quoted value" \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail11.json b/lib/mcollective/vendor/json/tests/fixtures/fail11.json deleted file mode 100644 index 76eb95b..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail11.json +++ /dev/null @@ -1 +0,0 @@ -{"Illegal expression": 1 + 2} \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail12.json b/lib/mcollective/vendor/json/tests/fixtures/fail12.json deleted file mode 100644 index 77580a4..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail12.json +++ /dev/null @@ -1 +0,0 @@ -{"Illegal invocation": alert()} \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail13.json b/lib/mcollective/vendor/json/tests/fixtures/fail13.json deleted file mode 100644 index 379406b..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail13.json +++ /dev/null @@ -1 +0,0 @@ -{"Numbers cannot have leading zeroes": 013} \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail14.json b/lib/mcollective/vendor/json/tests/fixtures/fail14.json deleted file mode 100644 index 0ed366b..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail14.json +++ /dev/null @@ -1 +0,0 @@ -{"Numbers cannot be hex": 0x14} \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail18.json b/lib/mcollective/vendor/json/tests/fixtures/fail18.json deleted file mode 100644 index e2d130c..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail18.json +++ /dev/null @@ -1 +0,0 @@ -[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]] diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail19.json b/lib/mcollective/vendor/json/tests/fixtures/fail19.json deleted file mode 100644 index 3b9c46f..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail19.json +++ /dev/null @@ -1 +0,0 @@ -{"Missing colon" null} \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail2.json b/lib/mcollective/vendor/json/tests/fixtures/fail2.json deleted file mode 100644 index 6b7c11e..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail2.json +++ /dev/null @@ -1 +0,0 @@ -["Unclosed array" \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail20.json b/lib/mcollective/vendor/json/tests/fixtures/fail20.json deleted file mode 100644 index 27c1af3..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail20.json +++ /dev/null @@ -1 +0,0 @@ -{"Double colon":: null} \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail21.json b/lib/mcollective/vendor/json/tests/fixtures/fail21.json deleted file mode 100644 index 6247457..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail21.json +++ /dev/null @@ -1 +0,0 @@ -{"Comma instead of colon", null} \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail22.json b/lib/mcollective/vendor/json/tests/fixtures/fail22.json deleted file mode 100644 index a775258..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail22.json +++ /dev/null @@ -1 +0,0 @@ -["Colon instead of comma": false] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail23.json b/lib/mcollective/vendor/json/tests/fixtures/fail23.json deleted file mode 100644 index 494add1..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail23.json +++ /dev/null @@ -1 +0,0 @@ -["Bad value", truth] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail24.json b/lib/mcollective/vendor/json/tests/fixtures/fail24.json deleted file mode 100644 index caff239..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail24.json +++ /dev/null @@ -1 +0,0 @@ -['single quote'] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail25.json b/lib/mcollective/vendor/json/tests/fixtures/fail25.json deleted file mode 100644 index 2dfbd25..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail25.json +++ /dev/null @@ -1 +0,0 @@ -["tab character in string "] diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail27.json b/lib/mcollective/vendor/json/tests/fixtures/fail27.json deleted file mode 100644 index 6b01a2c..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail27.json +++ /dev/null @@ -1,2 +0,0 @@ -["line -break"] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail28.json b/lib/mcollective/vendor/json/tests/fixtures/fail28.json deleted file mode 100644 index 621a010..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail28.json +++ /dev/null @@ -1,2 +0,0 @@ -["line\ -break"] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail3.json b/lib/mcollective/vendor/json/tests/fixtures/fail3.json deleted file mode 100644 index 168c81e..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail3.json +++ /dev/null @@ -1 +0,0 @@ -{unquoted_key: "keys must be quoted"} \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail4.json b/lib/mcollective/vendor/json/tests/fixtures/fail4.json deleted file mode 100644 index 9de168b..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail4.json +++ /dev/null @@ -1 +0,0 @@ -["extra comma",] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail5.json b/lib/mcollective/vendor/json/tests/fixtures/fail5.json deleted file mode 100644 index ddf3ce3..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail5.json +++ /dev/null @@ -1 +0,0 @@ -["double extra comma",,] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail6.json b/lib/mcollective/vendor/json/tests/fixtures/fail6.json deleted file mode 100644 index ed91580..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail6.json +++ /dev/null @@ -1 +0,0 @@ -[ , "<-- missing value"] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail7.json b/lib/mcollective/vendor/json/tests/fixtures/fail7.json deleted file mode 100644 index 8a96af3..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail7.json +++ /dev/null @@ -1 +0,0 @@ -["Comma after the close"], \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail8.json b/lib/mcollective/vendor/json/tests/fixtures/fail8.json deleted file mode 100644 index b28479c..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail8.json +++ /dev/null @@ -1 +0,0 @@ -["Extra close"]] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/fail9.json b/lib/mcollective/vendor/json/tests/fixtures/fail9.json deleted file mode 100644 index 5815574..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/fail9.json +++ /dev/null @@ -1 +0,0 @@ -{"Extra comma": true,} \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/pass1.json b/lib/mcollective/vendor/json/tests/fixtures/pass1.json deleted file mode 100644 index 7828fcc..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/pass1.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - "JSON Test Pattern pass1", - {"object with 1 member":["array with 1 element"]}, - {}, - [], - -42, - true, - false, - null, - { - "integer": 1234567890, - "real": -9876.543210, - "e": 0.123456789e-12, - "E": 1.234567890E+34, - "": 23456789012E666, - "zero": 0, - "one": 1, - "space": " ", - "quote": "\"", - "backslash": "\\", - "controls": "\b\f\n\r\t", - "slash": "/ & \/", - "alpha": "abcdefghijklmnopqrstuvwyz", - "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ", - "digit": "0123456789", - "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?", - "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A", - "true": true, - "false": false, - "null": null, - "array":[ ], - "object":{ }, - "address": "50 St. James Street", - "url": "http://www.JSON.org/", - "comment": "// /* <!-- --", - "# -- --> */": " ", - " s p a c e d " :[1,2 , 3 - -, - -4 , 5 , 6 ,7 ], - "compact": [1,2,3,4,5,6,7], - "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}", - "quotes": "" \u0022 %22 0x22 034 "", - "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?" -: "A key can be any string" - }, - 0.5 ,98.6 -, -99.44 -, - -1066 - - -,"rosebud"] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/pass15.json b/lib/mcollective/vendor/json/tests/fixtures/pass15.json deleted file mode 100644 index fc8376b..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/pass15.json +++ /dev/null @@ -1 +0,0 @@ -["Illegal backslash escape: \x15"] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/pass16.json b/lib/mcollective/vendor/json/tests/fixtures/pass16.json deleted file mode 100644 index c43ae3c..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/pass16.json +++ /dev/null @@ -1 +0,0 @@ -["Illegal backslash escape: \'"] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/pass17.json b/lib/mcollective/vendor/json/tests/fixtures/pass17.json deleted file mode 100644 index 62b9214..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/pass17.json +++ /dev/null @@ -1 +0,0 @@ -["Illegal backslash escape: \017"] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/pass2.json b/lib/mcollective/vendor/json/tests/fixtures/pass2.json deleted file mode 100644 index d3c63c7..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/pass2.json +++ /dev/null @@ -1 +0,0 @@ -[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/pass26.json b/lib/mcollective/vendor/json/tests/fixtures/pass26.json deleted file mode 100644 index 845d26a..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/pass26.json +++ /dev/null @@ -1 +0,0 @@ -["tab\ character\ in\ string\ "] \ No newline at end of file diff --git a/lib/mcollective/vendor/json/tests/fixtures/pass3.json b/lib/mcollective/vendor/json/tests/fixtures/pass3.json deleted file mode 100644 index 4528d51..0000000 --- a/lib/mcollective/vendor/json/tests/fixtures/pass3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "JSON Test Pattern pass3": { - "The outermost value": "must be an object or array.", - "In this test": "It is an object." - } -} diff --git a/lib/mcollective/vendor/json/tests/setup_variant.rb b/lib/mcollective/vendor/json/tests/setup_variant.rb deleted file mode 100644 index 2dab184..0000000 --- a/lib/mcollective/vendor/json/tests/setup_variant.rb +++ /dev/null @@ -1,11 +0,0 @@ -case ENV['JSON'] -when 'pure' - $:.unshift 'lib' - require 'json/pure' -when 'ext' - $:.unshift 'ext', 'lib' - require 'json/ext' -else - $:.unshift 'ext', 'lib' - require 'json' -end diff --git a/lib/mcollective/vendor/json/tests/test_json.rb b/lib/mcollective/vendor/json/tests/test_json.rb deleted file mode 100755 index 2fc3c09..0000000 --- a/lib/mcollective/vendor/json/tests/test_json.rb +++ /dev/null @@ -1,390 +0,0 @@ -#!/usr/bin/env ruby -# -*- coding: utf-8 -*- - -require 'test/unit' -require File.join(File.dirname(__FILE__), 'setup_variant') -require 'stringio' - -unless Array.method_defined?(:permutation) - begin - require 'enumerator' - require 'permutation' - class Array - def permutation - Permutation.for(self).to_enum.map { |x| x.project } - end - end - rescue LoadError - warn "Skipping permutation tests." - end -end - -class TC_JSON < Test::Unit::TestCase - include JSON - - def setup - @ary = [1, "foo", 3.14, 4711.0, 2.718, nil, [1,-2,3], false, true].map do - |x| [x] - end - @ary_to_parse = ["1", '"foo"', "3.14", "4711.0", "2.718", "null", - "[1,-2,3]", "false", "true"].map do - |x| "[#{x}]" - end - @hash = { - 'a' => 2, - 'b' => 3.141, - 'c' => 'c', - 'd' => [ 1, "b", 3.14 ], - 'e' => { 'foo' => 'bar' }, - 'g' => "\"\0\037", - 'h' => 1000.0, - 'i' => 0.001 - } - @json = '{"a":2,"b":3.141,"c":"c","d":[1,"b",3.14],"e":{"foo":"bar"},'\ - '"g":"\\"\\u0000\\u001f","h":1.0E3,"i":1.0E-3}' - end - - def test_construction - parser = JSON::Parser.new('test') - assert_equal 'test', parser.source - end - - def assert_equal_float(expected, is) - assert_in_delta(expected.first, is.first, 1e-2) - end - - def test_parse_simple_arrays - assert_equal([], parse('[]')) - assert_equal([], parse(' [ ] ')) - assert_equal([nil], parse('[null]')) - assert_equal([false], parse('[false]')) - assert_equal([true], parse('[true]')) - assert_equal([-23], parse('[-23]')) - assert_equal([23], parse('[23]')) - assert_equal([0.23], parse('[0.23]')) - assert_equal([0.0], parse('[0e0]')) - assert_raises(JSON::ParserError) { parse('[+23.2]') } - assert_raises(JSON::ParserError) { parse('[+23]') } - assert_raises(JSON::ParserError) { parse('[.23]') } - assert_raises(JSON::ParserError) { parse('[023]') } - assert_equal_float [3.141], parse('[3.141]') - assert_equal_float [-3.141], parse('[-3.141]') - assert_equal_float [3.141], parse('[3141e-3]') - assert_equal_float [3.141], parse('[3141.1e-3]') - assert_equal_float [3.141], parse('[3141E-3]') - assert_equal_float [3.141], parse('[3141.0E-3]') - assert_equal_float [-3.141], parse('[-3141.0e-3]') - assert_equal_float [-3.141], parse('[-3141e-3]') - assert_raises(ParserError) { parse('[NaN]') } - assert parse('[NaN]', :allow_nan => true).first.nan? - assert_raises(ParserError) { parse('[Infinity]') } - assert_equal [1.0/0], parse('[Infinity]', :allow_nan => true) - assert_raises(ParserError) { parse('[-Infinity]') } - assert_equal [-1.0/0], parse('[-Infinity]', :allow_nan => true) - assert_equal([""], parse('[""]')) - assert_equal(["foobar"], parse('["foobar"]')) - assert_equal([{}], parse('[{}]')) - end - - def test_parse_simple_objects - assert_equal({}, parse('{}')) - assert_equal({}, parse(' { } ')) - assert_equal({ "a" => nil }, parse('{ "a" : null}')) - assert_equal({ "a" => nil }, parse('{"a":null}')) - assert_equal({ "a" => false }, parse('{ "a" : false } ')) - assert_equal({ "a" => false }, parse('{"a":false}')) - assert_raises(JSON::ParserError) { parse('{false}') } - assert_equal({ "a" => true }, parse('{"a":true}')) - assert_equal({ "a" => true }, parse(' { "a" : true } ')) - assert_equal({ "a" => -23 }, parse(' { "a" : -23 } ')) - assert_equal({ "a" => -23 }, parse(' { "a" : -23 } ')) - assert_equal({ "a" => 23 }, parse('{"a":23 } ')) - assert_equal({ "a" => 23 }, parse(' { "a" : 23 } ')) - assert_equal({ "a" => 0.23 }, parse(' { "a" : 0.23 } ')) - assert_equal({ "a" => 0.23 }, parse(' { "a" : 0.23 } ')) - end - - if Array.method_defined?(:permutation) - def test_parse_more_complex_arrays - a = [ nil, false, true, "foßbar", [ "n€st€d", true ], { "nested" => true, "n€ßt€ð2" => {} }] - a.permutation.each do |perm| - json = pretty_generate(perm) - assert_equal perm, parse(json) - end - end - - def test_parse_complex_objects - a = [ nil, false, true, "foßbar", [ "n€st€d", true ], { "nested" => true, "n€ßt€ð2" => {} }] - a.permutation.each do |perm| - s = "a" - orig_obj = perm.inject({}) { |h, x| h[s.dup] = x; s = s.succ; h } - json = pretty_generate(orig_obj) - assert_equal orig_obj, parse(json) - end - end - end - - def test_parse_arrays - assert_equal([1,2,3], parse('[1,2,3]')) - assert_equal([1.2,2,3], parse('[1.2,2,3]')) - assert_equal([[],[[],[]]], parse('[[],[[],[]]]')) - end - - def test_parse_values - assert_equal([""], parse('[""]')) - assert_equal(["\\"], parse('["\\\\"]')) - assert_equal(['"'], parse('["\""]')) - assert_equal(['\\"\\'], parse('["\\\\\\"\\\\"]')) - assert_equal(["\"\b\n\r\t\0\037"], - parse('["\"\b\n\r\t\u0000\u001f"]')) - for i in 0 ... @ary.size - assert_equal(@ary[i], parse(@ary_to_parse[i])) - end - end - - def test_parse_array - assert_equal([], parse('[]')) - assert_equal([], parse(' [ ] ')) - assert_equal([1], parse('[1]')) - assert_equal([1], parse(' [ 1 ] ')) - assert_equal(@ary, - parse('[[1],["foo"],[3.14],[47.11e+2],[2718.0E-3],[null],[[1,-2,3]]'\ - ',[false],[true]]')) - assert_equal(@ary, parse(%Q{ [ [1] , ["foo"] , [3.14] \t , [47.11e+2] - , [2718.0E-3 ],\r[ null] , [[1, -2, 3 ]], [false ],[ true]\n ] })) - end - - class SubArray < Array; end - - class SubArray2 < Array - def to_json(*a) - { - JSON.create_id => self.class.name, - 'ary' => to_a, - }.to_json(*a) - end - - def self.json_create(o) - o.delete JSON.create_id - o['ary'] - end - end - - def test_parse_array_custom_class - res = parse('[]', :array_class => SubArray) - assert_equal([], res) - assert_equal(SubArray, res.class) - end - - def test_parse_object - assert_equal({}, parse('{}')) - assert_equal({}, parse(' { } ')) - assert_equal({'foo'=>'bar'}, parse('{"foo":"bar"}')) - assert_equal({'foo'=>'bar'}, parse(' { "foo" : "bar" } ')) - end - - class SubHash < Hash - end - - class SubHash2 < Hash - def to_json(*a) - { - JSON.create_id => self.class.name, - }.merge(self).to_json(*a) - end - - def self.json_create(o) - o.delete JSON.create_id - self[o] - end - end - - def test_parse_object_custom_class - res = parse('{}', :object_class => SubHash2) - assert_equal({}, res) - assert_equal(SubHash2, res.class) - end - - def test_generation_of_core_subclasses_with_new_to_json - obj = SubHash2["foo" => SubHash2["bar" => true]] - obj_json = JSON(obj) - obj_again = JSON(obj_json) - assert_kind_of SubHash2, obj_again - assert_kind_of SubHash2, obj_again['foo'] - assert obj_again['foo']['bar'] - assert_equal obj, obj_again - assert_equal ["foo"], JSON(JSON(SubArray2["foo"])) - end - - def test_generation_of_core_subclasses_with_default_to_json - assert_equal '{"foo":"bar"}', JSON(SubHash["foo" => "bar"]) - assert_equal '["foo"]', JSON(SubArray["foo"]) - end - - def test_generation_of_core_subclasses - obj = SubHash["foo" => SubHash["bar" => true]] - obj_json = JSON(obj) - obj_again = JSON(obj_json) - assert_kind_of Hash, obj_again - assert_kind_of Hash, obj_again['foo'] - assert obj_again['foo']['bar'] - assert_equal obj, obj_again - end - - def test_parser_reset - parser = Parser.new(@json) - assert_equal(@hash, parser.parse) - assert_equal(@hash, parser.parse) - end - - def test_comments - json = <<EOT -{ - "key1":"value1", // eol comment - "key2":"value2" /* multi line - * comment */, - "key3":"value3" /* multi line - // nested eol comment - * comment */ -} -EOT - assert_equal( - { "key1" => "value1", "key2" => "value2", "key3" => "value3" }, - parse(json)) - json = <<EOT -{ - "key1":"value1" /* multi line - // nested eol comment - /* illegal nested multi line comment */ - * comment */ -} -EOT - assert_raises(ParserError) { parse(json) } - json = <<EOT -{ - "key1":"value1" /* multi line - // nested eol comment - closed multi comment */ - and again, throw an Error */ -} -EOT - assert_raises(ParserError) { parse(json) } - json = <<EOT -{ - "key1":"value1" /*/*/ -} -EOT - assert_equal({ "key1" => "value1" }, parse(json)) - end - - def test_backslash - data = [ '\\.(?i:gif|jpe?g|png)$' ] - json = '["\\\\.(?i:gif|jpe?g|png)$"]' - assert_equal json, JSON.generate(data) - assert_equal data, JSON.parse(json) - # - data = [ '\\"' ] - json = '["\\\\\""]' - assert_equal json, JSON.generate(data) - assert_equal data, JSON.parse(json) - # - json = '["/"]' - data = JSON.parse(json) - assert_equal ['/'], data - assert_equal json, JSON.generate(data) - # - json = '["\""]' - data = JSON.parse(json) - assert_equal ['"'], data - assert_equal json, JSON.generate(data) - json = '["\\\'"]' - data = JSON.parse(json) - assert_equal ["'"], data - assert_equal '["\'"]', JSON.generate(data) - end - - def test_wrong_inputs - assert_raises(ParserError) { JSON.parse('"foo"') } - assert_raises(ParserError) { JSON.parse('123') } - assert_raises(ParserError) { JSON.parse('[] bla') } - assert_raises(ParserError) { JSON.parse('[] 1') } - assert_raises(ParserError) { JSON.parse('[] []') } - assert_raises(ParserError) { JSON.parse('[] {}') } - assert_raises(ParserError) { JSON.parse('{} []') } - assert_raises(ParserError) { JSON.parse('{} {}') } - assert_raises(ParserError) { JSON.parse('[NULL]') } - assert_raises(ParserError) { JSON.parse('[FALSE]') } - assert_raises(ParserError) { JSON.parse('[TRUE]') } - assert_raises(ParserError) { JSON.parse('[07] ') } - assert_raises(ParserError) { JSON.parse('[0a]') } - assert_raises(ParserError) { JSON.parse('[1.]') } - assert_raises(ParserError) { JSON.parse(' ') } - end - - def test_nesting - assert_raises(JSON::NestingError) { JSON.parse '[[]]', :max_nesting => 1 } - assert_raises(JSON::NestingError) { JSON.parser.new('[[]]', :max_nesting => 1).parse } - assert_equal [[]], JSON.parse('[[]]', :max_nesting => 2) - too_deep = '[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]' - too_deep_ary = eval too_deep - assert_raises(JSON::NestingError) { JSON.parse too_deep } - assert_raises(JSON::NestingError) { JSON.parser.new(too_deep).parse } - assert_raises(JSON::NestingError) { JSON.parse too_deep, :max_nesting => 19 } - ok = JSON.parse too_deep, :max_nesting => 20 - assert_equal too_deep_ary, ok - ok = JSON.parse too_deep, :max_nesting => nil - assert_equal too_deep_ary, ok - ok = JSON.parse too_deep, :max_nesting => false - assert_equal too_deep_ary, ok - ok = JSON.parse too_deep, :max_nesting => 0 - assert_equal too_deep_ary, ok - assert_raises(JSON::NestingError) { JSON.generate [[]], :max_nesting => 1 } - assert_equal '[[]]', JSON.generate([[]], :max_nesting => 2) - assert_raises(JSON::NestingError) { JSON.generate too_deep_ary } - assert_raises(JSON::NestingError) { JSON.generate too_deep_ary, :max_nesting => 19 } - ok = JSON.generate too_deep_ary, :max_nesting => 20 - assert_equal too_deep, ok - ok = JSON.generate too_deep_ary, :max_nesting => nil - assert_equal too_deep, ok - ok = JSON.generate too_deep_ary, :max_nesting => false - assert_equal too_deep, ok - ok = JSON.generate too_deep_ary, :max_nesting => 0 - assert_equal too_deep, ok - end - - def test_symbolize_names - assert_equal({ "foo" => "bar", "baz" => "quux" }, - JSON.parse('{"foo":"bar", "baz":"quux"}')) - assert_equal({ :foo => "bar", :baz => "quux" }, - JSON.parse('{"foo":"bar", "baz":"quux"}', :symbolize_names => true)) - end - - def test_load_dump - too_deep = '[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]' - assert_equal too_deep, JSON.dump(eval(too_deep)) - assert_kind_of String, Marshal.dump(eval(too_deep)) - assert_raises(ArgumentError) { JSON.dump(eval(too_deep), 19) } - assert_raises(ArgumentError) { Marshal.dump(eval(too_deep), 19) } - assert_equal too_deep, JSON.dump(eval(too_deep), 20) - assert_kind_of String, Marshal.dump(eval(too_deep), 20) - output = StringIO.new - JSON.dump(eval(too_deep), output) - assert_equal too_deep, output.string - output = StringIO.new - JSON.dump(eval(too_deep), output, 20) - assert_equal too_deep, output.string - end - - def test_big_integers - json1 = JSON([orig = (1 << 31) - 1]) - assert_equal orig, JSON[json1][0] - json2 = JSON([orig = 1 << 31]) - assert_equal orig, JSON[json2][0] - json3 = JSON([orig = (1 << 62) - 1]) - assert_equal orig, JSON[json3][0] - json4 = JSON([orig = 1 << 62]) - assert_equal orig, JSON[json4][0] - json5 = JSON([orig = 1 << 64]) - assert_equal orig, JSON[json5][0] - end -end diff --git a/lib/mcollective/vendor/json/tests/test_json_addition.rb b/lib/mcollective/vendor/json/tests/test_json_addition.rb deleted file mode 100755 index c8bfb41..0000000 --- a/lib/mcollective/vendor/json/tests/test_json_addition.rb +++ /dev/null @@ -1,167 +0,0 @@ -#!/usr/bin/env ruby -# -*- coding:utf-8 -*- - -require 'test/unit' -require File.join(File.dirname(__FILE__), 'setup_variant') -load 'json/add/core.rb' -require 'date' - -class TC_JSONAddition < Test::Unit::TestCase - include JSON - - class A - def initialize(a) - @a = a - end - - attr_reader :a - - def ==(other) - a == other.a - end - - def self.json_create(object) - new(*object['args']) - end - - def to_json(*args) - { - 'json_class' => self.class.name, - 'args' => [ @a ], - }.to_json(*args) - end - end - - class A2 < A - def to_json(*args) - { - 'json_class' => self.class.name, - 'args' => [ @a ], - }.to_json(*args) - end - end - - class B - def self.json_creatable? - false - end - - def to_json(*args) - { - 'json_class' => self.class.name, - }.to_json(*args) - end - end - - class C - def self.json_creatable? - false - end - - def to_json(*args) - { - 'json_class' => 'TC_JSONAddition::Nix', - }.to_json(*args) - end - end - - def test_extended_json - a = A.new(666) - assert A.json_creatable? - json = generate(a) - a_again = JSON.parse(json) - assert_kind_of a.class, a_again - assert_equal a, a_again - end - - def test_extended_json_disabled - a = A.new(666) - assert A.json_creatable? - json = generate(a) - a_again = JSON.parse(json, :create_additions => true) - assert_kind_of a.class, a_again - assert_equal a, a_again - a_hash = JSON.parse(json, :create_additions => false) - assert_kind_of Hash, a_hash - assert_equal( - {"args"=>[666], "json_class"=>"TC_JSONAddition::A"}.sort_by { |k,| k }, - a_hash.sort_by { |k,| k } - ) - end - - def test_extended_json_fail1 - b = B.new - assert !B.json_creatable? - json = generate(b) - assert_equal({ "json_class"=>"TC_JSONAddition::B" }, JSON.parse(json)) - end - - def test_extended_json_fail2 - c = C.new - assert !C.json_creatable? - json = generate(c) - assert_raises(ArgumentError, NameError) { JSON.parse(json) } - end - - def test_raw_strings - raw = '' - raw.respond_to?(:encode!) and raw.encode!(Encoding::ASCII_8BIT) - raw_array = [] - for i in 0..255 - raw << i - raw_array << i - end - json = raw.to_json_raw - json_raw_object = raw.to_json_raw_object - hash = { 'json_class' => 'String', 'raw'=> raw_array } - assert_equal hash, json_raw_object - assert_match(/\A\{.*\}\Z/, json) - assert_match(/"json_class":"String"/, json) - assert_match(/"raw":\[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,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,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255\]/, json) - raw_again = JSON.parse(json) - assert_equal raw, raw_again - end - - MyJsonStruct = Struct.new 'MyJsonStruct', :foo, :bar - - def test_core - t = Time.now - assert_equal t.inspect, JSON(JSON(t)).inspect - d = Date.today - assert_equal d, JSON(JSON(d)) - d = DateTime.civil(2007, 6, 14, 14, 57, 10, Rational(1, 12), 2299161) - assert_equal d, JSON(JSON(d)) - assert_equal 1..10, JSON(JSON(1..10)) - assert_equal 1...10, JSON(JSON(1...10)) - assert_equal "a".."c", JSON(JSON("a".."c")) - assert_equal "a"..."c", JSON(JSON("a"..."c")) - s = MyJsonStruct.new 4711, 'foot' - assert_equal s, JSON(JSON(s)) - struct = Struct.new :foo, :bar - s = struct.new 4711, 'foot' - assert_raises(JSONError) { JSON(s) } - begin - raise TypeError, "test me" - rescue TypeError => e - e_json = JSON.generate e - e_again = JSON e_json - assert_kind_of TypeError, e_again - assert_equal e.message, e_again.message - assert_equal e.backtrace, e_again.backtrace - end - assert_equal(/foo/, JSON(JSON(/foo/))) - assert_equal(/foo/i, JSON(JSON(/foo/i))) - end - - def test_utc_datetime - now = Time.now - d = DateTime.parse(now.to_s) # usual case - assert_equal d, JSON.parse(d.to_json) - d = DateTime.parse(now.utc.to_s) # of = 0 - assert_equal d, JSON.parse(d.to_json) - d = DateTime.civil(2008, 6, 17, 11, 48, 32, Rational(1,24)) - assert_equal d, JSON.parse(d.to_json) - d = DateTime.civil(2008, 6, 17, 11, 48, 32, Rational(12,24)) - assert_equal d, JSON.parse(d.to_json) - end -end diff --git a/lib/mcollective/vendor/json/tests/test_json_encoding.rb b/lib/mcollective/vendor/json/tests/test_json_encoding.rb deleted file mode 100644 index 7af5e63..0000000 --- a/lib/mcollective/vendor/json/tests/test_json_encoding.rb +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env ruby -# -*- coding: utf-8 -*- - -require 'test/unit' -require File.join(File.dirname(__FILE__), 'setup_variant') - -class TC_JSONEncoding < Test::Unit::TestCase - include JSON - - def setup - @utf_8 = '["© ≠ €!"]' - @parsed = [ "© ≠ €!" ] - @generated = '["\u00a9 \u2260 \u20ac!"]' - if String.method_defined?(:encode) - @utf_16_data = [@parsed.first.encode('utf-16be', 'utf-8')] - @utf_8_ascii_8bit = @utf_8.dup.force_encoding(Encoding::ASCII_8BIT) - @utf_16be = @utf_8.encode('utf-16be', 'utf-8') - @utf_16be_ascii_8bit = @utf_16be.dup.force_encoding(Encoding::ASCII_8BIT) - @utf_16le = @utf_8.encode('utf-16le', 'utf-8') - @utf_16le_ascii_8bit = @utf_16le.dup.force_encoding(Encoding::ASCII_8BIT) - @utf_32be = @utf_8.encode('utf-32be', 'utf-8') - @utf_32be_ascii_8bit = @utf_32be.dup.force_encoding(Encoding::ASCII_8BIT) - @utf_32le = @utf_8.encode('utf-32le', 'utf-8') - @utf_32le_ascii_8bit = @utf_32le.dup.force_encoding(Encoding::ASCII_8BIT) - else - require 'iconv' - @utf_16_data = Iconv.iconv('utf-16be', 'utf-8', @parsed.first) - @utf_8_ascii_8bit = @utf_8.dup - @utf_16be, = Iconv.iconv('utf-16be', 'utf-8', @utf_8) - @utf_16be_ascii_8bit = @utf_16be.dup - @utf_16le, = Iconv.iconv('utf-16le', 'utf-8', @utf_8) - @utf_16le_ascii_8bit = @utf_16le.dup - @utf_32be, = Iconv.iconv('utf-32be', 'utf-8', @utf_8) - @utf_32be_ascii_8bit = @utf_32be.dup - @utf_32le, = Iconv.iconv('utf-32le', 'utf-8', @utf_8) - @utf_32le_ascii_8bit = @utf_32le.dup - end - end - - def test_parse - assert_equal @parsed, JSON.parse(@utf_8) - assert_equal @parsed, JSON.parse(@utf_16be) - assert_equal @parsed, JSON.parse(@utf_16le) - assert_equal @parsed, JSON.parse(@utf_32be) - assert_equal @parsed, JSON.parse(@utf_32le) - end - - def test_parse_ascii_8bit - assert_equal @parsed, JSON.parse(@utf_8_ascii_8bit) - assert_equal @parsed, JSON.parse(@utf_16be_ascii_8bit) - assert_equal @parsed, JSON.parse(@utf_16le_ascii_8bit) - assert_equal @parsed, JSON.parse(@utf_32be_ascii_8bit) - assert_equal @parsed, JSON.parse(@utf_32le_ascii_8bit) - end - - def test_generate - assert_equal @generated, JSON.generate(@parsed, :ascii_only => true) - if defined?(::Encoding) - assert_equal @generated, JSON.generate(@utf_16_data, :ascii_only => true) - else - # XXX checking of correct utf8 data is not as strict (yet?) without :ascii_only - assert_raises(JSON::GeneratorError) { JSON.generate(@utf_16_data, :ascii_only => true) } - end - end -end diff --git a/lib/mcollective/vendor/json/tests/test_json_fixtures.rb b/lib/mcollective/vendor/json/tests/test_json_fixtures.rb deleted file mode 100755 index e9df8f5..0000000 --- a/lib/mcollective/vendor/json/tests/test_json_fixtures.rb +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env ruby -# -*- coding: utf-8 -*- - -require 'test/unit' -require File.join(File.dirname(__FILE__), 'setup_variant') - -class TC_JSONFixtures < Test::Unit::TestCase - def setup - fixtures = File.join(File.dirname(__FILE__), 'fixtures/*.json') - passed, failed = Dir[fixtures].partition { |f| f['pass'] } - @passed = passed.inject([]) { |a, f| a << [ f, File.read(f) ] }.sort - @failed = failed.inject([]) { |a, f| a << [ f, File.read(f) ] }.sort - end - - def test_passing - for name, source in @passed - begin - assert JSON.parse(source), - "Did not pass for fixture '#{name}': #{source.inspect}" - rescue => e - warn "\nCaught #{e.class}(#{e}) for fixture '#{name}': #{source.inspect}\n#{e.backtrace * "\n"}" - raise e - end - end - end - - def test_failing - for name, source in @failed - assert_raises(JSON::ParserError, JSON::NestingError, - "Did not fail for fixture '#{name}': #{source.inspect}") do - JSON.parse(source) - end - end - end -end diff --git a/lib/mcollective/vendor/json/tests/test_json_generate.rb b/lib/mcollective/vendor/json/tests/test_json_generate.rb deleted file mode 100755 index e6219df..0000000 --- a/lib/mcollective/vendor/json/tests/test_json_generate.rb +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env ruby -# -*- coding: utf-8 -*- - -require 'test/unit' -require File.join(File.dirname(__FILE__), 'setup_variant') - -class TC_JSONGenerate < Test::Unit::TestCase - include JSON - - def setup - @hash = { - 'a' => 2, - 'b' => 3.141, - 'c' => 'c', - 'd' => [ 1, "b", 3.14 ], - 'e' => { 'foo' => 'bar' }, - 'g' => "\"\0\037", - 'h' => 1000.0, - 'i' => 0.001 - } - @json2 = '{"a":2,"b":3.141,"c":"c","d":[1,"b",3.14],"e":{"foo":"bar"},' + - '"g":"\\"\\u0000\\u001f","h":1000.0,"i":0.001}' - @json3 = <<'EOT'.chomp -{ - "a": 2, - "b": 3.141, - "c": "c", - "d": [ - 1, - "b", - 3.14 - ], - "e": { - "foo": "bar" - }, - "g": "\"\u0000\u001f", - "h": 1000.0, - "i": 0.001 -} -EOT - end - - def test_generate - json = generate(@hash) - assert_equal(JSON.parse(@json2), JSON.parse(json)) - parsed_json = parse(json) - assert_equal(@hash, parsed_json) - json = generate({1=>2}) - assert_equal('{"1":2}', json) - parsed_json = parse(json) - assert_equal({"1"=>2}, parsed_json) - assert_raise(GeneratorError) { generate(666) } - end - - def test_generate_pretty - json = pretty_generate(@hash) - assert_equal(JSON.parse(@json3), JSON.parse(json)) - parsed_json = parse(json) - assert_equal(@hash, parsed_json) - json = pretty_generate({1=>2}) - assert_equal(<<'EOT'.chomp, json) -{ - "1": 2 -} -EOT - parsed_json = parse(json) - assert_equal({"1"=>2}, parsed_json) - assert_raise(GeneratorError) { pretty_generate(666) } - end - - def test_fast_generate - json = fast_generate(@hash) - assert_equal(JSON.parse(@json2), JSON.parse(json)) - parsed_json = parse(json) - assert_equal(@hash, parsed_json) - json = fast_generate({1=>2}) - assert_equal('{"1":2}', json) - parsed_json = parse(json) - assert_equal({"1"=>2}, parsed_json) - assert_raise(GeneratorError) { fast_generate(666) } - end - - - - def test_states - json = generate({1=>2}, nil) - assert_equal('{"1":2}', json) - s = JSON.state.new - assert s.check_circular? - assert s[:check_circular?] - h = { 1=>2 } - h[3] = h - assert_raises(JSON::NestingError) { generate(h) } - assert_raises(JSON::NestingError) { generate(h, s) } - s = JSON.state.new - a = [ 1, 2 ] - a << a - assert_raises(JSON::NestingError) { generate(a, s) } - assert s.check_circular? - assert s[:check_circular?] - end - - def test_pretty_state - state = PRETTY_STATE_PROTOTYPE.dup - assert_equal({ - :allow_nan => false, - :array_nl => "\n", - :ascii_only => false, - :depth => 0, - :indent => " ", - :max_nesting => 19, - :object_nl => "\n", - :space => " ", - :space_before => "", - }.sort_by { |n,| n.to_s }, state.to_h.sort_by { |n,| n.to_s }) - end - - def test_safe_state - state = SAFE_STATE_PROTOTYPE.dup - assert_equal({ - :allow_nan => false, - :array_nl => "", - :ascii_only => false, - :depth => 0, - :indent => "", - :max_nesting => 19, - :object_nl => "", - :space => "", - :space_before => "", - }.sort_by { |n,| n.to_s }, state.to_h.sort_by { |n,| n.to_s }) - end - - def test_fast_state - state = FAST_STATE_PROTOTYPE.dup - assert_equal({ - :allow_nan => false, - :array_nl => "", - :ascii_only => false, - :depth => 0, - :indent => "", - :max_nesting => 0, - :object_nl => "", - :space => "", - :space_before => "", - }.sort_by { |n,| n.to_s }, state.to_h.sort_by { |n,| n.to_s }) - end - - def test_allow_nan - assert_raises(GeneratorError) { generate([JSON::NaN]) } - assert_equal '[NaN]', generate([JSON::NaN], :allow_nan => true) - assert_raises(GeneratorError) { fast_generate([JSON::NaN]) } - assert_raises(GeneratorError) { pretty_generate([JSON::NaN]) } - assert_equal "[\n NaN\n]", pretty_generate([JSON::NaN], :allow_nan => true) - assert_raises(GeneratorError) { generate([JSON::Infinity]) } - assert_equal '[Infinity]', generate([JSON::Infinity], :allow_nan => true) - assert_raises(GeneratorError) { fast_generate([JSON::Infinity]) } - assert_raises(GeneratorError) { pretty_generate([JSON::Infinity]) } - assert_equal "[\n Infinity\n]", pretty_generate([JSON::Infinity], :allow_nan => true) - assert_raises(GeneratorError) { generate([JSON::MinusInfinity]) } - assert_equal '[-Infinity]', generate([JSON::MinusInfinity], :allow_nan => true) - assert_raises(GeneratorError) { fast_generate([JSON::MinusInfinity]) } - assert_raises(GeneratorError) { pretty_generate([JSON::MinusInfinity]) } - assert_equal "[\n -Infinity\n]", pretty_generate([JSON::MinusInfinity], :allow_nan => true) - end - - def test_depth - ary = []; ary << ary - assert_equal 0, JSON::SAFE_STATE_PROTOTYPE.depth - assert_raises(JSON::NestingError) { JSON.generate(ary) } - assert_equal 0, JSON::SAFE_STATE_PROTOTYPE.depth - assert_equal 0, JSON::PRETTY_STATE_PROTOTYPE.depth - assert_raises(JSON::NestingError) { JSON.pretty_generate(ary) } - assert_equal 0, JSON::PRETTY_STATE_PROTOTYPE.depth - s = JSON.state.new - assert_equal 0, s.depth - assert_raises(JSON::NestingError) { ary.to_json(s) } - assert_equal 19, s.depth - end -end diff --git a/lib/mcollective/vendor/json/tests/test_json_string_matching.rb b/lib/mcollective/vendor/json/tests/test_json_string_matching.rb deleted file mode 100644 index df26a68..0000000 --- a/lib/mcollective/vendor/json/tests/test_json_string_matching.rb +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env ruby -# -*- coding: utf-8 -*- - -require 'test/unit' -require File.join(File.dirname(__FILE__), 'setup_variant') -require 'stringio' -require 'time' - -class TestJsonStringMatching < Test::Unit::TestCase - include JSON - - class TestTime < ::Time - def self.json_create(string) - Time.parse(string) - end - - def to_json(*) - %{"#{strftime('%FT%T%z')}"} - end - - def ==(other) - to_i == other.to_i - end - end - - def test_match_date - t = TestTime.new - t_json = [ t ].to_json - assert_equal [ t ], - JSON.parse(t_json, - :match_string => { /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-]\d{4}\Z/ => TestTime }) - assert_equal [ t.strftime('%FT%T%z') ], - JSON.parse(t_json, - :match_string => { /\A\d{3}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-]\d{4}\Z/ => TestTime }) - assert_equal [ t.strftime('%FT%T%z') ], - JSON.parse(t_json, - :match_string => { /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-]\d{4}\Z/ => TestTime }, - :create_additions => false) - end -end diff --git a/lib/mcollective/vendor/json/tests/test_json_unicode.rb b/lib/mcollective/vendor/json/tests/test_json_unicode.rb deleted file mode 100755 index ace56ca..0000000 --- a/lib/mcollective/vendor/json/tests/test_json_unicode.rb +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env ruby -# -*- coding: utf-8 -*- - -require 'test/unit' -require File.join(File.dirname(__FILE__), 'setup_variant') - -class TC_JSONUnicode < Test::Unit::TestCase - include JSON - - def test_unicode - assert_equal '""', ''.to_json - assert_equal '"\\b"', "\b".to_json - assert_equal '"\u0001"', 0x1.chr.to_json - assert_equal '"\u001f"', 0x1f.chr.to_json - assert_equal '" "', ' '.to_json - assert_equal "\"#{0x7f.chr}\"", 0x7f.chr.to_json - utf8 = [ "© ≠ €! \01" ] - json = '["© ≠ €! \u0001"]' - assert_equal json, utf8.to_json(:ascii_only => false) - assert_equal utf8, parse(json) - json = '["\u00a9 \u2260 \u20ac! \u0001"]' - assert_equal json, utf8.to_json(:ascii_only => true) - assert_equal utf8, parse(json) - utf8 = ["\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212"] - json = "[\"\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212\"]" - assert_equal utf8, parse(json) - assert_equal json, utf8.to_json(:ascii_only => false) - utf8 = ["\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212"] - assert_equal utf8, parse(json) - json = "[\"\\u3042\\u3044\\u3046\\u3048\\u304a\"]" - assert_equal json, utf8.to_json(:ascii_only => true) - assert_equal utf8, parse(json) - utf8 = ['საქართველო'] - json = '["საქართველო"]' - assert_equal json, utf8.to_json(:ascii_only => false) - json = "[\"\\u10e1\\u10d0\\u10e5\\u10d0\\u10e0\\u10d7\\u10d5\\u10d4\\u10da\\u10dd\"]" - assert_equal json, utf8.to_json(:ascii_only => true) - assert_equal utf8, parse(json) - assert_equal '["Ã"]', JSON.generate(["Ã"], :ascii_only => false) - assert_equal '["\\u00c3"]', JSON.generate(["Ã"], :ascii_only => true) - assert_equal ["€"], JSON.parse('["\u20ac"]') - utf8 = ["\xf0\xa0\x80\x81"] - json = "[\"\xf0\xa0\x80\x81\"]" - assert_equal json, JSON.generate(utf8, :ascii_only => false) - assert_equal utf8, JSON.parse(json) - json = '["\ud840\udc01"]' - assert_equal json, JSON.generate(utf8, :ascii_only => true) - assert_equal utf8, JSON.parse(json) - end - - def test_chars - (0..0x7f).each do |i| - json = '["\u%04x"]' % i - if RUBY_VERSION >= "1.9." - i = i.chr - end - assert_equal i, JSON.parse(json).first[0] - if i == ?\b - generated = JSON.generate(["" << i]) - assert '["\b"]' == generated || '["\10"]' == generated - elsif [?\n, ?\r, ?\t, ?\f].include?(i) - assert_equal '[' << ('' << i).dump << ']', JSON.generate(["" << i]) - elsif i.chr < 0x20.chr - assert_equal json, JSON.generate(["" << i]) - end - end - assert_raise(JSON::GeneratorError) do - JSON.generate(["\x80"], :ascii_only => true) - end - assert_equal "\302\200", JSON.parse('["\u0080"]').first - end -end diff --git a/lib/mcollective/vendor/json/tools/fuzz.rb b/lib/mcollective/vendor/json/tools/fuzz.rb deleted file mode 100755 index 4dacd95..0000000 --- a/lib/mcollective/vendor/json/tools/fuzz.rb +++ /dev/null @@ -1,139 +0,0 @@ -require 'json' - -require 'iconv' -ISO_8859_1_TO_UTF8 = Iconv.new('utf-8', 'iso-8859-15') -class ::String - def to_utf8 - ISO_8859_1_TO_UTF8.iconv self - end -end - -class Fuzzer - def initialize(n, freqs = {}) - sum = freqs.inject(0.0) { |s, x| s + x.last } - freqs.each_key { |x| freqs[x] /= sum } - s = 0.0 - freqs.each_key do |x| - freqs[x] = s .. (s + t = freqs[x]) - s += t - end - @freqs = freqs - @n = n - @alpha = (0..0xff).to_a - end - - def random_string - s = '' - 30.times { s << @alpha[rand(@alpha.size)] } - s.to_utf8 - end - - def pick - r = rand - found = @freqs.find { |k, f| f.include? rand } - found && found.first - end - - def make_pick - k = pick - case - when k == Hash, k == Array - k.new - when k == true, k == false, k == nil - k - when k == String - random_string - when k == Fixnum - rand(2 ** 30) - 2 ** 29 - when k == Bignum - rand(2 ** 70) - 2 ** 69 - end - end - - def fuzz(current = nil) - if @n > 0 - case current - when nil - @n -= 1 - current = fuzz [ Hash, Array ][rand(2)].new - when Array - while @n > 0 - @n -= 1 - current << case p = make_pick - when Array, Hash - fuzz(p) - else - p - end - end - when Hash - while @n > 0 - @n -= 1 - current[random_string] = case p = make_pick - when Array, Hash - fuzz(p) - else - p - end - end - end - end - current - end -end - -class MyState < JSON.state - WS = " \r\t\n" - - def initialize - super( - :indent => make_spaces, - :space => make_spaces, - :space_before => make_spaces, - :object_nl => make_spaces, - :array_nl => make_spaces, - :max_nesting => false - ) - end - - def make_spaces - s = '' - rand(1).times { s << WS[rand(WS.size)] } - s - end -end - -n = (ARGV.shift || 500).to_i -loop do - fuzzer = Fuzzer.new(n, - Hash => 25, - Array => 25, - String => 10, - Fixnum => 10, - Bignum => 10, - nil => 5, - true => 5, - false => 5 - ) - o1 = fuzzer.fuzz - json = JSON.generate o1, MyState.new - if $DEBUG - puts "-" * 80 - puts json, json.size - else - puts json.size - end - begin - o2 = JSON.parse(json, :max_nesting => false) - rescue JSON::ParserError => e - puts "Caught #{e.class}: #{e.message}\n#{e.backtrace * "\n"}" - puts "o1 = #{o1.inspect}", "json = #{json}", "json_str = #{json.inspect}" - puts "locals = #{local_variables.inspect}" - exit - end - if o1 != o2 - puts "mismatch", "o1 = #{o1.inspect}", "o2 = #{o2.inspect}", - "json = #{json}", "json_str = #{json.inspect}" - puts "locals = #{local_variables.inspect}" - end -end diff --git a/lib/mcollective/vendor/json/tools/server.rb b/lib/mcollective/vendor/json/tools/server.rb deleted file mode 100755 index 084377f..0000000 --- a/lib/mcollective/vendor/json/tools/server.rb +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env ruby - -require 'webrick' -include WEBrick -$:.unshift 'ext' -$:.unshift 'lib' -require 'json' - -class JSONServlet < HTTPServlet::AbstractServlet - @@count = 1 - - def do_GET(req, res) - obj = { - "TIME" => Time.now.strftime("%FT%T"), - "foo" => "Bär", - "bar" => "© ≠ €!", - 'a' => 2, - 'b' => 3.141, - 'COUNT' => @@count += 1, - 'c' => 'c', - 'd' => [ 1, "b", 3.14 ], - 'e' => { 'foo' => 'bar' }, - 'g' => "松本行弘", - 'h' => 1000.0, - 'i' => 0.001, - 'j' => "\xf0\xa0\x80\x81", - } - res.body = JSON.generate obj - res['Content-Type'] = "application/json" - end -end - -def create_server(err, dir, port) - dir = File.expand_path(dir) - err.puts "Surf to:", "http://#{Socket.gethostname}:#{port}" - - s = HTTPServer.new( - :Port => port, - :DocumentRoot => dir, - :Logger => WEBrick::Log.new(err), - :AccessLog => [ - [ err, WEBrick::AccessLog::COMMON_LOG_FORMAT ], - [ err, WEBrick::AccessLog::REFERER_LOG_FORMAT ], - [ err, WEBrick::AccessLog::AGENT_LOG_FORMAT ] - ] - ) - s.mount("/json", JSONServlet) - s -end - -default_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'data')) -dir = ARGV.shift || default_dir -port = (ARGV.shift || 6666).to_i -s = create_server(STDERR, dir, 6666) -t = Thread.new { s.start } -trap(:INT) do - s.shutdown - t.join - exit -end -sleep diff --git a/lib/mcollective/vendor/load_json.rb b/lib/mcollective/vendor/load_json.rb deleted file mode 100644 index ab78c7d..0000000 --- a/lib/mcollective/vendor/load_json.rb +++ /dev/null @@ -1 +0,0 @@ -$: << File.join([File.dirname(__FILE__), "json/lib"]) diff --git a/lib/mcollective/vendor/load_systemu.rb b/lib/mcollective/vendor/load_systemu.rb deleted file mode 100644 index 3962686..0000000 --- a/lib/mcollective/vendor/load_systemu.rb +++ /dev/null @@ -1 +0,0 @@ -$: << File.join([File.dirname(__FILE__), "systemu/lib"]) diff --git a/lib/mcollective/vendor/require_vendored.rb b/lib/mcollective/vendor/require_vendored.rb deleted file mode 100644 index be5a267..0000000 --- a/lib/mcollective/vendor/require_vendored.rb +++ /dev/null @@ -1,2 +0,0 @@ -require 'systemu' -require 'json' diff --git a/lib/mcollective/vendor/systemu/LICENSE b/lib/mcollective/vendor/systemu/LICENSE deleted file mode 100644 index 38060d8..0000000 --- a/lib/mcollective/vendor/systemu/LICENSE +++ /dev/null @@ -1,3 +0,0 @@ -same as Ruby's - -http://www.ruby-lang.org/en/LICENSE.txt diff --git a/lib/mcollective/vendor/systemu/README b/lib/mcollective/vendor/systemu/README deleted file mode 100644 index 82a2089..0000000 --- a/lib/mcollective/vendor/systemu/README +++ /dev/null @@ -1,169 +0,0 @@ -NAME - - systemu - -SYNOPSIS - - univeral capture of stdout and stderr and handling of child process pid for windows, *nix, etc. - -URIS - - http://github.com/ahoward/systemu - http://rubyforge.org/projects/codeforpeople/ - -INSTALL - - gem install systemu - -HISTORY - 2.0.0 - - versioning issue. new gem release. - - 1.3.1 - - updates for ruby 1.9.1 - - 1.3.0 - - move to github - - 1.2.0 - - - fixed handling of background thread management - needed - Thread.current.abort_on_exception = true - - - fixed reporting of child pid, it was reported as the parent's pid before - -SAMPLES - - - <========< samples/a.rb >========> - - ~ > cat samples/a.rb - - # - # systemu can be used on any platform to return status, stdout, and stderr of - # any command. unlike other methods like open3/popen4 there is zero danger of - # full pipes or threading issues hanging your process or subprocess. - # - require 'systemu' - - date = %q( ruby -e" t = Time.now; STDOUT.puts t; STDERR.puts t " ) - - status, stdout, stderr = systemu date - p [ status, stdout, stderr ] - - ~ > ruby samples/a.rb - - [#<Process::Status: pid=44129,exited(0)>, "Tue Apr 12 21:43:07 -0600 2011\n", "Tue Apr 12 21:43:07 -0600 2011\n"] - - - <========< samples/b.rb >========> - - ~ > cat samples/b.rb - - # - # quite a few keys can be passed to the command to alter it's behaviour. if - # either stdout or stderr is supplied those objects should respond_to? '<<' - # and only status will be returned - # - require 'systemu' - - date = %q( ruby -e" t = Time.now; STDOUT.puts t; STDERR.puts t " ) - - stdout, stderr = '', '' - status = systemu date, 'stdout' => stdout, 'stderr' => stderr - p [ status, stdout, stderr ] - - ~ > ruby samples/b.rb - - [#<Process::Status: pid=44134,exited(0)>, "Tue Apr 12 21:43:07 -0600 2011\n", "Tue Apr 12 21:43:07 -0600 2011\n"] - - - <========< samples/c.rb >========> - - ~ > cat samples/c.rb - - # - # of course stdin can be supplied too. synonyms for 'stdin' include '0' and - # 0. the other stdio streams have similar shortcuts - # - require 'systemu' - - cat = %q( ruby -e" ARGF.each{|line| puts line} " ) - - status = systemu cat, 0=>'the stdin for cat', 1=>stdout='' - puts stdout - - ~ > ruby samples/c.rb - - the stdin for cat - - - <========< samples/d.rb >========> - - ~ > cat samples/d.rb - - # - # the cwd can be supplied - # - require 'systemu' - require 'tmpdir' - - pwd = %q( ruby -e" STDERR.puts Dir.pwd " ) - - status = systemu pwd, 2=>(stderr=''), :cwd=>Dir.tmpdir - puts stderr - - - ~ > ruby samples/d.rb - - /private/var/folders/nO/nOjBCb30ELegrm98Bhyvbk+++TM/-Tmp- - - - <========< samples/e.rb >========> - - ~ > cat samples/e.rb - - # - # any environment vars specified are merged into the child's environment - # - require 'systemu' - - env = %q( ruby -r yaml -e" puts ENV[ 'answer' ] " ) - - status = systemu env, 1=>stdout='', 'env'=>{ 'answer' => 0b101010 } - puts stdout - - ~ > ruby samples/e.rb - - 42 - - - <========< samples/f.rb >========> - - ~ > cat samples/f.rb - - # - # if a block is specified then it is passed the child pid and run in a - # background thread. note that this thread will __not__ be blocked during the - # execution of the command so it may do useful work such as killing the child - # if execution time passes a certain threshold - # - require 'systemu' - - looper = %q( ruby -e" loop{ STDERR.puts Time.now.to_i; sleep 1 } " ) - - status, stdout, stderr = - systemu looper do |cid| - sleep 3 - Process.kill 9, cid - end - - p status - p stderr - - ~ > ruby samples/f.rb - - #<Process::Status: pid=44154,signaled(SIGKILL=9)> - "1302666187\n1302666188\n1302666189\n" - - diff --git a/lib/mcollective/vendor/systemu/README.erb b/lib/mcollective/vendor/systemu/README.erb deleted file mode 100644 index ab04eff..0000000 --- a/lib/mcollective/vendor/systemu/README.erb +++ /dev/null @@ -1,37 +0,0 @@ -NAME - - systemu - -SYNOPSIS - - univeral capture of stdout and stderr and handling of child process pid for windows, *nix, etc. - -URIS - - http://github.com/ahoward/systemu - http://rubyforge.org/projects/codeforpeople/ - -INSTALL - - gem install systemu - -HISTORY - 2.0.0 - - versioning issue. new gem release. - - 1.3.1 - - updates for ruby 1.9.1 - - 1.3.0 - - move to github - - 1.2.0 - - - fixed handling of background thread management - needed - Thread.current.abort_on_exception = true - - - fixed reporting of child pid, it was reported as the parent's pid before - -SAMPLES - -<%= samples %> diff --git a/lib/mcollective/vendor/systemu/Rakefile b/lib/mcollective/vendor/systemu/Rakefile deleted file mode 100644 index 44e9122..0000000 --- a/lib/mcollective/vendor/systemu/Rakefile +++ /dev/null @@ -1,364 +0,0 @@ -This.rubyforge_project = 'codeforpeople' -This.author = "Ara T. Howard" -This.email = "ara.t.howard@gmail.com" -This.homepage = "http://github.com/ahoward/#{ This.lib }" - - -task :default do - puts((Rake::Task.tasks.map{|task| task.name.gsub(/::/,':')} - ['default']).sort) -end - -task :test do - run_tests! -end - -namespace :test do - task(:unit){ run_tests!(:unit) } - task(:functional){ run_tests!(:functional) } - task(:integration){ run_tests!(:integration) } -end - -def run_tests!(which = nil) - which ||= '**' - test_dir = File.join(This.dir, "test") - test_glob ||= File.join(test_dir, "#{ which }/**_test.rb") - test_rbs = Dir.glob(test_glob).sort - - div = ('=' * 119) - line = ('-' * 119) - helper = "-r ./test/helper.rb" if test(?e, "./test/helper.rb") - - test_rbs.each_with_index do |test_rb, index| - testno = index + 1 - command = "#{ This.ruby } -I ./lib -I ./test/lib #{ helper } #{ test_rb }" - - puts - say(div, :color => :cyan, :bold => true) - say("@#{ testno } => ", :bold => true, :method => :print) - say(command, :color => :cyan, :bold => true) - say(line, :color => :cyan, :bold => true) - - system(command) - - say(line, :color => :cyan, :bold => true) - - status = $?.exitstatus - - if status.zero? - say("@#{ testno } <= ", :bold => true, :color => :white, :method => :print) - say("SUCCESS", :color => :green, :bold => true) - else - say("@#{ testno } <= ", :bold => true, :color => :white, :method => :print) - say("FAILURE", :color => :red, :bold => true) - end - say(line, :color => :cyan, :bold => true) - - exit(status) unless status.zero? - end -end - - -task :gemspec do - ignore_extensions = 'git', 'svn', 'tmp', /sw./, 'bak', 'gem' - ignore_directories = %w[ pkg ] - ignore_files = %w[ test/log ] - - shiteless = - lambda do |list| - list.delete_if do |entry| - next unless test(?e, entry) - extension = File.basename(entry).split(%r/[.]/).last - ignore_extensions.any?{|ext| ext === extension} - end - list.delete_if do |entry| - next unless test(?d, entry) - dirname = File.expand_path(entry) - ignore_directories.any?{|dir| File.expand_path(dir) == dirname} - end - list.delete_if do |entry| - next unless test(?f, entry) - filename = File.expand_path(entry) - ignore_files.any?{|file| File.expand_path(file) == filename} - end - end - - lib = This.lib - object = This.object - version = This.version - files = shiteless[Dir::glob("**/**")] - executables = shiteless[Dir::glob("bin/*")].map{|exe| File.basename(exe)} - has_rdoc = true #File.exist?('doc') - test_files = "test/#{ lib }.rb" if File.file?("test/#{ lib }.rb") - summary = object.respond_to?(:summary) ? object.summary : "summary: #{ lib } kicks the ass" - description = object.respond_to?(:description) ? object.description : "description: #{ lib } kicks the ass" - - if This.extensions.nil? - This.extensions = [] - extensions = This.extensions - %w( Makefile configure extconf.rb ).each do |ext| - extensions << ext if File.exists?(ext) - end - end - extensions = [extensions].flatten.compact - - template = - if test(?e, 'gemspec.erb') - Template{ IO.read('gemspec.erb') } - else - Template { - <<-__ - ## #{ lib }.gemspec - # - - Gem::Specification::new do |spec| - spec.name = #{ lib.inspect } - spec.version = #{ version.inspect } - spec.platform = Gem::Platform::RUBY - spec.summary = #{ lib.inspect } - spec.description = #{ description.inspect } - - spec.files = #{ files.inspect } - spec.executables = #{ executables.inspect } - - spec.require_path = "lib" - - spec.has_rdoc = #{ has_rdoc.inspect } - spec.test_files = #{ test_files.inspect } - - # spec.add_dependency 'lib', '>= version' - - spec.extensions.push(*#{ extensions.inspect }) - - spec.rubyforge_project = #{ This.rubyforge_project.inspect } - spec.author = #{ This.author.inspect } - spec.email = #{ This.email.inspect } - spec.homepage = #{ This.homepage.inspect } - end - __ - } - end - - Fu.mkdir_p(This.pkgdir) - This.gemspec = File.join(This.dir, "#{ This.lib }.gemspec") #File.join(This.pkgdir, "gemspec.rb") - open("#{ This.gemspec }", "w"){|fd| fd.puts(template)} -end - -task :gem => [:clean, :gemspec] do - Fu.mkdir_p(This.pkgdir) - before = Dir['*.gem'] - cmd = "gem build #{ This.gemspec }" - `#{ cmd }` - after = Dir['*.gem'] - gem = ((after - before).first || after.first) or abort('no gem!') - Fu.mv gem, This.pkgdir - This.gem = File.basename(gem) -end - -task :readme do - samples = '' - prompt = '~ > ' - lib = This.lib - version = This.version - - Dir['sample*/*'].sort.each do |sample| - samples << "\n" << " <========< #{ sample } >========>" << "\n\n" - - cmd = "cat #{ sample }" - samples << Util.indent(prompt + cmd, 2) << "\n\n" - samples << Util.indent(`#{ cmd }`, 4) << "\n" - - cmd = "ruby #{ sample }" - samples << Util.indent(prompt + cmd, 2) << "\n\n" - - cmd = "ruby -e'STDOUT.sync=true; exec %(ruby -I ./lib #{ sample })'" - samples << Util.indent(`#{ cmd } 2>&1`, 4) << "\n" - end - - template = - if test(?e, 'readme.erb') - Template{ IO.read('readme.erb') } - else - Template { - <<-__ - NAME - #{ lib } - - DESCRIPTION - - INSTALL - gem install #{ lib } - - SAMPLES - #{ samples } - __ - } - end - - open("README", "w"){|fd| fd.puts template} -end - - -task :clean do - Dir[File.join(This.pkgdir, '**/**')].each{|entry| Fu.rm_rf(entry)} -end - - -task :release => [:clean, :gemspec, :gem] do - gems = Dir[File.join(This.pkgdir, '*.gem')].flatten - raise "which one? : #{ gems.inspect }" if gems.size > 1 - raise "no gems?" if gems.size < 1 - cmd = "rubyforge login && rubyforge add_release #{ This.rubyforge_project } #{ This.lib } #{ This.version } #{ This.pkgdir }/#{ This.gem }" - puts cmd - system cmd - cmd = "gem push #{ This.pkgdir }/#{ This.gem }" - puts cmd - system cmd -end - - - - - -BEGIN { -# support for this rakefile -# - $VERBOSE = nil - - require 'ostruct' - require 'erb' - require 'fileutils' - require 'rbconfig' - -# fu shortcut -# - Fu = FileUtils - -# cache a bunch of stuff about this rakefile/environment -# - This = OpenStruct.new - - This.file = File.expand_path(__FILE__) - This.dir = File.dirname(This.file) - This.pkgdir = File.join(This.dir, 'pkg') - -# grok lib -# - lib = ENV['LIB'] - unless lib - lib = File.basename(Dir.pwd).sub(/[-].*$/, '') - end - This.lib = lib - -# grok version -# - version = ENV['VERSION'] - unless version - require "./lib/#{ This.lib }" - This.name = lib.capitalize - This.object = eval(This.name) - version = This.object.send(:version) - end - This.version = version - -# we need to know the name of the lib an it's version -# - abort('no lib') unless This.lib - abort('no version') unless This.version - -# discover full path to this ruby executable -# - c = Config::CONFIG - bindir = c["bindir"] || c['BINDIR'] - ruby_install_name = c['ruby_install_name'] || c['RUBY_INSTALL_NAME'] || 'ruby' - ruby_ext = c['EXEEXT'] || '' - ruby = File.join(bindir, (ruby_install_name + ruby_ext)) - This.ruby = ruby - -# some utils -# - module Util - def indent(s, n = 2) - s = unindent(s) - ws = ' ' * n - s.gsub(%r/^/, ws) - end - - def unindent(s) - indent = nil - s.each_line do |line| - next if line =~ %r/^\s*$/ - indent = line[%r/^\s*/] and break - end - indent ? s.gsub(%r/^#{ indent }/, "") : s - end - extend self - end - -# template support -# - class Template - def initialize(&block) - @block = block.binding - @template = block.call.to_s - end - def expand(b=nil) - ERB.new(Util.unindent(@template)).result(b||@block) - end - alias_method 'to_s', 'expand' - end - def Template(*args, &block) Template.new(*args, &block) end - -# colored console output support -# - This.ansi = { - :clear => "\e[0m", - :reset => "\e[0m", - :erase_line => "\e[K", - :erase_char => "\e[P", - :bold => "\e[1m", - :dark => "\e[2m", - :underline => "\e[4m", - :underscore => "\e[4m", - :blink => "\e[5m", - :reverse => "\e[7m", - :concealed => "\e[8m", - :black => "\e[30m", - :red => "\e[31m", - :green => "\e[32m", - :yellow => "\e[33m", - :blue => "\e[34m", - :magenta => "\e[35m", - :cyan => "\e[36m", - :white => "\e[37m", - :on_black => "\e[40m", - :on_red => "\e[41m", - :on_green => "\e[42m", - :on_yellow => "\e[43m", - :on_blue => "\e[44m", - :on_magenta => "\e[45m", - :on_cyan => "\e[46m", - :on_white => "\e[47m" - } - def say(phrase, *args) - options = args.last.is_a?(Hash) ? args.pop : {} - options[:color] = args.shift.to_s.to_sym unless args.empty? - keys = options.keys - keys.each{|key| options[key.to_s.to_sym] = options.delete(key)} - - color = options[:color] - bold = options.has_key?(:bold) - - parts = [phrase] - parts.unshift(This.ansi[color]) if color - parts.unshift(This.ansi[:bold]) if bold - parts.push(This.ansi[:clear]) if parts.size > 1 - - method = options[:method] || :puts - - Kernel.send(method, parts.join) - end - -# always run out of the project dir -# - Dir.chdir(This.dir) -} diff --git a/lib/mcollective/vendor/systemu/lib/systemu.rb b/lib/mcollective/vendor/systemu/lib/systemu.rb deleted file mode 100644 index 56ea580..0000000 --- a/lib/mcollective/vendor/systemu/lib/systemu.rb +++ /dev/null @@ -1,357 +0,0 @@ -# vim: ts=2:sw=2:sts=2:et:fdm=marker -require 'tmpdir' -require 'socket' -require 'fileutils' -require 'rbconfig' -require 'thread' -require 'yaml' - -class Object - def systemu(*a, &b) SystemUniversal.new(*a, &b).systemu end -end - -class SystemUniversal -# -# constants -# - SystemUniversal::VERSION = '2.2.0' unless SystemUniversal.send(:const_defined?, :VERSION) - def SystemUniversal.version() SystemUniversal::VERSION end - def version() SystemUniversal::VERSION end -# -# class methods -# - - @host = Socket.gethostname - @ppid = Process.ppid - @pid = Process.pid - @turd = ENV['SYSTEMU_TURD'] - - c = ::Config::CONFIG - ruby = File.join(c['bindir'], c['ruby_install_name']) << c['EXEEXT'] - @ruby = if system('%s -e 42' % ruby) - ruby - else - system('%s -e 42' % 'ruby') ? 'ruby' : warn('no ruby in PATH/CONFIG') - end - - class << SystemUniversal - %w( host ppid pid ruby turd ).each{|a| attr_accessor a} - - def quote(*words) - words.map{|word| word.inspect}.join(' ') - end - end - -# -# instance methods -# - - def initialize argv, opts = {}, &block - getopt = getopts opts - - @argv = argv - @block = block - - @stdin = getopt[ ['stdin', 'in', '0', 0] ] - @stdout = getopt[ ['stdout', 'out', '1', 1] ] - @stderr = getopt[ ['stderr', 'err', '2', 2] ] - @env = getopt[ 'env' ] - @cwd = getopt[ 'cwd' ] - - @host = getopt[ 'host', self.class.host ] - @ppid = getopt[ 'ppid', self.class.ppid ] - @pid = getopt[ 'pid', self.class.pid ] - @ruby = getopt[ 'ruby', self.class.ruby ] - end - - def systemu - tmpdir do |tmp| - c = child_setup tmp - status = nil - - begin - thread = nil - - quietly{ - IO.popen "#{ quote(@ruby) } #{ quote(c['program']) }", 'r+' do |pipe| - line = pipe.gets - case line - when %r/^pid: \d+$/ - cid = Integer line[%r/\d+/] - else - begin - buf = pipe.read - buf = "#{ line }#{ buf }" - e = Marshal.load buf - raise unless Exception === e - raise e - rescue - raise "wtf?\n#{ buf }\n" - end - end - thread = new_thread cid, @block if @block - pipe.read rescue nil - end - } - status = $? - ensure - if thread - begin - class << status - attr 'thread' - end - status.instance_eval{ @thread = thread } - rescue - 42 - end - end - end - - if @stdout or @stderr - open(c['stdout']){|f| relay f => @stdout} if @stdout - open(c['stderr']){|f| relay f => @stderr} if @stderr - status - else - [status, IO.read(c['stdout']), IO.read(c['stderr'])] - end - end - end - - def quote *args, &block - SystemUniversal.quote(*args, &block) - end - - def new_thread cid, block - q = Queue.new - Thread.new(cid) do |cid| - current = Thread.current - current.abort_on_exception = true - q.push current - block.call cid - end - q.pop - end - - def child_setup tmp - stdin = File.expand_path(File.join(tmp, 'stdin')) - stdout = File.expand_path(File.join(tmp, 'stdout')) - stderr = File.expand_path(File.join(tmp, 'stderr')) - program = File.expand_path(File.join(tmp, 'program')) - config = File.expand_path(File.join(tmp, 'config')) - - if @stdin - open(stdin, 'w'){|f| relay @stdin => f} - else - FileUtils.touch stdin - end - FileUtils.touch stdout - FileUtils.touch stderr - - c = {} - c['argv'] = @argv - c['env'] = @env - c['cwd'] = @cwd - c['stdin'] = stdin - c['stdout'] = stdout - c['stderr'] = stderr - c['program'] = program - open(config, 'w'){|f| YAML.dump c, f} - - open(program, 'w'){|f| f.write child_program(config)} - - c - end - - def quietly - v = $VERBOSE - $VERBOSE = nil - yield - ensure - $VERBOSE = v - end - - def child_program config - <<-program - PIPE = STDOUT.dup - begin - require 'yaml' - - config = YAML.load(IO.read('#{ config }')) - - argv = config['argv'] - env = config['env'] - cwd = config['cwd'] - stdin = config['stdin'] - stdout = config['stdout'] - stderr = config['stderr'] - - Dir.chdir cwd if cwd - env.each{|k,v| ENV[k.to_s] = v.to_s} if env - - STDIN.reopen stdin - STDOUT.reopen stdout - STDERR.reopen stderr - - PIPE.puts "pid: \#{ Process.pid }" - PIPE.flush ### the process is ready yo! - PIPE.close - - exec *argv - rescue Exception => e - PIPE.write Marshal.dump(e) rescue nil - exit 42 - end - program - end - - def relay srcdst - src, dst, ignored = srcdst.to_a.first - if src.respond_to? 'read' - while((buf = src.read(8192))); dst << buf; end - else - if src.respond_to?(:each_line) - src.each_line{|buf| dst << buf} - else - src.each{|buf| dst << buf} - end - end - end - - def tmpdir d = Dir.tmpdir, max = 42, &b - i = -1 and loop{ - i += 1 - - tmp = File.join d, "systemu_#{ @host }_#{ @ppid }_#{ @pid }_#{ rand }_#{ i += 1 }" - - begin - Dir.mkdir tmp - rescue Errno::EEXIST - raise if i >= max - next - end - - break( - if b - begin - b.call tmp - ensure - FileUtils.rm_rf tmp unless SystemU.turd - end - else - tmp - end - ) - } - end - - def getopts opts = {} - lambda do |*args| - keys, default, ignored = args - catch(:opt) do - [keys].flatten.each do |key| - [key, key.to_s, key.to_s.intern].each do |key| - throw :opt, opts[key] if opts.has_key?(key) - end - end - default - end - end - end -end - -# some monkeypatching for JRuby -if defined? JRUBY_VERSION - require 'jruby' - import org.jruby.RubyProcess - - class SystemUniversal - def systemu - split_argv = JRuby::PathHelper.smart_split_command @argv - process = java.lang.Runtime.runtime.exec split_argv.to_java(:string) - - stdout, stderr = [process.input_stream, process.error_stream].map do |stream| - StreamReader.new(stream) - end - - exit_code = process.wait_for - [ - RubyProcess::RubyStatus.new_process_status(JRuby.runtime, exit_code), - stdout.join, - stderr.join - ] - end - - class StreamReader - def initialize(stream) - @data = "" - @thread = Thread.new do - reader = java.io.BufferedReader.new java.io.InputStreamReader.new(stream) - - while line = reader.read_line - @data << line << "\n" - end - end - end - - def join - @thread.join - @data - end - end - end -end - - - -SystemU = SystemUniversal unless defined? SystemU -Systemu = SystemUniversal unless defined? Systemu - - - - - - - - - - - - - -if $0 == __FILE__ -# -# date -# - date = %q( ruby -e" t = Time.now; STDOUT.puts t; STDERR.puts t " ) - - status, stdout, stderr = systemu date - p [status, stdout, stderr] - - status = systemu date, 1=>(stdout = '') - p [status, stdout] - - status = systemu date, 2=>(stderr = '') - p [status, stderr] -# -# sleep -# - sleep = %q( ruby -e" p(sleep(1)) " ) - status, stdout, stderr = systemu sleep - p [status, stdout, stderr] - - sleep = %q( ruby -e" p(sleep(42)) " ) - status, stdout, stderr = systemu(sleep){|cid| Process.kill 9, cid} - p [status, stdout, stderr] -# -# env -# - env = %q( ruby -e" p ENV['A'] " ) - status, stdout, stderr = systemu env, :env => {'A' => 42} - p [status, stdout, stderr] -# -# cwd -# - env = %q( ruby -e" p Dir.pwd " ) - status, stdout, stderr = systemu env, :cwd => Dir.tmpdir - p [status, stdout, stderr] -end diff --git a/lib/mcollective/vendor/systemu/samples/a.rb b/lib/mcollective/vendor/systemu/samples/a.rb deleted file mode 100644 index 37af06a..0000000 --- a/lib/mcollective/vendor/systemu/samples/a.rb +++ /dev/null @@ -1,11 +0,0 @@ -# -# systemu can be used on any platform to return status, stdout, and stderr of -# any command. unlike other methods like open3/popen4 there is zero danger of -# full pipes or threading issues hanging your process or subprocess. -# - require 'systemu' - - date = %q( ruby -e" t = Time.now; STDOUT.puts t; STDERR.puts t " ) - - status, stdout, stderr = systemu date - p [ status, stdout, stderr ] diff --git a/lib/mcollective/vendor/systemu/samples/b.rb b/lib/mcollective/vendor/systemu/samples/b.rb deleted file mode 100644 index 951dce1..0000000 --- a/lib/mcollective/vendor/systemu/samples/b.rb +++ /dev/null @@ -1,12 +0,0 @@ -# -# quite a few keys can be passed to the command to alter it's behaviour. if -# either stdout or stderr is supplied those objects should respond_to? '<<' -# and only status will be returned -# - require 'systemu' - - date = %q( ruby -e" t = Time.now; STDOUT.puts t; STDERR.puts t " ) - - stdout, stderr = '', '' - status = systemu date, 'stdout' => stdout, 'stderr' => stderr - p [ status, stdout, stderr ] diff --git a/lib/mcollective/vendor/systemu/samples/c.rb b/lib/mcollective/vendor/systemu/samples/c.rb deleted file mode 100644 index c3ffc54..0000000 --- a/lib/mcollective/vendor/systemu/samples/c.rb +++ /dev/null @@ -1,10 +0,0 @@ -# -# of course stdin can be supplied too. synonyms for 'stdin' include '0' and -# 0. the other stdio streams have similar shortcuts -# - require 'systemu' - - cat = %q( ruby -e" ARGF.each{|line| puts line} " ) - - status = systemu cat, 0=>'the stdin for cat', 1=>stdout='' - puts stdout diff --git a/lib/mcollective/vendor/systemu/samples/d.rb b/lib/mcollective/vendor/systemu/samples/d.rb deleted file mode 100644 index 84d4ae9..0000000 --- a/lib/mcollective/vendor/systemu/samples/d.rb +++ /dev/null @@ -1,11 +0,0 @@ -# -# the cwd can be supplied -# - require 'systemu' - require 'tmpdir' - - pwd = %q( ruby -e" STDERR.puts Dir.pwd " ) - - status = systemu pwd, 2=>(stderr=''), :cwd=>Dir.tmpdir - puts stderr - diff --git a/lib/mcollective/vendor/systemu/samples/e.rb b/lib/mcollective/vendor/systemu/samples/e.rb deleted file mode 100644 index 2c26e62..0000000 --- a/lib/mcollective/vendor/systemu/samples/e.rb +++ /dev/null @@ -1,9 +0,0 @@ -# -# any environment vars specified are merged into the child's environment -# - require 'systemu' - - env = %q( ruby -r yaml -e" puts ENV[ 'answer' ] " ) - - status = systemu env, 1=>stdout='', 'env'=>{ 'answer' => 0b101010 } - puts stdout diff --git a/lib/mcollective/vendor/systemu/samples/f.rb b/lib/mcollective/vendor/systemu/samples/f.rb deleted file mode 100644 index 158301d..0000000 --- a/lib/mcollective/vendor/systemu/samples/f.rb +++ /dev/null @@ -1,18 +0,0 @@ -# -# if a block is specified then it is passed the child pid and run in a -# background thread. note that this thread will __not__ be blocked during the -# execution of the command so it may do useful work such as killing the child -# if execution time passes a certain threshold -# - require 'systemu' - - looper = %q( ruby -e" loop{ STDERR.puts Time.now.to_i; sleep 1 } " ) - - status, stdout, stderr = - systemu looper do |cid| - sleep 3 - Process.kill 9, cid - end - - p status - p stderr diff --git a/lib/mcollective/vendor/systemu/systemu.gemspec b/lib/mcollective/vendor/systemu/systemu.gemspec deleted file mode 100644 index 74e0c45..0000000 --- a/lib/mcollective/vendor/systemu/systemu.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -## systemu.gemspec -# - -Gem::Specification::new do |spec| - spec.name = "systemu" - spec.version = "2.2.0" - spec.platform = Gem::Platform::RUBY - spec.summary = "systemu" - spec.description = "description: systemu kicks the ass" - - spec.files = ["lib", "lib/systemu.rb", "LICENSE", "Rakefile", "README", "README.erb", "samples", "samples/a.rb", "samples/b.rb", "samples/c.rb", "samples/d.rb", "samples/e.rb", "samples/f.rb"] - spec.executables = [] - - spec.require_path = "lib" - - spec.has_rdoc = true - spec.test_files = nil - -# spec.add_dependency 'lib', '>= version' - - spec.extensions.push(*[]) - - spec.rubyforge_project = "codeforpeople" - spec.author = "Ara T. Howard" - spec.email = "ara.t.howard@gmail.com" - spec.homepage = "http://github.com/ahoward/systemu" -end