diff --git a/.gitattributes b/.gitattributes index e05a0320..176bc1f7 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ *.catala* linguist-language=Markdown -french_law/french_law.js binary -src/french_law/law_source/*.ml binary \ No newline at end of file +french_law/js/french_law.js binary +french_law/ocaml/law_source/allocations_familiales.ml binary +french_law/ocaml/law_source/unit_tests/tests_allocations_famiales.ml binary diff --git a/.gitignore b/.gitignore index dd3d79d4..b76a386b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ _build/ _opam/ *.install -src/**/.merlin +compiler/**/.merlin legifrance_oauth* *.html diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5d0c1edb..d65c69da 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -128,6 +128,6 @@ Currently, Catala supports English and French legislative text via the Technically, support for new languages can be added via a new lexer. If you want to add a new language, you can start from -[existing lexer examples](src/catala/surface/lexer_fr.ml), tweak and open +[existing lexer examples](compiler/surface/lexer_fr.ml), tweak and open a pull request. If you don't feel familiar enough with OCaml to do so, please leave an issue on this repository. diff --git a/Makefile b/Makefile index cdc60d66..8b99a250 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) # Dependencies ########################################## -EXECUTABLES = man2html virtualenv python3 colordiff +EXECUTABLES = man2html virtualenv python3 colordiff node K := $(foreach exec,$(EXECUTABLES),\ $(if $(shell which $(exec)),some string,$(warning [WARNING] No "$(exec)" executable found. \ Please install this executable for everything to work smoothly))) @@ -31,6 +31,8 @@ dependencies: dependencies-ocaml init-submodules # Catala compiler rules ########################################## +COMPILER_DIR=compiler + format: dune build @fmt --auto-promote 2> /dev/null | true @@ -38,11 +40,11 @@ format: build: dune build @update-parser-messages --auto-promote | true @$(MAKE) --no-print-directory format - dune build src/catala/catala.exe + dune build $(COMPILER_DIR)/catala.exe #> js_build : Builds the Web-compatible JS version of the Catala compiler js_build: - dune build src/catala/catala_web.bc.js --profile release + dune build $(COMPILER_DIR)/catala_web.bc.js --profile release #> doc : Generates the HTML OCaml documentation doc: @@ -147,7 +149,7 @@ literate_examples: literate_allocations_familiales literate_code_general_impots literate_us_tax_code literate_tutorial_en literate_tutoriel_fr literate_polish_taxes ########################################## -# Execute test suite +# High-level test and benchmarks commands ########################################## .FORCE: @@ -161,55 +163,65 @@ test_examples: .FORCE #> tests : Run interpreter tests tests: test_suite test_examples -#> tests_ml : Run OCaml unit tests for the Catala-generated code -tests_ml: run_french_law_library_tests +#> tests_ocaml : Run OCaml unit tests for the Catala-generated code +tests_ocaml: run_french_law_library_tests + +#> bench_ocaml : Run OCaml benchmarks for the Catala-generated code +bench_ocaml: run_french_law_library_benchmark + +#> bench_js : Run JS benchmarks for the Catala-generated code +bench_js: run_french_law_library_benchmark_js ########################################## # French law library ########################################## -FRENCH_LAW_LIB_DIR=src/french_law +FRENCH_LAW_OCAML_LIB_DIR=french_law/ocaml +FRENCH_LAW_JS_LIB_DIR=french_law/js -$(FRENCH_LAW_LIB_DIR)/law_source/allocations_familiales.ml: .FORCE +$(FRENCH_LAW_OCAML_LIB_DIR)/law_source/allocations_familiales.ml: .FORCE CATALA_OPTS="-O -t" $(MAKE) -C $(ALLOCATIONS_FAMILIALES_DIR) allocations_familiales.ml cp -f $(ALLOCATIONS_FAMILIALES_DIR)/allocations_familiales.ml \ - $(FRENCH_LAW_LIB_DIR)/law_source + $(FRENCH_LAW_OCAML_LIB_DIR)/law_source -$(FRENCH_LAW_LIB_DIR)/law_source/unit_tests/tests_allocations_familiales.ml: .FORCE +$(FRENCH_LAW_OCAML_LIB_DIR)/law_source/unit_tests/tests_allocations_familiales.ml: .FORCE CATALA_OPTS="-O -t" $(MAKE) -s -C $(ALLOCATIONS_FAMILIALES_DIR) tests/tests_allocations_familiales.ml cp -f $(ALLOCATIONS_FAMILIALES_DIR)/tests/tests_allocations_familiales.ml \ - $(FRENCH_LAW_LIB_DIR)/law_source/unit_tests/ + $(FRENCH_LAW_OCAML_LIB_DIR)/law_source/unit_tests/ -#> generate_french_law_library : Generates the French law library OCaml sources from Catala -generate_french_law_library:\ - $(FRENCH_LAW_LIB_DIR)/law_source/allocations_familiales.ml \ - $(FRENCH_LAW_LIB_DIR)/law_source/unit_tests/tests_allocations_familiales.ml +#> generate_french_law_library_ocaml : Generates the French law library OCaml sources from Catala +generate_french_law_library_ocaml:\ + $(FRENCH_LAW_OCAML_LIB_DIR)/law_source/allocations_familiales.ml \ + $(FRENCH_LAW_OCAML_LIB_DIR)/law_source/unit_tests/tests_allocations_familiales.ml $(MAKE) format -#> build_french_law_library : Builds the OCaml French law library -build_french_law_library: generate_french_law_library format - dune build $(FRENCH_LAW_LIB_DIR)/api.a +#> build_french_law_library_ocaml : Builds the OCaml French law library +build_french_law_library_ocaml: generate_french_law_library_ocaml format + dune build $(FRENCH_LAW_OCAML_LIB_DIR)/api.a -run_french_law_library_benchmark: generate_french_law_library - dune exec --profile release $(FRENCH_LAW_LIB_DIR)/bench.exe +run_french_law_library_benchmark_ocaml: generate_french_law_library_ocaml + dune exec --profile release $(FRENCH_LAW_OCAML_LIB_DIR)/bench.exe -run_french_law_library_tests: generate_french_law_library - dune exec $(FRENCH_LAW_LIB_DIR)/law_source/unit_tests/run_tests.exe +run_french_law_library_benchmark_js: build_french_law_library_js + $(MAKE) -C $(FRENCH_LAW_JS_LIB_DIR) + +run_french_law_library_tests: generate_french_law_library_ocaml + dune exec $(FRENCH_LAW_OCAML_LIB_DIR)/law_source/unit_tests/run_tests.exe #> build_french_law_library_js : Builds the JS version of the OCaml French law library -build_french_law_library_js: generate_french_law_library format - dune build --profile release $(FRENCH_LAW_LIB_DIR)/api_web.bc.js - cp -f $(ROOT_DIR)/_build/default/$(FRENCH_LAW_LIB_DIR)/api_web.bc.js $(ROOT_DIR)/french_law_js/french_law.js +build_french_law_library_js: generate_french_law_library_ocaml format + dune build --profile release $(FRENCH_LAW_OCAML_LIB_DIR)/api_web.bc.js + cp -f $(ROOT_DIR)/_build/default/$(FRENCH_LAW_OCAML_LIB_DIR)/api_web.bc.js $(FRENCH_LAW_JS_LIB_DIR)/french_law.js ########################################## # Website assets ########################################## -grammar.html: src/catala/surface/parser.mly +grammar.html: $(COMPILER_DIR)/surface/parser.mly obelisk html -o $@ $< -catala.html: src/catala/utils/cli.ml - dune exec src/catala/catala.exe -- --help=groff | man2html | sed -e '1,8d' \ +catala.html: $(COMPILER_DIR)/utils/cli.ml + dune exec $(COMPILER_DIR)/catala.exe -- --help=groff | man2html | sed -e '1,8d' \ | tac | sed "1,20d" | tac > $@ #> website-assets : Builds all the assets necessary for the Catala website @@ -219,8 +231,9 @@ website-assets: doc literate_examples grammar.html catala.html js_build build_fr # Misceallenous ########################################## -all: dependencies build doc tests generate_french_law_library build_french_law_library build_french_law_library_js \ - tests_ml website-assets +#> all : Run all make commands +all: dependencies build doc tests generate_french_law_library_ocaml build_french_law_library_ocaml build_french_law_library_js \ + tests_ocaml bench_ocaml bench_js website-assets #> clean : Clean build artifacts clean: diff --git a/src/catala/catala.ml b/compiler/catala.ml similarity index 100% rename from src/catala/catala.ml rename to compiler/catala.ml diff --git a/src/catala/catala_web.ml b/compiler/catala_web.ml similarity index 100% rename from src/catala/catala_web.ml rename to compiler/catala_web.ml diff --git a/src/catala/dcalc/ast.ml b/compiler/dcalc/ast.ml similarity index 100% rename from src/catala/dcalc/ast.ml rename to compiler/dcalc/ast.ml diff --git a/src/catala/dcalc/ast.mli b/compiler/dcalc/ast.mli similarity index 100% rename from src/catala/dcalc/ast.mli rename to compiler/dcalc/ast.mli diff --git a/src/catala/dcalc/dcalc.mld b/compiler/dcalc/dcalc.mld similarity index 100% rename from src/catala/dcalc/dcalc.mld rename to compiler/dcalc/dcalc.mld diff --git a/src/catala/dcalc/dune b/compiler/dcalc/dune similarity index 100% rename from src/catala/dcalc/dune rename to compiler/dcalc/dune diff --git a/src/catala/dcalc/interpreter.ml b/compiler/dcalc/interpreter.ml similarity index 100% rename from src/catala/dcalc/interpreter.ml rename to compiler/dcalc/interpreter.ml diff --git a/src/catala/dcalc/interpreter.mli b/compiler/dcalc/interpreter.mli similarity index 100% rename from src/catala/dcalc/interpreter.mli rename to compiler/dcalc/interpreter.mli diff --git a/src/catala/dcalc/optimizations.ml b/compiler/dcalc/optimizations.ml similarity index 100% rename from src/catala/dcalc/optimizations.ml rename to compiler/dcalc/optimizations.ml diff --git a/src/catala/dcalc/optimizations.mli b/compiler/dcalc/optimizations.mli similarity index 100% rename from src/catala/dcalc/optimizations.mli rename to compiler/dcalc/optimizations.mli diff --git a/src/catala/dcalc/print.ml b/compiler/dcalc/print.ml similarity index 100% rename from src/catala/dcalc/print.ml rename to compiler/dcalc/print.ml diff --git a/src/catala/dcalc/print.mli b/compiler/dcalc/print.mli similarity index 100% rename from src/catala/dcalc/print.mli rename to compiler/dcalc/print.mli diff --git a/src/catala/dcalc/typing.ml b/compiler/dcalc/typing.ml similarity index 100% rename from src/catala/dcalc/typing.ml rename to compiler/dcalc/typing.ml diff --git a/src/catala/dcalc/typing.mli b/compiler/dcalc/typing.mli similarity index 100% rename from src/catala/dcalc/typing.mli rename to compiler/dcalc/typing.mli diff --git a/src/catala/desugared/ast.ml b/compiler/desugared/ast.ml similarity index 100% rename from src/catala/desugared/ast.ml rename to compiler/desugared/ast.ml diff --git a/src/catala/desugared/ast.mli b/compiler/desugared/ast.mli similarity index 100% rename from src/catala/desugared/ast.mli rename to compiler/desugared/ast.mli diff --git a/src/catala/desugared/dependency.ml b/compiler/desugared/dependency.ml similarity index 100% rename from src/catala/desugared/dependency.ml rename to compiler/desugared/dependency.ml diff --git a/src/catala/desugared/dependency.mli b/compiler/desugared/dependency.mli similarity index 100% rename from src/catala/desugared/dependency.mli rename to compiler/desugared/dependency.mli diff --git a/src/catala/desugared/desugared.mld b/compiler/desugared/desugared.mld similarity index 100% rename from src/catala/desugared/desugared.mld rename to compiler/desugared/desugared.mld diff --git a/src/catala/desugared/desugared_to_scope.ml b/compiler/desugared/desugared_to_scope.ml similarity index 100% rename from src/catala/desugared/desugared_to_scope.ml rename to compiler/desugared/desugared_to_scope.ml diff --git a/src/catala/desugared/desugared_to_scope.mli b/compiler/desugared/desugared_to_scope.mli similarity index 100% rename from src/catala/desugared/desugared_to_scope.mli rename to compiler/desugared/desugared_to_scope.mli diff --git a/src/catala/desugared/dune b/compiler/desugared/dune similarity index 100% rename from src/catala/desugared/dune rename to compiler/desugared/dune diff --git a/src/catala/driver.ml b/compiler/driver.ml similarity index 100% rename from src/catala/driver.ml rename to compiler/driver.ml diff --git a/src/catala/dune b/compiler/dune similarity index 100% rename from src/catala/dune rename to compiler/dune diff --git a/src/catala/index.mld b/compiler/index.mld similarity index 100% rename from src/catala/index.mld rename to compiler/index.mld diff --git a/src/catala/lcalc/ast.ml b/compiler/lcalc/ast.ml similarity index 100% rename from src/catala/lcalc/ast.ml rename to compiler/lcalc/ast.ml diff --git a/src/catala/lcalc/ast.mli b/compiler/lcalc/ast.mli similarity index 100% rename from src/catala/lcalc/ast.mli rename to compiler/lcalc/ast.mli diff --git a/src/catala/lcalc/compile_with_exceptions.ml b/compiler/lcalc/compile_with_exceptions.ml similarity index 100% rename from src/catala/lcalc/compile_with_exceptions.ml rename to compiler/lcalc/compile_with_exceptions.ml diff --git a/src/catala/lcalc/compile_with_exceptions.mli b/compiler/lcalc/compile_with_exceptions.mli similarity index 100% rename from src/catala/lcalc/compile_with_exceptions.mli rename to compiler/lcalc/compile_with_exceptions.mli diff --git a/src/catala/lcalc/dune b/compiler/lcalc/dune similarity index 100% rename from src/catala/lcalc/dune rename to compiler/lcalc/dune diff --git a/src/catala/lcalc/lcalc.mld b/compiler/lcalc/lcalc.mld similarity index 100% rename from src/catala/lcalc/lcalc.mld rename to compiler/lcalc/lcalc.mld diff --git a/src/catala/lcalc/optimizations.ml b/compiler/lcalc/optimizations.ml similarity index 100% rename from src/catala/lcalc/optimizations.ml rename to compiler/lcalc/optimizations.ml diff --git a/src/catala/lcalc/optimizations.mli b/compiler/lcalc/optimizations.mli similarity index 100% rename from src/catala/lcalc/optimizations.mli rename to compiler/lcalc/optimizations.mli diff --git a/src/catala/lcalc/print.ml b/compiler/lcalc/print.ml similarity index 100% rename from src/catala/lcalc/print.ml rename to compiler/lcalc/print.ml diff --git a/src/catala/lcalc/print.mli b/compiler/lcalc/print.mli similarity index 100% rename from src/catala/lcalc/print.mli rename to compiler/lcalc/print.mli diff --git a/src/catala/lcalc/to_ocaml.ml b/compiler/lcalc/to_ocaml.ml similarity index 100% rename from src/catala/lcalc/to_ocaml.ml rename to compiler/lcalc/to_ocaml.ml diff --git a/src/catala/lcalc/to_ocaml.mli b/compiler/lcalc/to_ocaml.mli similarity index 100% rename from src/catala/lcalc/to_ocaml.mli rename to compiler/lcalc/to_ocaml.mli diff --git a/src/catala/literate/dune b/compiler/literate/dune similarity index 100% rename from src/catala/literate/dune rename to compiler/literate/dune diff --git a/src/catala/literate/html.ml b/compiler/literate/html.ml similarity index 100% rename from src/catala/literate/html.ml rename to compiler/literate/html.ml diff --git a/src/catala/literate/html.mli b/compiler/literate/html.mli similarity index 100% rename from src/catala/literate/html.mli rename to compiler/literate/html.mli diff --git a/src/catala/literate/latex.ml b/compiler/literate/latex.ml similarity index 100% rename from src/catala/literate/latex.ml rename to compiler/literate/latex.ml diff --git a/src/catala/literate/latex.mli b/compiler/literate/latex.mli similarity index 100% rename from src/catala/literate/latex.mli rename to compiler/literate/latex.mli diff --git a/src/catala/literate/literate.mld b/compiler/literate/literate.mld similarity index 100% rename from src/catala/literate/literate.mld rename to compiler/literate/literate.mld diff --git a/src/catala/literate/literate_common.ml b/compiler/literate/literate_common.ml similarity index 100% rename from src/catala/literate/literate_common.ml rename to compiler/literate/literate_common.ml diff --git a/src/catala/literate/literate_common.mli b/compiler/literate/literate_common.mli similarity index 100% rename from src/catala/literate/literate_common.mli rename to compiler/literate/literate_common.mli diff --git a/src/catala/runtime.ml b/compiler/runtime.ml similarity index 100% rename from src/catala/runtime.ml rename to compiler/runtime.ml diff --git a/src/catala/runtime.mli b/compiler/runtime.mli similarity index 100% rename from src/catala/runtime.mli rename to compiler/runtime.mli diff --git a/src/catala/scopelang/ast.ml b/compiler/scopelang/ast.ml similarity index 100% rename from src/catala/scopelang/ast.ml rename to compiler/scopelang/ast.ml diff --git a/src/catala/scopelang/ast.mli b/compiler/scopelang/ast.mli similarity index 100% rename from src/catala/scopelang/ast.mli rename to compiler/scopelang/ast.mli diff --git a/src/catala/scopelang/dependency.ml b/compiler/scopelang/dependency.ml similarity index 100% rename from src/catala/scopelang/dependency.ml rename to compiler/scopelang/dependency.ml diff --git a/src/catala/scopelang/dependency.mli b/compiler/scopelang/dependency.mli similarity index 100% rename from src/catala/scopelang/dependency.mli rename to compiler/scopelang/dependency.mli diff --git a/src/catala/scopelang/dune b/compiler/scopelang/dune similarity index 100% rename from src/catala/scopelang/dune rename to compiler/scopelang/dune diff --git a/src/catala/scopelang/print.ml b/compiler/scopelang/print.ml similarity index 100% rename from src/catala/scopelang/print.ml rename to compiler/scopelang/print.ml diff --git a/src/catala/scopelang/print.mli b/compiler/scopelang/print.mli similarity index 100% rename from src/catala/scopelang/print.mli rename to compiler/scopelang/print.mli diff --git a/src/catala/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml similarity index 100% rename from src/catala/scopelang/scope_to_dcalc.ml rename to compiler/scopelang/scope_to_dcalc.ml diff --git a/src/catala/scopelang/scope_to_dcalc.mli b/compiler/scopelang/scope_to_dcalc.mli similarity index 100% rename from src/catala/scopelang/scope_to_dcalc.mli rename to compiler/scopelang/scope_to_dcalc.mli diff --git a/src/catala/scopelang/scopelang.mld b/compiler/scopelang/scopelang.mld similarity index 100% rename from src/catala/scopelang/scopelang.mld rename to compiler/scopelang/scopelang.mld diff --git a/src/catala/surface/ast.ml b/compiler/surface/ast.ml similarity index 100% rename from src/catala/surface/ast.ml rename to compiler/surface/ast.ml diff --git a/src/catala/surface/desugaring.ml b/compiler/surface/desugaring.ml similarity index 100% rename from src/catala/surface/desugaring.ml rename to compiler/surface/desugaring.ml diff --git a/src/catala/surface/desugaring.mli b/compiler/surface/desugaring.mli similarity index 100% rename from src/catala/surface/desugaring.mli rename to compiler/surface/desugaring.mli diff --git a/src/catala/surface/dune b/compiler/surface/dune similarity index 100% rename from src/catala/surface/dune rename to compiler/surface/dune diff --git a/src/catala/surface/fill_error_tokens.py b/compiler/surface/fill_error_tokens.py similarity index 100% rename from src/catala/surface/fill_error_tokens.py rename to compiler/surface/fill_error_tokens.py diff --git a/src/catala/surface/fill_positions.ml b/compiler/surface/fill_positions.ml similarity index 100% rename from src/catala/surface/fill_positions.ml rename to compiler/surface/fill_positions.ml diff --git a/src/catala/surface/fill_positions.mli b/compiler/surface/fill_positions.mli similarity index 100% rename from src/catala/surface/fill_positions.mli rename to compiler/surface/fill_positions.mli diff --git a/src/catala/surface/lexer_common.ml b/compiler/surface/lexer_common.ml similarity index 100% rename from src/catala/surface/lexer_common.ml rename to compiler/surface/lexer_common.ml diff --git a/src/catala/surface/lexer_common.mli b/compiler/surface/lexer_common.mli similarity index 100% rename from src/catala/surface/lexer_common.mli rename to compiler/surface/lexer_common.mli diff --git a/src/catala/surface/lexer_en.ml b/compiler/surface/lexer_en.ml similarity index 100% rename from src/catala/surface/lexer_en.ml rename to compiler/surface/lexer_en.ml diff --git a/src/catala/surface/lexer_en.mli b/compiler/surface/lexer_en.mli similarity index 100% rename from src/catala/surface/lexer_en.mli rename to compiler/surface/lexer_en.mli diff --git a/src/catala/surface/lexer_fr.ml b/compiler/surface/lexer_fr.ml similarity index 100% rename from src/catala/surface/lexer_fr.ml rename to compiler/surface/lexer_fr.ml diff --git a/src/catala/surface/lexer_fr.mli b/compiler/surface/lexer_fr.mli similarity index 100% rename from src/catala/surface/lexer_fr.mli rename to compiler/surface/lexer_fr.mli diff --git a/src/catala/surface/lexer_pl.ml b/compiler/surface/lexer_pl.ml similarity index 100% rename from src/catala/surface/lexer_pl.ml rename to compiler/surface/lexer_pl.ml diff --git a/src/catala/surface/lexer_pl.mli b/compiler/surface/lexer_pl.mli similarity index 100% rename from src/catala/surface/lexer_pl.mli rename to compiler/surface/lexer_pl.mli diff --git a/src/catala/surface/name_resolution.ml b/compiler/surface/name_resolution.ml similarity index 100% rename from src/catala/surface/name_resolution.ml rename to compiler/surface/name_resolution.ml diff --git a/src/catala/surface/name_resolution.mli b/compiler/surface/name_resolution.mli similarity index 100% rename from src/catala/surface/name_resolution.mli rename to compiler/surface/name_resolution.mli diff --git a/src/catala/surface/parse_utils.ml b/compiler/surface/parse_utils.ml similarity index 100% rename from src/catala/surface/parse_utils.ml rename to compiler/surface/parse_utils.ml diff --git a/src/catala/surface/parse_utils.mli b/compiler/surface/parse_utils.mli similarity index 100% rename from src/catala/surface/parse_utils.mli rename to compiler/surface/parse_utils.mli diff --git a/src/catala/surface/parser.messages b/compiler/surface/parser.messages similarity index 100% rename from src/catala/surface/parser.messages rename to compiler/surface/parser.messages diff --git a/src/catala/surface/parser.mly b/compiler/surface/parser.mly similarity index 100% rename from src/catala/surface/parser.mly rename to compiler/surface/parser.mly diff --git a/src/catala/surface/parser_driver.ml b/compiler/surface/parser_driver.ml similarity index 100% rename from src/catala/surface/parser_driver.ml rename to compiler/surface/parser_driver.ml diff --git a/src/catala/surface/parser_driver.mli b/compiler/surface/parser_driver.mli similarity index 100% rename from src/catala/surface/parser_driver.mli rename to compiler/surface/parser_driver.mli diff --git a/src/catala/surface/parser_errors.mli b/compiler/surface/parser_errors.mli similarity index 100% rename from src/catala/surface/parser_errors.mli rename to compiler/surface/parser_errors.mli diff --git a/src/catala/surface/print.ml b/compiler/surface/print.ml similarity index 100% rename from src/catala/surface/print.ml rename to compiler/surface/print.ml diff --git a/src/catala/surface/print.mli b/compiler/surface/print.mli similarity index 100% rename from src/catala/surface/print.mli rename to compiler/surface/print.mli diff --git a/src/catala/surface/surface.mld b/compiler/surface/surface.mld similarity index 100% rename from src/catala/surface/surface.mld rename to compiler/surface/surface.mld diff --git a/src/catala/surface/tokens.mly b/compiler/surface/tokens.mly similarity index 100% rename from src/catala/surface/tokens.mly rename to compiler/surface/tokens.mly diff --git a/src/catala/utils/cli.ml b/compiler/utils/cli.ml similarity index 100% rename from src/catala/utils/cli.ml rename to compiler/utils/cli.ml diff --git a/src/catala/utils/cli.mli b/compiler/utils/cli.mli similarity index 100% rename from src/catala/utils/cli.mli rename to compiler/utils/cli.mli diff --git a/src/catala/utils/dune b/compiler/utils/dune similarity index 100% rename from src/catala/utils/dune rename to compiler/utils/dune diff --git a/src/catala/utils/errors.ml b/compiler/utils/errors.ml similarity index 100% rename from src/catala/utils/errors.ml rename to compiler/utils/errors.ml diff --git a/src/catala/utils/errors.mli b/compiler/utils/errors.mli similarity index 100% rename from src/catala/utils/errors.mli rename to compiler/utils/errors.mli diff --git a/src/catala/utils/pos.ml b/compiler/utils/pos.ml similarity index 100% rename from src/catala/utils/pos.ml rename to compiler/utils/pos.ml diff --git a/src/catala/utils/pos.mli b/compiler/utils/pos.mli similarity index 100% rename from src/catala/utils/pos.mli rename to compiler/utils/pos.mli diff --git a/src/catala/utils/uid.ml b/compiler/utils/uid.ml similarity index 100% rename from src/catala/utils/uid.ml rename to compiler/utils/uid.ml diff --git a/src/catala/utils/uid.mli b/compiler/utils/uid.mli similarity index 100% rename from src/catala/utils/uid.mli rename to compiler/utils/uid.mli diff --git a/src/catala/utils/utils.mld b/compiler/utils/utils.mld similarity index 100% rename from src/catala/utils/utils.mld rename to compiler/utils/utils.mld diff --git a/dune b/dune index ba313895..1731dd1f 100644 --- a/dune +++ b/dune @@ -1 +1 @@ -(dirs src) +(dirs compiler french_law) diff --git a/examples/Makefile.common.mk b/examples/Makefile.common.mk index 7c07e3fe..57aeb3fd 100644 --- a/examples/Makefile.common.mk +++ b/examples/Makefile.common.mk @@ -4,7 +4,7 @@ LATEXMK?=latexmk -CATALA=../../_build/default/src/catala/catala.exe \ +CATALA=../../_build/default/compiler/catala.exe \ $(CATALA_OPTS) --language=$(CATALA_LANG) help : ../Makefile.common.mk diff --git a/french_law/dune b/french_law/dune new file mode 100644 index 00000000..e61b0a6c --- /dev/null +++ b/french_law/dune @@ -0,0 +1 @@ +(dirs ocaml) diff --git a/french_law_js/.gitignore b/french_law/js/.gitignore similarity index 100% rename from french_law_js/.gitignore rename to french_law/js/.gitignore diff --git a/french_law/js/Makefile b/french_law/js/Makefile new file mode 100644 index 00000000..34f19121 --- /dev/null +++ b/french_law/js/Makefile @@ -0,0 +1,2 @@ +bench: + node allocations_familiales.js diff --git a/french_law_js/README.md b/french_law/js/README.md similarity index 100% rename from french_law_js/README.md rename to french_law/js/README.md diff --git a/french_law_js/allocations_familiales.js b/french_law/js/allocations_familiales.js similarity index 100% rename from french_law_js/allocations_familiales.js rename to french_law/js/allocations_familiales.js diff --git a/french_law/js/french_law.js b/french_law/js/french_law.js new file mode 100644 index 00000000..91d0bee6 --- /dev/null +++ b/french_law/js/french_law.js @@ -0,0 +1,4235 @@ +// Generated by js_of_ocaml 3.9.1 +(function(u){"use strict";var +iu=214,it=" is too large for shifting.",jz="Invalid_argument",is="0.08",d9="Map.bal",T="Code de la s\xc3\xa9curit\xc3\xa9 sociale",j_="Article L521-1",i4=123,jy="577500",jx="%ni",j9=43200.,fI="ml_z_overflow",O=86400.,bd=2020,aM=0xff,fS=-12,jw=-45,ir=360,ei="Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin",j8="559500",bU="Article 1",f5=122,iq="582700",i3=145,j7=992015837,ip=274,B="0",el="date_courante",i2="0.5",bC=128,io="Sys_blocked_io",i1="fd ",fH="Chapitre 2 : Champ d'application",E=248,es=146,er=">",cz=153,j6=1027,im="montant_vers\xc3\xa9",i0="enfants_\xc3\xa0_charge",jv="562800",bB="Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es",il=246,ik="%u",ju="resetLog",e="AllocationsFamiliales",jt=3268,ij=298,ii="./securite_sociale_R.catala_fr",w="Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es",b9="2",bv=127,df=1024,aJ="1",js=133,eq="e",fG="Montant de la base mensuelle des allocations familiales",ih=" : flags Open_rdonly and Open_wronly are not compatible",iZ="ressources_m\xc3\xa9nage",j5=313,iY="([^/]*)",ig="D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance",aq="-",bQ=803994948,id=216,ie=" : file already exists",j4="smic",iX="Article D521-3",jr=184,bA=0xffffff,j3=-43,M="./securite_sociale_D.catala_fr",eh=86400,iW="Out_of_memory",j2="inf",fR="index out of bounds",eg="_bigarr02",j1="Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",iV=0xffffffff,f4=111,jp=2147483647,jq=208,ic="Martinique",bc=0xffff,ef=417088404,ib=12520,fQ=400,ia=-46,aD=3600,z="Chapitre 1er : Allocations familiales",fW="AllocationFamilialesAvril2008",jo="retrieveLog",bb="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3",j0="infinity",aT=1000,ee=126,j="",fF="^",bP=3600.,h$=86400000,iU=264,ab="Partie l\xc3\xa9gislative",cr=0x3f,fP=124,a2="./epilogue.catala_fr",fO="Article L512-3",ar="./decrets_divers.catala_fr",A="Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien",iT=150,f3=112,h_="Match_failure",bR="Montant des plafonds de ressources",jZ="enfants",ed=135,jY="personne_charge_effective_permanente_est_parent",a_=2021,iS="enfant_le_plus_\xc3\xa2g\xc3\xa9",ec=252,ba=".",c7="montant_initial_majoration",bu="+",iR=147,iQ=0xf0,aU="12.",iP="Guadeloupe",f2=110,U="PrestationsFamiliales",fN=116,jn=304,h9="%li",eb=365,bz="prise_en_compte",c6="Smic",h8=178,f1=-32,bg=1023,iO=-1080,ac="./securite_sociale_L.catala_fr",l="./prologue.catala_fr",d8=2299161,iN=969837588,fV="nan",h7=0xe0,iM=-1023,jX=117,jm=0xdfff,dk="compl\xc3\xa9ment_d\xc3\xa9gressif",fM="Article L755-12",by="/",jW="Assert_failure",d7=2400000.5,jV="568400",fU=1073741823,jU=308,ep="r\xc3\xa9sidence",d6=250,dd=1582,h6=115,jl="src/time_Zone.ml",jT=1e14,iL="Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations",jk="Guyane",h5="allocations_familiales",fE=1255,fL="<",iK=0x800,cw=255,bt=2019,fD="jsError",a9=0x8000,jj="Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat",N="droit_ouvert_majoration",dj=146097,ca=256,iJ=0.012,jS="Article L521-3",ji="End_of_file",iI="M\xc3\xa9tropole",jh="Failure",d5=129,iH=204,dc="conditions_hors_\xc3\xa2ge",jg=218,jR=315,h4=194,eo="EnfantLePlus\xc3\x82g\xc3\xa9",fK=0xf,d4=-48,jf=0xdc00,fJ=125,db="montant_initial_m\xc3\xa9tropole_majoration",ah="camlinternalFormat.ml",iG="Division_by_zero",h3=148,je="Sys_error",jQ="x",jd=130,cv="Article D521-2",di="Article D755-5",fC="Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",bx=60.,f0="%d",h2=32082,ea=118,bT=1900,d3=121,jP="buffer.ml",iF=119,c$=104,da="montant_avec_garde_altern\xc3\xa9e_majoration",iE="version_avril_2008",d2=120,d$=127686388,b$=103,fB="16",iD=102,fA=512,cy=113,h1=0x7ff0,cu=101,jc=132,h0="0x",hZ="D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance",b_=1e7,k="Prologue",c_=254,aK=100,iC=" : flags Open_text and Open_binary are not compatible",jb="%Li",jO="3",L="Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples",jM="169.",jN=230,hY="Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",bS=0.5,aN="Article D521-1",iB="Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",iA=188,bf="Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses",hW=158,ao="input",hX="str.ml",hV="personne_charge_effective_permanente_remplit_titre_I",jL="prestations_familiales",dh="est_enfant_le_plus_\xc3\xa2g\xc3\xa9",hU="D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance",ek="_z",jJ="Unix.Unix_error",jK="computeAllocationsFamiliales",iz="0.55",iy=109,c9="droit_ouvert",ja=136,jI="Stack_overflow",a$="Interface du programme",cq="Titre 5 : D\xc3\xa9partements d'outre-mer",ix=-97,jH=253,i$=137,jG="Not_found",c8=1461,aw="InterfaceAllocationsFamiliales",fz=151,ct="1.",i_=32044,fT=", ",ej=2018,i8=356,i9="static/",jF="Mayotte",fZ=243,iw=2440588,i7="src/date.ml",jE=32752,jD=280,a1="\xc3\x89pilogue",jB=149,jC=1026,be="Article L521-2",en="Invalid integer: ",d_=2440587.5,jA=106,bw=" ",aV=0x80,i6="Undefined_recursive_module",ap="output",iv=215,em="src/calendar_builder.ml",cs="Montant du salaire minimum de croissance",fY="compare: functional value",hT="0.16",de="droit_ouvert_forfaitaire",dg="0.",hS=134,i5="%i",fX=114,cx=529348384,hR=176;function +BC(d,b,e,c,f){if(c<=b)for(var +a=1;a<=f;a++)e[c+a]=d[b+a];else +for(var +a=f;a>=1;a--)e[c+a]=d[b+a];return 0}function +BF(e,f,d){var +a=new +Array(d+1);a[0]=0;for(var +b=1,c=f+1;b<=d;b++,c++)a[b]=e[c];return a}function +eE(c,b,a){var +d=String.fromCharCode;if(b==0&&a<=4096&&a==c.length)return d.apply(null,c);var +e=j;for(;0=b.l||b.t==2&&c>=b.c.length)){b.c=d.t==4?eE(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else +if(b.t==2&&f==b.c.length){b.c+=d.t==4?eE(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else{if(b.t!=4)et(b);var +g=d.c,h=b.c;if(d.t==4)if(f<=e)for(var +a=0;a=0;a--)h[f+a]=g[e+a];else{var +i=Math.min(c,g.length-e);for(var +a=0;a>=1;if(b==0)return d;a+=a;c++;if(c==9)a.slice(0,1)}}function +bZ(a){if(a.t==2)a.c+=cH(a.l-a.c.length,"\0");else +a.c=eE(a.c,0,a.c.length);a.t=0}function +ki(a,b){if(a===b)return 1;a.t&6&&bZ(a);b.t&6&&bZ(b);return a.c==b.c?1:0}function +Ck(b,a){throw[0,b,a]}function +kz(a){if(a.length<24){for(var +b=0;bbv)return false;return true}else +return!/[^\x00-\x7f]/.test(a)}function +gm(e){for(var +k=j,c=j,g,f,h,a,b=0,i=e.length;bfA){c.substr(0,1);k+=c;c=j;k+=e.slice(b,d)}else +c+=e.slice(b,d);if(d==i)break;b=d}a=1;if(++b=0xd7ff&&a<0xe000)a=2}else{a=3;if(++b0x10ffff)a=3}}}}}if(a<4){b-=a;c+="\ufffd"}else +if(a>bc)c+=String.fromCharCode(0xd7c0+(a>>10),jf+(a&0x3FF));else +c+=String.fromCharCode(a);if(c.length>df){c.substr(0,1);k+=c;c=j}}return k+c}function +bD(c,a,b){this.t=c;this.c=a;this.l=b}bD.prototype.toString=function(){switch(this.t){case +9:return this.c;default:bZ(this);case +0:if(kz(this.c)){this.t=9;return this.c}this.t=8;case +8:return this.c}};bD.prototype.toUtf16=function(){var +a=this.toString();if(this.t==9)return a;return gm(a)};bD.prototype.slice=function(){var +a=this.t==4?this.c.slice():this.c;return new +bD(this.t,a,this.l)};function +kj(a){return new +bD(0,a,a.length)}function +a(a){return kj(a)}function +gj(c,b){Ck(c,a(b))}var +X=[0];function +Y(a){gj(X.Invalid_argument,a)}function +kg(){Y(fR)}function +dm(a,b){switch(a.t&6){default:if(b>=a.c.length)return 0;case +0:return a.c.charCodeAt(b);case +4:return a.c[b]}}function +bY(b,a){if(a>>>0>=b.l)kg();return dm(b,a)}function +V(a,c,b){b&=aM;if(a.t!=4){if(c==a.c.length){a.c+=String.fromCharCode(b);if(c+1==a.l)a.t=0;return 0}et(a)}a.c[c]=b;return 0}function +aX(b,a,c){if(a>>>0>=b.l)kg();return V(b,a,c)}function +bj(c,a){if(c.fun)return bj(c.fun,a);if(typeof +c!=="function")return c;var +b=c.length|0;if(b===0)return c.apply(null,a);var +e=a.length|0,d=b-e|0;if(d==0)return c.apply(null,a);else +if(d<0)return bj(c.apply(null,a.slice(0,b)),a.slice(b));else +return function(){var +e=arguments.length==0?1:arguments.length,d=new +Array(a.length+e);for(var +b=0;b>>0>=a.length-1)dl();return a}function +BK(a){if(isFinite(a)){if(Math.abs(a)>=2.2250738585072014e-308)return 0;if(a!=0)return 1;return 2}return isNaN(a)?4:3}function +a3(a){if((a.t&6)!=0)bZ(a);return a.c}var +CC=Math.log2&&Math.log2(1.1235582092889474E+307)==1020;function +CA(a){if(CC)return Math.floor(Math.log2(a));var +b=0;if(a==0)return-Infinity;if(a>=1)while(a>=2){a/=2;b++}else +while(a<1){a*=2;b--}return b}function +ga(c){var +a=new(u.Float32Array)(1);a[0]=c;var +b=new(u.Int32Array)(a.buffer);return b[0]|0}var +kr=Math.pow(2,-24);function +eD(a){throw a}function +cF(){eD(X.Division_by_zero)}function +o(b,c,a){this.lo=b&bA;this.mi=c&bA;this.hi=a&bc}o.prototype.caml_custom="_j";o.prototype.copy=function(){return new +o(this.lo,this.mi,this.hi)};o.prototype.ucompare=function(a){if(this.hi>a.hi)return 1;if(this.hia.mi)return 1;if(this.mia.lo)return 1;if(this.loc)return 1;if(ba.mi)return 1;if(this.mia.lo)return 1;if(this.lo>24),c=-this.hi+(b>>24);return new +o(a,b,c)};o.prototype.add=function(a){var +b=this.lo+a.lo,c=this.mi+a.mi+(b>>24),d=this.hi+a.hi+(c>>24);return new +o(b,c,d)};o.prototype.sub=function(a){var +b=this.lo-a.lo,c=this.mi-a.mi+(b>>24),d=this.hi-a.hi+(c>>24);return new +o(b,c,d)};o.prototype.mul=function(a){var +b=this.lo*a.lo,c=(b*kr|0)+this.mi*a.lo+this.lo*a.mi,d=(c*kr|0)+this.hi*a.lo+this.mi*a.mi+this.lo*a.hi;return new +o(b,c,d)};o.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0};o.prototype.isNeg=function(){return this.hi<<16<0};o.prototype.and=function(a){return new +o(this.lo&a.lo,this.mi&a.mi,this.hi&a.hi)};o.prototype.or=function(a){return new +o(this.lo|a.lo,this.mi|a.mi,this.hi|a.hi)};o.prototype.xor=function(a){return new +o(this.lo^a.lo,this.mi^a.mi,this.hi^a.hi)};o.prototype.shift_left=function(a){a=a&63;if(a==0)return this;if(a<24)return new +o(this.lo<>24-a,this.hi<>24-a);if(a<48)return new +o(0,this.lo<>48-a);return new +o(0,0,this.lo<>a|this.mi<<24-a,this.mi>>a|this.hi<<24-a,this.hi>>a);if(a<48)return new +o(this.mi>>a-24|this.hi<<48-a,this.hi>>a-24,0);return new +o(this.hi>>a-48,0,0)};o.prototype.shift_right=function(a){a=a&63;if(a==0)return this;var +c=this.hi<<16>>16;if(a<24)return new +o(this.lo>>a|this.mi<<24-a,this.mi>>a|c<<24-a,this.hi<<16>>a>>>16);var +b=this.hi<<16>>31;if(a<48)return new +o(this.mi>>a-24|this.hi<<48-a,this.hi<<16>>a-24>>16,b&bc);return new +o(this.hi<<16>>a-32,b,b)};o.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23;this.mi=(this.mi<<1|this.lo>>23)&bA;this.lo=this.lo<<1&bA};o.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&bA;this.mi=(this.mi>>>1|this.hi<<23)&bA;this.hi=this.hi>>>1};o.prototype.udivmod=function(e){var +c=0,b=this.copy(),a=e.copy(),d=new +o(0,0,0);while(b.ucompare(a)>0){c++;a.lsl1()}while(c>=0){c--;d.lsl1();if(b.ucompare(a)>=0){d.lo++;b=b.sub(a)}a.lsr1()}return{quotient:d,modulus:b}};o.prototype.div=function(a){var +b=this;if(a.isZero())cF();var +d=b.hi^a.hi;if(b.hi&a9)b=b.neg();if(a.hi&a9)a=a.neg();var +c=b.udivmod(a).quotient;if(d&a9)c=c.neg();return c};o.prototype.mod=function(b){var +a=this;if(b.isZero())cF();var +d=a.hi;if(a.hi&a9)a=a.neg();if(b.hi&a9)b=b.neg();var +c=a.udivmod(b).modulus;if(d&a9)c=c.neg();return c};o.prototype.toInt=function(){return this.lo|this.mi<<24};o.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo};o.prototype.toArray=function(){return[this.hi>>8,this.hi&aM,this.mi>>16,this.mi>>8&aM,this.mi&aM,this.lo>>16,this.lo>>8&aM,this.lo&aM]};o.prototype.lo32=function(){return this.lo|(this.mi&aM)<<24};o.prototype.hi32=function(){return this.mi>>>8&bc|this.hi<<16};function +b0(b,c,a){return new +o(b,c,a)}function +ew(a){if(!isFinite(a)){if(isNaN(a))return b0(1,0,h1);return a>0?b0(0,0,h1):b0(0,0,0xfff0)}var +f=a==0&&1/a==-Infinity?a9:a>=0?0:a9;if(f)a=-a;var +b=CA(a)+bg;if(b<=0){b=0;a/=Math.pow(2,-jC)}else{a/=Math.pow(2,b-j6);if(a<16){a*=2;b-=1}if(b==0)a/=2}var +d=Math.pow(2,24),c=a|0;a=(a-c)*d;var +e=a|0;a=(a-e)*d;var +g=a|0;c=c&fK|f|b<<4;return b0(g,e,c)}function +dq(a){return a.toArray()}function +kf(c,b,g){c.write(32,b.dims.length);c.write(32,b.kind|b.layout<<8);if(b.caml_custom==eg)for(var +a=0;a>4;if(c==2047)return(f|g|b&fK)==0?b&a9?-Infinity:Infinity:NaN;var +e=Math.pow(2,-24),a=(f*e+g)*e+(b&fK);if(c>0){a+=16;a*=Math.pow(2,c-j6)}else +a*=Math.pow(2,-jC);if(b&a9)a=-a;return a}function +f6(b){var +d=b.length,c=1;for(var +a=0;a>>24&aM|(a&bc)<<8,a>>>16&bc)}function +gc(a){return a.hi32()}function +gd(a){return a.lo32()}var +BH=eg;function +bV(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}bV.prototype.caml_custom=BH;bV.prototype.offset=function(b){var +c=0;if(typeof +b==="number")b=[b];if(!(b +instanceof +Array))Y("bigarray.js: invalid offset");if(this.dims.length!=b.length)Y("Bigarray.get/set: bad number of dimensions");if(this.layout==0)for(var +a=0;a=this.dims[a])dl();c=c*this.dims[a]+b[a]}else +for(var +a=this.dims.length-1;a>=0;a--){if(b[a]<1||b[a]>this.dims[a])dl();c=c*this.dims[a]+(b[a]-1)}return c};bV.prototype.get=function(a){switch(this.kind){case +7:var +d=this.data[a*2+0],b=this.data[a*2+1];return kq(d,b);case +10:case +11:var +e=this.data[a*2+0],c=this.data[a*2+1];return[c_,e,c];default:return this.data[a]}};bV.prototype.set=function(a,b){switch(this.kind){case +7:this.data[a*2+0]=gd(b);this.data[a*2+1]=gc(b);break;case +10:case +11:this.data[a*2+0]=b[1];this.data[a*2+1]=b[2];break;default:this.data[a]=b;break}return 0};bV.prototype.fill=function(b){switch(this.kind){case +7:var +c=gd(b),e=gc(b);if(c==e)this.data.fill(c);else +for(var +a=0;ad)return 1;if(c!=d){if(!g)return NaN;if(c==c)return 1;if(d==d)return-1}}break;case +7:for(var +a=0;ab.data[a+1])return 1;if(this.data[a]>>>0>>0)return-1;if(this.data[a]>>>0>b.data[a]>>>0)return 1}break;case +2:case +3:case +4:case +5:case +6:case +8:case +9:case +12:for(var +a=0;ab.data[a])return 1}break}return 0};function +cA(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}cA.prototype=new +bV();cA.prototype.offset=function(a){if(typeof +a!=="number")if(a +instanceof +Array&&a.length==1)a=a[0];else +Y("Ml_Bigarray_c_1_1.offset");if(a<0||a>=this.dims[0])dl();return a};cA.prototype.get=function(a){return this.data[a]};cA.prototype.set=function(a,b){this.data[a]=b;return 0};cA.prototype.fill=function(a){this.data.fill(a);return 0};function +kb(c,d,a,b){var +e=kd(c);if(f6(a)*e!=b.length)Y("length doesn't match dims");if(d==0&&a.length==1&&e==1)return new +cA(c,d,a,b);return new +bV(c,d,a,b)}function +cb(a){gj(X.Failure,a)}function +kc(b,v,r){var +i=b.read32s();if(i<0||i>16)cb("input_value: wrong number of bigarray dimensions");var +p=b.read32s(),j=p&aM,o=p>>8&1,h=[];if(r==eg)for(var +a=0;a>>32-15;a=bl(a,0x1b873593);b^=a;b=b<<13|b>>>32-13;return(b+(b<<2)|0)+(0xe6546b64|0)|0}function +BS(a,b){a=al(a,gd(b));a=al(a,gc(b));return a}function +f_(a,b){return BS(a,ew(b))}function +ke(c){var +b=f6(c.dims),d=0;switch(c.kind){case +2:case +3:case +12:if(b>ca)b=ca;var +e=0,a=0;for(a=0;a+4<=c.data.length;a+=4){e=c.data[a+0]|c.data[a+1]<<8|c.data[a+2]<<16|c.data[a+3]<<24;d=al(d,e)}e=0;switch(b&3){case +3:e=c.data[a+2]<<16;case +2:e|=c.data[a+1]<<8;case +1:e|=c.data[a+0];d=al(d,e)}break;case +4:case +5:if(b>bC)b=bC;var +e=0,a=0;for(a=0;a+2<=c.data.length;a+=2){e=c.data[a+0]|c.data[a+1]<<16;d=al(d,e)}if((b&1)!=0)d=al(d,c.data[a]);break;case +6:if(b>64)b=64;for(var +a=0;a64)b=64;for(var +a=0;a32)b=32;b*=2;for(var +a=0;a64)b=64;for(var +a=0;a32)b=32;for(var +a=0;a0?b(c,f,e):b(f,c,e);if(e&&a!=a)return d;if(+a!=+a)return+a;if((a|0)!=0)return a|0}return d}function +dr(a){return a +instanceof +bD}function +ez(a){return dr(a)}function +km(a){if(typeof +a==="number")return aT;else +if(dr(a))return ec;else +if(ez(a))return 1252;else +if(a +instanceof +Array&&a[0]===a[0]>>>0&&a[0]<=cw){var +b=a[0]|0;return b==c_?0:b}else +if(a +instanceof +String)return ib;else +if(typeof +a=="string")return ib;else +if(a +instanceof +Number)return aT;else +if(a&&a.caml_custom)return fE;else +if(a&&a.compare)return 1256;else +if(typeof +a=="function")return 1247;else +if(typeof +a=="symbol")return 1251;return 1001}function +ey(a,b){if(ab.c?1:0}function +gk(a,b){return kh(a,b)}function +cB(a,b,d){var +e=[];for(;;){if(!(d&&a===b)){var +f=km(a);if(f==d6){a=a[1];continue}var +g=km(b);if(g==d6){b=b[1];continue}if(f!==g){if(f==aT){if(g==fE)return kl(a,b,-1,d);return-1}if(g==aT){if(f==fE)return kl(b,a,1,d);return 1}return fb)return 1;if(a!=b){if(!d)return NaN;if(a==a)return 1;if(b==b)return-1}break;case +1001:if(ab)return 1;if(a!=b){if(!d)return NaN;if(a==a)return 1;if(b==b)return-1}break;case +1251:if(a!==b){if(!d)return NaN;return 1}break;case +1252:var +a=a3(a),b=a3(b);if(a!==b){if(ab)return 1}break;case +12520:var +a=a.toString(),b=b.toString();if(a!==b){if(ab)return 1}break;case +246:case +254:default:if(a.length!=b.length)return a.length1)e.push(a,b,1);break}}if(e.length==0)return 0;var +h=e.pop();b=e.pop();a=e.pop();if(h+10)if(c==0&&(b>=a.l||a.t==2&&b>=a.c.length))if(d==0){a.c=j;a.t=2}else{a.c=cH(b,String.fromCharCode(d));a.t=b==a.l?0:2}else{if(a.t!=4)et(a);for(b+=c;c31)Y("format_int: format too long");var +a={justify:bu,signstyle:aq,filler:bw,alternate:false,base:0,signedconv:false,width:0,uppercase:false,sign:1,prec:-1,conv:"f"};for(var +c=0;c=0&&b<=9){a.width=a.width*10+b;c++}c--;break;case".":a.prec=0;c++;while(b=d.charCodeAt(c)-48,b>=0&&b<=9){a.prec=a.prec*10+b;c++}c--;case"d":case"i":a.signedconv=true;case"u":a.base=10;break;case"x":a.base=16;break;case"X":a.base=16;a.uppercase=true;break;case"o":a.base=8;break;case"e":case"f":case"g":a.signedconv=true;a.conv=b;break;case"E":case"F":case"G":a.signedconv=true;a.uppercase=true;a.conv=b.toLowerCase();break}}return a}function +f8(b,f){if(b.uppercase)f=f.toUpperCase();var +e=f.length;if(b.signedconv&&(b.sign<0||b.signstyle!=aq))e++;if(b.alternate){if(b.base==8)e+=1;if(b.base==16)e+=2}var +c=j;if(b.justify==bu&&b.filler==bw)for(var +d=e;d20){c-=20;a/=Math.pow(10,c);a+=new +Array(c+1).join(B);if(b>0)a=a+ba+new +Array(b+1).join(B);return a}else +return a.toFixed(b)}}var +a,e=gi(i),d=e.prec<0?6:e.prec;if(c<0||c==0&&1/c==-Infinity){e.sign=-1;c=-c}if(isNaN(c)){a=fV;e.filler=bw}else +if(!isFinite(c)){a=j2;e.filler=bw}else +switch(e.conv){case"e":var +a=c.toExponential(d),b=a.length;if(a.charAt(b-3)==eq)a=a.slice(0,b-1)+B+a.slice(b-1);break;case"f":a=j(c,d);break;case"g":d=d?d:1;a=c.toExponential(d-1);var +h=a.indexOf(eq),g=+a.slice(h+1);if(g<-4||c>=1e21||c.toFixed(0).length>d){var +b=h-1;while(a.charAt(b)==B)b--;if(a.charAt(b)==ba)b--;a=a.slice(0,b+1)+a.slice(h);b=a.length;if(a.charAt(b-3)==eq)a=a.slice(0,b-1)+B+a.slice(b-1);break}else{var +f=d;if(g<0){f-=g+1;a=c.toFixed(f)}else +while(a=c.toFixed(f),a.length>d+1)f--;if(f){var +b=a.length-1;while(a.charAt(b)==B)b--;if(a.charAt(b)==ba)b--;a=a.slice(0,b+1)}}break}return f8(e,a)}function +eu(e,c){if(a3(e)==f0)return a(j+c);var +b=gi(e);if(c<0)if(b.signedconv){b.sign=-1;c=-c}else +c>>>=0;var +d=c.toString(b.base);if(b.prec>=0){b.filler=bw;var +f=b.prec-d.length;if(f>0)d=cH(f,B)+d}return f8(b,d)}var +kv=0;function +_(){return kv++}function +aO(a){return a.toUtf16()}if(u.process&&u.process.cwd)var +dn=u.process.cwd().replace(/\\/g,by);else +var +dn="/static";if(dn.slice(-1)!==by)dn+=by;function +B_(a){a=aO(a);if(a.charCodeAt(0)!=47)a=dn+a;var +d=a.split(by),b=[];for(var +c=0;c1)b.pop();break;case".":break;case"":if(b.length==0)b.push(j);break;default:b.push(d[c]);break}b.orig=a;return b}function +BI(a){return new +bD(4,a,a.length)}function +Cu(e){for(var +f=j,b=f,a,h,c=0,g=e.length;cfA){b.substr(0,1);f+=b;b=j;f+=e.slice(c,d)}else +b+=e.slice(c,d);if(d==g)break;c=d}if(a>6);b+=String.fromCharCode(aV|a&cr)}else +if(a<0xd800||a>=jm)b+=String.fromCharCode(h7|a>>12,aV|a>>6&cr,aV|a&cr);else +if(a>=0xdbff||c+1==g||(h=e.charCodeAt(c+1))jm)b+="\xef\xbf\xbd";else{c++;a=(a<<10)+h-0x35fdc00;b+=String.fromCharCode(iQ|a>>18,aV|a>>12&cr,aV|a>>6&cr,aV|a&cr)}if(b.length>df){b.substr(0,1);f+=b;b=j}}return f+b}function +BJ(a){var +b=9;if(!kz(a))b=8,a=Cu(a);return new +bD(b,a,a.length)}function +a4(a){return BJ(a)}function +P(a){gj(X.Sys_error,a)}function +Ci(a){a=a3(a);P(a+": No such file or directory")}function +aP(a){return a.l}function +j$(){}function +ak(a){this.data=a}ak.prototype=new +j$();ak.prototype.truncate=function(a){var +b=this.data;this.data=W(a|0);bW(b,0,this.data,0,a)};ak.prototype.length=function(){return aP(this.data)};ak.prototype.write=function(b,d,g,a){var +c=this.length();if(b+a>=c){var +e=W(b+a),f=this.data;this.data=e;bW(f,0,this.data,0,c)}bX(d,g,this.data,b,a);return 0};ak.prototype.read=function(c,a,d,b){var +e=this.length();bW(this.data,c,a,d,b);return 0};ak.prototype.read_one=function(a){return bY(this.data,a)};ak.prototype.close=function(){};ak.prototype.constructor=ak;function +aW(b,a){this.content={};this.root=b;this.lookupFun=a}aW.prototype.nm=function(a){return this.root+a};aW.prototype.lookup=function(b){if(!this.content[b]&&this.lookupFun){var +c=this.lookupFun(a(this.root),a(b));if(c!==0)this.content[b]=new +ak(bE(c[1]))}};aW.prototype.exists=function(a){if(a==j)return 1;var +c=a+by,d=new +RegExp(fF+c);for(var +b +in +this.content)if(b.match(d))return 1;this.lookup(a);return this.content[a]?1:0};aW.prototype.readdir=function(c){var +f=c==j?j:c+by,g=new +RegExp(fF+f+iY),d={},b=[];for(var +e +in +this.content){var +a=e.match(g);if(a&&!d[a[1]]){d[a[1]]=true;b.push(a[1])}}return b};aW.prototype.is_dir=function(a){var +d=a==j?j:a+by,e=new +RegExp(fF+d+iY),f=[];for(var +c +in +this.content){var +b=c.match(e);if(b)return 1}return 0};aW.prototype.unlink=function(a){var +b=this.content[a]?true:false;delete +this.content[a];return b};aW.prototype.open=function(a,b){if(b.rdonly&&b.wronly)P(this.nm(a)+ih);if(b.text&&b.binary)P(this.nm(a)+iC);this.lookup(a);if(this.content[a]){if(this.is_dir(a))P(this.nm(a)+" : is a directory");if(b.create&&b.excl)P(this.nm(a)+ie);var +c=this.content[a];if(b.truncate)c.truncate();return c}else +if(b.create){this.content[a]=new +ak(W(0));return this.content[a]}else +Ci(this.nm(a))};aW.prototype.register=function(b,a){if(this.content[b])P(this.nm(b)+ie);if(dr(a))this.content[b]=new +ak(a);if(ez(a))this.content[b]=new +ak(bE(a));else +if(a +instanceof +Array)this.content[b]=new +ak(BI(a));else +if(typeof +a==="string")this.content[b]=new +ak(kj(a));else +if(a.toString){var +c=bE(a4(a.toString()));this.content[b]=new +ak(c)}else +P(this.nm(b)+" : registering file with invalid content type")};aW.prototype.constructor=aW;function +x(a){return aP(a)}function +cI(b,a){return dm(b,a)}function +BE(d){var +c=x(d),b=new +Array(c),a=0;for(;a>1|1;if(h=0)}function +f$(d,b){var +e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b.charCodeAt(a)|b.charCodeAt(a+1)<<8|b.charCodeAt(a+2)<<16|b.charCodeAt(a+3)<<24;d=al(d,c)}c=0;switch(e&3){case +3:c=b.charCodeAt(a+2)<<16;case +2:c|=b.charCodeAt(a+1)<<8;case +1:c|=b.charCodeAt(a);d=al(d,c)}d^=e;return d}function +BT(a,b){return f$(a,a3(b))}function +BQ(d,b){var +e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b[a]|b[a+1]<<8|b[a+2]<<16|b[a+3]<<24;d=al(d,c)}c=0;switch(e&3){case +3:c=b[a+2]<<16;case +2:c|=b[a+1]<<8;case +1:c|=b[a];d=al(d,c)}d^=e;return d}function +BP(a,b){switch(b.t&6){default:bZ(b);case +0:a=f$(a,b.c);break;case +2:a=BQ(a,b.c)}return a}function +BR(a){a^=a>>>16;a=bl(a,0x85ebca6b|0);a^=a>>>13;a=bl(a,0xc2b2ae35|0);a^=a>>>16;return a}function +BO(j,l,n,m){var +f,g,h,d,c,b,a,e,i;d=l;if(d<0||d>ca)d=ca;c=j;b=n;f=[m];g=0;h=1;while(g0){a=f[g++];if(a&&a.caml_custom){if(cC[a.caml_custom]&&cC[a.caml_custom].hash){var +k=cC[a.caml_custom].hash(a);b=al(b,k);c--}}else +if(a +instanceof +Array&&a[0]===(a[0]|0))switch(a[0]){case +248:b=al(b,a[2]);c--;break;case +250:f[--g]=a[1];break;default:var +o=a.length-1<<10|a[0];b=al(b,o);for(e=1,i=a.length;e=d)break;f[h++]=a[e]}break}else +if(dr(a)){b=BP(b,a);c--}else +if(ez(a)){b=BT(b,a);c--}else +if(typeof +a==="string"){b=f$(b,a);c--}else +if(a===(a|0)){b=al(b,a+a+1);c--}else +if(a===+a){b=f_(b,a);c--}}b=BR(b);return b&0x3FFFFFFF}function +BU(a,c,l){if(!isFinite(a)){if(isNaN(a))return a4(fV);return a4(a>0?j0:"-infinity")}var +i=a==0&&1/a==-Infinity?1:a>=0?0:1;if(i)a=-a;var +d=0;if(a==0);else +if(a<1)while(a<1&&d>-1022){a*=2;d--}else +while(a>=2){a/=2;d++}var +k=d<0?j:bu,e=j;if(i)e=aq;else +switch(l){case +43:e=bu;break;case +32:e=bw;break;default:break}if(c>=0&&c<13){var +g=Math.pow(2,c*4);a=Math.round(a*g)/g}var +b=a.toString(16);if(c>=0){var +h=b.indexOf(ba);if(h<0)b+=ba+cH(c,B);else{var +f=h+1+c;if(b.length>24&bA,a>>31&bc)}function +B5(a){return a.toInt()}function +BZ(a){return+a.isNeg()}function +B2(a){return a.neg()}function +BX(g,c){var +a=gi(g);if(a.signedconv&&BZ(c)){a.sign=-1;c=B2(c)}var +b=j,h=B3(a.base),f="0123456789abcdef";do{var +e=c.udivmod(h);c=e.quotient;b=f.charAt(B5(e.modulus))+b}while(!B0(c));if(a.prec>=0){a.filler=bw;var +d=a.prec-b.length;if(d>0)b=cH(d,B)+b}return f8(a,b)}function +B4(a,b){return a.or(b)}function +ex(a){return a.toFloat()}function +B7(){return typeof +module!=="undefined"&&module&&module.exports?module.exports:u}function +cc(a){return a.slice(1)}function +B8(c){var +d=c.length,b=new +Array(d+1);b[0]=0;for(var +a=0;a0){var +c=new +Array(b);for(var +a=0;abg){a-=bg;b*=Math.pow(2,bg);if(a>bg){a-=bg;b*=Math.pow(2,bg)}}if(a<-bg){a+=bg;b*=Math.pow(2,-bg)}b*=Math.pow(2,a);return b}function +B9(a,b){return+(cB(a,b,false)<=0)}function +gg(a,b){return+(cB(a,b,false)<0)}function +bF(a,d){if(a<0)dl();var +a=a+1|0,b=new +Array(a);b[0]=0;for(var +c=1;c>>32-b,c)}function +g(c,b,d,e,h,f,g){return a(b&d|~b&e,c,b,h,f,g)}function +h(d,b,e,c,h,f,g){return a(b&c|e&~c,d,b,h,f,g)}function +i(c,b,d,e,h,f,g){return a(b^d^e,c,b,h,f,g)}function +j(c,b,d,e,h,f,g){return a(d^(b|~e),c,b,h,f,g)}function +k(f,n){var +e=n;f[e>>2]|=aV<<8*(e&3);for(e=(e&~0x3)+8;(e&0x3F)<60;e+=4)f[(e>>2)-1]=0;f[(e>>2)-1]=n<<3;f[e>>2]=n>>29&0x1FFFFFFF;var +k=[0x67452301,0xEFCDAB89,0x98BADCFE,0x10325476];for(e=0;e>8*m&0xFF;return o}return function(h,g,f){var +e=[];switch(h.t&6){default:bZ(h);case +0:var +d=h.c;for(var +a=0;a>2]=d.charCodeAt(b)|d.charCodeAt(b+1)<<8|d.charCodeAt(b+2)<<16|d.charCodeAt(b+3)<<24}for(;a>2]|=d.charCodeAt(a+g)<<8*(a&3);break;case +4:var +c=h.c;for(var +a=0;a>2]=c[b]|c[b+1]<<8|c[b+2]<<16|c[b+3]<<24}for(;a>2]|=c[a+g]<<8*(a&3)}return Co(k(e,f))}}();function +Ca(c,b,a){return B$(bE(c),b,a)}var +bk=new +Array();function +gh(c){var +a=bk[c];if(!a.opened)P("Cannot flush a closed channel");if(!a.buffer||a.buffer==j)return 0;if(a.fd&&X.fds[a.fd]&&X.fds[a.fd].output){var +b=X.fds[a.fd].output;switch(b.length){case +2:b(c,a.buffer);break;default:b(a.buffer)}}a.buffer=j;return 0}function +kx(e,f){var +b=bk[e],d=a(f),c=x(d);b.file.write(b.offset,d,0,c);b.offset+=c;return 0}function +Cy(a){var +a=gm(a),b=u;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stderr.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var +c=b.console;c&&c.error&&c.error(a)}}function +Cz(a){var +a=gm(a),b=u;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stdout.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var +c=b.console;c&&c.log&&c.log(a)}}function +eF(c,e,d,a){if(X.fds===undefined)X.fds=new +Array();a=a?a:{};var +b={};b.file=d;b.offset=a.append?d.length():0;b.flags=a;b.output=e;X.fds[c]=b;if(!X.fd_last_idx||c>X.fd_last_idx)X.fd_last_idx=c;return c}function +CP(c,b,g){var +a={};while(b){switch(b[1]){case +0:a.rdonly=1;break;case +1:a.wronly=1;break;case +2:a.append=1;break;case +3:a.create=1;break;case +4:a.truncate=1;break;case +5:a.excl=1;break;case +6:a.binary=1;break;case +7:a.text=1;break;case +8:a.nonblock=1;break}b=b[2]}if(a.rdonly&&a.wronly)P(a3(c)+ih);if(a.text&&a.binary)P(a3(c)+iC);var +d=kE(c),e=d.device.open(d.rest,a),f=X.fd_last_idx?X.fd_last_idx:0;return eF(f+1,kx,e,a)}eF(0,kx,new +ak(W(0)));eF(1,Cz,new +ak(W(0)));eF(2,Cy,new +ak(W(0)));function +Cb(c){var +b=X.fds[c];if(b.flags.wronly)P(i1+c+" is writeonly");var +a={file:b.file,offset:b.offset,fd:c,opened:true,out:false,refill:null};bk[a.fd]=a;return a.fd}function +ks(c){var +b=X.fds[c];if(b.flags.rdonly)P(i1+c+" is readonly");var +a={file:b.file,offset:b.offset,fd:c,opened:true,out:true,buffer:j};bk[a.fd]=a;return a.fd}function +Cc(){var +b=0;for(var +a=0;a>>0)return a[0];else +if(dr(a))return ec;else +if(ez(a))return ec;else +if(a +instanceof +Function||typeof +a=="function")return 247;else +if(a&&a.caml_custom)return cw;else +return aT}function +aY(b,c,a){if(a&&u.toplevelReloc)b=u.toplevelReloc(a);X[b+1]=c;if(a)X[a]=c}var +kt={};function +Cl(a,b){kt[a3(a)]=b;return 0}function +Cm(a){a[2]=kv++;return a}function +gl(a,b){return ki(a,b)}function +Cn(){Y(fR)}function +t(b,a){if(a>>>0>=x(b))Cn();return cI(b,a)}function +ae(a,b){return 1-gl(a,b)}function +Cp(){return[0,a("js_of_ocaml")]}function +Cq(){return 0x7FFFFFFF/4|0}function +Cr(a){return 0}function +Cj(){eD(X.Not_found)}function +ky(c){var +a=u,b=aO(c);if(a.process&&a.process.env&&a.process.env[b]!=undefined)return a4(a.process.env[b]);if(u.jsoo_static_env&&u.jsoo_static_env[b])return a4(u.jsoo_static_env[b]);Cj()}function +Cs(){var +a=new +Date().getTime(),b=a^iV*Math.random();return[0,b]}function +dt(a){var +b=1;while(a&&a.joo_tramp){a=a.joo_tramp.apply(null,a.joo_args);b++}return a}function +af(b,a){return{joo_tramp:b,joo_args:a}}function +Ct(c,a){if(typeof +a==="function"){c.fun=a;return 0}if(a.fun){c.fun=a.fun;return 0}var +b=a.length;while(b--)c[b]=a[b];return 0}function +kw(a){return a}function +eC(a){return kt[a]}function +d(a){if(a +instanceof +Array)return a;if(u.RangeError&&a +instanceof +u.RangeError&&a.message&&a.message.match(/maximum call stack/i))return kw(X.Stack_overflow);if(u.InternalError&&a +instanceof +u.InternalError&&a.message&&a.message.match(/too much recursion/i))return kw(X.Stack_overflow);if(a +instanceof +u.Error&&eC(fD))return[0,eC(fD),a];return[0,X.Failure,a4(String(a))]}var +m=function(A){"use strict";var +f=b_,ab=7,t=9007199254740992,J=q(t),O="0123456789abcdefghijklmnopqrstuvwxyz",g=u.BigInt,H=typeof +g==="function";function +d(a,b,c,f){if(typeof +a==="undefined")return d[0];if(typeof +b!=="undefined")return+b===10&&!c?e(a):af(a,b,c,f);return e(a)}function +a(b,a){this.value=b;this.sign=a;this.isSmall=false;this.caml_custom=ek}a.prototype=Object.create(d.prototype);function +b(a){this.value=a;this.sign=a<0;this.isSmall=true;this.caml_custom=ek}b.prototype=Object.create(d.prototype);function +c(a){this.value=a;this.caml_custom=ek}c.prototype=Object.create(d.prototype);function +p(a){return-t0)return Math.floor(a);return Math.ceil(a)}function +P(g,h){var +i=g.length,j=h.length,e=new +Array(i),b=0,d=f,c,a;for(a=0;a=d?1:0;e[a]=c-b*d}while(a0)e.push(b);return e}function +v(a,b){if(a.length>=b.length)return P(a,b);return P(b,a)}function +C(g,a){var +h=g.length,d=new +Array(h),c=f,e,b;for(b=0;b0){d[b++]=a%c;a=Math.floor(a/c)}return d}a.prototype.add=function(f){var +b=e(f);if(this.sign!==b.sign)return this.subtract(b.negate());var +c=this.value,d=b.value;if(b.isSmall)return new +a(C(c,Math.abs(d)),this.sign);return new +a(v(c,d),this.sign)};a.prototype.plus=a.prototype.add;b.prototype.add=function(g){var +f=e(g),c=this.value;if(c<0!==f.sign)return this.subtract(f.negate());var +d=f.value;if(f.isSmall){if(p(c+d))return new +b(c+d);d=q(Math.abs(d))}return new +a(C(d,Math.abs(c)),c<0)};b.prototype.plus=b.prototype.add;c.prototype.add=function(a){return new +c(this.value+e(a).value)};c.prototype.plus=c.prototype.add;function +y(d,h){var +g=d.length,i=h.length,c=new +Array(g),e=0,j=f,a,b;for(a=0;a=0)c=y(e,f);else{c=y(f,e);d=!d}c=n(c);if(typeof +c==="number"){if(d)c=-c;return new +b(c)}return new +a(c,d)}function +G(h,l,k){var +j=h.length,c=new +Array(j),i=-l,g=f,e,d;for(e=0;e=0)};b.prototype.minus=b.prototype.subtract;c.prototype.subtract=function(a){return new +c(this.value-e(a).value)};c.prototype.minus=c.prototype.subtract;a.prototype.negate=function(){return new +a(this.value,!this.sign)};b.prototype.negate=function(){var +c=this.sign,a=new +b(-this.value);a.sign=!c;return a};c.prototype.negate=function(){return new +c(-this.value)};a.prototype.abs=function(){return new +a(this.value,false)};b.prototype.abs=function(){return new +b(Math.abs(this.value))};c.prototype.abs=function(){return new +c(this.value>=0?this.value:-this.value)};function +N(g,j){var +i=g.length,l=j.length,n=i+l,c=D(n),m=f,e,d,a,h,k;for(a=0;a0){e[b++]=a%c;a=Math.floor(a/c)}return e}function +Y(c,b){var +a=[];while(b-->0)a.push(0);return a.concat(c)}function +E(b,c){var +a=Math.max(b.length,c.length);if(a<=30)return N(b,c);a=Math.ceil(a/2);var +f=b.slice(a),d=b.slice(0,a),i=c.slice(a),h=c.slice(0,a),e=E(d,h),g=E(f,i),k=E(v(d,f),v(h,i)),j=v(v(e,Y(y(y(k,e),g),a)),Y(g,2*a));r(j);return j}function +ak(a,b){return-(iJ*a)-iJ*b+0.000015*a*b>0}a.prototype.multiply=function(j){var +h=e(j),c=this.value,b=h.value,i=this.sign!==h.sign,g;if(h.isSmall){if(b===0)return d[0];if(b===1)return this;if(b===-1)return this.negate();g=Math.abs(b);if(g=0;d--){j=g-1;if(b[d+h]!==l)j=Math.floor((b[d+h]*g+b[d+h-1])/l);c=0;e=0;m=i.length;for(a=0;ah)d=(d+1)*i;c=Math.ceil(d/m);do{j=w(b,c);if(o(j,a)<=0)break;c--}while(c);e.push(c);a=y(a,j)}e.reverse();return[n(e),n(a)]}function +Q(i,e){var +g=i.length,h=D(g),j=f,a,d,b,c;b=0;for(a=g-1;a>=0;--a){c=b*j+i[a];d=s(c/e);b=c-d*e;h[a]=d|0}return[h,b|0]}function +i(h,w){var +m,j=e(w);if(H)return[new +c(h.value/j.value),new +c(h.value%j.value)];var +l=h.value,i=j.value,g;if(i===0)throw new +Error("Cannot divide by zero");if(h.isSmall){if(j.isSmall)return[new +b(s(l/i)),new +b(l%i)];return[d[0],h]}if(j.isSmall){if(i===1)return[h,d[0]];if(i==-1)return[h.negate(),d[0]];var +r=Math.abs(i);if(rc.length?1:-1;for(var +a=b.length-1;a>=0;a--)if(b[a]!==c[a])return b[a]>c[a]?1:-1;return 0}a.prototype.compareAbs=function(d){var +a=e(d),b=this.value,c=a.value;if(a.isSmall)return 1;return o(b,c)};b.prototype.compareAbs=function(d){var +c=e(d),b=Math.abs(this.value),a=c.value;if(c.isSmall){a=Math.abs(a);return b===a?0:b>a?1:-1}return-1};c.prototype.compareAbs=function(c){var +a=this.value,b=e(c).value;a=a>=0?a:-a;b=b>=0?b:-b;return a===b?0:a>b?1:-1};a.prototype.compare=function(b){if(b===Infinity)return-1;if(b===-Infinity)return 1;var +a=e(b),c=this.value,d=a.value;if(this.sign!==a.sign)return a.sign?1:-1;if(a.isSmall)return this.sign?-1:1;return o(c,d)*(this.sign?-1:1)};a.prototype.compareTo=a.prototype.compare;b.prototype.compare=function(c){if(c===Infinity)return-1;if(c===-Infinity)return 1;var +b=e(c),a=this.value,d=b.value;if(b.isSmall)return a==d?0:a>d?1:-1;if(a<0!==b.sign)return a<0?-1:1;return a<0?1:-1};b.prototype.compareTo=b.prototype.compare;c.prototype.compare=function(a){if(a===Infinity)return-1;if(a===-Infinity)return 1;var +b=this.value,c=e(a).value;return b===c?0:b>c?1:-1};c.prototype.compareTo=c.prototype.compare;a.prototype.equals=function(a){return this.compare(a)===0};c.prototype.eq=c.prototype.equals=b.prototype.eq=b.prototype.equals=a.prototype.eq=a.prototype.equals;a.prototype.notEquals=function(a){return this.compare(a)!==0};c.prototype.neq=c.prototype.notEquals=b.prototype.neq=b.prototype.notEquals=a.prototype.neq=a.prototype.notEquals;a.prototype.greater=function(a){return this.compare(a)>0};c.prototype.gt=c.prototype.greater=b.prototype.gt=b.prototype.greater=a.prototype.gt=a.prototype.greater;a.prototype.lesser=function(a){return this.compare(a)<0};c.prototype.lt=c.prototype.lesser=b.prototype.lt=b.prototype.lesser=a.prototype.lt=a.prototype.lesser;a.prototype.greaterOrEquals=function(a){return this.compare(a)>=0};c.prototype.geq=c.prototype.greaterOrEquals=b.prototype.geq=b.prototype.greaterOrEquals=a.prototype.geq=a.prototype.greaterOrEquals;a.prototype.lesserOrEquals=function(a){return this.compare(a)<=0};c.prototype.leq=c.prototype.lesserOrEquals=b.prototype.leq=b.prototype.lesserOrEquals=a.prototype.leq=a.prototype.lesserOrEquals;a.prototype.isEven=function(){return(this.value[0]&1)===0};b.prototype.isEven=function(){return(this.value&1)===0};c.prototype.isEven=function(){return(this.value&g(1))===g(0)};a.prototype.isOdd=function(){return(this.value[0]&1)===1};b.prototype.isOdd=function(){return(this.value&1)===1};c.prototype.isOdd=function(){return(this.value&g(1))===g(1)};a.prototype.isPositive=function(){return!this.sign};b.prototype.isPositive=function(){return this.value>0};c.prototype.isPositive=b.prototype.isPositive;a.prototype.isNegative=function(){return this.sign};b.prototype.isNegative=function(){return this.value<0};c.prototype.isNegative=b.prototype.isNegative;a.prototype.isUnit=function(){return false};b.prototype.isUnit=function(){return Math.abs(this.value)===1};c.prototype.isUnit=function(){return this.abs().value===g(1)};a.prototype.isZero=function(){return false};b.prototype.isZero=function(){return this.value===0};c.prototype.isZero=function(){return this.value===g(0)};a.prototype.isDivisibleBy=function(b){var +a=e(b);if(a.isZero())return false;if(a.isUnit())return true;if(a.compareAbs(2)===0)return this.isEven();return this.mod(a).isZero()};c.prototype.isDivisibleBy=b.prototype.isDivisibleBy=a.prototype.isDivisibleBy;function +T(b){var +a=b.abs();if(a.isUnit())return false;if(a.equals(2)||a.equals(3)||a.equals(5))return true;if(a.isEven()||a.isDivisibleBy(3)||a.isDivisibleBy(5))return false;if(a.lesser(49))return true}function +L(d,e){var +g=d.prev(),c=g,h=0,f,i,b,a;while(c.isEven())c=c.divide(2),h++;next:for(b=0;b-t)return new +b(c-1);return new +a(J,true)};c.prototype.prev=function(){return new +c(this.value-g(1))};var +h=[1];while(2*h[h.length-1]<=f)h.push(2*h[h.length-1]);var +x=h.length,k=h[x-1];function +Z(a){return Math.abs(a)<=f}a.prototype.shiftLeft=function(c){var +a=e(c).toJSNumber();if(!Z(a))throw new +Error(String(a)+it);if(a<0)return this.shiftRight(-a);var +b=this;if(b.isZero())return b;while(a>=x){b=b.multiply(k);a-=x-1}return b.multiply(h[a])};c.prototype.shiftLeft=b.prototype.shiftLeft=a.prototype.shiftLeft;a.prototype.shiftRight=function(d){var +a,b=e(d).toJSNumber();if(!Z(b))throw new +Error(String(b)+it);if(b<0)return this.shiftLeft(-b);var +c=this;while(b>=x){if(c.isZero()||c.isNegative()&&c.isUnit())return c;a=i(c,k);c=a[1].isNegative()?a[0].prev():a[0];b-=x-1}a=i(c,h[b]);return a[1].isNegative()?a[0].prev():a[0]};c.prototype.shiftRight=b.prototype.shiftRight=a.prototype.shiftRight;function +K(h,a,r){a=e(a);var +n=h.isNegative(),q=a.isNegative(),l=n?h.not():h,p=q?a.not():a,b=0,c=0,j=null,o=null,f=[];while(!l.isZero()||!p.isZero()){j=i(l,k);b=j[1].toJSNumber();if(n)b=k-1-b;o=i(p,k);c=o[1].toJSNumber();if(q)c=k-1-c;l=j[0];p=o[0];f.push(r(b,c))}var +g=r(n?1:0,q?1:0)!==0?m(-1):m(0);for(var +d=f.length-1;d>=0;d-=1)g=g.multiply(k).add(m(f[d]));return g}a.prototype.not=function(){return this.negate().prev()};c.prototype.not=b.prototype.not=a.prototype.not;a.prototype.and=function(a){return K(this,a,function(a,b){return a&b})};c.prototype.and=b.prototype.and=a.prototype.and;a.prototype.or=function(a){return K(this,a,function(a,b){return a|b})};c.prototype.or=b.prototype.or=a.prototype.or;a.prototype.xor=function(a){return K(this,a,function(a,b){return a^b})};c.prototype.xor=b.prototype.xor=a.prototype.xor;var +I=1<<30,aa=(f&-f)*(f&-f)|I;function +F(c){var +a=c.value,b=typeof +a==="number"?a|I:typeof +a==="bigint"?a|g(I):a[0]+a[1]*f|aa;return b&-b}function +S(b,a){if(a.compareTo(b)<=0){var +f=S(b,a.square(a)),d=f.p,c=f.e,e=d.multiply(a);return e.compareTo(b)<=0?{p:e,e:c*2+1}:{p:d,e:c*2}}return{p:m(1),e:0}}a.prototype.bitLength=function(){var +a=this;if(a.compareTo(m(0))<0)a=a.negate().subtract(m(1));if(a.compareTo(m(0))===0)return m(0);return m(S(a,m(2)).e).add(m(1))};c.prototype.bitLength=b.prototype.bitLength=a.prototype.bitLength;function +U(a,b){a=e(a);b=e(b);return a.greater(b)?a:b}function +M(a,b){a=e(a);b=e(b);return a.lesser(b)?a:b}function +R(a,b){a=e(a).abs();b=e(b).abs();if(a.equals(b))return a;if(a.isZero())return b;if(b.isZero())return a;var +c=d[1],f,g;while(a.isEven()&&b.isEven()){f=M(F(a),F(b));a=a.divide(f);b=b.divide(f);c=c.multiply(f)}while(a.isEven())a=a.divide(F(a));do{while(b.isEven())b=b.divide(F(b));if(a.greater(b)){g=b;b=a;a=g}b=b.subtract(a)}while(!b.isZero());return c.isUnit()?a:a.multiply(c)}function +ae(a,b){a=e(a).abs();b=e(b).abs();return a.divide(R(a,b)).multiply(b)}function +ah(a,b){a=e(a);b=e(b);var +g=M(a,b),n=U(a,b),h=n.subtract(g).add(1);if(h.isSmall)return g.add(Math.floor(Math.random()*h));var +j=z(h,f).value,l=[],k=true;for(var +c=0;c=i){if(c===aJ&&i===1)continue;throw new +Error(c+" is not a valid digit in base "+g+ba)}}g=e(g);var +h=[],j=b[0]===aq;for(a=j?1:0;a=0;a--){b=b.add(e[a].times(c));c=c.times(f)}return g?b.negate():b}function +ai(b,a){a=a||O;if(b=0){e=c.divmod(b);c=e.quotient;var +d=e.remainder;if(d.isNegative()){d=b.minus(d).abs();c=c.next()}g.push(d.toJSNumber())}g.push(c.toJSNumber());return{value:g.reverse(),isNegative:f}}function +$(d,c,b){var +a=z(d,c);return(a.isNegative?aq:j)+a.value.map(function(a){return ai(a,b)}).join(j)}a.prototype.toArray=function(a){return z(this,a)};b.prototype.toArray=function(a){return z(this,a)};c.prototype.toArray=function(a){return z(this,a)};a.prototype.toString=function(a,f){if(a===A)a=10;if(a!==10)return $(this,a,f);var +d=this.value,c=d.length,e=String(d[--c]),h="0000000",b;while(--c>=0){b=String(d[c]);e+=h.slice(b.length)+b}var +g=this.sign?aq:j;return g+e};b.prototype.toString=function(a,b){if(a===A)a=10;if(a!=10)return $(this,a,b);return String(this.value)};c.prototype.toString=b.prototype.toString;c.prototype.toJSON=a.prototype.toJSON=b.prototype.toJSON=function(){return this.toString()};a.prototype.valueOf=function(){return parseInt(this.toString(),10)};a.prototype.toJSNumber=a.prototype.valueOf;b.prototype.valueOf=function(){return this.value};b.prototype.toJSNumber=b.prototype.valueOf;c.prototype.valueOf=c.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function +X(d){if(p(+d)){var +l=+d;if(l===s(l))return H?new +c(g(l)):new +b(l);throw new +Error(en+d)}var +o=d[0]===aq;if(o)d=d.slice(1);var +h=d.split(/e/i);if(h.length>2)throw new +Error(en+h.join(eq));if(h.length===2){var +e=h[1];if(e[0]===bu)e=e.slice(1);e=+e;if(e!==s(e)||!p(e))throw new +Error(en+e+" is not a valid exponent.");var +f=h[0],i=f.indexOf(ba);if(i>=0){e-=f.length-i-1;f=f.slice(0,i)+f.slice(i+1)}if(e<0)throw new +Error("Cannot include negative exponent part for integers");f+=new +Array(e+1).join(B);d=f}var +q=/^([0-9][0-9]*)$/.test(d);if(!q)throw new +Error(en+d);if(H)return new +c(g(o?aq+d:d));var +n=[],j=d.length,m=ab,k=j-m;while(j>0){n.push(+d.slice(k,j));k-=m;if(k<0)k=0;j-=m}r(n);return new +a(n,o)}function +ag(a){if(H)return new +c(g(a));if(p(a)){if(a!==s(a))throw new +Error(a+" is not an integer.");return new +b(a)}return X(a.toString())}function +e(a){if(typeof +a==="number")return ag(a);if(typeof +a==="string")return X(a);if(typeof +a==="bigint")return new +c(a);return a}for(var +l=0;l0)d[-l]=e(-l)}d.one=d[1];d.zero=d[0];d.minusOne=d[-1];d.max=U;d.min=M;d.gcd=R;d.lcm=ae;d.isInstance=function(d){return d +instanceof +a||d +instanceof +b||d +instanceof +c};d.randBetween=ah;d.fromArray=function(b,a,c){return W(b.map(e),e(a||10),c)};return d}();function +ax(a){var +b=a.toJSNumber()|0;if(a.equals(m(b)))return b;return a}function +CD(a){return ax(m(a).abs())}function +F(a,b){return ax(m(a).add(m(b)))}function +ce(a,b){return m(a).compare(m(b))}function +kA(b,a){a=m(a);if(a.equals(m(0)))cF();return ax(m(b).divide(m(a)))}function +CL(b,a){a=m(a);if(a.equals(m(0)))cF();return ax(m(b).mod(a))}function +kB(a,b){return[0,kA(a,b),CL(a,b)]}function +kC(a,b){return kA(a,b)}function +CE(a,b){return m(a).equals(m(b))}function +CG(a,b){return ax(m.gcd(m(a),m(b)).abs())}function +Cv(c,e,g){e=m(e);var +a=e.toArray(Math.pow(2,32));c.write(8,a.isNegative?1:0);var +f=a.value.length,d=f*4;c.write(32,d);for(var +b=f-1;b>=0;b--){c.write(8,a.value[b]>>>0&aM);c.write(8,a.value[b]>>>8&aM);c.write(8,a.value[b]>>>16&aM);c.write(8,a.value[b]>>>24&aM)}g[0]=4*(1+((d+3)/4|0));g[1]=8*(1+((d+7)/8|0))}function +Cw(b,g){var +e;switch(b.read8u()){case +1:e=true;break;case +0:e=false;break;default:cb("input_value: z (malformed input)")}var +f=b.read32u(),c=m(0);for(var +d=0;d>>0);c=a.shiftLeft(d*32).add(c)}if(e)c=c.negate();g[0]=f+4;return ax(c)}function +CH(d){var +b=m(d).toArray(Math.pow(2,32)),a=0;for(var +c=0;c=48&&a<=57)return a-48;if(a>=97&&a<=iD)return a-97+10;if(a>=65&&a<=70)return a-65+10}var +e=0;if(a[e]==aq)e++;for(;e=c)Y("Z.of_substring_base: invalid digit")}return ax(m(a,c))}function +cf(d,a,b,c){a=a3(a);if(b!=0||c!=a.length){if(a.length-b=0?1:0}function +eG(a){a=m(a);if(!CF(a))eD(eC(fI));var +b=m(iV),d=a.and(b).toJSNumber(),c=a.shiftRight(32).and(b).toJSNumber(),e=kq(d,c);return e}function +eH(){return new +Date().getTime()/aT}function +cK(e){var +a=new +Date(e*aT),b=a.getTime(),d=new +Date(Date.UTC(a.getUTCFullYear(),0,1)).getTime(),c=Math.floor((b-d)/h$);return[0,a.getUTCSeconds(),a.getUTCMinutes(),a.getUTCHours(),a.getUTCDate(),a.getUTCMonth(),a.getUTCFullYear()-bT,a.getUTCDay(),c,false|0]}function +eI(){return 0}function +CO(h){var +a=new +Date(h*aT),b=a.getTime(),e=new +Date(a.getFullYear(),0,1).getTime(),c=Math.floor((b-e)/h$),d=new +Date(a.getFullYear(),0,1),f=new +Date(a.getFullYear(),6,1),g=Math.max(d.getTimezoneOffset(),f.getTimezoneOffset());return[0,a.getSeconds(),a.getMinutes(),a.getHours(),a.getDate(),a.getMonth(),a.getFullYear()-bT,a.getDay(),c,a.getTimezoneOffset()>>0){if(!(25<(b+bv|0)>>>0))c=1}else +if(23!==b)c=1;return c?a+32|0:a}var +gz=Cq(0),cL=(4*gz|0)-1|0;_(0);var +k3=Cp(0);function +gA(c){var +b=0,a=c;for(;;){if(a){var +b=b+1|0,a=a[2];continue}return b}}function +gB(a){return a?a[1]:bn(k4)}function +dA(d){var +a=d,b=0;for(;;){if(a){var +c=[0,a[1],b],a=a[2],b=c;continue}return b}}typeof +k3==="number";function +b2(c,a){if(a){var +d=a[2],e=b(c,a[1]);return[0,e,b2(c,d)]}return 0}function +a5(a,c){var +b=W(a);BL(b,0,a,c);return b}function +gC(a){var +b=aP(a),c=W(b);bW(a,0,c,0,b);return c}function +dB(a){return as(gC(a))}function +gD(c,b,a){if(0<=b&&0<=a&&!((aP(c)-a|0)>>0))e=1}else +if(65<=d)e=1}else{var +f=0;if(32!==d)if(43<=d)switch(d+j3|0){case +5:if(a<(c+2|0)&&1>>0){if(33<(n-61|0)>>>0)p=1}else +if(2===n)p=1;if(!p){var +j=j+1|0;continue}var +e=bE(k),a=[0,0],r=aP(e)-1|0,w=0;if(!(r<0)){var +i=w;for(;;){var +f=dm(e,i),g=0;if(32<=f){var +l=f-34|0,q=0;if(58>>0){if(93<=l)q=1}else +if(56<(l-1|0)>>>0){g=1;q=1}if(!q){var +m=1;g=2}}else +if(11<=f){if(13===f)g=1}else +if(8<=f)g=1;switch(g){case +0:var +m=4;break;case +1:var +m=2;break}a[1]=a[1]+m|0;var +A=i+1|0;if(r!==i){var +i=A;continue}break}}if(a[1]===aP(e))var +t=gC(e);else{var +b=W(a[1]);a[1]=0;var +s=aP(e)-1|0,y=0;if(!(s<0)){var +h=y;for(;;){var +c=dm(e,h),d=0;if(35<=c)if(92===c)d=2;else +if(bv<=c)d=1;else +d=3;else +if(32<=c)if(34<=c)d=2;else +d=3;else +if(14<=c)d=1;else +switch(c){case +8:V(b,a[1],92);a[1]++;V(b,a[1],98);break;case +9:V(b,a[1],92);a[1]++;V(b,a[1],fN);break;case +10:V(b,a[1],92);a[1]++;V(b,a[1],f2);break;case +13:V(b,a[1],92);a[1]++;V(b,a[1],fX);break;default:d=1}switch(d){case +1:V(b,a[1],92);a[1]++;V(b,a[1],48+(c/aK|0)|0);a[1]++;V(b,a[1],48+((c/10|0)%10|0)|0);a[1]++;V(b,a[1],48+(c%10|0)|0);break;case +2:V(b,a[1],92);a[1]++;V(b,a[1],c);break;case +3:V(b,a[1],c);break}a[1]++;var +z=h+1|0;if(s!==h){var +h=z;continue}break}}var +t=b}var +o=as(t)}var +u=x(o),v=a5(u+2|0,34);bX(o,0,v,1,u);return as(v)}}function +gQ(d,f){var +g=dz(f),e=gR?gR[1]:70;switch(d[2]){case +0:var +b=iD;break;case +1:var +b=cu;break;case +2:var +b=69;break;case +3:var +b=b$;break;case +4:var +b=71;break;case +5:var +b=e;break;case +6:var +b=c$;break;case +7:var +b=72;break;default:var +b=70}var +c=gN(16);cl(c,37);switch(d[1]){case +0:break;case +1:cl(c,43);break;default:cl(c,32)}if(8<=d[2])cl(c,35);cl(c,46);am(c,a(j+g));cl(c,b);return gP(c)}function +dF(m,a){if(13<=m){var +g=[0,0],h=x(a)-1|0,n=0;if(!(h<0)){var +c=n;for(;;){if(!(9<(cI(a,c)+d4|0)>>>0))g[1]++;var +q=c+1|0;if(h!==c){var +c=q;continue}break}}var +i=g[1],j=W(x(a)+((i-1|0)/3|0)|0),k=[0,0],d=function(a){aX(j,k[1],a);k[1]++;return 0},e=[0,((i-1|0)%3|0)+1|0],l=x(a)-1|0,o=0;if(!(l<0)){var +b=o;for(;;){var +f=cI(a,b);if(9<(f+d4|0)>>>0)d(f);else{if(0===e[1]){d(95);e[1]=3}e[1]+=-1;d(f)}var +p=b+1|0;if(l!==b){var +b=p;continue}break}}return as(j)}return a}function +mY(b,c){switch(b){case +1:var +a=l$;break;case +2:var +a=ma;break;case +4:var +a=mc;break;case +5:var +a=md;break;case +6:var +a=me;break;case +7:var +a=mf;break;case +8:var +a=mg;break;case +9:var +a=mh;break;case +10:var +a=mi;break;case +11:var +a=mj;break;case +0:case +13:var +a=l_;break;case +3:case +14:var +a=mb;break;default:var +a=mk}return dF(b,eu(a,c))}function +mZ(b,c){switch(b){case +1:var +a=mz;break;case +2:var +a=mA;break;case +4:var +a=mC;break;case +5:var +a=mD;break;case +6:var +a=mE;break;case +7:var +a=mF;break;case +8:var +a=mG;break;case +9:var +a=mH;break;case +10:var +a=mI;break;case +11:var +a=mJ;break;case +0:case +13:var +a=my;break;case +3:case +14:var +a=mB;break;default:var +a=mK}return dF(b,eu(a,c))}function +m0(b,c){switch(b){case +1:var +a=mM;break;case +2:var +a=mN;break;case +4:var +a=mP;break;case +5:var +a=mQ;break;case +6:var +a=mR;break;case +7:var +a=mS;break;case +8:var +a=mT;break;case +9:var +a=mU;break;case +10:var +a=mV;break;case +11:var +a=mW;break;case +0:case +13:var +a=mL;break;case +3:case +14:var +a=mO;break;default:var +a=mX}return dF(b,eu(a,c))}function +m1(b,c){switch(b){case +1:var +a=mm;break;case +2:var +a=mn;break;case +4:var +a=mp;break;case +5:var +a=mq;break;case +6:var +a=mr;break;case +7:var +a=ms;break;case +8:var +a=mt;break;case +9:var +a=mu;break;case +10:var +a=mv;break;case +11:var +a=mw;break;case +0:case +13:var +a=ml;break;case +3:case +14:var +a=mo;break;default:var +a=mx}return dF(b,BX(a,c))}function +bp(c,i,b){function +j(d){switch(c[1]){case +0:var +a=45;break;case +1:var +a=43;break;default:var +a=32}return BU(b,i,a)}function +q(c){var +a=BK(b);return 3===a?b<0.?m3:m4:4<=a?m5:c}switch(c[2]){case +5:var +e=f9(gQ(c,i),b),d=0,v=x(e);for(;;){if(d===v)var +p=0;else{var +k=t(e,d)+ia|0,l=0;if(23>>0){if(55===k)l=1}else +if(21<(k-1|0)>>>0)l=1;if(!l){var +d=d+1|0;continue}var +p=1}var +w=p?e:aZ(e,m2);return q(w)}case +6:return j(0);case +7:var +h=bE(j(0)),f=aP(h);if(0===f)var +o=h;else{var +m=W(f),n=f-1|0,r=0;if(!(n<0)){var +a=r;for(;;){var +g=dm(h,a),s=25<(g+ix|0)>>>0?g:g+f1|0;V(m,a,s);var +u=a+1|0;if(n!==a){var +a=u;continue}break}}var +o=m}return as(o);case +8:return q(j(0));default:return f9(gQ(c,i),b)}}function +c5(e,A,z,w){var +c=A,a=z,d=w;for(;;)if(typeof +d==="number")return b(c,a);else +switch(d[0]){case +0:var +B=d[1];return function(b){return C(c,[5,a,b],B)};case +1:var +D=d[1];return function(b){var +e=0;if(40<=b)if(92===b)var +d=kX;else +if(bv<=b)e=1;else +e=2;else +if(32<=b)if(39<=b)var +d=kY;else +e=2;else +if(14<=b)e=1;else +switch(b){case +8:var +d=kZ;break;case +9:var +d=k0;break;case +10:var +d=k1;break;case +13:var +d=k2;break;default:e=1}switch(e){case +1:var +f=W(4);V(f,0,92);V(f,1,48+(b/aK|0)|0);V(f,2,48+((b/10|0)%10|0)|0);V(f,3,48+(b%10|0)|0);var +d=as(f);break;case +2:var +g=W(1);V(g,0,b);var +d=as(g);break}var +h=x(d),i=a5(h+2|0,39);bX(d,0,i,1,h);return C(c,[4,a,as(i)],D)};case +2:var +E=d[2],F=d[1];return eQ(c,a,E,F,function(a){return a});case +3:return eQ(c,a,d[2],d[1],l9);case +4:return dG(c,a,d[4],d[2],d[3],mY,d[1]);case +5:return dG(c,a,d[4],d[2],d[3],mZ,d[1]);case +6:return dG(c,a,d[4],d[2],d[3],m0,d[1]);case +7:return dG(c,a,d[4],d[2],d[3],m1,d[1]);case +8:var +i=d[4],j=d[3],k=d[2],h=d[1];if(typeof +k==="number"){if(typeof +j==="number")return j?function(d,b){return C(c,[4,a,bp(h,d,b)],i)}:function(b){return C(c,[4,a,bp(h,eO(h),b)],i)};var +ab=j[1];return function(b){return C(c,[4,a,bp(h,ab,b)],i)}}else{if(0===k[0]){var +n=k[2],o=k[1];if(typeof +j==="number")return j?function(d,b){return C(c,[4,a,aF(o,n,bp(h,d,b))],i)}:function(b){return C(c,[4,a,aF(o,n,bp(h,eO(h),b))],i)};var +ac=j[1];return function(b){return C(c,[4,a,aF(o,n,bp(h,ac,b))],i)}}var +p=k[1];if(typeof +j==="number")return j?function(e,d,b){return C(c,[4,a,aF(p,e,bp(h,d,b))],i)}:function(d,b){return C(c,[4,a,aF(p,d,bp(h,eO(h),b))],i)};var +ad=j[1];return function(d,b){return C(c,[4,a,aF(p,d,bp(h,ad,b))],i)}}case +9:return eQ(c,a,d[2],d[1],kN);case +10:var +a=[7,a],d=d[1];continue;case +11:var +a=[2,a,d[1]],d=d[2];continue;case +12:var +a=[3,a,d[1]],d=d[2];continue;case +13:var +G=d[3],I=d[2],q=gN(16);eP(q,I);var +v=gP(q);return function(b){return C(c,[4,a,v],G)};case +14:var +L=d[3],M=d[2];return function(d){var +e=d[1],b=J(e,Q(aa(M)));if(typeof +b[2]==="number")return C(c,a,K(b[1],L));throw ai};case +15:var +N=d[1];return function(d,b){return C(c,[6,a,function(a){return g(d,a,b)}],N)};case +16:var +O=d[1];return function(b){return C(c,[6,a,b],O)};case +17:var +a=[0,a,d[1]],d=d[2];continue;case +18:var +m=d[1];if(0===m[0]){var +P=d[2],R=m[1][1],S=0,c=function(b,c,d){return function(a){return C(c,[1,b,[0,a]],d)}}(a,c,P),a=S,d=R;continue}var +T=d[2],U=m[1][1],X=0,c=function(b,c,d){return function(a){return C(c,[1,b,[1,a]],d)}}(a,c,T),a=X,d=U;continue;case +19:throw[0,y,m7];case +20:var +Y=d[3],Z=[8,a,m8];return function(a){return C(c,Z,Y)};case +21:var +_=d[2];return function(b){return C(c,[4,a,eu(m9,b)],_)};case +22:var +$=d[1];return function(b){return C(c,[5,a,b],$)};case +23:var +f=d[2],l=d[1];if(typeof +l==="number")switch(l){case +0:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);case +1:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);case +2:throw[0,y,m_];default:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f])}else +switch(l[0]){case +0:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);case +1:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);case +2:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);case +3:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);case +4:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);case +5:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);case +6:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);case +7:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);case +8:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);case +9:var +u=l[2];return e<50?fv(e+1|0,c,a,u,f):af(fv,[0,c,a,u,f]);case +10:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f]);default:return e<50?H(e+1|0,c,a,f):af(H,[0,c,a,f])}default:var +r=d[3],s=d[1],t=b(d[2],0);return e<50?fu(e+1|0,c,a,r,s,t):af(fu,[0,c,a,r,s,t])}}function +fv(e,d,c,a,b){if(typeof +a==="number")return e<50?H(e+1|0,d,c,b):af(H,[0,d,c,b]);else +switch(a[0]){case +0:var +f=a[1];return function(a){return aL(d,c,f,b)};case +1:var +g=a[1];return function(a){return aL(d,c,g,b)};case +2:var +h=a[1];return function(a){return aL(d,c,h,b)};case +3:var +i=a[1];return function(a){return aL(d,c,i,b)};case +4:var +j=a[1];return function(a){return aL(d,c,j,b)};case +5:var +k=a[1];return function(a){return aL(d,c,k,b)};case +6:var +l=a[1];return function(a){return aL(d,c,l,b)};case +7:var +m=a[1];return function(a){return aL(d,c,m,b)};case +8:var +n=a[2];return function(a){return aL(d,c,n,b)};case +9:var +o=a[3],p=a[2],q=ag(aa(a[1]),p);return function(a){return aL(d,c,au(q,o),b)};case +10:var +r=a[1];return function(e,a){return aL(d,c,r,b)};case +11:var +s=a[1];return function(a){return aL(d,c,s,b)};case +12:var +t=a[1];return function(a){return aL(d,c,t,b)};case +13:throw[0,y,m$];default:throw[0,y,na]}}function +H(d,b,e,a){var +c=[8,e,nb];return d<50?c5(d+1|0,b,c,a):af(c5,[0,b,c,a])}function +fu(h,c,f,a,e,d){if(e){var +i=e[1];return function(e){return m6(c,f,a,i,b(d,e))}}var +g=[4,f,d];return h<50?c5(h+1|0,c,g,a):af(c5,[0,c,g,a])}function +C(a,b,c){return dt(c5(0,a,b,c))}function +aL(a,b,c,d){return dt(fv(0,a,b,c,d))}function +m6(a,b,c,d,e){return dt(fu(0,a,b,c,d,e))}function +eQ(f,e,d,a,c){if(typeof +a==="number")return function(a){return C(f,[4,e,b(c,a)],d)};else{if(0===a[0]){var +g=a[2],h=a[1];return function(a){return C(f,[4,e,aF(h,g,b(c,a))],d)}}var +i=a[1];return function(g,a){return C(f,[4,e,aF(i,g,b(c,a))],d)}}}function +dG(f,e,d,h,c,b,a){if(typeof +h==="number"){if(typeof +c==="number")return c?function(h,c){return C(f,[4,e,cm(h,g(b,a,c))],d)}:function(c){return C(f,[4,e,g(b,a,c)],d)};var +l=c[1];return function(c){return C(f,[4,e,cm(l,g(b,a,c))],d)}}else{if(0===h[0]){var +i=h[2],j=h[1];if(typeof +c==="number")return c?function(h,c){return C(f,[4,e,aF(j,i,cm(h,g(b,a,c)))],d)}:function(c){return C(f,[4,e,aF(j,i,g(b,a,c))],d)};var +m=c[1];return function(c){return C(f,[4,e,aF(j,i,cm(m,g(b,a,c)))],d)}}var +k=h[1];if(typeof +c==="number")return c?function(i,h,c){return C(f,[4,e,aF(k,i,cm(h,g(b,a,c)))],d)}:function(h,c){return C(f,[4,e,aF(k,h,g(b,a,c))],d)};var +n=c[1];return function(h,c){return C(f,[4,e,aF(k,h,cm(n,g(b,a,c)))],d)}}}function +bH(c,h){var +a=h;for(;;)if(typeof +a==="number")return 0;else +switch(a[0]){case +0:var +e=a[2],i=a[1];if(typeof +e==="number")switch(e){case +0:var +d=lt;break;case +1:var +d=lu;break;case +2:var +d=lv;break;case +3:var +d=lw;break;case +4:var +d=lx;break;case +5:var +d=ly;break;default:var +d=lz}else +switch(e[0]){case +0:var +d=e[1];break;case +1:var +d=e[1];break;default:var +d=aZ(lA,gG(1,e[1]))}bH(c,i);return cP(c,d);case +1:var +f=a[2],g=a[1];if(0===f[0]){var +j=f[1];bH(c,g);cP(c,nc);var +a=j;continue}var +k=f[1];bH(c,g);cP(c,nd);var +a=k;continue;case +6:var +n=a[2];bH(c,a[1]);return cP(c,b(n,0));case +7:var +a=a[1];continue;case +8:var +o=a[2];bH(c,a[1]);return $(o);case +2:case +4:var +l=a[2];bH(c,a[1]);return cP(c,l);default:var +m=a[2];bH(c,a[1]);return gM(c,m)}}function +a0(b){var +a=b[1];return C(function(b){var +a=eM(64);bH(a,b);return gL(a)},0,a)}var +eR=[0,0];function +eT(i,h){var +a=i[1+h];if(1-(typeof +a==="number"?1:0)){if(ds(a)===ec)return b(a0(ne),a);if(ds(a)===jH){var +d=f9(kR,a),c=0,g=x(d);for(;;){if(g<=c)return aZ(d,kQ);var +e=t(d,c),f=0;if(48<=e){if(!(58<=e))f=1}else +if(45===e)f=1;if(f){var +c=c+1|0;continue}return d}}return nf}return b(a0(ng),a)}function +gS(b,a){if(b.length-1<=a)return nh;var +c=gS(b,a+1|0),d=eT(b,a);return g(a0(ni),d,c)}function +dH(c){for(;;){var +a=eR[1],b=1-eJ(eR,a,[0,c,a]);if(b)continue;return b}}var +nt=[E,ns,_(0)];dH(function(n){if(n[1]===nt){var +a=n[2],r=function(f){var +c=f;for(;;){if(c){var +g=c[2],h=c[1];try{var +e=0,d=b(h,a);e=1}catch(a){}if(e&&d)return[0,d[1]];var +c=g;continue}return 0}},j=r(eR[1]);if(j)var +c=j[1];else +if(a===gs)var +c=nn;else +if(a===gt)var +c=no;else +if(a[1]===gr)var +e=a[2],k=e[3],s=e[2],t=e[1],c=fy(a0(eS),t,s,k,k+5|0,np);else +if(a[1]===y)var +f=a[2],l=f[3],u=f[2],v=f[1],c=fy(a0(eS),v,u,l,l+6|0,nq);else +if(a[1]===gw)var +h=a[2],m=h[3],w=h[2],x=h[1],c=fy(a0(eS),x,w,m,m+6|0,nr);else +if(0===ds(a)){var +i=a.length-1,z=a[1][1];if(2>>0)var +o=gS(a,2),p=eT(a,1),d=g(a0(nj),p,o);else +switch(i){case +0:var +d=nk;break;case +1:var +d=nl;break;default:var +q=eT(a,1),d=b(a0(nm),q)}var +c=aZ(z,d)}else +var +c=a[1];return[0,aZ(nu,c)]}return 0});try{var +BB=ky(BA),gU=BB}catch(a){a=d(a);if(a!==ay)throw a;try{var +Bz=ky(By),gT=Bz}catch(a){a=d(a);if(a!==ay)throw a;var +gT=nw}var +gU=gT}var +nx=k_(gU,82),dI=[il,function(z){var +n=Cs(0),c=[0,bF(55,0),0],i=0===n.length-1?[0,0]:n,k=i.length-1,b=0;for(;;){ad(c[1],b)[1+b]=b;var +y=b+1|0;if(54!==b){var +b=y;continue}var +g=[0,nv],l=54+dy(55,k)|0,s=0;if(!(l<0)){var +d=s;for(;;){var +e=d%55|0,m=Cf(d,k),u=ad(i,m)[1+m],h=aZ(g[1],a(j+u));g[1]=Ca(h,0,x(h));var +f=g[1],o=t(f,3)<<24,p=t(f,2)<<16,q=t(f,1)<<8,r=((t(f,0)+q|0)+p|0)+o|0,v=(ad(c[1],e)[1+e]^r)&fU;ad(c[1],e)[1+e]=v;var +w=d+1|0;if(l!==d){var +d=w;continue}break}}c[2]=0;return c}}];function +ny(h,k){var +l=h?h[1]:nx,b=16;for(;;){if(!(k<=b)&&!(gz<(b*2|0))){var +b=b*2|0;continue}if(l){var +i=ds(dI),a=d6===i?dI[1]:il===i?lo(dI):dI;a[2]=(a[2]+1|0)%55|0;var +c=a[2],d=ad(a[1],c)[1+c],e=(a[2]+24|0)%55|0,f=(ad(a[1],e)[1+e]+(d^(d>>>25|0)&31)|0)&fU,g=a[2];ad(a[1],g)[1+g]=f;var +j=f}else +var +j=0;return[0,0,bF(b,0),j,b]}}function +a6(a){return BO(10,aK,0,a)}var +gX=[E,nz,_(0)],gV=0,gW=-1;function +dJ(a,b){a[13]=a[13]+b[3]|0;return gK(b,a[28])}var +gY=1000000010;function +eU(b,a){return I(b[17],a,0,x(a))}function +eV(a){return b(a[19],0)}function +gZ(a,c,b){a[9]=a[9]-c|0;eU(a,b);a[11]=0;return 0}function +dK(c,a){var +b=ae(a,nA);return b?gZ(c,x(a),a):b}function +cn(a,c,f){var +g=c[3],h=c[2];dK(a,c[1]);eV(a);a[11]=1;var +d=(a[6]-f|0)+h|0,e=a[8],i=B9(e,d)?e:d;a[10]=i;a[9]=a[6]-a[10]|0;b(a[21],a[10]);return dK(a,g)}function +g0(b,a){return cn(b,nB,a)}function +cR(a,c){var +d=c[2],e=c[3];dK(a,c[1]);a[9]=a[9]-d|0;b(a[20],d);return dK(a,e)}function +g1(a){for(;;){var +r=a[28][2],O=r?[0,r[1]]:0;if(O){var +p=O[1],q=p[1],c=p[2],ac=0<=q?1:0,aa=p[3],ab=a[13]-a[12]|0,P=ac||(a[9]<=ab?1:0);if(P){var +g=a[28],m=g[2];if(m){if(m[2]){var +Q=m[2];g[1]=g[1]-1|0;g[2]=Q}else +eL(g);var +l=0<=q?q:gY;if(typeof +c==="number")switch(c){case +0:var +y=ck(a[3]);if(y){var +z=y[1][1],A=function(b,a){if(a){var +c=a[1],d=a[2];return gg(b,c)?[0,b,a]:[0,c,A(b,d)]}return[0,b,0]};z[1]=A(a[6]-a[9]|0,z[1])}break;case +1:cj(a[2]);break;case +2:cj(a[3]);break;case +3:var +B=ck(a[2]);if(B)g0(a,B[1][2]);else +eV(a);break;case +4:if(a[10]!==(a[6]-a[9]|0)){var +e=a[28],h=e[2];if(h){var +s=h[1];if(h[2]){var +R=h[2];e[1]=e[1]-1|0;e[2]=R;var +i=[0,s]}else{eL(e);var +i=[0,s]}}else +var +i=0;if(i){var +w=i[1],T=w[1];a[12]=a[12]-w[3]|0;a[9]=a[9]+T|0}}break;default:var +C=cj(a[5]);if(C)eU(a,b(a[25],C[1]))}else +switch(c[0]){case +0:gZ(a,l,c[1]);break;case +1:var +d=c[2],j=c[1],D=d[1],U=d[2],E=ck(a[2]);if(E){var +F=E[1],f=F[2];switch(F[1]){case +0:cR(a,j);break;case +1:cn(a,d,f);break;case +2:cn(a,d,f);break;case +3:if(a[9]<(l+x(D)|0))cn(a,d,f);else +cR(a,j);break;case +4:if(a[11]||!(a[9]<(l+x(D)|0)||((a[6]-f|0)+U|0)>>0))g0(a,v)}else +eV(a)}var +_=a[9]-Z|0,$=1===M?1:a[9]>>3|0,cg(bY(b,a>>>3|0)|1<<(a&7)))}function +dO(b){var +a=e1(0);cS(a,b);return a}function +dP(c){var +b=W(32),a=0;for(;;){aX(b,a,cg(bY(c,a)^cw));var +d=a+1|0;if(31!==a){var +a=d;continue}return b}}function +e2(d,c){var +b=W(32),a=0;for(;;){var +e=bY(c,a);aX(b,a,cg(bY(d,a)|e));var +f=a+1|0;if(31!==a){var +a=f;continue}return b}}function +pj(c,b){try{var +a=0;for(;;){var +f=bY(b,a);if(0!==(bY(c,a)&f))throw gq;var +g=a+1|0;if(31!==a){var +a=g;continue}var +e=1;return e}}catch(a){a=d(a);if(a===gq)return 0;throw a}}function +hb(f,e){var +a=0;for(;;){var +d=bY(e,a);if(0!==d){var +c=0;for(;;){if(0!==(d&1<>>0){if(!(25<(b+bv|0)>>>0))d=1}else +if(23!==b)d=1;var +e=d?a+f1|0:a;return cS(c,e)},b);var +d=c}else +var +d=b;var +h=f?dP(d):d;return dB(h)}throw[0,y,py]}var +hf=W(ca),c4=0;for(;;){aX(hf,c4,gy(cg(c4)));var +Bv=c4+1|0;if(cw!==c4){var +c4=Bv;continue}dB(hf);var +dS=dD([0,gk]),hg=function(a){var +b=gL(a[1]);a[1][2]=0;var +c=x(b);if(0===c)return 0;if(1===c){var +d=a[2];a[2]=[0,[0,t(b,0)],d];return 0}a[2]=[0,[1,b],a[2]];return 0},pC=dP(dO(10)),e7=r,e8=kk,pI=function(b){var +f=x(b),C=[0,1];function +F(g){var +d=e1(0),a=g;for(;;){if(f<=a)bn(pG);if(93===t(b,a)&&g>>0)if(9<=r)var +j=[0,[9,k+d4|0],g+1|0];else +l=1;else +if(r)l=2;else{var +I=C[1];C[1]++;var +u=D(g+1|0),o=u[2],A=0,J=u[1];if((o+1|0)>>0)){if(q){var +c=[6,c],d=d+1|0;continue}var +c=[5,c],d=d+1|0;continue}if(21===q){var +c=[7,c],d=d+1|0;continue}}var +B=0;if(typeof +c!=="number"&&0===c[0]){gM(h[1],c[1]);B=1}if(!B){hg(h);h[2]=[0,c,h[2]]}var +a=d;continue a}}}hg(h);return[0,[3,dA(h[2])],a]}}function +D(g){var +d=E(g),c=d[1],a=d[2];for(;;){if((a+2|0)<=f&&92===t(b,a)&&fP===t(b,a+1|0)){var +e=E(a+2|0),c=[4,c,e[1]],a=e[2];continue}return[0,c,a]}}var +G=D(0),P=G[1],H=G[2]===f?P:bn(pH),h=[0,bF(32,0)],c=[0,0],m=[0,dS[1]],n=[0,0],j=[0,1],o=[0,0],r=0;function +a(f,e){if(h[1].length-1<=c[1]){var +a=[0,h[1].length-1];for(;;){if(a[1]<=c[1]){a[1]=a[1]*2|0;continue}var +b=bF(a[1],0);gJ(h[1],0,b,0,h[1].length-1);h[1]=b;break}}var +g=he(f,e),d=c[1];ad(h[1],d)[1+d]=g;c[1]++;return 0}function +k(d){var +b=c[1];a(dQ,0);return b}function +l(a,c,b){var +d=he(c,e4(b,a));ad(h[1],a)[1+a]=d;return 0}function +i(b){try{var +a=g(dS[28],b,m[1]);return a}catch(a){a=d(a);if(a===ay){var +c=n[1];m[1]=I(dS[4],b,c,m[1]);n[1]++;return c}throw a}}function +u(b){if(e5(b)){var +a=o[1];if(64<=a)bn(pz);o[1]++;return a}return-1}function +p(b,a){return pj(b,a)}function +e(b){if(typeof +b==="number")switch(b){case +0:return a(pm,0);case +1:return a(pn,0);default:return a(po,0)}else +switch(b[0]){case +0:return a(dQ,b[1]);case +1:var +f=b[1],n=x(f);if(0===n)return 0;if(1===n)return a(dQ,t(f,0));try{var +o=gI(f,0);e([1,ph(f,o)]);a(dQ,0);var +w=e([1,pi(f,o+1|0)]);return w}catch(b){b=d(b);if(b===ay)return a(pk,i(f));throw b}case +2:var +p=b[1],y=b[2]?dP(p):p;return a(pl,i(dB(y)));case +3:return K(b[1]);case +4:var +z=b[2],A=b[1],B=k(0);e(A);var +C=k(0),D=c[1];e(z);var +E=c[1];l(B,dR,D);return l(C,e3,E);case +5:var +q=b[1],g=u(q),r=k(0);if(0<=g)a(hc,g);e(q);if(0<=g)a(hd,g);a(e3,e4(r,c[1]));return l(r,dR,c[1]);case +6:var +s=b[1],h=u(s),F=c[1];e(s);if(0<=h)a(hd,h);var +G=k(0);if(0<=h)a(hc,h);a(e3,e4(F,c[1]));return l(G,dR,c[1]);case +7:var +H=b[1],I=k(0);e(H);return l(I,dR,c[1]);case +8:var +m=b[1],J=b[2];a(pp,m);e(J);a(pq,m);j[1]=dy(j[1],m+1|0);return 0;default:var +v=b[1];a(pr,v);j[1]=dy(j[1],v+1|0);return 0}}function +K(o){var +b=o;for(;;){if(b){var +c=b[1];if(typeof +c!=="number")switch(c[0]){case +5:var +d=c[1],l=0;if(typeof +d==="number")l=1;else +switch(d[0]){case +0:case +2:var +h=b[2],s=cT(h);if(p(bI(d),s)){a(pu,i(e6(r,d)));var +b=h;continue}break;default:l=1}break;case +6:var +f=c[1],m=0;if(typeof +f==="number")m=1;else +switch(f[0]){case +0:case +2:var +j=b[2],t=cT(j);if(p(bI(f),t)){a(pv,i(e6(r,f)));var +b=j;continue}break;default:m=1}break;case +7:var +g=c[1],n=0;if(typeof +g==="number")n=1;else +switch(g[0]){case +0:case +2:var +k=b[2],u=cT(k);if(p(bI(g),u)){a(pt,i(e6(r,g)));var +b=k;continue}break;default:n=1}break}var +q=b[2];e(c);var +b=q;continue}return 0}}e(H);a(ps,0);var +v=bI(H);if(ki(v,bq))var +w=-1;else{var +s=a5(ca,0);hb(function(a){return aX(s,a,1)},v);var +w=i(dB(s))}var +z=bF(n[1],pA),L=m[1];function +M(b,a){ad(z,a)[1+a]=b;return 0}g(dS[12],M,L);var +q=c[1],A=h[1],J=0,N=o[1],O=j[1];if(0<=q&&!((A.length-1-q|0)<0)){var +B=BF(A,0,q);J=1}if(!J)var +B=$(k$);return[0,B,z,pB,O,N,w]},dT=function(b,a){return Math.abs(b-a)<0.001?1:0},e9=function(b,a){return dT(b,a)?0:b>>0))switch(b){case +0:return 2;case +1:break;default:return 1}return 3}return a[1]===av?0:4},sc=function(a){return[0,dv(a[1]),a[2]]},fl=function(b,a){if(b[2]!==av&&a[2]!==av)return c1(b1(b[1],a[1]),b1(b[2],a[2]));return[0,at(bl(bm(b[1]),bm(a[1]))),av]},fm=function(a){switch(a){case +0:return 2;case +1:return 8;case +2:return 10;default:return 16}},fn=function(f,e,d,c){var +a=e;for(;;){if(d<=a)return 0;if(b(c,t(f,a)))return[0,a];var +a=a+1|0;continue}},se=function(a){if(ae(a,sf)){if(ae(a,sg)){if(!ae(a,sh))return hI;if(ae(a,si)){if(ae(a,sj))try{var +l=gI(a,47),Z=cf(0,a,l+1|0,(x(a)-l|0)-1|0),_=hF(cf(0,a,0,l),Z);return _}catch(l){l=d(l);if(l===ay){var +j=x(a),A=0;if(j<1)var +s=[0,0,A];else{var +P=t(a,0)+j3|0,S=0;if(!(2

>>0)){var +T=0;switch(P){case +0:var +R=[0,0,1];break;case +1:T=1;break;default:var +R=[0,1,1]}if(!T){var +Q=R;S=1}}if(!S)var +Q=[0,0,A];var +s=Q}var +c=s[2];if(j<(c+2|0))var +u=[0,2,c];else{var +Y=t(a,c),h=t(a,c+1|0),r=0;if(48===Y){var +i=0;if(89<=h){if(98===h)i=2;else +if(f4===h)i=1;else +if(d2!==h){r=1;i=3}}else +if(66===h)i=2;else +if(79===h)i=1;else +if(!(88<=h)){r=1;i=3}switch(i){case +3:break;case +0:var +q=[0,3,c+2|0];break;case +1:var +q=[0,1,c+2|0];break;default:var +q=[0,0,c+2|0]}}else +r=1;if(r)var +q=[0,2,c];var +u=q}var +e=u[2],b=u[1],U=2===b?function(a){if(69!==a&&cu!==a)return 0;return 1}:3<=b?function(a){if(80!==a&&f3!==a)return 0;return 1}:function(a){return 0},B=fn(a,e,j,U);if(B)var +C=B[1],D=C+1|0,f=C,E=dw(cf(10,a,D,j-D|0));else +var +f=j,E=0;if(2<=b){var +F=fn(a,e,f,function(a){return 46===a?1:0});if(F){var +v=F[1];if(2===b)var +G=1;else{if(!(3<=b))throw[0,y,sl];var +G=4}var +I=v+1|0,J=f-1|0,H=0;if(J",cy=153,jV=1027,h_="montant_vers\xc3\xa9",iO="enfants_\xc3\xa0_charge",jk="562800",by="Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es",h9=246,h8="%u",jj="resetLog",e="AllocationsFamiliales",ji=3268,h7=298,h6="./securite_sociale_R.catala_fr",w="Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es",b8="2",br=127,dd=1024,aJ="1",jh=133,em="e",fA="Montant de la base mensuelle des allocations familiales",h5=" : flags Open_rdonly and Open_wronly are not compatible",iN="ressources_m\xc3\xa9nage",jU=313,iM="([^/]*)",h4="D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance",ar="-",bP=803994948,h2=216,h3=" : file already exists",jT="smic",iL="Article D521-3",jg=184,bx=0xffffff,jS=-43,M="./securite_sociale_D.catala_fr",ed=86400,iK="Out_of_memory",jR="inf",fL="index out of bounds",ec="_bigarr02",jQ="Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",iJ=0xffffffff,fW=111,je=2147483647,jf=208,h1="Martinique",a$=0xffff,eb=417088404,h0=12520,iI=400,hZ=-46,aD=3600,x="Chapitre 1er : Allocations familiales",fP="AllocationFamilialesAvril2008",jd="retrieveLog",a_="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3",jP="infinity",aT=1000,ea=126,l="",fz="^",bO=3600.,hY=86400000,iH=264,ab="Partie l\xc3\xa9gislative",cq=0x3f,fK=124,a0="./epilogue.catala_fr",fJ="Article L512-3",as="./decrets_divers.catala_fr",y="Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien",iG=150,fV=112,hX="Match_failure",bQ="Montant des plafonds de ressources",jO="enfants",d$=135,jN="personne_charge_effective_permanente_est_parent",a8=2021,iF="enfant_le_plus_\xc3\xa2g\xc3\xa9",fI=252,bs=".",c5="montant_initial_majoration",bq="+",iE=147,iD=0xf0,aU="12.",iC="Guadeloupe",fU=110,U="PrestationsFamiliales",fH=116,jc=304,hW="%li",d_=365,bw="prise_en_compte",c4="Smic",hV=178,fT=-32,bd=1023,iB=-1080,ac="./securite_sociale_L.catala_fr",k="./prologue.catala_fr",d5=2299161,iA=969837588,fO="nan",hU=0xe0,iz=-1023,jM=117,jb=0xdfff,di="compl\xc3\xa9ment_d\xc3\xa9gressif",fG="Article L755-12",bv="/",jL="Assert_failure",d4=2400000.5,jK="568400",fN=1073741823,jJ=308,el="r\xc3\xa9sidence",d3=250,db=1582,hT=115,ja="src/time_Zone.ml",jI=1e14,iy="Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations",i$="Guyane",hS="allocations_familiales",fy=1255,fF="<",ix=0x800,cv=255,bp=2019,fx="jsError",a7=0x8000,i_="Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat",N="droit_ouvert_majoration",dh=146097,b$=256,iw=0.012,jH="Article L521-3",i9="End_of_file",iv="M\xc3\xa9tropole",i8="Failure",d2=129,iu=204,da="conditions_hors_\xc3\xa2ge",i7=218,jG=315,hR=194,ek="EnfantLePlus\xc3\x82g\xc3\xa9",fE=0xf,d1=-48,i6=0xdc00,fD=125,c$="montant_initial_m\xc3\xa9tropole_majoration",ah="camlinternalFormat.ml",it="Division_by_zero",hQ=148,i5="Sys_error",jF="x",i4=130,cu="Article D521-2",dg="Article D755-5",fw="Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",bu=60.,jE="%d",hP=32082,d9=118,bS=1900,d0=121,jD="buffer.ml",is=119,c9=104,c_="montant_avec_garde_altern\xc3\xa9e_majoration",ir="version_avril_2008",dZ=120,d8=127686388,b_=103,fv="16",iq=102,fu=512,cx=113,hO=0x7ff0,ct=101,i3=132,hN="0x",hM="D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance",b9=1e7,j="Prologue",c8=254,aK=100,ip=" : flags Open_text and Open_binary are not compatible",i2="%Li",jC="3",L="Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples",jA="169.",jB=230,hL="Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",bR=0.5,aN="Article D521-1",io="Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",im=188,bc="Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses",hJ=158,ao="input",hK="str.ml",hI="personne_charge_effective_permanente_remplit_titre_I",jz="prestations_familiales",df="est_enfant_le_plus_\xc3\xa2g\xc3\xa9",hH="D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance",eg="_z",jx="Unix.Unix_error",jy="computeAllocationsFamiliales",il="0.55",ik=109,c7="droit_ouvert",i1=136,jw="Stack_overflow",a9="Interface du programme",cp="Titre 5 : D\xc3\xa9partements d'outre-mer",ij=-97,i0=137,jv="Not_found",c6=1461,ax="InterfaceAllocationsFamiliales",ft=151,cs="1.",iY=32044,iZ=", ",ef=2018,iW=356,iX="static/",ju="Mayotte",fS=243,ii=2440588,iV="src/date.ml",jt=32752,js=280,aZ="\xc3\x89pilogue",jq=149,jr=1026,bb="Article L521-2",ej="Invalid integer: ",d7=2440587.5,jp=106,bt=" ",aV=0x80,iU="Undefined_recursive_module",ap="output",ih=215,ei="src/calendar_builder.ml",cr="Montant du salaire minimum de croissance",fR="compare: functional value",hG="0.16",dc="droit_ouvert_forfaitaire",de="0.",hF=134,iT="%i",fQ=114,cw=529348384,hE=176;function -Be(d,b,e,c,f){if(c<=b)for(var -a=1;a<=f;a++)e[c+a]=d[b+a];else -for(var -a=f;a>=1;a--)e[c+a]=d[b+a];return 0}function -Bh(e,f,d){var -a=new -Array(d+1);a[0]=0;for(var -b=1,c=f+1;b<=d;b++,c++)a[b]=e[c];return a}function -eA(c,b,a){var -d=String.fromCharCode;if(b==0&&a<=4096&&a==c.length)return d.apply(null,c);var -e=l;for(;0=b.l||b.t==2&&c>=b.c.length)){b.c=d.t==4?eA(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else -if(b.t==2&&f==b.c.length){b.c+=d.t==4?eA(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else{if(b.t!=4)ep(b);var -g=d.c,h=b.c;if(d.t==4)if(f<=e)for(var -a=0;a=0;a--)h[f+a]=g[e+a];else{var -i=Math.min(c,g.length-e);for(var -a=0;a>=1;if(b==0)return d;a+=a;c++;if(c==9)a.slice(0,1)}}function -bY(a){if(a.t==2)a.c+=cG(a.l-a.c.length,"\0");else -a.c=eA(a.c,0,a.c.length);a.t=0}function -j9(a,b){if(a===b)return 1;a.t&6&&bY(a);b.t&6&&bY(b);return a.c==b.c?1:0}function -BX(b,a){throw[0,b,a]}function -kp(a){if(a.length<24){for(var -b=0;bbr)return false;return true}else -return!/[^\x00-\x7f]/.test(a)}function -gd(e){for(var -j=l,c=l,g,f,h,a,b=0,i=e.length;bfu){c.substr(0,1);j+=c;c=l;j+=e.slice(b,d)}else -c+=e.slice(b,d);if(d==i)break;b=d}a=1;if(++b=0xd7ff&&a<0xe000)a=2}else{a=3;if(++b0x10ffff)a=3}}}}}if(a<4){b-=a;c+="\ufffd"}else -if(a>a$)c+=String.fromCharCode(0xd7c0+(a>>10),i6+(a&0x3FF));else -c+=String.fromCharCode(a);if(c.length>dd){c.substr(0,1);j+=c;c=l}}return j+c}function -bA(c,a,b){this.t=c;this.c=a;this.l=b}bA.prototype.toString=function(){switch(this.t){case -9:return this.c;default:bY(this);case -0:if(kp(this.c)){this.t=9;return this.c}this.t=8;case -8:return this.c}};bA.prototype.toUtf16=function(){var -a=this.toString();if(this.t==9)return a;return gd(a)};bA.prototype.slice=function(){var -a=this.t==4?this.c.slice():this.c;return new -bA(this.t,a,this.l)};function -j_(a){return new -bA(0,a,a.length)}function -a(a){return j_(a)}function -ga(c,b){BX(c,a(b))}var -X=[0];function -Y(a){ga(X.Invalid_argument,a)}function -j7(){Y(fL)}function -dk(a,b){switch(a.t&6){default:if(b>=a.c.length)return 0;case -0:return a.c.charCodeAt(b);case -4:return a.c[b]}}function -bX(b,a){if(a>>>0>=b.l)j7();return dk(b,a)}function -V(a,c,b){b&=aM;if(a.t!=4){if(c==a.c.length){a.c+=String.fromCharCode(b);if(c+1==a.l)a.t=0;return 0}ep(a)}a.c[c]=b;return 0}function -aX(b,a,c){if(a>>>0>=b.l)j7();return V(b,a,c)}function -bC(c,a){if(c.fun)return bC(c.fun,a);if(typeof -c!=="function")return c;var -b=c.length|0;if(b===0)return c.apply(null,a);var -e=a.length|0,d=b-e|0;if(d==0)return c.apply(null,a);else -if(d<0)return bC(c.apply(null,a.slice(0,b)),a.slice(b));else -return function(){var -e=arguments.length==0?1:arguments.length,d=new -Array(a.length+e);for(var -b=0;b>>0>=a.length-1)dj();return a}function -Bm(a){if(isFinite(a)){if(Math.abs(a)>=2.2250738585072014e-308)return 0;if(a!=0)return 1;return 2}return isNaN(a)?4:3}function -a1(a){if((a.t&6)!=0)bY(a);return a.c}var -Cc=Math.log2&&Math.log2(1.1235582092889474E+307)==1020;function -Ca(a){if(Cc)return Math.floor(Math.log2(a));var -b=0;if(a==0)return-Infinity;if(a>=1)while(a>=2){a/=2;b++}else -while(a<1){a*=2;b--}return b}function -f3(c){var -a=new(u.Float32Array)(1);a[0]=c;var -b=new(u.Int32Array)(a.buffer);return b[0]|0}var -kh=Math.pow(2,-24);function -ez(a){throw a}function -cE(){ez(X.Division_by_zero)}function -o(b,c,a){this.lo=b&bx;this.mi=c&bx;this.hi=a&a$}o.prototype.caml_custom="_j";o.prototype.copy=function(){return new -o(this.lo,this.mi,this.hi)};o.prototype.ucompare=function(a){if(this.hi>a.hi)return 1;if(this.hia.mi)return 1;if(this.mia.lo)return 1;if(this.loc)return 1;if(ba.mi)return 1;if(this.mia.lo)return 1;if(this.lo>24),c=-this.hi+(b>>24);return new -o(a,b,c)};o.prototype.add=function(a){var -b=this.lo+a.lo,c=this.mi+a.mi+(b>>24),d=this.hi+a.hi+(c>>24);return new -o(b,c,d)};o.prototype.sub=function(a){var -b=this.lo-a.lo,c=this.mi-a.mi+(b>>24),d=this.hi-a.hi+(c>>24);return new -o(b,c,d)};o.prototype.mul=function(a){var -b=this.lo*a.lo,c=(b*kh|0)+this.mi*a.lo+this.lo*a.mi,d=(c*kh|0)+this.hi*a.lo+this.mi*a.mi+this.lo*a.hi;return new -o(b,c,d)};o.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0};o.prototype.isNeg=function(){return this.hi<<16<0};o.prototype.and=function(a){return new -o(this.lo&a.lo,this.mi&a.mi,this.hi&a.hi)};o.prototype.or=function(a){return new -o(this.lo|a.lo,this.mi|a.mi,this.hi|a.hi)};o.prototype.xor=function(a){return new -o(this.lo^a.lo,this.mi^a.mi,this.hi^a.hi)};o.prototype.shift_left=function(a){a=a&63;if(a==0)return this;if(a<24)return new -o(this.lo<>24-a,this.hi<>24-a);if(a<48)return new -o(0,this.lo<>48-a);return new -o(0,0,this.lo<>a|this.mi<<24-a,this.mi>>a|this.hi<<24-a,this.hi>>a);if(a<48)return new -o(this.mi>>a-24|this.hi<<48-a,this.hi>>a-24,0);return new -o(this.hi>>a-48,0,0)};o.prototype.shift_right=function(a){a=a&63;if(a==0)return this;var -c=this.hi<<16>>16;if(a<24)return new -o(this.lo>>a|this.mi<<24-a,this.mi>>a|c<<24-a,this.hi<<16>>a>>>16);var -b=this.hi<<16>>31;if(a<48)return new -o(this.mi>>a-24|this.hi<<48-a,this.hi<<16>>a-24>>16,b&a$);return new -o(this.hi<<16>>a-32,b,b)};o.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23;this.mi=(this.mi<<1|this.lo>>23)&bx;this.lo=this.lo<<1&bx};o.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&bx;this.mi=(this.mi>>>1|this.hi<<23)&bx;this.hi=this.hi>>>1};o.prototype.udivmod=function(e){var -c=0,b=this.copy(),a=e.copy(),d=new -o(0,0,0);while(b.ucompare(a)>0){c++;a.lsl1()}while(c>=0){c--;d.lsl1();if(b.ucompare(a)>=0){d.lo++;b=b.sub(a)}a.lsr1()}return{quotient:d,modulus:b}};o.prototype.div=function(a){var -b=this;if(a.isZero())cE();var -d=b.hi^a.hi;if(b.hi&a7)b=b.neg();if(a.hi&a7)a=a.neg();var -c=b.udivmod(a).quotient;if(d&a7)c=c.neg();return c};o.prototype.mod=function(b){var -a=this;if(b.isZero())cE();var -d=a.hi;if(a.hi&a7)a=a.neg();if(b.hi&a7)b=b.neg();var -c=a.udivmod(b).modulus;if(d&a7)c=c.neg();return c};o.prototype.toInt=function(){return this.lo|this.mi<<24};o.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo};o.prototype.toArray=function(){return[this.hi>>8,this.hi&aM,this.mi>>16,this.mi>>8&aM,this.mi&aM,this.lo>>16,this.lo>>8&aM,this.lo&aM]};o.prototype.lo32=function(){return this.lo|(this.mi&aM)<<24};o.prototype.hi32=function(){return this.mi>>>8&a$|this.hi<<16};function -bZ(b,c,a){return new -o(b,c,a)}function -es(a){if(!isFinite(a)){if(isNaN(a))return bZ(1,0,hO);return a>0?bZ(0,0,hO):bZ(0,0,0xfff0)}var -f=a==0&&1/a==-Infinity?a7:a>=0?0:a7;if(f)a=-a;var -b=Ca(a)+bd;if(b<=0){b=0;a/=Math.pow(2,-jr)}else{a/=Math.pow(2,b-jV);if(a<16){a*=2;b-=1}if(b==0)a/=2}var -d=Math.pow(2,24),c=a|0;a=(a-c)*d;var -e=a|0;a=(a-e)*d;var -g=a|0;c=c&fE|f|b<<4;return bZ(g,e,c)}function -dn(a){return a.toArray()}function -j6(c,b,g){c.write(32,b.dims.length);c.write(32,b.kind|b.layout<<8);if(b.caml_custom==ec)for(var -a=0;a>4;if(c==2047)return(f|g|b&fE)==0?b&a7?-Infinity:Infinity:NaN;var -e=Math.pow(2,-24),a=(f*e+g)*e+(b&fE);if(c>0){a+=16;a*=Math.pow(2,c-jV)}else -a*=Math.pow(2,-jr);if(b&a7)a=-a;return a}function -fY(b){var -d=b.length,c=1;for(var -a=0;a>>24&aM|(a&a$)<<8,a>>>16&a$)}function -f5(a){return a.hi32()}function -f6(a){return a.lo32()}var -Bj=ec;function -bU(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}bU.prototype.caml_custom=Bj;bU.prototype.offset=function(b){var -c=0;if(typeof -b==="number")b=[b];if(!(b -instanceof -Array))Y("bigarray.js: invalid offset");if(this.dims.length!=b.length)Y("Bigarray.get/set: bad number of dimensions");if(this.layout==0)for(var -a=0;a=this.dims[a])dj();c=c*this.dims[a]+b[a]}else -for(var -a=this.dims.length-1;a>=0;a--){if(b[a]<1||b[a]>this.dims[a])dj();c=c*this.dims[a]+(b[a]-1)}return c};bU.prototype.get=function(a){switch(this.kind){case -7:var -d=this.data[a*2+0],b=this.data[a*2+1];return kg(d,b);case -10:case -11:var -e=this.data[a*2+0],c=this.data[a*2+1];return[c8,e,c];default:return this.data[a]}};bU.prototype.set=function(a,b){switch(this.kind){case -7:this.data[a*2+0]=f6(b);this.data[a*2+1]=f5(b);break;case -10:case -11:this.data[a*2+0]=b[1];this.data[a*2+1]=b[2];break;default:this.data[a]=b;break}return 0};bU.prototype.fill=function(b){switch(this.kind){case -7:var -c=f6(b),e=f5(b);if(c==e)this.data.fill(c);else -for(var -a=0;ad)return 1;if(c!=d){if(!g)return NaN;if(c==c)return 1;if(d==d)return-1}}break;case -7:for(var -a=0;ab.data[a+1])return 1;if(this.data[a]>>>0>>0)return-1;if(this.data[a]>>>0>b.data[a]>>>0)return 1}break;case -2:case -3:case -4:case -5:case -6:case -8:case -9:case -12:for(var -a=0;ab.data[a])return 1}break}return 0};function -cz(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}cz.prototype=new -bU();cz.prototype.offset=function(a){if(typeof -a!=="number")if(a -instanceof -Array&&a.length==1)a=a[0];else -Y("Ml_Bigarray_c_1_1.offset");if(a<0||a>=this.dims[0])dj();return a};cz.prototype.get=function(a){return this.data[a]};cz.prototype.set=function(a,b){this.data[a]=b;return 0};cz.prototype.fill=function(a){this.data.fill(a);return 0};function -j2(c,d,a,b){var -e=j4(c);if(fY(a)*e!=b.length)Y("length doesn't match dims");if(d==0&&a.length==1&&e==1)return new -cz(c,d,a,b);return new -bU(c,d,a,b)}function -ca(a){ga(X.Failure,a)}function -j3(b,v,r){var -i=b.read32s();if(i<0||i>16)ca("input_value: wrong number of bigarray dimensions");var -p=b.read32s(),j=p&aM,o=p>>8&1,h=[];if(r==ec)for(var -a=0;a>>32-15;a=bh(a,0x1b873593);b^=a;b=b<<13|b>>>32-13;return(b+(b<<2)|0)+(0xe6546b64|0)|0}function -Bt(a,b){a=al(a,f6(b));a=al(a,f5(b));return a}function -f1(a,b){return Bt(a,es(b))}function -j5(c){var -b=fY(c.dims),d=0;switch(c.kind){case -2:case -3:case -12:if(b>b$)b=b$;var -e=0,a=0;for(a=0;a+4<=c.data.length;a+=4){e=c.data[a+0]|c.data[a+1]<<8|c.data[a+2]<<16|c.data[a+3]<<24;d=al(d,e)}e=0;switch(b&3){case -3:e=c.data[a+2]<<16;case -2:e|=c.data[a+1]<<8;case -1:e|=c.data[a+0];d=al(d,e)}break;case -4:case -5:if(b>bz)b=bz;var -e=0,a=0;for(a=0;a+2<=c.data.length;a+=2){e=c.data[a+0]|c.data[a+1]<<16;d=al(d,e)}if((b&1)!=0)d=al(d,c.data[a]);break;case -6:if(b>64)b=64;for(var -a=0;a64)b=64;for(var -a=0;a32)b=32;b*=2;for(var -a=0;a64)b=64;for(var -a=0;a32)b=32;for(var -a=0;a0?b(c,f,e):b(f,c,e);if(e&&a!=a)return d;if(+a!=+a)return+a;if((a|0)!=0)return a|0}return d}function -dp(a){return a -instanceof -bA}function -ev(a){return dp(a)}function -kb(a){if(typeof -a==="number")return aT;else -if(dp(a))return fI;else -if(ev(a))return 1252;else -if(a -instanceof -Array&&a[0]===a[0]>>>0&&a[0]<=cv){var -b=a[0]|0;return b==c8?0:b}else -if(a -instanceof -String)return h0;else -if(typeof -a=="string")return h0;else -if(a -instanceof -Number)return aT;else -if(a&&a.caml_custom)return fy;else -if(a&&a.compare)return 1256;else -if(typeof -a=="function")return 1247;else -if(typeof -a=="symbol")return 1251;return 1001}function -eu(a,b){if(ab.c?1:0}function -gb(a,b){return j8(a,b)}function -cA(a,b,d){var -e=[];for(;;){if(!(d&&a===b)){var -f=kb(a);if(f==d3){a=a[1];continue}var -g=kb(b);if(g==d3){b=b[1];continue}if(f!==g){if(f==aT){if(g==fy)return ka(a,b,-1,d);return-1}if(g==aT){if(f==fy)return ka(b,a,1,d);return 1}return fb)return 1;if(a!=b){if(!d)return NaN;if(a==a)return 1;if(b==b)return-1}break;case -1001:if(ab)return 1;if(a!=b){if(!d)return NaN;if(a==a)return 1;if(b==b)return-1}break;case -1251:if(a!==b){if(!d)return NaN;return 1}break;case -1252:var -a=a1(a),b=a1(b);if(a!==b){if(ab)return 1}break;case -12520:var -a=a.toString(),b=b.toString();if(a!==b){if(ab)return 1}break;case -246:case -254:default:if(a.length!=b.length)return a.length1)e.push(a,b,1);break}}if(e.length==0)return 0;var -h=e.pop();b=e.pop();a=e.pop();if(h+10)if(c==0&&(b>=a.l||a.t==2&&b>=a.c.length))if(d==0){a.c=l;a.t=2}else{a.c=cG(b,String.fromCharCode(d));a.t=b==a.l?0:2}else{if(a.t!=4)ep(a);for(b+=c;c31)Y("format_int: format too long");var -a={justify:bq,signstyle:ar,filler:bt,alternate:false,base:0,signedconv:false,width:0,uppercase:false,sign:1,prec:-1,conv:"f"};for(var -c=0;c=0&&b<=9){a.width=a.width*10+b;c++}c--;break;case".":a.prec=0;c++;while(b=d.charCodeAt(c)-48,b>=0&&b<=9){a.prec=a.prec*10+b;c++}c--;case"d":case"i":a.signedconv=true;case"u":a.base=10;break;case"x":a.base=16;break;case"X":a.base=16;a.uppercase=true;break;case"o":a.base=8;break;case"e":case"f":case"g":a.signedconv=true;a.conv=b;break;case"E":case"F":case"G":a.signedconv=true;a.uppercase=true;a.conv=b.toLowerCase();break}}return a}function -f0(b,f){if(b.uppercase)f=f.toUpperCase();var -e=f.length;if(b.signedconv&&(b.sign<0||b.signstyle!=ar))e++;if(b.alternate){if(b.base==8)e+=1;if(b.base==16)e+=2}var -c=l;if(b.justify==bq&&b.filler==bt)for(var -d=e;d20){c-=20;a/=Math.pow(10,c);a+=new -Array(c+1).join(B);if(b>0)a=a+bs+new -Array(b+1).join(B);return a}else -return a.toFixed(b)}}var -a,e=f$(i),d=e.prec<0?6:e.prec;if(c<0||c==0&&1/c==-Infinity){e.sign=-1;c=-c}if(isNaN(c)){a=fO;e.filler=bt}else -if(!isFinite(c)){a=jR;e.filler=bt}else -switch(e.conv){case"e":var -a=c.toExponential(d),b=a.length;if(a.charAt(b-3)==em)a=a.slice(0,b-1)+B+a.slice(b-1);break;case"f":a=j(c,d);break;case"g":d=d?d:1;a=c.toExponential(d-1);var -h=a.indexOf(em),g=+a.slice(h+1);if(g<-4||c>=1e21||c.toFixed(0).length>d){var -b=h-1;while(a.charAt(b)==B)b--;if(a.charAt(b)==bs)b--;a=a.slice(0,b+1)+a.slice(h);b=a.length;if(a.charAt(b-3)==em)a=a.slice(0,b-1)+B+a.slice(b-1);break}else{var -f=d;if(g<0){f-=g+1;a=c.toFixed(f)}else -while(a=c.toFixed(f),a.length>d+1)f--;if(f){var -b=a.length-1;while(a.charAt(b)==B)b--;if(a.charAt(b)==bs)b--;a=a.slice(0,b+1)}}break}return f0(e,a)}function -eq(e,c){if(a1(e)==jE)return a(l+c);var -b=f$(e);if(c<0)if(b.signedconv){b.sign=-1;c=-c}else -c>>>=0;var -d=c.toString(b.base);if(b.prec>=0){b.filler=bt;var -f=b.prec-d.length;if(f>0)d=cG(f,B)+d}return f0(b,d)}var -km=0;function -ae(){return km++}function -aO(a){return a.toUtf16()}if(u.process&&u.process.cwd)var -dl=u.process.cwd().replace(/\\/g,bv);else -var -dl="/static";if(dl.slice(-1)!==bv)dl+=bv;function -BL(a){a=aO(a);if(a.charCodeAt(0)!=47)a=dl+a;var -d=a.split(bv),b=[];for(var -c=0;c1)b.pop();break;case".":break;case"":if(b.length==0)b.push(l);break;default:b.push(d[c]);break}b.orig=a;return b}function -Bk(a){return new -bA(4,a,a.length)}function -B6(e){for(var -f=l,b=f,a,h,c=0,g=e.length;cfu){b.substr(0,1);f+=b;b=l;f+=e.slice(c,d)}else -b+=e.slice(c,d);if(d==g)break;c=d}if(a>6);b+=String.fromCharCode(aV|a&cq)}else -if(a<0xd800||a>=jb)b+=String.fromCharCode(hU|a>>12,aV|a>>6&cq,aV|a&cq);else -if(a>=0xdbff||c+1==g||(h=e.charCodeAt(c+1))jb)b+="\xef\xbf\xbd";else{c++;a=(a<<10)+h-0x35fdc00;b+=String.fromCharCode(iD|a>>18,aV|a>>12&cq,aV|a>>6&cq,aV|a&cq)}if(b.length>dd){b.substr(0,1);f+=b;b=l}}return f+b}function -Bl(a){var -b=9;if(!kp(a))b=8,a=B6(a);return new -bA(b,a,a.length)}function -a2(a){return Bl(a)}function -P(a){ga(X.Sys_error,a)}function -BV(a){a=a1(a);P(a+": No such file or directory")}function -aP(a){return a.l}function -j0(){}function -ak(a){this.data=a}ak.prototype=new -j0();ak.prototype.truncate=function(a){var -b=this.data;this.data=W(a|0);bV(b,0,this.data,0,a)};ak.prototype.length=function(){return aP(this.data)};ak.prototype.write=function(b,d,g,a){var -c=this.length();if(b+a>=c){var -e=W(b+a),f=this.data;this.data=e;bV(f,0,this.data,0,c)}bW(d,g,this.data,b,a);return 0};ak.prototype.read=function(c,a,d,b){var -e=this.length();bV(this.data,c,a,d,b);return 0};ak.prototype.read_one=function(a){return bX(this.data,a)};ak.prototype.close=function(){};ak.prototype.constructor=ak;function -aW(b,a){this.content={};this.root=b;this.lookupFun=a}aW.prototype.nm=function(a){return this.root+a};aW.prototype.lookup=function(b){if(!this.content[b]&&this.lookupFun){var -c=this.lookupFun(a(this.root),a(b));if(c!==0)this.content[b]=new -ak(bB(c[1]))}};aW.prototype.exists=function(a){if(a==l)return 1;var -c=a+bv,d=new -RegExp(fz+c);for(var -b -in -this.content)if(b.match(d))return 1;this.lookup(a);return this.content[a]?1:0};aW.prototype.readdir=function(c){var -f=c==l?l:c+bv,g=new -RegExp(fz+f+iM),d={},b=[];for(var -e -in -this.content){var -a=e.match(g);if(a&&!d[a[1]]){d[a[1]]=true;b.push(a[1])}}return b};aW.prototype.is_dir=function(a){var -d=a==l?l:a+bv,e=new -RegExp(fz+d+iM),f=[];for(var -c -in -this.content){var -b=c.match(e);if(b)return 1}return 0};aW.prototype.unlink=function(a){var -b=this.content[a]?true:false;delete -this.content[a];return b};aW.prototype.open=function(a,b){if(b.rdonly&&b.wronly)P(this.nm(a)+h5);if(b.text&&b.binary)P(this.nm(a)+ip);this.lookup(a);if(this.content[a]){if(this.is_dir(a))P(this.nm(a)+" : is a directory");if(b.create&&b.excl)P(this.nm(a)+h3);var -c=this.content[a];if(b.truncate)c.truncate();return c}else -if(b.create){this.content[a]=new -ak(W(0));return this.content[a]}else -BV(this.nm(a))};aW.prototype.register=function(b,a){if(this.content[b])P(this.nm(b)+h3);if(dp(a))this.content[b]=new -ak(a);if(ev(a))this.content[b]=new -ak(bB(a));else -if(a -instanceof -Array)this.content[b]=new -ak(Bk(a));else -if(typeof -a==="string")this.content[b]=new -ak(j_(a));else -if(a.toString){var -c=bB(a2(a.toString()));this.content[b]=new -ak(c)}else -P(this.nm(b)+" : registering file with invalid content type")};aW.prototype.constructor=aW;function -z(a){return aP(a)}function -cH(b,a){return dk(b,a)}function -Bg(d){var -c=z(d),b=new -Array(c),a=0;for(;a>1|1;if(h=0)}function -f2(d,b){var -e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b.charCodeAt(a)|b.charCodeAt(a+1)<<8|b.charCodeAt(a+2)<<16|b.charCodeAt(a+3)<<24;d=al(d,c)}c=0;switch(e&3){case -3:c=b.charCodeAt(a+2)<<16;case -2:c|=b.charCodeAt(a+1)<<8;case -1:c|=b.charCodeAt(a);d=al(d,c)}d^=e;return d}function -Bu(a,b){return f2(a,a1(b))}function -Br(d,b){var -e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b[a]|b[a+1]<<8|b[a+2]<<16|b[a+3]<<24;d=al(d,c)}c=0;switch(e&3){case -3:c=b[a+2]<<16;case -2:c|=b[a+1]<<8;case -1:c|=b[a];d=al(d,c)}d^=e;return d}function -Bq(a,b){switch(b.t&6){default:bY(b);case -0:a=f2(a,b.c);break;case -2:a=Br(a,b.c)}return a}function -Bs(a){a^=a>>>16;a=bh(a,0x85ebca6b|0);a^=a>>>13;a=bh(a,0xc2b2ae35|0);a^=a>>>16;return a}function -Bp(j,l,n,m){var -f,g,h,d,c,b,a,e,i;d=l;if(d<0||d>b$)d=b$;c=j;b=n;f=[m];g=0;h=1;while(g0){a=f[g++];if(a&&a.caml_custom){if(cB[a.caml_custom]&&cB[a.caml_custom].hash){var -k=cB[a.caml_custom].hash(a);b=al(b,k);c--}}else -if(a -instanceof -Array&&a[0]===(a[0]|0))switch(a[0]){case -248:b=al(b,a[2]);c--;break;case -250:f[--g]=a[1];break;default:var -o=a.length-1<<10|a[0];b=al(b,o);for(e=1,i=a.length;e=d)break;f[h++]=a[e]}break}else -if(dp(a)){b=Bq(b,a);c--}else -if(ev(a)){b=Bu(b,a);c--}else -if(typeof -a==="string"){b=f2(b,a);c--}else -if(a===(a|0)){b=al(b,a+a+1);c--}else -if(a===+a){b=f1(b,a);c--}}b=Bs(b);return b&0x3FFFFFFF}function -Bv(a,c,k){if(!isFinite(a)){if(isNaN(a))return a2(fO);return a2(a>0?jP:"-infinity")}var -i=a==0&&1/a==-Infinity?1:a>=0?0:1;if(i)a=-a;var -d=0;if(a==0);else -if(a<1)while(a<1&&d>-1022){a*=2;d--}else -while(a>=2){a/=2;d++}var -j=d<0?l:bq,e=l;if(i)e=ar;else -switch(k){case -43:e=bq;break;case -32:e=bt;break;default:break}if(c>=0&&c<13){var -g=Math.pow(2,c*4);a=Math.round(a*g)/g}var -b=a.toString(16);if(c>=0){var -h=b.indexOf(bs);if(h<0)b+=bs+cG(c,B);else{var -f=h+1+c;if(b.length>24&bx,a>>31&a$)}function -BG(a){return a.toInt()}function -BA(a){return+a.isNeg()}function -BD(a){return a.neg()}function -By(g,c){var -a=f$(g);if(a.signedconv&&BA(c)){a.sign=-1;c=BD(c)}var -b=l,h=BE(a.base),f="0123456789abcdef";do{var -e=c.udivmod(h);c=e.quotient;b=f.charAt(BG(e.modulus))+b}while(!BB(c));if(a.prec>=0){a.filler=bt;var -d=a.prec-b.length;if(d>0)b=cG(d,B)+b}return f0(a,b)}function -BF(a,b){return a.or(b)}function -et(a){return a.toFloat()}function -BI(){return typeof -module!=="undefined"&&module&&module.exports?module.exports:u}function -cb(a){return a.slice(1)}function -BJ(c){var -d=c.length,b=new -Array(d+1);b[0]=0;for(var -a=0;a0){var -c=new -Array(b);for(var -a=0;abd){a-=bd;b*=Math.pow(2,bd);if(a>bd){a-=bd;b*=Math.pow(2,bd)}}if(a<-bd){a+=bd;b*=Math.pow(2,-bd)}b*=Math.pow(2,a);return b}function -BK(a,b){return+(cA(a,b,false)<=0)}function -f9(a,b){return+(cA(a,b,false)<0)}function -bD(a,d){if(a<0)dj();var -a=a+1|0,b=new -Array(a);b[0]=0;for(var -c=1;c>>32-b,c)}function -g(c,b,d,e,h,f,g){return a(b&d|~b&e,c,b,h,f,g)}function -h(d,b,e,c,h,f,g){return a(b&c|e&~c,d,b,h,f,g)}function -i(c,b,d,e,h,f,g){return a(b^d^e,c,b,h,f,g)}function -j(c,b,d,e,h,f,g){return a(d^(b|~e),c,b,h,f,g)}function -k(f,n){var -e=n;f[e>>2]|=aV<<8*(e&3);for(e=(e&~0x3)+8;(e&0x3F)<60;e+=4)f[(e>>2)-1]=0;f[(e>>2)-1]=n<<3;f[e>>2]=n>>29&0x1FFFFFFF;var -k=[0x67452301,0xEFCDAB89,0x98BADCFE,0x10325476];for(e=0;e>8*m&0xFF;return o}return function(h,g,f){var -e=[];switch(h.t&6){default:bY(h);case -0:var -d=h.c;for(var -a=0;a>2]=d.charCodeAt(b)|d.charCodeAt(b+1)<<8|d.charCodeAt(b+2)<<16|d.charCodeAt(b+3)<<24}for(;a>2]|=d.charCodeAt(a+g)<<8*(a&3);break;case -4:var -c=h.c;for(var -a=0;a>2]=c[b]|c[b+1]<<8|c[b+2]<<16|c[b+3]<<24}for(;a>2]|=c[a+g]<<8*(a&3)}return B1(k(e,f))}}();function -BN(c,b,a){return BM(bB(c),b,a)}var -bg=new -Array();function -f_(c){var -a=bg[c];if(!a.opened)P("Cannot flush a closed channel");if(!a.buffer||a.buffer==l)return 0;if(a.fd&&X.fds[a.fd]&&X.fds[a.fd].output){var -b=X.fds[a.fd].output;switch(b.length){case -2:b(c,a.buffer);break;default:b(a.buffer)}}a.buffer=l;return 0}function -ko(e,f){var -b=bg[e],d=a(f),c=z(d);b.file.write(b.offset,d,0,c);b.offset+=c;return 0}function -B_(a){var -a=gd(a),b=u;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stderr.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var -c=b.console;c&&c.error&&c.error(a)}}function -B$(a){var -a=gd(a),b=u;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stdout.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var -c=b.console;c&&c.log&&c.log(a)}}function -eC(c,e,d,a){if(X.fds===undefined)X.fds=new -Array();a=a?a:{};var -b={};b.file=d;b.offset=a.append?d.length():0;b.flags=a;b.output=e;X.fds[c]=b;if(!X.fd_last_idx||c>X.fd_last_idx)X.fd_last_idx=c;return c}function -Cp(c,b,g){var -a={};while(b){switch(b[1]){case -0:a.rdonly=1;break;case -1:a.wronly=1;break;case -2:a.append=1;break;case -3:a.create=1;break;case -4:a.truncate=1;break;case -5:a.excl=1;break;case -6:a.binary=1;break;case -7:a.text=1;break;case -8:a.nonblock=1;break}b=b[2]}if(a.rdonly&&a.wronly)P(a1(c)+h5);if(a.text&&a.binary)P(a1(c)+ip);var -d=ku(c),e=d.device.open(d.rest,a),f=X.fd_last_idx?X.fd_last_idx:0;return eC(f+1,ko,e,a)}eC(0,ko,new -ak(W(0)));eC(1,B$,new -ak(W(0)));eC(2,B_,new -ak(W(0)));function -BO(c){var -b=X.fds[c];if(b.flags.wronly)P(iP+c+" is writeonly");var -a={file:b.file,offset:b.offset,fd:c,opened:true,out:false,refill:null};bg[a.fd]=a;return a.fd}function -ki(c){var -b=X.fds[c];if(b.flags.rdonly)P(iP+c+" is readonly");var -a={file:b.file,offset:b.offset,fd:c,opened:true,out:true,buffer:l};bg[a.fd]=a;return a.fd}function -BP(){var -b=0;for(var -a=0;a>>0)return a[0];else -if(dp(a))return fI;else -if(ev(a))return fI;else -if(a -instanceof -Function||typeof -a=="function")return 247;else -if(a&&a.caml_custom)return cv;else -return aT}function -aY(b,c,a){if(a&&u.toplevelReloc)b=u.toplevelReloc(a);X[b+1]=c;if(a)X[a]=c}var -kj={};function -BY(a,b){kj[a1(a)]=b;return 0}function -BZ(a){a[2]=km++;return a}function -gc(a,b){return j9(a,b)}function -B0(){Y(fL)}function -t(b,a){if(a>>>0>=z(b))B0();return cH(b,a)}function -Z(a,b){return 1-gc(a,b)}function -B2(){return[0,a("js_of_ocaml")]}function -B3(){return 0x7FFFFFFF/4|0}function -B4(){return[0,a("Unix"),32,0]}function -BW(){ez(X.Not_found)}function -eB(c){var -a=u,b=aO(c);if(a.process&&a.process.env&&a.process.env[b]!=undefined)return a2(a.process.env[b]);if(u.jsoo_static_env&&u.jsoo_static_env[b])return a2(u.jsoo_static_env[b]);BW()}function -B5(){var -a=new -Date().getTime(),b=a^iJ*Math.random();return[0,b]}function -dq(a){var -b=1;while(a&&a.joo_tramp){a=a.joo_tramp.apply(null,a.joo_args);b++}return a}function -af(b,a){return{joo_tramp:b,joo_args:a}}function -kn(a){return a}function -ey(a){return kj[a]}function -d(a){if(a -instanceof -Array)return a;if(u.RangeError&&a -instanceof -u.RangeError&&a.message&&a.message.match(/maximum call stack/i))return kn(X.Stack_overflow);if(u.InternalError&&a -instanceof -u.InternalError&&a.message&&a.message.match(/too much recursion/i))return kn(X.Stack_overflow);if(a -instanceof -u.Error&&ey(fx))return[0,ey(fx),a];return[0,X.Failure,a2(String(a))]}var -m=function(A){"use strict";var -f=b9,ab=7,t=9007199254740992,J=q(t),O="0123456789abcdefghijklmnopqrstuvwxyz",g=u.BigInt,H=typeof -g==="function";function -d(a,b,c,f){if(typeof -a==="undefined")return d[0];if(typeof -b!=="undefined")return+b===10&&!c?e(a):af(a,b,c,f);return e(a)}function -a(b,a){this.value=b;this.sign=a;this.isSmall=false;this.caml_custom=eg}a.prototype=Object.create(d.prototype);function -b(a){this.value=a;this.sign=a<0;this.isSmall=true;this.caml_custom=eg}b.prototype=Object.create(d.prototype);function -c(a){this.value=a;this.caml_custom=eg}c.prototype=Object.create(d.prototype);function -p(a){return-t0)return Math.floor(a);return Math.ceil(a)}function -P(g,h){var -i=g.length,j=h.length,e=new -Array(i),b=0,d=f,c,a;for(a=0;a=d?1:0;e[a]=c-b*d}while(a0)e.push(b);return e}function -v(a,b){if(a.length>=b.length)return P(a,b);return P(b,a)}function -C(g,a){var -h=g.length,d=new -Array(h),c=f,e,b;for(b=0;b0){d[b++]=a%c;a=Math.floor(a/c)}return d}a.prototype.add=function(f){var -b=e(f);if(this.sign!==b.sign)return this.subtract(b.negate());var -c=this.value,d=b.value;if(b.isSmall)return new -a(C(c,Math.abs(d)),this.sign);return new -a(v(c,d),this.sign)};a.prototype.plus=a.prototype.add;b.prototype.add=function(g){var -f=e(g),c=this.value;if(c<0!==f.sign)return this.subtract(f.negate());var -d=f.value;if(f.isSmall){if(p(c+d))return new -b(c+d);d=q(Math.abs(d))}return new -a(C(d,Math.abs(c)),c<0)};b.prototype.plus=b.prototype.add;c.prototype.add=function(a){return new -c(this.value+e(a).value)};c.prototype.plus=c.prototype.add;function -y(d,h){var -g=d.length,i=h.length,c=new -Array(g),e=0,j=f,a,b;for(a=0;a=0)c=y(e,f);else{c=y(f,e);d=!d}c=n(c);if(typeof -c==="number"){if(d)c=-c;return new -b(c)}return new -a(c,d)}function -G(h,l,k){var -j=h.length,c=new -Array(j),i=-l,g=f,e,d;for(e=0;e=0)};b.prototype.minus=b.prototype.subtract;c.prototype.subtract=function(a){return new -c(this.value-e(a).value)};c.prototype.minus=c.prototype.subtract;a.prototype.negate=function(){return new -a(this.value,!this.sign)};b.prototype.negate=function(){var -c=this.sign,a=new -b(-this.value);a.sign=!c;return a};c.prototype.negate=function(){return new -c(-this.value)};a.prototype.abs=function(){return new -a(this.value,false)};b.prototype.abs=function(){return new -b(Math.abs(this.value))};c.prototype.abs=function(){return new -c(this.value>=0?this.value:-this.value)};function -N(g,j){var -i=g.length,l=j.length,n=i+l,c=D(n),m=f,e,d,a,h,k;for(a=0;a0){e[b++]=a%c;a=Math.floor(a/c)}return e}function -Y(c,b){var -a=[];while(b-->0)a.push(0);return a.concat(c)}function -E(b,c){var -a=Math.max(b.length,c.length);if(a<=30)return N(b,c);a=Math.ceil(a/2);var -f=b.slice(a),d=b.slice(0,a),i=c.slice(a),h=c.slice(0,a),e=E(d,h),g=E(f,i),k=E(v(d,f),v(h,i)),j=v(v(e,Y(y(y(k,e),g),a)),Y(g,2*a));r(j);return j}function -ak(a,b){return-(iw*a)-iw*b+0.000015*a*b>0}a.prototype.multiply=function(j){var -h=e(j),c=this.value,b=h.value,i=this.sign!==h.sign,g;if(h.isSmall){if(b===0)return d[0];if(b===1)return this;if(b===-1)return this.negate();g=Math.abs(b);if(g=0;d--){j=g-1;if(b[d+h]!==l)j=Math.floor((b[d+h]*g+b[d+h-1])/l);c=0;e=0;m=i.length;for(a=0;ah)d=(d+1)*i;c=Math.ceil(d/m);do{j=w(b,c);if(o(j,a)<=0)break;c--}while(c);e.push(c);a=y(a,j)}e.reverse();return[n(e),n(a)]}function -Q(i,e){var -g=i.length,h=D(g),j=f,a,d,b,c;b=0;for(a=g-1;a>=0;--a){c=b*j+i[a];d=s(c/e);b=c-d*e;h[a]=d|0}return[h,b|0]}function -i(h,w){var -m,j=e(w);if(H)return[new -c(h.value/j.value),new -c(h.value%j.value)];var -l=h.value,i=j.value,g;if(i===0)throw new -Error("Cannot divide by zero");if(h.isSmall){if(j.isSmall)return[new -b(s(l/i)),new -b(l%i)];return[d[0],h]}if(j.isSmall){if(i===1)return[h,d[0]];if(i==-1)return[h.negate(),d[0]];var -r=Math.abs(i);if(rc.length?1:-1;for(var -a=b.length-1;a>=0;a--)if(b[a]!==c[a])return b[a]>c[a]?1:-1;return 0}a.prototype.compareAbs=function(d){var -a=e(d),b=this.value,c=a.value;if(a.isSmall)return 1;return o(b,c)};b.prototype.compareAbs=function(d){var -c=e(d),b=Math.abs(this.value),a=c.value;if(c.isSmall){a=Math.abs(a);return b===a?0:b>a?1:-1}return-1};c.prototype.compareAbs=function(c){var -a=this.value,b=e(c).value;a=a>=0?a:-a;b=b>=0?b:-b;return a===b?0:a>b?1:-1};a.prototype.compare=function(b){if(b===Infinity)return-1;if(b===-Infinity)return 1;var -a=e(b),c=this.value,d=a.value;if(this.sign!==a.sign)return a.sign?1:-1;if(a.isSmall)return this.sign?-1:1;return o(c,d)*(this.sign?-1:1)};a.prototype.compareTo=a.prototype.compare;b.prototype.compare=function(c){if(c===Infinity)return-1;if(c===-Infinity)return 1;var -b=e(c),a=this.value,d=b.value;if(b.isSmall)return a==d?0:a>d?1:-1;if(a<0!==b.sign)return a<0?-1:1;return a<0?1:-1};b.prototype.compareTo=b.prototype.compare;c.prototype.compare=function(a){if(a===Infinity)return-1;if(a===-Infinity)return 1;var -b=this.value,c=e(a).value;return b===c?0:b>c?1:-1};c.prototype.compareTo=c.prototype.compare;a.prototype.equals=function(a){return this.compare(a)===0};c.prototype.eq=c.prototype.equals=b.prototype.eq=b.prototype.equals=a.prototype.eq=a.prototype.equals;a.prototype.notEquals=function(a){return this.compare(a)!==0};c.prototype.neq=c.prototype.notEquals=b.prototype.neq=b.prototype.notEquals=a.prototype.neq=a.prototype.notEquals;a.prototype.greater=function(a){return this.compare(a)>0};c.prototype.gt=c.prototype.greater=b.prototype.gt=b.prototype.greater=a.prototype.gt=a.prototype.greater;a.prototype.lesser=function(a){return this.compare(a)<0};c.prototype.lt=c.prototype.lesser=b.prototype.lt=b.prototype.lesser=a.prototype.lt=a.prototype.lesser;a.prototype.greaterOrEquals=function(a){return this.compare(a)>=0};c.prototype.geq=c.prototype.greaterOrEquals=b.prototype.geq=b.prototype.greaterOrEquals=a.prototype.geq=a.prototype.greaterOrEquals;a.prototype.lesserOrEquals=function(a){return this.compare(a)<=0};c.prototype.leq=c.prototype.lesserOrEquals=b.prototype.leq=b.prototype.lesserOrEquals=a.prototype.leq=a.prototype.lesserOrEquals;a.prototype.isEven=function(){return(this.value[0]&1)===0};b.prototype.isEven=function(){return(this.value&1)===0};c.prototype.isEven=function(){return(this.value&g(1))===g(0)};a.prototype.isOdd=function(){return(this.value[0]&1)===1};b.prototype.isOdd=function(){return(this.value&1)===1};c.prototype.isOdd=function(){return(this.value&g(1))===g(1)};a.prototype.isPositive=function(){return!this.sign};b.prototype.isPositive=function(){return this.value>0};c.prototype.isPositive=b.prototype.isPositive;a.prototype.isNegative=function(){return this.sign};b.prototype.isNegative=function(){return this.value<0};c.prototype.isNegative=b.prototype.isNegative;a.prototype.isUnit=function(){return false};b.prototype.isUnit=function(){return Math.abs(this.value)===1};c.prototype.isUnit=function(){return this.abs().value===g(1)};a.prototype.isZero=function(){return false};b.prototype.isZero=function(){return this.value===0};c.prototype.isZero=function(){return this.value===g(0)};a.prototype.isDivisibleBy=function(b){var -a=e(b);if(a.isZero())return false;if(a.isUnit())return true;if(a.compareAbs(2)===0)return this.isEven();return this.mod(a).isZero()};c.prototype.isDivisibleBy=b.prototype.isDivisibleBy=a.prototype.isDivisibleBy;function -T(b){var -a=b.abs();if(a.isUnit())return false;if(a.equals(2)||a.equals(3)||a.equals(5))return true;if(a.isEven()||a.isDivisibleBy(3)||a.isDivisibleBy(5))return false;if(a.lesser(49))return true}function -L(d,e){var -g=d.prev(),c=g,h=0,f,i,b,a;while(c.isEven())c=c.divide(2),h++;next:for(b=0;b-t)return new -b(c-1);return new -a(J,true)};c.prototype.prev=function(){return new -c(this.value-g(1))};var -h=[1];while(2*h[h.length-1]<=f)h.push(2*h[h.length-1]);var -x=h.length,j=h[x-1];function -Z(a){return Math.abs(a)<=f}a.prototype.shiftLeft=function(c){var -a=e(c).toJSNumber();if(!Z(a))throw new -Error(String(a)+ie);if(a<0)return this.shiftRight(-a);var -b=this;if(b.isZero())return b;while(a>=x){b=b.multiply(j);a-=x-1}return b.multiply(h[a])};c.prototype.shiftLeft=b.prototype.shiftLeft=a.prototype.shiftLeft;a.prototype.shiftRight=function(d){var -a,b=e(d).toJSNumber();if(!Z(b))throw new -Error(String(b)+ie);if(b<0)return this.shiftLeft(-b);var -c=this;while(b>=x){if(c.isZero()||c.isNegative()&&c.isUnit())return c;a=i(c,j);c=a[1].isNegative()?a[0].prev():a[0];b-=x-1}a=i(c,h[b]);return a[1].isNegative()?a[0].prev():a[0]};c.prototype.shiftRight=b.prototype.shiftRight=a.prototype.shiftRight;function -K(h,a,r){a=e(a);var -n=h.isNegative(),q=a.isNegative(),l=n?h.not():h,p=q?a.not():a,b=0,c=0,k=null,o=null,f=[];while(!l.isZero()||!p.isZero()){k=i(l,j);b=k[1].toJSNumber();if(n)b=j-1-b;o=i(p,j);c=o[1].toJSNumber();if(q)c=j-1-c;l=k[0];p=o[0];f.push(r(b,c))}var -g=r(n?1:0,q?1:0)!==0?m(-1):m(0);for(var -d=f.length-1;d>=0;d-=1)g=g.multiply(j).add(m(f[d]));return g}a.prototype.not=function(){return this.negate().prev()};c.prototype.not=b.prototype.not=a.prototype.not;a.prototype.and=function(a){return K(this,a,function(a,b){return a&b})};c.prototype.and=b.prototype.and=a.prototype.and;a.prototype.or=function(a){return K(this,a,function(a,b){return a|b})};c.prototype.or=b.prototype.or=a.prototype.or;a.prototype.xor=function(a){return K(this,a,function(a,b){return a^b})};c.prototype.xor=b.prototype.xor=a.prototype.xor;var -I=1<<30,aa=(f&-f)*(f&-f)|I;function -F(c){var -a=c.value,b=typeof -a==="number"?a|I:typeof -a==="bigint"?a|g(I):a[0]+a[1]*f|aa;return b&-b}function -S(b,a){if(a.compareTo(b)<=0){var -f=S(b,a.square(a)),d=f.p,c=f.e,e=d.multiply(a);return e.compareTo(b)<=0?{p:e,e:c*2+1}:{p:d,e:c*2}}return{p:m(1),e:0}}a.prototype.bitLength=function(){var -a=this;if(a.compareTo(m(0))<0)a=a.negate().subtract(m(1));if(a.compareTo(m(0))===0)return m(0);return m(S(a,m(2)).e).add(m(1))};c.prototype.bitLength=b.prototype.bitLength=a.prototype.bitLength;function -U(a,b){a=e(a);b=e(b);return a.greater(b)?a:b}function -M(a,b){a=e(a);b=e(b);return a.lesser(b)?a:b}function -R(a,b){a=e(a).abs();b=e(b).abs();if(a.equals(b))return a;if(a.isZero())return b;if(b.isZero())return a;var -c=d[1],f,g;while(a.isEven()&&b.isEven()){f=M(F(a),F(b));a=a.divide(f);b=b.divide(f);c=c.multiply(f)}while(a.isEven())a=a.divide(F(a));do{while(b.isEven())b=b.divide(F(b));if(a.greater(b)){g=b;b=a;a=g}b=b.subtract(a)}while(!b.isZero());return c.isUnit()?a:a.multiply(c)}function -ae(a,b){a=e(a).abs();b=e(b).abs();return a.divide(R(a,b)).multiply(b)}function -ah(a,b){a=e(a);b=e(b);var -g=M(a,b),n=U(a,b),h=n.subtract(g).add(1);if(h.isSmall)return g.add(Math.floor(Math.random()*h));var -j=z(h,f).value,l=[],k=true;for(var -c=0;c=i){if(c===aJ&&i===1)continue;throw new -Error(c+" is not a valid digit in base "+g+bs)}}g=e(g);var -h=[],j=b[0]===ar;for(a=j?1:0;a=0;a--){b=b.add(e[a].times(c));c=c.times(f)}return g?b.negate():b}function -ai(b,a){a=a||O;if(b=0){e=c.divmod(b);c=e.quotient;var -d=e.remainder;if(d.isNegative()){d=b.minus(d).abs();c=c.next()}g.push(d.toJSNumber())}g.push(c.toJSNumber());return{value:g.reverse(),isNegative:f}}function -$(d,c,b){var -a=z(d,c);return(a.isNegative?ar:l)+a.value.map(function(a){return ai(a,b)}).join(l)}a.prototype.toArray=function(a){return z(this,a)};b.prototype.toArray=function(a){return z(this,a)};c.prototype.toArray=function(a){return z(this,a)};a.prototype.toString=function(a,f){if(a===A)a=10;if(a!==10)return $(this,a,f);var -d=this.value,c=d.length,e=String(d[--c]),h="0000000",b;while(--c>=0){b=String(d[c]);e+=h.slice(b.length)+b}var -g=this.sign?ar:l;return g+e};b.prototype.toString=function(a,b){if(a===A)a=10;if(a!=10)return $(this,a,b);return String(this.value)};c.prototype.toString=b.prototype.toString;c.prototype.toJSON=a.prototype.toJSON=b.prototype.toJSON=function(){return this.toString()};a.prototype.valueOf=function(){return parseInt(this.toString(),10)};a.prototype.toJSNumber=a.prototype.valueOf;b.prototype.valueOf=function(){return this.value};b.prototype.toJSNumber=b.prototype.valueOf;c.prototype.valueOf=c.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function -X(d){if(p(+d)){var -l=+d;if(l===s(l))return H?new -c(g(l)):new -b(l);throw new -Error(ej+d)}var -o=d[0]===ar;if(o)d=d.slice(1);var -h=d.split(/e/i);if(h.length>2)throw new -Error(ej+h.join(em));if(h.length===2){var -e=h[1];if(e[0]===bq)e=e.slice(1);e=+e;if(e!==s(e)||!p(e))throw new -Error(ej+e+" is not a valid exponent.");var -f=h[0],i=f.indexOf(bs);if(i>=0){e-=f.length-i-1;f=f.slice(0,i)+f.slice(i+1)}if(e<0)throw new -Error("Cannot include negative exponent part for integers");f+=new -Array(e+1).join(B);d=f}var -q=/^([0-9][0-9]*)$/.test(d);if(!q)throw new -Error(ej+d);if(H)return new -c(g(o?ar+d:d));var -n=[],j=d.length,m=ab,k=j-m;while(j>0){n.push(+d.slice(k,j));k-=m;if(k<0)k=0;j-=m}r(n);return new -a(n,o)}function -ag(a){if(H)return new -c(g(a));if(p(a)){if(a!==s(a))throw new -Error(a+" is not an integer.");return new -b(a)}return X(a.toString())}function -e(a){if(typeof -a==="number")return ag(a);if(typeof -a==="string")return X(a);if(typeof -a==="bigint")return new -c(a);return a}for(var -k=0;k0)d[-k]=e(-k)}d.one=d[1];d.zero=d[0];d.minusOne=d[-1];d.max=U;d.min=M;d.gcd=R;d.lcm=ae;d.isInstance=function(d){return d -instanceof -a||d -instanceof -b||d -instanceof -c};d.randBetween=ah;d.fromArray=function(b,a,c){return W(b.map(e),e(a||10),c)};return d}();function -ay(a){var -b=a.toJSNumber()|0;if(a.equals(m(b)))return b;return a}function -Cd(a){return ay(m(a).abs())}function -E(a,b){return ay(m(a).add(m(b)))}function -cd(a,b){return m(a).compare(m(b))}function -kq(b,a){a=m(a);if(a.equals(m(0)))cE();return ay(m(b).divide(m(a)))}function -Cl(b,a){a=m(a);if(a.equals(m(0)))cE();return ay(m(b).mod(a))}function -kr(a,b){return[0,kq(a,b),Cl(a,b)]}function -ks(a,b){return kq(a,b)}function -Ce(a,b){return m(a).equals(m(b))}function -Cg(a,b){return ay(m.gcd(m(a),m(b)).abs())}function -B7(c,e,g){e=m(e);var -a=e.toArray(Math.pow(2,32));c.write(8,a.isNegative?1:0);var -f=a.value.length,d=f*4;c.write(32,d);for(var -b=f-1;b>=0;b--){c.write(8,a.value[b]>>>0&aM);c.write(8,a.value[b]>>>8&aM);c.write(8,a.value[b]>>>16&aM);c.write(8,a.value[b]>>>24&aM)}g[0]=4*(1+((d+3)/4|0));g[1]=8*(1+((d+7)/8|0))}function -B8(b,g){var -e;switch(b.read8u()){case -1:e=true;break;case -0:e=false;break;default:ca("input_value: z (malformed input)")}var -f=b.read32u(),c=m(0);for(var -d=0;d>>0);c=a.shiftLeft(d*32).add(c)}if(e)c=c.negate();g[0]=f+4;return ay(c)}function -Ch(d){var -b=m(d).toArray(Math.pow(2,32)),a=0;for(var -c=0;c=48&&a<=57)return a-48;if(a>=97&&a<=iq)return a-97+10;if(a>=65&&a<=70)return a-65+10}var -e=0;if(a[e]==ar)e++;for(;e=c)Y("Z.of_substring_base: invalid digit")}return ay(m(a,c))}function -ce(d,a,b,c){a=a1(a);if(b!=0||c!=a.length){if(a.length-b=0?1:0}function -eD(a){a=m(a);if(!Cf(a))ez(ey(fC));var -b=m(iJ),d=a.and(b).toJSNumber(),c=a.shiftRight(32).and(b).toJSNumber(),e=kg(d,c);return e}function -eE(){return new -Date().getTime()/aT}function -cJ(e){var -a=new -Date(e*aT),b=a.getTime(),d=new -Date(Date.UTC(a.getUTCFullYear(),0,1)).getTime(),c=Math.floor((b-d)/hY);return[0,a.getUTCSeconds(),a.getUTCMinutes(),a.getUTCHours(),a.getUTCDate(),a.getUTCMonth(),a.getUTCFullYear()-bS,a.getUTCDay(),c,false|0]}function -eF(){return 0}function -Co(h){var -a=new -Date(h*aT),b=a.getTime(),e=new -Date(a.getFullYear(),0,1).getTime(),c=Math.floor((b-e)/hY),d=new -Date(a.getFullYear(),0,1),f=new -Date(a.getFullYear(),6,1),g=Math.max(d.getTimezoneOffset(),f.getTimezoneOffset());return[0,a.getSeconds(),a.getMinutes(),a.getHours(),a.getDate(),a.getMonth(),a.getFullYear()-bS,a.getDay(),c,a.getTimezoneOffset()>>0){if(!(25<(b+br|0)>>>0))c=1}else -if(23!==b)c=1;return c?a+32|0:a}var -gl=B4(0)[1],gm=B3(0),cK=(4*gm|0)-1|0;ae(0);var -kS=B2(0);function -gn(c){var -b=0,a=c;for(;;){if(a){var -b=b+1|0,a=a[2];continue}return b}}function -go(a){return a?a[1]:bj(kT)}function -dx(d){var -a=d,b=0;for(;;){if(a){var -c=[0,a[1],b],a=a[2],b=c;continue}return b}}typeof -kS==="number";function -b1(c,a){if(a){var -d=a[2],e=b(c,a[1]);return[0,e,b1(c,d)]}return 0}function -a3(a,c){var -b=W(a);Bn(b,0,a,c);return b}function -gp(a){var -b=aP(a),c=W(b);bV(a,0,c,0,b);return c}function -dy(a){return at(gp(a))}function -gq(c,b,a){if(0<=b&&0<=a&&!((aP(c)-a|0)>>0))e=1}else -if(65<=d)e=1}else{var -f=0;if(32!==d)if(43<=d)switch(d+jS|0){case -5:if(a<(c+2|0)&&1>>0){if(33<(n-61|0)>>>0)p=1}else -if(2===n)p=1;if(!p){var -j=j+1|0;continue}var -e=bB(k),a=[0,0],r=aP(e)-1|0,w=0;if(!(r<0)){var -i=w;for(;;){var -f=dk(e,i),g=0;if(32<=f){var -l=f-34|0,q=0;if(58>>0){if(93<=l)q=1}else -if(56<(l-1|0)>>>0){g=1;q=1}if(!q){var -m=1;g=2}}else -if(11<=f){if(13===f)g=1}else -if(8<=f)g=1;switch(g){case -0:var -m=4;break;case -1:var -m=2;break}a[1]=a[1]+m|0;var -A=i+1|0;if(r!==i){var -i=A;continue}break}}if(a[1]===aP(e))var -t=gp(e);else{var -b=W(a[1]);a[1]=0;var -s=aP(e)-1|0,x=0;if(!(s<0)){var -h=x;for(;;){var -c=dk(e,h),d=0;if(35<=c)if(92===c)d=2;else -if(br<=c)d=1;else -d=3;else -if(32<=c)if(34<=c)d=2;else -d=3;else -if(14<=c)d=1;else -switch(c){case -8:V(b,a[1],92);a[1]++;V(b,a[1],98);break;case -9:V(b,a[1],92);a[1]++;V(b,a[1],fH);break;case -10:V(b,a[1],92);a[1]++;V(b,a[1],fU);break;case -13:V(b,a[1],92);a[1]++;V(b,a[1],fQ);break;default:d=1}switch(d){case -1:V(b,a[1],92);a[1]++;V(b,a[1],48+(c/aK|0)|0);a[1]++;V(b,a[1],48+((c/10|0)%10|0)|0);a[1]++;V(b,a[1],48+(c%10|0)|0);break;case -2:V(b,a[1],92);a[1]++;V(b,a[1],c);break;case -3:V(b,a[1],c);break}a[1]++;var -y=h+1|0;if(s!==h){var -h=y;continue}break}}var -t=b}var -o=at(t)}var -u=z(o),v=a3(u+2|0,34);bW(o,0,v,1,u);return at(v)}}function -gD(d,f){var -g=dw(f),e=gE?gE[1]:70;switch(d[2]){case -0:var -b=iq;break;case -1:var -b=ct;break;case -2:var -b=69;break;case -3:var -b=b_;break;case -4:var -b=71;break;case -5:var -b=e;break;case -6:var -b=c9;break;case -7:var -b=72;break;default:var -b=70}var -c=gA(16);ck(c,37);switch(d[1]){case -0:break;case -1:ck(c,43);break;default:ck(c,32)}if(8<=d[2])ck(c,35);ck(c,46);am(c,a(l+g));ck(c,b);return gC(c)}function -dC(m,a){if(13<=m){var -g=[0,0],h=z(a)-1|0,n=0;if(!(h<0)){var -c=n;for(;;){if(!(9<(cH(a,c)+d1|0)>>>0))g[1]++;var -q=c+1|0;if(h!==c){var -c=q;continue}break}}var -i=g[1],j=W(z(a)+((i-1|0)/3|0)|0),k=[0,0],d=function(a){aX(j,k[1],a);k[1]++;return 0},e=[0,((i-1|0)%3|0)+1|0],l=z(a)-1|0,o=0;if(!(l<0)){var -b=o;for(;;){var -f=cH(a,b);if(9<(f+d1|0)>>>0)d(f);else{if(0===e[1]){d(95);e[1]=3}e[1]+=-1;d(f)}var -p=b+1|0;if(l!==b){var -b=p;continue}break}}return at(j)}return a}function -mN(b,c){switch(b){case -1:var -a=l0;break;case -2:var -a=l1;break;case -4:var -a=l3;break;case -5:var -a=l4;break;case -6:var -a=l5;break;case -7:var -a=l6;break;case -8:var -a=l7;break;case -9:var -a=l8;break;case -10:var -a=l9;break;case -11:var -a=l_;break;case -0:case -13:var -a=lZ;break;case -3:case -14:var -a=l2;break;default:var -a=l$}return dC(b,eq(a,c))}function -mO(b,c){switch(b){case -1:var -a=mo;break;case -2:var -a=mp;break;case -4:var -a=mr;break;case -5:var -a=ms;break;case -6:var -a=mt;break;case -7:var -a=mu;break;case -8:var -a=mv;break;case -9:var -a=mw;break;case -10:var -a=mx;break;case -11:var -a=my;break;case -0:case -13:var -a=mn;break;case -3:case -14:var -a=mq;break;default:var -a=mz}return dC(b,eq(a,c))}function -mP(b,c){switch(b){case -1:var -a=mB;break;case -2:var -a=mC;break;case -4:var -a=mE;break;case -5:var -a=mF;break;case -6:var -a=mG;break;case -7:var -a=mH;break;case -8:var -a=mI;break;case -9:var -a=mJ;break;case -10:var -a=mK;break;case -11:var -a=mL;break;case -0:case -13:var -a=mA;break;case -3:case -14:var -a=mD;break;default:var -a=mM}return dC(b,eq(a,c))}function -mQ(b,c){switch(b){case -1:var -a=mb;break;case -2:var -a=mc;break;case -4:var -a=me;break;case -5:var -a=mf;break;case -6:var -a=mg;break;case -7:var -a=mh;break;case -8:var -a=mi;break;case -9:var -a=mj;break;case -10:var -a=mk;break;case -11:var -a=ml;break;case -0:case -13:var -a=ma;break;case -3:case -14:var -a=md;break;default:var -a=mm}return dC(b,By(a,c))}function -bl(c,i,b){function -j(d){switch(c[1]){case -0:var -a=45;break;case -1:var -a=43;break;default:var -a=32}return Bv(b,i,a)}function -q(c){var -a=Bm(b);return 3===a?b<0.?mS:mT:4<=a?mU:c}switch(c[2]){case -5:var -e=ke(gD(c,i),b),d=0,v=z(e);for(;;){if(d===v)var -p=0;else{var -k=t(e,d)+hZ|0,l=0;if(23>>0){if(55===k)l=1}else -if(21<(k-1|0)>>>0)l=1;if(!l){var -d=d+1|0;continue}var -p=1}var -w=p?e:bF(e,mR);return q(w)}case -6:return j(0);case -7:var -h=bB(j(0)),f=aP(h);if(0===f)var -o=h;else{var -m=W(f),n=f-1|0,r=0;if(!(n<0)){var -a=r;for(;;){var -g=dk(h,a),s=25<(g+ij|0)>>>0?g:g+fT|0;V(m,a,s);var -u=a+1|0;if(n!==a){var -a=u;continue}break}}var -o=m}return at(o);case -8:return q(j(0));default:return ke(gD(c,i),b)}}function -c3(e,y,x,w){var -c=y,a=x,d=w;for(;;)if(typeof -d==="number")return b(c,a);else -switch(d[0]){case -0:var -B=d[1];return function(b){return C(c,[5,a,b],B)};case -1:var -D=d[1];return function(b){var -e=0;if(40<=b)if(92===b)var -d=kM;else -if(br<=b)e=1;else -e=2;else -if(32<=b)if(39<=b)var -d=kN;else -e=2;else -if(14<=b)e=1;else -switch(b){case -8:var -d=kO;break;case -9:var -d=kP;break;case -10:var -d=kQ;break;case -13:var -d=kR;break;default:e=1}switch(e){case -1:var -f=W(4);V(f,0,92);V(f,1,48+(b/aK|0)|0);V(f,2,48+((b/10|0)%10|0)|0);V(f,3,48+(b%10|0)|0);var -d=at(f);break;case -2:var -g=W(1);V(g,0,b);var -d=at(g);break}var -h=z(d),i=a3(h+2|0,39);bW(d,0,i,1,h);return C(c,[4,a,at(i)],D)};case -2:var -E=d[2],F=d[1];return eM(c,a,E,F,function(a){return a});case -3:return eM(c,a,d[2],d[1],lY);case -4:return dD(c,a,d[4],d[2],d[3],mN,d[1]);case -5:return dD(c,a,d[4],d[2],d[3],mO,d[1]);case -6:return dD(c,a,d[4],d[2],d[3],mP,d[1]);case -7:return dD(c,a,d[4],d[2],d[3],mQ,d[1]);case -8:var -i=d[4],j=d[3],k=d[2],h=d[1];if(typeof -k==="number"){if(typeof -j==="number")return j?function(d,b){return C(c,[4,a,bl(h,d,b)],i)}:function(b){return C(c,[4,a,bl(h,eK(h),b)],i)};var -ab=j[1];return function(b){return C(c,[4,a,bl(h,ab,b)],i)}}else{if(0===k[0]){var -n=k[2],o=k[1];if(typeof -j==="number")return j?function(d,b){return C(c,[4,a,aF(o,n,bl(h,d,b))],i)}:function(b){return C(c,[4,a,aF(o,n,bl(h,eK(h),b))],i)};var -ac=j[1];return function(b){return C(c,[4,a,aF(o,n,bl(h,ac,b))],i)}}var -p=k[1];if(typeof -j==="number")return j?function(e,d,b){return C(c,[4,a,aF(p,e,bl(h,d,b))],i)}:function(d,b){return C(c,[4,a,aF(p,d,bl(h,eK(h),b))],i)};var -ad=j[1];return function(d,b){return C(c,[4,a,aF(p,d,bl(h,ad,b))],i)}}case -9:return eM(c,a,d[2],d[1],kD);case -10:var -a=[7,a],d=d[1];continue;case -11:var -a=[2,a,d[1]],d=d[2];continue;case -12:var -a=[3,a,d[1]],d=d[2];continue;case -13:var -H=d[3],I=d[2],q=gA(16);eL(q,I);var -v=gC(q);return function(b){return C(c,[4,a,v],H)};case -14:var -L=d[3],M=d[2];return function(d){var -e=d[1],b=J(e,Q(aa(M)));if(typeof -b[2]==="number")return C(c,a,K(b[1],L));throw ai};case -15:var -N=d[1];return function(d,b){return C(c,[6,a,function(a){return g(d,a,b)}],N)};case -16:var -O=d[1];return function(b){return C(c,[6,a,b],O)};case -17:var -a=[0,a,d[1]],d=d[2];continue;case -18:var -m=d[1];if(0===m[0]){var -P=d[2],R=m[1][1],S=0,c=function(b,c,d){return function(a){return C(c,[1,b,[0,a]],d)}}(a,c,P),a=S,d=R;continue}var -T=d[2],U=m[1][1],X=0,c=function(b,c,d){return function(a){return C(c,[1,b,[1,a]],d)}}(a,c,T),a=X,d=U;continue;case -19:throw[0,A,mW];case -20:var -Y=d[3],Z=[8,a,mX];return function(a){return C(c,Z,Y)};case -21:var -_=d[2];return function(b){return C(c,[4,a,eq(mY,b)],_)};case -22:var -$=d[1];return function(b){return C(c,[5,a,b],$)};case -23:var -f=d[2],l=d[1];if(typeof -l==="number")switch(l){case -0:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);case -1:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);case -2:throw[0,A,mZ];default:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f])}else -switch(l[0]){case -0:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);case -1:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);case -2:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);case -3:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);case -4:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);case -5:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);case -6:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);case -7:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);case -8:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);case -9:var -u=l[2];return e<50?fq(e+1|0,c,a,u,f):af(fq,[0,c,a,u,f]);case -10:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f]);default:return e<50?G(e+1|0,c,a,f):af(G,[0,c,a,f])}default:var -r=d[3],s=d[1],t=b(d[2],0);return e<50?fp(e+1|0,c,a,r,s,t):af(fp,[0,c,a,r,s,t])}}function -fq(e,d,c,a,b){if(typeof -a==="number")return e<50?G(e+1|0,d,c,b):af(G,[0,d,c,b]);else -switch(a[0]){case -0:var -f=a[1];return function(a){return aL(d,c,f,b)};case -1:var -g=a[1];return function(a){return aL(d,c,g,b)};case -2:var -h=a[1];return function(a){return aL(d,c,h,b)};case -3:var -i=a[1];return function(a){return aL(d,c,i,b)};case -4:var -j=a[1];return function(a){return aL(d,c,j,b)};case -5:var -k=a[1];return function(a){return aL(d,c,k,b)};case -6:var -l=a[1];return function(a){return aL(d,c,l,b)};case -7:var -m=a[1];return function(a){return aL(d,c,m,b)};case -8:var -n=a[2];return function(a){return aL(d,c,n,b)};case -9:var -o=a[3],p=a[2],q=ag(aa(a[1]),p);return function(a){return aL(d,c,av(q,o),b)};case -10:var -r=a[1];return function(e,a){return aL(d,c,r,b)};case -11:var -s=a[1];return function(a){return aL(d,c,s,b)};case -12:var -t=a[1];return function(a){return aL(d,c,t,b)};case -13:throw[0,A,m0];default:throw[0,A,m1]}}function -G(d,b,e,a){var -c=[8,e,m2];return d<50?c3(d+1|0,b,c,a):af(c3,[0,b,c,a])}function -fp(h,c,f,a,e,d){if(e){var -i=e[1];return function(e){return mV(c,f,a,i,b(d,e))}}var -g=[4,f,d];return h<50?c3(h+1|0,c,g,a):af(c3,[0,c,g,a])}function -C(a,b,c){return dq(c3(0,a,b,c))}function -aL(a,b,c,d){return dq(fq(0,a,b,c,d))}function -mV(a,b,c,d,e){return dq(fp(0,a,b,c,d,e))}function -eM(f,e,d,a,c){if(typeof -a==="number")return function(a){return C(f,[4,e,b(c,a)],d)};else{if(0===a[0]){var -g=a[2],h=a[1];return function(a){return C(f,[4,e,aF(h,g,b(c,a))],d)}}var -i=a[1];return function(g,a){return C(f,[4,e,aF(i,g,b(c,a))],d)}}}function -dD(f,e,d,h,c,b,a){if(typeof -h==="number"){if(typeof -c==="number")return c?function(h,c){return C(f,[4,e,cl(h,g(b,a,c))],d)}:function(c){return C(f,[4,e,g(b,a,c)],d)};var -l=c[1];return function(c){return C(f,[4,e,cl(l,g(b,a,c))],d)}}else{if(0===h[0]){var -i=h[2],j=h[1];if(typeof -c==="number")return c?function(h,c){return C(f,[4,e,aF(j,i,cl(h,g(b,a,c)))],d)}:function(c){return C(f,[4,e,aF(j,i,g(b,a,c))],d)};var -m=c[1];return function(c){return C(f,[4,e,aF(j,i,cl(m,g(b,a,c)))],d)}}var -k=h[1];if(typeof -c==="number")return c?function(i,h,c){return C(f,[4,e,aF(k,i,cl(h,g(b,a,c)))],d)}:function(h,c){return C(f,[4,e,aF(k,h,g(b,a,c))],d)};var -n=c[1];return function(h,c){return C(f,[4,e,aF(k,h,cl(n,g(b,a,c)))],d)}}}function -bG(c,h){var -a=h;for(;;)if(typeof -a==="number")return 0;else -switch(a[0]){case -0:var -e=a[2],i=a[1];if(typeof -e==="number")switch(e){case -0:var -d=li;break;case -1:var -d=lj;break;case -2:var -d=lk;break;case -3:var -d=ll;break;case -4:var -d=lm;break;case -5:var -d=ln;break;default:var -d=lo}else -switch(e[0]){case -0:var -d=e[1];break;case -1:var -d=e[1];break;default:var -d=bF(lp,gt(1,e[1]))}bG(c,i);return cO(c,d);case -1:var -f=a[2],g=a[1];if(0===f[0]){var -j=f[1];bG(c,g);cO(c,m3);var -a=j;continue}var -k=f[1];bG(c,g);cO(c,m4);var -a=k;continue;case -6:var -n=a[2];bG(c,a[1]);return cO(c,b(n,0));case -7:var -a=a[1];continue;case -8:var -o=a[2];bG(c,a[1]);return $(o);case -2:case -4:var -l=a[2];bG(c,a[1]);return cO(c,l);default:var -m=a[2];bG(c,a[1]);return gz(c,m)}}function -eN(b){var -a=b[1];return C(function(b){var -a=eI(64);bG(a,b);return gy(a)},0,a)}var -gF=[0,0];function -eO(a){gF[1]=[0,a,gF[1]];return 0}try{var -Bd=eB(Bc),gH=Bd}catch(a){a=d(a);if(a!==aq)throw a;try{var -Bb=eB(Ba),gG=Bb}catch(a){a=d(a);if(a!==aq)throw a;var -gG=m6}var -gH=gG}var -m7=kZ(gH,82),dE=[h9,function(y){var -n=B5(0),c=[0,bD(55,0),0],i=0===n.length-1?[0,0]:n,j=i.length-1,b=0;for(;;){ad(c[1],b)[1+b]=b;var -x=b+1|0;if(54!==b){var -b=x;continue}var -g=[0,m5],k=54+dv(55,j)|0,s=0;if(!(k<0)){var -d=s;for(;;){var -e=d%55|0,m=BS(d,j),u=ad(i,m)[1+m],h=bF(g[1],a(l+u));g[1]=BN(h,0,z(h));var -f=g[1],o=t(f,3)<<24,p=t(f,2)<<16,q=t(f,1)<<8,r=((t(f,0)+q|0)+p|0)+o|0,v=(ad(c[1],e)[1+e]^r)&fN;ad(c[1],e)[1+e]=v;var -w=d+1|0;if(k!==d){var -d=w;continue}break}}c[2]=0;return c}}];function -m8(h,k){var -l=h?h[1]:m7,b=16;for(;;){if(!(k<=b)&&!(gm<(b*2|0))){var -b=b*2|0;continue}if(l){var -i=kl(dE),a=d3===i?dE[1]:h9===i?ld(dE):dE;a[2]=(a[2]+1|0)%55|0;var -c=a[2],d=ad(a[1],c)[1+c],e=(a[2]+24|0)%55|0,f=(ad(a[1],e)[1+e]+(d^(d>>>25|0)&31)|0)&fN,g=a[2];ad(a[1],g)[1+g]=f;var -j=f}else -var -j=0;return[0,0,bD(b,0),j,b]}}function -a4(a){return Bp(10,aK,0,a)}var -gK=[I,m9,ae(0)],gI=0,gJ=-1;function -dF(a,b){a[13]=a[13]+b[3]|0;return gx(b,a[28])}var -gL=1000000010;function -eP(b,a){return H(b[17],a,0,z(a))}function -eQ(a){return b(a[19],0)}function -gM(a,c,b){a[9]=a[9]-c|0;eP(a,b);a[11]=0;return 0}function -dG(c,a){var -b=Z(a,m_);return b?gM(c,z(a),a):b}function -cm(a,c,f){var -g=c[3],h=c[2];dG(a,c[1]);eQ(a);a[11]=1;var -d=(a[6]-f|0)+h|0,e=a[8],i=BK(e,d)?e:d;a[10]=i;a[9]=a[6]-a[10]|0;b(a[21],a[10]);return dG(a,g)}function -gN(b,a){return cm(b,m$,a)}function -cQ(a,c){var -d=c[2],e=c[3];dG(a,c[1]);a[9]=a[9]-d|0;b(a[20],d);return dG(a,e)}function -gO(a){for(;;){var -r=a[28][2],O=r?[0,r[1]]:0;if(O){var -p=O[1],q=p[1],c=p[2],ac=0<=q?1:0,aa=p[3],ab=a[13]-a[12]|0,P=ac||(a[9]<=ab?1:0);if(P){var -g=a[28],m=g[2];if(m){if(m[2]){var -Q=m[2];g[1]=g[1]-1|0;g[2]=Q}else -eH(g);var -l=0<=q?q:gL;if(typeof -c==="number")switch(c){case -0:var -x=cj(a[3]);if(x){var -y=x[1][1],A=function(b,a){if(a){var -c=a[1],d=a[2];return f9(b,c)?[0,b,a]:[0,c,A(b,d)]}return[0,b,0]};y[1]=A(a[6]-a[9]|0,y[1])}break;case -1:ci(a[2]);break;case -2:ci(a[3]);break;case -3:var -B=cj(a[2]);if(B)gN(a,B[1][2]);else -eQ(a);break;case -4:if(a[10]!==(a[6]-a[9]|0)){var -e=a[28],h=e[2];if(h){var -s=h[1];if(h[2]){var -R=h[2];e[1]=e[1]-1|0;e[2]=R;var -i=[0,s]}else{eH(e);var -i=[0,s]}}else -var -i=0;if(i){var -w=i[1],T=w[1];a[12]=a[12]-w[3]|0;a[9]=a[9]+T|0}}break;default:var -C=ci(a[5]);if(C)eP(a,b(a[25],C[1]))}else -switch(c[0]){case -0:gM(a,l,c[1]);break;case -1:var -d=c[2],j=c[1],D=d[1],U=d[2],E=cj(a[2]);if(E){var -F=E[1],f=F[2];switch(F[1]){case -0:cQ(a,j);break;case -1:cm(a,d,f);break;case -2:cm(a,d,f);break;case -3:if(a[9]<(l+z(D)|0))cm(a,d,f);else -cQ(a,j);break;case -4:if(a[11]||!(a[9]<(l+z(D)|0)||((a[6]-f|0)+U|0)>>0))gN(a,v)}else -eQ(a)}var -_=a[9]-Z|0,$=1===M?1:a[9]>>3|0,cf(bX(b,a>>>3|0)|1<<(a&7)))}function -dK(b){var -a=eW(0);cR(a,b);return a}function -dL(c){var -b=W(32),a=0;for(;;){aX(b,a,cf(bX(c,a)^cv));var -d=a+1|0;if(31!==a){var -a=d;continue}return b}}function -eX(d,c){var -b=W(32),a=0;for(;;){var -e=bX(c,a);aX(b,a,cf(bX(d,a)|e));var -f=a+1|0;if(31!==a){var -a=f;continue}return b}}function -oV(c,b){try{var -a=0;for(;;){var -f=bX(b,a);if(0!==(bX(c,a)&f))throw gh;var -g=a+1|0;if(31!==a){var -a=g;continue}var -e=1;return e}}catch(a){a=d(a);if(a===gh)return 0;throw a}}function -g0(f,e){var -a=0;for(;;){var -d=bX(e,a);if(0!==d){var -c=0;for(;;){if(0!==(d&1<>>0){if(!(25<(b+br|0)>>>0))d=1}else -if(23!==b)d=1;var -e=d?a+fT|0:a;return cR(c,e)},b);var -d=c}else -var -d=b;var -h=f?dL(d):d;return dy(h)}throw[0,A,o_]}var -g4=W(b$),c2=0;for(;;){aX(g4,c2,gk(cf(c2)));var -A7=c2+1|0;if(cv!==c2){var -c2=A7;continue}dy(g4);var -dO=dA([0,gb]),g5=function(a){var -b=gy(a[1]);a[1][2]=0;var -c=z(b);if(0===c)return 0;if(1===c){var -d=a[2];a[2]=[0,[0,t(b,0)],d];return 0}a[2]=[0,[1,b],a[2]];return 0},pc=dL(dK(10)),e2=r,e3=j$,pi=function(b){var -f=z(b),C=[0,1];function -F(g){var -d=eW(0),a=g;for(;;){if(f<=a)bj(pg);if(93===t(b,a)&&g>>0)if(9<=r)var -j=[0,[9,k+d1|0],g+1|0];else -l=1;else -if(r)l=2;else{var -I=C[1];C[1]++;var -u=D(g+1|0),o=u[2],z=0,J=u[1];if((o+1|0)>>0)){if(q){var -c=[6,c],d=d+1|0;continue}var -c=[5,c],d=d+1|0;continue}if(21===q){var -c=[7,c],d=d+1|0;continue}}var -B=0;if(typeof -c!=="number"&&0===c[0]){gz(h[1],c[1]);B=1}if(!B){g5(h);h[2]=[0,c,h[2]]}var -a=d;continue a}}}g5(h);return[0,[3,dx(h[2])],a]}}function -D(g){var -d=E(g),c=d[1],a=d[2];for(;;){if((a+2|0)<=f&&92===t(b,a)&&fK===t(b,a+1|0)){var -e=E(a+2|0),c=[4,c,e[1]],a=e[2];continue}return[0,c,a]}}var -G=D(0),P=G[1],I=G[2]===f?P:bj(ph),h=[0,bD(32,0)],c=[0,0],m=[0,dO[1]],n=[0,0],j=[0,1],o=[0,0],r=0;function -a(f,e){if(h[1].length-1<=c[1]){var -a=[0,h[1].length-1];for(;;){if(a[1]<=c[1]){a[1]=a[1]*2|0;continue}var -b=bD(a[1],0);gw(h[1],0,b,0,h[1].length-1);h[1]=b;break}}var -g=g3(f,e),d=c[1];ad(h[1],d)[1+d]=g;c[1]++;return 0}function -k(d){var -b=c[1];a(dM,0);return b}function -l(a,c,b){var -d=g3(c,eZ(b,a));ad(h[1],a)[1+a]=d;return 0}function -i(b){try{var -a=g(dO[28],b,m[1]);return a}catch(a){a=d(a);if(a===aq){var -c=n[1];m[1]=H(dO[4],b,c,m[1]);n[1]++;return c}throw a}}function -u(b){if(e0(b)){var -a=o[1];if(64<=a)bj(o$);o[1]++;return a}return-1}function -p(b,a){return oV(b,a)}function -e(b){if(typeof -b==="number")switch(b){case -0:return a(oY,0);case -1:return a(oZ,0);default:return a(o0,0)}else -switch(b[0]){case -0:return a(dM,b[1]);case -1:var -f=b[1],n=z(f);if(0===n)return 0;if(1===n)return a(dM,t(f,0));try{var -o=gv(f,0);e([1,oT(f,o)]);a(dM,0);var -w=e([1,oU(f,o+1|0)]);return w}catch(b){b=d(b);if(b===aq)return a(oW,i(f));throw b}case -2:var -p=b[1],x=b[2]?dL(p):p;return a(oX,i(dy(x)));case -3:return K(b[1]);case -4:var -y=b[2],A=b[1],B=k(0);e(A);var -C=k(0),D=c[1];e(y);var -E=c[1];l(B,dN,D);return l(C,eY,E);case -5:var -q=b[1],g=u(q),r=k(0);if(0<=g)a(g1,g);e(q);if(0<=g)a(g2,g);a(eY,eZ(r,c[1]));return l(r,dN,c[1]);case -6:var -s=b[1],h=u(s),F=c[1];e(s);if(0<=h)a(g2,h);var -G=k(0);if(0<=h)a(g1,h);a(eY,eZ(F,c[1]));return l(G,dN,c[1]);case -7:var -H=b[1],I=k(0);e(H);return l(I,dN,c[1]);case -8:var -m=b[1],J=b[2];a(o1,m);e(J);a(o2,m);j[1]=dv(j[1],m+1|0);return 0;default:var -v=b[1];a(o3,v);j[1]=dv(j[1],v+1|0);return 0}}function -K(o){var -b=o;for(;;){if(b){var -c=b[1];if(typeof -c!=="number")switch(c[0]){case -5:var -d=c[1],l=0;if(typeof -d==="number")l=1;else -switch(d[0]){case -0:case -2:var -h=b[2],s=cS(h);if(p(bH(d),s)){a(o6,i(e1(r,d)));var -b=h;continue}break;default:l=1}break;case -6:var -f=c[1],m=0;if(typeof -f==="number")m=1;else -switch(f[0]){case -0:case -2:var -j=b[2],t=cS(j);if(p(bH(f),t)){a(o7,i(e1(r,f)));var -b=j;continue}break;default:m=1}break;case -7:var -g=c[1],n=0;if(typeof -g==="number")n=1;else -switch(g[0]){case -0:case -2:var -k=b[2],u=cS(k);if(p(bH(g),u)){a(o5,i(e1(r,g)));var -b=k;continue}break;default:n=1}break}var -q=b[2];e(c);var -b=q;continue}return 0}}e(I);a(o4,0);var -v=bH(I);if(j9(v,bm))var -w=-1;else{var -s=a3(b$,0);g0(function(a){return aX(s,a,1)},v);var -w=i(dy(s))}var -x=bD(n[1],pa),L=m[1];function -M(b,a){ad(x,a)[1+a]=b;return 0}g(dO[12],M,L);var -q=c[1],y=h[1],J=0,N=o[1],O=j[1];if(0<=q&&!((y.length-1-q|0)<0)){var -B=Bh(y,0,q);J=1}if(!J)var -B=$(k0);return[0,B,x,pb,O,N,w]},dP=function(b,a){return Math.abs(b-a)<0.001?1:0},e4=function(b,a){return dP(b,a)?0:b>>0))switch(b){case -0:return 2;case -1:break;default:return 1}return 3}return a[1]===aw?0:4},rO=function(a){return[0,ds(a[1]),a[2]]},fg=function(b,a){if(b[2]!==aw&&a[2]!==aw)return c0(b0(b[1],a[1]),b0(b[2],a[2]));return[0,au(bh(bi(b[1]),bi(a[1]))),aw]},fh=function(a){switch(a){case -0:return 2;case -1:return 8;case -2:return 10;default:return 16}},fi=function(f,e,d,c){var -a=e;for(;;){if(d<=a)return 0;if(b(c,t(f,a)))return[0,a];var -a=a+1|0;continue}},rQ=function(a){if(Z(a,rR)){if(Z(a,rS)){if(!Z(a,rT))return hv;if(Z(a,rU)){if(Z(a,rV))try{var -l=gv(a,47),_=ce(0,a,l+1|0,(z(a)-l|0)-1|0),aa=hs(ce(0,a,0,l),_);return aa}catch(l){l=d(l);if(l===aq){var -j=z(a),y=0;if(j<1)var -s=[0,0,y];else{var -P=t(a,0)+jS|0,S=0;if(!(2

>>0)){var -T=0;switch(P){case -0:var -R=[0,0,1];break;case -1:T=1;break;default:var -R=[0,1,1]}if(!T){var -Q=R;S=1}}if(!S)var -Q=[0,0,y];var -s=Q}var -c=s[2];if(j<(c+2|0))var -u=[0,2,c];else{var -Y=t(a,c),h=t(a,c+1|0),r=0;if(48===Y){var -i=0;if(89<=h){if(98===h)i=2;else -if(fW===h)i=1;else -if(dZ!==h){r=1;i=3}}else -if(66===h)i=2;else -if(79===h)i=1;else -if(!(88<=h)){r=1;i=3}switch(i){case -3:break;case -0:var -q=[0,3,c+2|0];break;case -1:var -q=[0,1,c+2|0];break;default:var -q=[0,0,c+2|0]}}else -r=1;if(r)var -q=[0,2,c];var -u=q}var -e=u[2],b=u[1],U=2===b?function(a){if(69!==a&&ct!==a)return 0;return 1}:3<=b?function(a){if(80!==a&&fV!==a)return 0;return 1}:function(a){return 0},B=fi(a,e,j,U);if(B)var -C=B[1],D=C+1|0,f=C,E=dt(ce(10,a,D,j-D|0));else -var -f=j,E=0;if(2<=b){var -F=fi(a,e,f,function(a){return 46===a?1:0});if(F){var -v=F[1];if(2===b)var -G=1;else{if(!(3<=b))throw[0,A,rX];var -G=4}var -I=v+1|0,J=f-1|0,H=0;if(J allocations_familiales.catala_fr @@ -24,11 +24,11 @@ cat examples/allocations_familiales/securite_sociale_R.catala_fr >> allocations_ cat examples/allocations_familiales/securite_sociale_D.catala_fr >> allocations_familiales.catala_fr cat examples/allocations_familiales/epilogue.catala_fr >> allocations_familiales.catala_fr cat examples/allocations_familiales/tests/tests_allocations_familiales.catala_fr >> allocations_familiales.catala_fr -sed -r '/^## Inclusion.+$/d' allocations_familiales.catala_fr > allocations_familiales_fixed.catala_fr +sed -r '/^> Inclusion.+$/d' allocations_familiales.catala_fr > allocations_familiales_fixed.catala_fr mv -f allocations_familiales_fixed.catala_fr allocations_familiales.catala_fr scp allocations_familiales.catala_fr $1/playground/ rm allocations_familiales.catala_fr scp syntax_highlighting/en/ace/mode-catala_en.js $1/playground/ scp syntax_highlighting/fr/ace/mode-catala_fr.js $1/playground/ -# TODO: PL -scp french_law_js/french_law.js $1/french_law.js +# TODO: Polish ACE syntax highlighting +scp french_law/js/french_law.js $1/french_law.js diff --git a/tests/Makefile b/tests/Makefile index ea736827..b6d5cab0 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -15,7 +15,7 @@ RESET := $(shell tput -Txterm sgr0) CATALA_OPTS?= -CATALA=../_build/default/src/catala/catala.exe Interpret $(CATALA_OPTS) +CATALA=../_build/default/compiler/catala.exe Interpret $(CATALA_OPTS) pass_tests: $(wildcard */*/output/*.out)