From 12b22bd1b2870cfa9afb999cea5c9be45f49b192 Mon Sep 17 00:00:00 2001 From: Fred Boniface Date: Fri, 26 Apr 2024 18:37:00 +0100 Subject: [PATCH] Initial --- deploy.sh | 0 dockerfile | 6 + node_modules/.bin/minify-html | 1 + node_modules/.bin/uglifyjs | 1 + node_modules/.package-lock.json | 85 + .../@minify-html/node-linux-x64/README.md | 1 + .../@minify-html/node-linux-x64/index.node | Bin 0 -> 16169928 bytes .../@minify-html/node-linux-x64/package.json | 17 + node_modules/@minify-html/node/README.md | 497 + node_modules/@minify-html/node/cli.js | 25 + node_modules/@minify-html/node/index.d.ts | 42 + node_modules/@minify-html/node/index.js | 8 + node_modules/@minify-html/node/package.json | 59 + node_modules/@putout/minify/LICENSE | 21 + node_modules/@putout/minify/README.md | 114 + .../@putout/minify/bundle/minify.min.js | 1 + node_modules/@putout/minify/package.json | 112 + node_modules/clean-css/History.md | 1504 ++ node_modules/clean-css/LICENSE | 19 + node_modules/clean-css/README.md | 987 ++ node_modules/clean-css/index.js | 1 + node_modules/clean-css/lib/clean.js | 241 + node_modules/clean-css/lib/optimizer/clone.js | 33 + .../clean-css/lib/optimizer/configuration.js | 1640 ++ .../lib/optimizer/configuration/break-up.js | 656 + .../optimizer/configuration/can-override.js | 314 + .../properties/understandable.js | 15 + .../lib/optimizer/configuration/restore.js | 294 + node_modules/clean-css/lib/optimizer/hack.js | 8 + .../lib/optimizer/invalid-property-error.js | 10 + .../lib/optimizer/level-0/optimize.js | 6 + .../lib/optimizer/level-1/optimize.js | 325 + .../optimizer/level-1/property-optimizers.js | 10 + .../level-1/property-optimizers/background.js | 23 + .../property-optimizers/border-radius.js | 29 + .../level-1/property-optimizers/box-shadow.js | 15 + .../level-1/property-optimizers/filter.js | 34 + .../property-optimizers/font-weight.js | 23 + .../level-1/property-optimizers/margin.js | 21 + .../level-1/property-optimizers/outline.js | 19 + .../level-1/property-optimizers/padding.js | 32 + .../lib/optimizer/level-1/sort-selectors.js | 23 + .../lib/optimizer/level-1/tidy-at-rule.js | 9 + .../lib/optimizer/level-1/tidy-block.js | 34 + .../lib/optimizer/level-1/tidy-rules.js | 265 + .../lib/optimizer/level-1/value-optimizers.js | 14 + .../level-1/value-optimizers/color.js | 89 + .../value-optimizers/color/shorten-hex.js | 189 + .../value-optimizers/color/shorten-hsl.js | 54 + .../value-optimizers/color/shorten-rgb.js | 10 + .../level-1/value-optimizers/degrees.js | 19 + .../level-1/value-optimizers/fraction.js | 72 + .../level-1/value-optimizers/precision.js | 22 + .../level-1/value-optimizers/starts-as-url.js | 7 + .../level-1/value-optimizers/text-quotes.js | 31 + .../level-1/value-optimizers/time.js | 31 + .../level-1/value-optimizers/unit.js | 46 + .../level-1/value-optimizers/url-prefix.js | 23 + .../level-1/value-optimizers/url-quotes.js | 22 + .../value-optimizers/url-whitespace.js | 22 + .../level-1/value-optimizers/whitespace.js | 48 + .../level-1/value-optimizers/zero.js | 49 + .../optimizer/level-2/extract-properties.js | 61 + .../lib/optimizer/level-2/is-mergeable.js | 273 + .../lib/optimizer/level-2/merge-adjacent.js | 55 + .../optimizer/level-2/merge-media-queries.js | 105 + .../level-2/merge-non-adjacent-by-body.js | 88 + .../level-2/merge-non-adjacent-by-selector.js | 73 + .../lib/optimizer/level-2/optimize.js | 139 + .../level-2/properties/every-values-pair.js | 28 + .../level-2/properties/find-component-in.js | 38 + .../level-2/properties/has-inherit.js | 9 + .../level-2/properties/has-same-values.js | 14 + .../optimizer/level-2/properties/has-unset.js | 9 + .../level-2/properties/is-component-of.js | 22 + .../properties/is-mergeable-shorthand.js | 11 + .../properties/merge-into-shorthands.js | 496 + .../optimizer/level-2/properties/optimize.js | 40 + .../level-2/properties/override-properties.js | 461 + .../overrides-non-component-shorthand.js | 9 + .../level-2/properties/populate-components.js | 61 + .../optimizer/level-2/reduce-non-adjacent.js | 174 + .../level-2/remove-duplicate-font-at-rules.js | 30 + .../level-2/remove-duplicate-media-queries.js | 30 + .../optimizer/level-2/remove-duplicates.js | 36 + .../level-2/remove-unused-at-rules.js | 249 + .../lib/optimizer/level-2/reorderable.js | 93 + .../level-2/restore-with-components.js | 12 + .../lib/optimizer/level-2/restructure.js | 392 + .../lib/optimizer/level-2/rules-overlap.js | 32 + .../level-2/specificities-overlap.js | 36 + .../lib/optimizer/level-2/specificity.js | 77 + .../optimizer/level-2/tidy-rule-duplicates.js | 21 + .../clean-css/lib/optimizer/remove-unused.js | 11 + .../lib/optimizer/restore-from-optimizing.js | 78 + .../clean-css/lib/optimizer/validator.js | 561 + .../lib/optimizer/vendor-prefixes.js | 24 + .../lib/optimizer/wrap-for-optimizing.js | 192 + .../clean-css/lib/options/compatibility.js | 181 + node_modules/clean-css/lib/options/fetch.js | 7 + node_modules/clean-css/lib/options/format.js | 241 + .../clean-css/lib/options/inline-request.js | 22 + .../clean-css/lib/options/inline-timeout.js | 7 + node_modules/clean-css/lib/options/inline.js | 15 + .../lib/options/optimization-level.js | 218 + node_modules/clean-css/lib/options/plugins.js | 25 + .../clean-css/lib/options/rebase-to.js | 7 + node_modules/clean-css/lib/options/rebase.js | 10 + .../lib/options/rounding-precision.js | 88 + .../clean-css/lib/reader/apply-source-maps.js | 246 + .../reader/extract-import-url-and-media.js | 35 + .../lib/reader/input-source-map-tracker.js | 58 + .../lib/reader/is-allowed-resource.js | 77 + .../lib/reader/load-original-sources.js | 129 + .../lib/reader/load-remote-resource.js | 74 + .../clean-css/lib/reader/match-data-uri.js | 7 + .../clean-css/lib/reader/normalize-path.js | 8 + .../clean-css/lib/reader/read-sources.js | 344 + .../clean-css/lib/reader/rebase-local-map.js | 15 + .../clean-css/lib/reader/rebase-remote-map.js | 14 + node_modules/clean-css/lib/reader/rebase.js | 101 + .../clean-css/lib/reader/restore-import.js | 5 + .../clean-css/lib/reader/rewrite-url.js | 112 + .../clean-css/lib/tokenizer/marker.js | 26 + node_modules/clean-css/lib/tokenizer/token.js | 17 + .../clean-css/lib/tokenizer/tokenize.js | 867 + .../clean-css/lib/utils/clone-array.js | 11 + .../clean-css/lib/utils/format-position.js | 11 + .../clean-css/lib/utils/has-protocol.js | 7 + .../lib/utils/is-data-uri-resource.js | 7 + .../clean-css/lib/utils/is-http-resource.js | 7 + .../clean-css/lib/utils/is-https-resource.js | 7 + node_modules/clean-css/lib/utils/is-import.js | 7 + .../clean-css/lib/utils/is-remote-resource.js | 8 + .../clean-css/lib/utils/natural-compare.js | 31 + node_modules/clean-css/lib/utils/override.js | 34 + node_modules/clean-css/lib/utils/split.js | 62 + node_modules/clean-css/lib/writer/helpers.js | 256 + node_modules/clean-css/lib/writer/one-time.js | 52 + node_modules/clean-css/lib/writer/simple.js | 48 + .../clean-css/lib/writer/source-maps.js | 104 + node_modules/clean-css/package.json | 48 + node_modules/source-map/CHANGELOG.md | 301 + node_modules/source-map/LICENSE | 28 + node_modules/source-map/README.md | 742 + .../source-map/dist/source-map.debug.js | 3234 ++++ node_modules/source-map/dist/source-map.js | 3233 ++++ .../source-map/dist/source-map.min.js | 2 + .../source-map/dist/source-map.min.js.map | 1 + node_modules/source-map/lib/array-set.js | 121 + node_modules/source-map/lib/base64-vlq.js | 140 + node_modules/source-map/lib/base64.js | 67 + node_modules/source-map/lib/binary-search.js | 111 + node_modules/source-map/lib/mapping-list.js | 79 + node_modules/source-map/lib/quick-sort.js | 114 + .../source-map/lib/source-map-consumer.js | 1145 ++ .../source-map/lib/source-map-generator.js | 425 + node_modules/source-map/lib/source-node.js | 413 + node_modules/source-map/lib/util.js | 488 + node_modules/source-map/package.json | 73 + node_modules/source-map/source-map.d.ts | 98 + node_modules/source-map/source-map.js | 8 + node_modules/uglify-js/LICENSE | 29 + node_modules/uglify-js/README.md | 1478 ++ node_modules/uglify-js/bin/uglifyjs | 605 + node_modules/uglify-js/lib/ast.js | 2356 +++ node_modules/uglify-js/lib/compress.js | 14241 ++++++++++++++++ node_modules/uglify-js/lib/minify.js | 276 + node_modules/uglify-js/lib/mozilla-ast.js | 1310 ++ node_modules/uglify-js/lib/output.js | 1956 +++ node_modules/uglify-js/lib/parse.js | 2585 +++ node_modules/uglify-js/lib/propmangle.js | 328 + node_modules/uglify-js/lib/scope.js | 866 + node_modules/uglify-js/lib/sourcemap.js | 195 + node_modules/uglify-js/lib/transform.js | 250 + node_modules/uglify-js/lib/utils.js | 287 + node_modules/uglify-js/package.json | 56 + node_modules/uglify-js/tools/domprops.html | 456 + node_modules/uglify-js/tools/domprops.json | 8325 +++++++++ node_modules/uglify-js/tools/exports.js | 8 + node_modules/uglify-js/tools/node.js | 110 + node_modules/uglify-js/tools/tty.js | 22 + node_modules/zlib/.npmignore | 2 + node_modules/zlib/LICENSE | 24 + node_modules/zlib/Makefile | 15 + node_modules/zlib/README.md | 54 + node_modules/zlib/configure | 2 + node_modules/zlib/index.js | 1 + node_modules/zlib/lib/zlib.js | 1 + node_modules/zlib/package.json | 18 + node_modules/zlib/src/node-zlib.cc | 95 + node_modules/zlib/test/deflate.test.js | 23 + node_modules/zlib/test/inflate.test.js | 33 + node_modules/zlib/wscript | 38 + package-lock.json | 121 + package.json | 25 + process.js | 123 + test.dockerfile | 10 + test_input/json/test.json | 6 + test_input/test.css | 4 + test_input/test.html | 13 + test_input/test.js | 8 + 202 files changed, 63202 insertions(+) create mode 100644 deploy.sh create mode 100644 dockerfile create mode 120000 node_modules/.bin/minify-html create mode 120000 node_modules/.bin/uglifyjs create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@minify-html/node-linux-x64/README.md create mode 100755 node_modules/@minify-html/node-linux-x64/index.node create mode 100644 node_modules/@minify-html/node-linux-x64/package.json create mode 100644 node_modules/@minify-html/node/README.md create mode 100755 node_modules/@minify-html/node/cli.js create mode 100644 node_modules/@minify-html/node/index.d.ts create mode 100644 node_modules/@minify-html/node/index.js create mode 100644 node_modules/@minify-html/node/package.json create mode 100644 node_modules/@putout/minify/LICENSE create mode 100644 node_modules/@putout/minify/README.md create mode 100644 node_modules/@putout/minify/bundle/minify.min.js create mode 100644 node_modules/@putout/minify/package.json create mode 100644 node_modules/clean-css/History.md create mode 100644 node_modules/clean-css/LICENSE create mode 100644 node_modules/clean-css/README.md create mode 100644 node_modules/clean-css/index.js create mode 100644 node_modules/clean-css/lib/clean.js create mode 100644 node_modules/clean-css/lib/optimizer/clone.js create mode 100644 node_modules/clean-css/lib/optimizer/configuration.js create mode 100644 node_modules/clean-css/lib/optimizer/configuration/break-up.js create mode 100644 node_modules/clean-css/lib/optimizer/configuration/can-override.js create mode 100644 node_modules/clean-css/lib/optimizer/configuration/properties/understandable.js create mode 100644 node_modules/clean-css/lib/optimizer/configuration/restore.js create mode 100644 node_modules/clean-css/lib/optimizer/hack.js create mode 100644 node_modules/clean-css/lib/optimizer/invalid-property-error.js create mode 100644 node_modules/clean-css/lib/optimizer/level-0/optimize.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/optimize.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/background.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/border-radius.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/box-shadow.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/filter.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/font-weight.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/margin.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/outline.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/padding.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/sort-selectors.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/tidy-at-rule.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/tidy-block.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/tidy-rules.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color/shorten-hex.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color/shorten-hsl.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color/shorten-rgb.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/degrees.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/fraction.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/precision.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/starts-as-url.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/text-quotes.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/time.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/unit.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/url-prefix.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/url-quotes.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/url-whitespace.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/whitespace.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/zero.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/extract-properties.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/is-mergeable.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/merge-adjacent.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/merge-media-queries.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/merge-non-adjacent-by-body.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/merge-non-adjacent-by-selector.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/optimize.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/every-values-pair.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/find-component-in.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/has-inherit.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/has-same-values.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/has-unset.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/is-component-of.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/is-mergeable-shorthand.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/merge-into-shorthands.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/optimize.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/override-properties.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/overrides-non-component-shorthand.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/populate-components.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/reduce-non-adjacent.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/remove-duplicate-font-at-rules.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/remove-duplicate-media-queries.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/remove-duplicates.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/remove-unused-at-rules.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/reorderable.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/restore-with-components.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/restructure.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/rules-overlap.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/specificities-overlap.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/specificity.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/tidy-rule-duplicates.js create mode 100644 node_modules/clean-css/lib/optimizer/remove-unused.js create mode 100644 node_modules/clean-css/lib/optimizer/restore-from-optimizing.js create mode 100644 node_modules/clean-css/lib/optimizer/validator.js create mode 100644 node_modules/clean-css/lib/optimizer/vendor-prefixes.js create mode 100644 node_modules/clean-css/lib/optimizer/wrap-for-optimizing.js create mode 100644 node_modules/clean-css/lib/options/compatibility.js create mode 100644 node_modules/clean-css/lib/options/fetch.js create mode 100644 node_modules/clean-css/lib/options/format.js create mode 100644 node_modules/clean-css/lib/options/inline-request.js create mode 100644 node_modules/clean-css/lib/options/inline-timeout.js create mode 100644 node_modules/clean-css/lib/options/inline.js create mode 100644 node_modules/clean-css/lib/options/optimization-level.js create mode 100644 node_modules/clean-css/lib/options/plugins.js create mode 100644 node_modules/clean-css/lib/options/rebase-to.js create mode 100644 node_modules/clean-css/lib/options/rebase.js create mode 100644 node_modules/clean-css/lib/options/rounding-precision.js create mode 100644 node_modules/clean-css/lib/reader/apply-source-maps.js create mode 100644 node_modules/clean-css/lib/reader/extract-import-url-and-media.js create mode 100644 node_modules/clean-css/lib/reader/input-source-map-tracker.js create mode 100644 node_modules/clean-css/lib/reader/is-allowed-resource.js create mode 100644 node_modules/clean-css/lib/reader/load-original-sources.js create mode 100644 node_modules/clean-css/lib/reader/load-remote-resource.js create mode 100644 node_modules/clean-css/lib/reader/match-data-uri.js create mode 100644 node_modules/clean-css/lib/reader/normalize-path.js create mode 100644 node_modules/clean-css/lib/reader/read-sources.js create mode 100644 node_modules/clean-css/lib/reader/rebase-local-map.js create mode 100644 node_modules/clean-css/lib/reader/rebase-remote-map.js create mode 100644 node_modules/clean-css/lib/reader/rebase.js create mode 100644 node_modules/clean-css/lib/reader/restore-import.js create mode 100644 node_modules/clean-css/lib/reader/rewrite-url.js create mode 100644 node_modules/clean-css/lib/tokenizer/marker.js create mode 100644 node_modules/clean-css/lib/tokenizer/token.js create mode 100644 node_modules/clean-css/lib/tokenizer/tokenize.js create mode 100644 node_modules/clean-css/lib/utils/clone-array.js create mode 100644 node_modules/clean-css/lib/utils/format-position.js create mode 100644 node_modules/clean-css/lib/utils/has-protocol.js create mode 100644 node_modules/clean-css/lib/utils/is-data-uri-resource.js create mode 100644 node_modules/clean-css/lib/utils/is-http-resource.js create mode 100644 node_modules/clean-css/lib/utils/is-https-resource.js create mode 100644 node_modules/clean-css/lib/utils/is-import.js create mode 100644 node_modules/clean-css/lib/utils/is-remote-resource.js create mode 100644 node_modules/clean-css/lib/utils/natural-compare.js create mode 100644 node_modules/clean-css/lib/utils/override.js create mode 100644 node_modules/clean-css/lib/utils/split.js create mode 100644 node_modules/clean-css/lib/writer/helpers.js create mode 100644 node_modules/clean-css/lib/writer/one-time.js create mode 100644 node_modules/clean-css/lib/writer/simple.js create mode 100644 node_modules/clean-css/lib/writer/source-maps.js create mode 100644 node_modules/clean-css/package.json create mode 100644 node_modules/source-map/CHANGELOG.md create mode 100644 node_modules/source-map/LICENSE create mode 100644 node_modules/source-map/README.md create mode 100644 node_modules/source-map/dist/source-map.debug.js create mode 100644 node_modules/source-map/dist/source-map.js create mode 100644 node_modules/source-map/dist/source-map.min.js create mode 100644 node_modules/source-map/dist/source-map.min.js.map create mode 100644 node_modules/source-map/lib/array-set.js create mode 100644 node_modules/source-map/lib/base64-vlq.js create mode 100644 node_modules/source-map/lib/base64.js create mode 100644 node_modules/source-map/lib/binary-search.js create mode 100644 node_modules/source-map/lib/mapping-list.js create mode 100644 node_modules/source-map/lib/quick-sort.js create mode 100644 node_modules/source-map/lib/source-map-consumer.js create mode 100644 node_modules/source-map/lib/source-map-generator.js create mode 100644 node_modules/source-map/lib/source-node.js create mode 100644 node_modules/source-map/lib/util.js create mode 100644 node_modules/source-map/package.json create mode 100644 node_modules/source-map/source-map.d.ts create mode 100644 node_modules/source-map/source-map.js create mode 100644 node_modules/uglify-js/LICENSE create mode 100644 node_modules/uglify-js/README.md create mode 100755 node_modules/uglify-js/bin/uglifyjs create mode 100644 node_modules/uglify-js/lib/ast.js create mode 100644 node_modules/uglify-js/lib/compress.js create mode 100644 node_modules/uglify-js/lib/minify.js create mode 100644 node_modules/uglify-js/lib/mozilla-ast.js create mode 100644 node_modules/uglify-js/lib/output.js create mode 100644 node_modules/uglify-js/lib/parse.js create mode 100644 node_modules/uglify-js/lib/propmangle.js create mode 100644 node_modules/uglify-js/lib/scope.js create mode 100644 node_modules/uglify-js/lib/sourcemap.js create mode 100644 node_modules/uglify-js/lib/transform.js create mode 100644 node_modules/uglify-js/lib/utils.js create mode 100644 node_modules/uglify-js/package.json create mode 100644 node_modules/uglify-js/tools/domprops.html create mode 100644 node_modules/uglify-js/tools/domprops.json create mode 100644 node_modules/uglify-js/tools/exports.js create mode 100644 node_modules/uglify-js/tools/node.js create mode 100644 node_modules/uglify-js/tools/tty.js create mode 100644 node_modules/zlib/.npmignore create mode 100644 node_modules/zlib/LICENSE create mode 100644 node_modules/zlib/Makefile create mode 100644 node_modules/zlib/README.md create mode 100755 node_modules/zlib/configure create mode 100644 node_modules/zlib/index.js create mode 100644 node_modules/zlib/lib/zlib.js create mode 100644 node_modules/zlib/package.json create mode 100644 node_modules/zlib/src/node-zlib.cc create mode 100644 node_modules/zlib/test/deflate.test.js create mode 100644 node_modules/zlib/test/inflate.test.js create mode 100644 node_modules/zlib/wscript create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 process.js create mode 100644 test.dockerfile create mode 100644 test_input/json/test.json create mode 100644 test_input/test.css create mode 100644 test_input/test.html create mode 100644 test_input/test.js diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..e69de29 diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..7401d72 --- /dev/null +++ b/dockerfile @@ -0,0 +1,6 @@ +FROM node:latest +WORKDIR /app +COPY package* ./ +RUN npm i +COPY process.js ./process.js +CMD [ "echo", "This container is meant to be run as part of a build pipeline. Copy input files to /deploy/in, run 'node process.js', output files will be available in /deploy/out" ] diff --git a/node_modules/.bin/minify-html b/node_modules/.bin/minify-html new file mode 120000 index 0000000..5045aaa --- /dev/null +++ b/node_modules/.bin/minify-html @@ -0,0 +1 @@ +../@minify-html/node/cli.js \ No newline at end of file diff --git a/node_modules/.bin/uglifyjs b/node_modules/.bin/uglifyjs new file mode 120000 index 0000000..fef3468 --- /dev/null +++ b/node_modules/.bin/uglifyjs @@ -0,0 +1 @@ +../uglify-js/bin/uglifyjs \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..287eb83 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,85 @@ +{ + "name": "web-deploy", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@minify-html/node": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@minify-html/node/-/node-0.15.0.tgz", + "integrity": "sha512-ANzt6ZBiqtwrepVXRfa0Qn/woCkINFBjQEKiXyBmg7+51mIFQHVAUbAm6UHRrT0L3xoPG0BX0/XI3NqtjK8Vyg==", + "bin": { + "minify-html": "cli.js" + }, + "engines": { + "node": ">= 8.6.0" + }, + "optionalDependencies": { + "@minify-html/node-darwin-arm64": "0.15.0", + "@minify-html/node-darwin-x64": "0.15.0", + "@minify-html/node-linux-arm64": "0.15.0", + "@minify-html/node-linux-x64": "0.15.0", + "@minify-html/node-win32-x64": "0.15.0" + } + }, + "node_modules/@minify-html/node-linux-x64": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@minify-html/node-linux-x64/-/node-linux-x64-0.15.0.tgz", + "integrity": "sha512-cO893EV6O9ZHUFX+2Yge546OCo/eCiatjzJDmUmrPP56fQ7pzTRquHs4ko3t8Rg6tMKG7RT49mBuF09JWPnrgg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@putout/minify": { + "version": "3.8.5", + "resolved": "https://registry.npmjs.org/@putout/minify/-/minify-3.8.5.tgz", + "integrity": "sha512-m7Umg719m9kqcq7kV6RXtoRZZyUKn1YQOExfpgbHCYCJvwHPR2J/lADtgtkCFZslUKIyqSsjYUmQeKqDGJpXDg==", + "engines": { + "node": ">=18" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha512-40fpE2II+Cd3k8HWTWONfeKE2jL+P42iWJ1zzps5W51qcTsOUKM5Q5m2PFb0CLxlmFAaUuUdJGc3OfZy947v0w==", + "hasInstallScript": true, + "engines": { + "node": ">=0.2.0" + } + } + } +} diff --git a/node_modules/@minify-html/node-linux-x64/README.md b/node_modules/@minify-html/node-linux-x64/README.md new file mode 100644 index 0000000..0f6a248 --- /dev/null +++ b/node_modules/@minify-html/node-linux-x64/README.md @@ -0,0 +1 @@ +This is a specific platform-arch build for [@minify-html/nodejs](https://github.com/wilsonzlin/minify-html), and should not be installed directly. diff --git a/node_modules/@minify-html/node-linux-x64/index.node b/node_modules/@minify-html/node-linux-x64/index.node new file mode 100755 index 0000000000000000000000000000000000000000..8923c369e3ead387b9bd149d07bc67fb6a96d508 GIT binary patch literal 16169928 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 z za`r;)p;sDDm`nBPg~r#I_r&<_rQP`5S=z(#{Z}YIm+LZqxGv*8h;6Xd8? zpWf7Xh#a1)KE23z4>^3R`t-)e=UDI5IM+Kf9wE;c+D~t3yhLu_r#`){@di2hp!)PO z6KcxN|=ez%5JJZ?Az8j_bvFS_O$TEpH@yUHalJ9u9h=XxXKJ>={g+C#52o*)mtqdvWn@$ka# z{ZjZt_31^%d&rxgs84Tie1*LFh5Gb1#``bruEY4(>eEY&kCFF#_38D0r+fo1{Iha; zk#o!^HNL>SOXEG{;l)21{NMlK?@h6HV*H)B9%AFX9#Z3D+5_xko_37=6*Vv!gNc|z^nHpbl{ITk@cWC_m*q_Ka z_h)K6L@sZw{q*L>GvsQlKD~wU9635(eR@;lA#!pz_37otKY;a?#<|{w@ejja8mGTD zK1Uv$sPmyWG9Dm@_fel-WW2|GfA#5w#xu-k`vCQKCwDn{uyT&ij8BlmhpSI7GTvi; zwEFZy<9v=)k5!-E!g!86JxzUjGvg6*@)Y&y<;KtFbz+?7eQrEM-abS7=>@s+7G86P za(b=t8hP`4_37=6FHd~q!Ru4@67}ho#uMbh%hjhhG9Dm@mHPA|<15TBdY$_8rp9|1 zKQ|sCkKU*~96vSwF`UQ5IL~8de1hD}wVz&VyhbkHp+3F2@eDbCxBB!d<1^&&Kh>uf z8Sf!aKCC{ynek6ze=_6TpVD}O+1~ZS$eT~APj7F0gPyIdb$R_32HG zhkwit?u+uv>ht=njSp}=tc{Pb4}0Swj#qw7`#F!f@i=(=!F;xB^(T042mhsf_oyyU zj8E|VNsVVX-u9c?b2yK0DPQ4w7#QdEFftw>r{C8edWG>AdA(Ji-ro2Hm{0G=>T^D! z@g2q|zfhlEW_*Gi{#t!{k?|h#dapjcz3~^}`^nz#)IXfR@g2q|e^Eb#ml>ZRCr5nj z;5y>x5qi1t&tX4Hal=jmLF0H(U*Y7K*H#EM)`Irv@iB6J4ee*o!Z^pTj919xP#I+1XMBmgxsm$x z_QqGpvzw|UxfJ&jC1~x@&Dp_jnhwz zkC5y8=yB;a#sm0etbPG+{{ZD2-+!QTzHTPQ1MGkNAoW}9S8IHO<86&Ej_h8Sr>AHS z=P@%LA@^tM(;FJka2>|R_mAkt4X<`eyB+H#5G$dNSh? z^6=lahvUb_d-(l_sqx{>mIv>9665s=9iJH=-oN9i@!*La&yCmkc|>7+jh_e9#&@^u z-nY$-w|M`(Fy6=eipDrUM=Xs`@p{@C@8iB+8(-so*ck64Pya*re+-@)|1Pe#+&Hhd z$~p4-z1mN2XMBmg`+)j~-UpSh;gugz-h;O={(a1UX`J(48=oT&KB@imM#eMv3*!ND zaDn!4d}#bEyuTV5=R7CI2gpUM{q$<%De~~E>eHJT{~`7*HqQB^#>dEu|JHtbE8`V% zy-}ZDW4u5f{Xl(s6XOHq_$TVq%Zyjp|H3%eTN_W2H#_a8w>Q2*-uy;=dVAw5k=ls{k=g5PLef;1#%FmDVM#cl=<`U}DTN~fv`q>)ie1apjr-e7ZjBk1m-p9xdUN9$a+0V|FEc(t zo;*x_dWrE7a{MUu>1D=$iS-u7x!&4%io8j+pWfd17=HCQ^;ht=PgH(5{z=MfyuJ*K zbDksP0djh}_RuSg$H@I>s!wlZ{MXpGv2o5PHaZR&(2n#UT%EK{2KM?4UPXV?<3>fpQ-T>xqO56)0-R5koV`RPp|(L84Z>eGvizZv(-#5m`l7#|_mAJu+( zjqw7x{*?Ok8si1>^t0xJr^e@)e{P)fubd;Vzoh;2cE*>;*+uHpD~%_}<$tSBZ*F{d z@6KzCw|L&Q#`k&WuZ{0s-SLg_{aZV}Gah`X|CjHpBkWIPJj3{AqdwQuI{&-; z;Qf011NG^p#>dF}AFEHV{}biy*^fEsuYRtaUSs_CxKCHcd7W&GFOb9EXg|Hkcn^8^ zJM|B}-z#6kTmM;k58lrB5;-{H6Y@ET-oW?<`&b*#v95*j?Zvy^;U%@7y%Xbq!hXia zxu2==G4kT_+D~s~yh5H{S$%pl;}P<1p#GtEl=3ya!L^n5;6=uR@csw;J~7VqCdNm| z_4T!%USqs{@G}nj2RBf^fVV$JImZufto-7b=g>IkIX2!$&TpsuHQ=eXAyg**ONPT)M;}vpyruy`D#xINY1}{^e>m3;1VtibwPcJpT{6=?v zlh>(FFEc*7sPmVvSAUG&;2h->jBnngoV~5_8hJ5SpI&RckNw#g=l<-CuaKj6YCpZ$ z_?6HD9(lq4B@wb!(jSnHV1+7k{#T@Y;BaJpDhPJh&eDIgZ}Uc!V7NmHPBz zCaUF0ZIQy}9ub?z_#E)K7R{Tv>UJ>$`6}#&tL{UgCO~ z8sGkJcRpsuL##J7o?+hGfzF5P364_U!Yi(&oZj5{4RKx?<2)~Gp-Kz7F+pEvs%=r3*?z%0EPw~FFGQP(9+LiGJ z@6%f272cn0jE8t%u{FN^NH?FI@f7gjK|2U2WUUNjqwF?{b2R!HO33%@x#@p zml!|o?CyJ#)cE22jmOBVQ?!_yT@qJVK5$?cw;; z_!v2Tn)>ug|^fty9$i@5Ar&k+K zk;flYpI&Tyh`jlT`t*YHmEQ&H?HlKMhsO8loqbY!=;g+z$k7Gr)0-L(k;5;lPcJf_ zKCb&5y1P*QL+>lfdl)}5zQ*|Azs!d>FwW;>_$~G6jg8+G`#d$yeV!SQkmujmetJve ztB-Wv#`t#K@#F{E(?fr5yu|qS$LjNVJL7l9x`Lmm&vgxqZ!tdJsZTF8K1R-eqdvXL z`0^GnKKL9s{jK`>$!|H}>pv*x_?_`3av6L|K3CG48_$pjmr$QxWc;4kw~2A?TVi~K zTwhxI={3d+~#^6V<=)60!dk>jhYPcJimBGy|N=Xz`7De@-NetLW3E9CrW z_32f{XUOwo)Tg&JULsdFQ=i_#c#b@}rTX+H#>ZH1YkYt_K2Cc$J~4i8>~m_I`&<~0 zkyp3VetH|@3*_cb>eFkD&v1W^k5@mqM3*PVhnUaQc#YonuG+)n?Tp`-&!xMm&wUse zKm5Mpp6b&JPEg*$>)%^By`gb_Z?ii|{rx|6d3LgLj?axxkv9)gpWfd13b{H(eR>Py zIdU{ppWf7Xh`c^keR@0Ny}PFe&(qNp)TcKwK0w|*S^YyVQ@(~bJ6(AXUT%Df96nQh zdXe$q!lxh1KYO0~^h)Ci^6*9K(;FM_;dm?KedOp&?cw;T@eq0c3iavr&sM&Hw|KR3 zdMo1<^6VV->E*_!$b&blPj6&AKyK#h(`${_$eVYlPcQfn1WlaR~V0xt5$t_ z3*$NR@T=<68yoK<55KNHy|M8=^61;z_35?7YvlM>>eEY&kCFGkRi9peuROoYnFr6e@{h{t&5dWs(~Est-Y3(W z8IPEcRG(gGe0Pb?TV6_idTZlzeH)@r^xwz)u&e(pCQj4pgz6A_yh5}SsCZ+=E8W6ynBfDA9|-KU&AXNp}YsLHl8Av zr>akHZahPdAE!RO)c6>A{3P}1#m0xo?Z2u|Z)?0kUOz*9dOPDwzf}9DxK2XjF~(OfSD*7(7|)T1mHPC? z#^Wz^zjxZaR(*P{@ftaMgZlJJ;|X&87WL^h#tY>1ZR*o2jBoL|H+qNq!&$ekiSZcY zSMO4vy<6i6?)SZM-tYZ)YtIJWv{6oPW;{Zkou@v%!uTnC{ut+c8siU#zcNmLYy6R1 zuW|bQkLWx%@TQ+oPH$#>0YChd`VqYO1r%=oF;&&)XYvoij8_;cg*m&Qxv;5#}WdIRIzP3KiVP@mqyc*6c4sh`8! z{g3j)@jq40-v>x`%6srK;}hh;Z`7wZG9Dl|zf+%HYrICD{aJl_x$!CT;NmNJpHD9` z{zRO|iE*CC#P|rgzNGfkYm67jqsysJZ(@9ayuG6O^nxoXAB?)^XLdE^^h)FWcM5}R zs!wlZJV2g@>eE{qFOln`)u-1OPdL9Ds9(UVj#19>3*$NR_-5+Ui;d4;-R)cZx9Zc| zI=@(ca6MI#`t%mYbL9LV)TdV&4{%*AjJLQB8skH(XJx#>yoa~dG_+D~t9e1)8ztUkTMc#NF#<||H@ji0?DD9zF8Q)+Y3**~+Jni7V+ZdlA&mOD&>@AEx73Zrm&iOBl z=g7M!YX714B;zmbuD96u8sjIYtKWk+GyZhUGc(S4mc|q0_F39bZ)==C7f8=gzkxS= zzH*Kq8|TkER>u3t(Mz<4PcJgw zLyj8t=}nFE=ML)+t50ude2JWWRDF7-@%}a5bMV|4d`f+KBjW*b_*wPoMaFx`n=h(Q zZ*P2soPR}qdX@1Ra`a#7(~FHi7uUngIIoA?_!N2hZSAMGHapq{jvJ= z3gag*eDNX z$H>Vs>eI`NPmr^lsZXyo&iOA#>L>8pW0iCK)_8-Q+)90Vnehqo{)%fK23~$g z<@74!E1Z{=@fq@LqCFg67(Wx&LuH)T!@_uuyt}9N)9at0{4Df`#@Qbk?;&R=X%D^9 zc!IpWpZfHIla;sd>IW&O*BCF5$ET=IFE-Bk2M<$!2(Nmia*kgZ&ygqpqCUNu@mFG> zGvnOn(s+VAPPKo1&n~y8Dd+gDarRVCQon&We5!JepBR5N<{um9{8Qs&W{F`nejg6zcoHV@9a$N;qeONujBn|ocp#go+IyG zsr`purF;!<`adaqMnV?G1poX^O3fSkTbd*~I$W90r^eR@OVE#^HjzW=vweEW9o z;rOlb_!Zsnnatm%KE0*!5_$4|_30(XH~*d=yyHnfq&~gEc#Iq@)u%TwzCFM5cArrH z(EFtFHN5R-l=t8T7btJxwO>$9Z)<#8V!dBfzk#>EP&voeK5VseA*kxRi2wweb`=yS)1J zO5+J~dS&(L6~<%a_$c-1rN%Q{51H`>`%)VpBM+~w{p=kZ?<0rTQ=eXBoPXb7aYOa# zt&CU5i@#By-pY7|+}zxJ@U`)`;Qrbg=lvDjLVH?x<48HZ*!U2+y^Z?xw#FOeCaUZtko;z1Db*T;E-NdX4cK>)jeJkkhI5aC~7rM&90AeR{!3%3FB#{gl&dj2Fn` z2dPglHa8*{=k>l5^ zPcJn-Mo!+OKE2HN1bH}DpWfJbAG!Yy_34d_zZ?5AHqQNtjSrEl_h>)8h4CDD*r-o$ zY`l-W{IL4;*2eqkYY*P9Y(J_#z2IZY=Nxam#rXcG)#vz;@%M4xj34fs@gZ{cdF_wE z7shks`pfFmYm67j)z{Rgw=kX~$KOz&UTU24Uw%{lF}#)WygxrUFN^Q0&)${s2A}I% z<0E_?8+}iEde`f6WW46{+<1ulIx)U~d)JdW|5V3I;}zz&{*lgy>)9Ls;aT0^wdift z=XEkP-r%~5jMJYQ50T5CYd^iY@eDcqmHPA|<2$Tp`D^ui@Uq`2=lIfif;{-M`t(M| z1LX0=KP#U{=*7nQ?@cy;r9QpA@fC7@8TIK^#*^2*_h26371XB}8Sfzvuc|)1vGG3g z_Uh`>3$CHOg;!ihIlbC=iafr)`t%axAHsE*8s~Lb7>|)x$7nyjjq%~_yMHe;{2TQb z@WPub=lIBY4|#d4`t;Vu=g8YzsekC*TKPw?4+G=ehmr9BIlaC1&?}996#cbv_BX~0 zeGvizn6c9 z-#FKs7#|_mkJEm7jqw6`{3P}1CB{F^=Z104r!XEPuTIx~dRyZcpnq?i{r#tD&j#M~ z*~;n7j0b<{es8KdL;VGMR>mWYpFdxH_AZT=$mvVer&k*PJf9E7x!%TjfxJIU`|0&x zp*(n0_jf;5XDi=e{PZ=-Ieun5Vy@Mv7aHf^#cGW2&gsSv&($7|pBQhkKe2J{PilOO zym*`T(_0y@kc)--^lIZN^7wt~(~FG{kvAVupWfbhfcv-iLG_2Yk4DCmA9TOh5gCth zon*%Q*q_q)it{*MkIVTDjei;EB{I(QGBq9|m!H&rdJE%UMgP(```5wtB{Tg2TRplJNHO_y>xBj~N^mfLV$eVAgPj7F0g`9t1eR{R=HTHR7 zocp{oUNQfV_R|ZE?|#yG^)J+?*BCF5=f75;-qLu9oc>OIdZqFI#(HbxTyJB%K;HjF z`|0(A&&lVP4ZP|I<@6TDbL8lf>eHJV50R70sZTFA{w=JxG|u(Tjc3T)D{DW!;3~>n zc-c|P>6OM4nQr#CddzgFiBuBSe|k?{bzzM=Z`md3w>{b`MJf40UO@A=|IT=U^S(FU z$Gp?K={&diUMM%tb=Jmzg!8yC&hxl3UNN7j$E6n<-%UGjev6nXO~?WealzCz9)t3JKT_zZb|n)>vX#!KYt zDeBW(7$0N)(Z8yn!<#={Ima)Jm&lW6t50uc{Abwb%sBVCG@c;0&)0r>TjLFK_7e5! zmBtg~@a5{$i;VY>hn4#D#>V@|+t;d3FL<5u7GCxS<@8G93G(1A>eCw;=l+CmSD#*F zJiz$ecn^8_F74s?vGG3sJ6sdv0sebciSZ5oyHlC*(XG3`<2`=29yhsj_xB|y#)oh1 z_|$mAzlZ4@|E@nVK0aY}@IGv2eEQgqr^ZM4cTAb_0sh@eVLZgYC#j5YkLZ5?rZzss z@9WN;@VXKEvz9#`p;L@78!9=XLs@dLDV* zq{e@R=SFUv&yC7C^7=gOr?)e{M4o+2eR{d^DRTH}_31^%d&r~Dt50ug{C~0D#5mWR z8J{4}FVueaG{!l;HC`jfYwe+z8Q=4D(>Ui@8&8op-_m}1!MBzF0sVdB>>nE6qj&ZL z?V*<&pCYF}QJ-F6JZAod`t(BMoKLz_fA{k)C%;k7@tN@z*0nP}L7x3ydpJHfUR~;O z2hXwLU(}~JHr_|BFaCM?97?Y-ULeOk_35R?^MCI?7i=%1KE2?w%3FBbD=4QITv2%o zZ+BJYhu+nc@BZg?2kWe_p}YsLF`ho`nh*C zTiif7y_N9_d3BYvmuE9;zAHu6{uAJi=K3gf{C-*oUiTs=>HdK=>leE{rpCiYO`t(xc zW90li_372d8~i+aVVw8N%6P^63GJsB8sB}q^X4n{>8*@k68G=gIOnr7zC<2|1D@`xY7RA!onR9(twm1bMJmpWeuLfE@fueR`qs z^RC*xzK@KLe*B1oeVZ5`ATKZWg@gZp@8Ew20ll^HIdXQS`t(ZU>7&m%Xk7l4`8Xe~ z@$DbGb*_yk=xr~fJv`pd_!V#-gUhPV^B5YxGW?No`V->=weEY&FK|C+ z#v80_WqgdB-ce#ojaqe4ee284#Q~T*HjOWOse^Q^` z#P|R?h}EYzFuuJnya%dJZ)p6(c>fR?=X$5cL*()l?WZ?4o*|br_36!x?;Zf}k?Lpg z>c=SO_@(hB*3}y4y0*p}3#?~pyoVgUOnW#!HhwMKUo+!8FNN{zz^{zcUl`Akca_fP z(0i5gHN5(D%6sq{;|22Sjq20e7+)Zl|E4~@x$z7+d%ODdO5+LhyVR!_8lPf+=I>U2 zx9IZ1IOm`Ir~2&8j1Ta=deW$0$`E@ z7me`(dH-?kr#JY7@&{h7d;dH%&i=9SKJwsG+A}};xd+d^`~u}1Um4$Ee!*wepTWz% zsGQ>~<2S_q%#CyYOXDSSaFO=Y8yMeywezyCt52^qo*<9Dtvp#tY>A&$XXk{};+P@X}u?r&kz{k%xQr>5Yx|kyn3IpWep!0(o|^ zFCJWv{Cr0*H$Fu!k5r%D+<1l@URr&6k?|gKzpp;Mq4E9Y;ax?2dZF>%l{;^Dl=_F> z)s@FMzoqdt#t*Keeh=Qrcz`^=p8E8b#!KY+P|*Yhp104Gd@9%AE7?I)c6>Ae5(5N6643>dPt4)dMJ#?$g9U|KfR6d z1#eHJUkC3xxs!y*n9$~$6<6Q63c!?Yo+D~s_eEYo4+r3ErL+{1P z*YJunmG|J)##7|Q+3M3<8BZ|()hpGn;4NRPoa5KVH~;bIgXh@bP3qGd84r-hbM@)P z#)ruLcc@QqWc=1Rk7MIJkFoI~a`hhT2VWS^k?Tf%dX4b{d32uo^d`m!$jwL9r?)o# z4_NQkIM*9|OnX{*vu)Gyad5Php(%sg0+|n;&RDy}j`ja`qGT>6OOA|9IiS{kZ+P z`t*WdC~x7_zfw-GF|{ zF+M`xURiy5!Bv#E@Y17{(<_Yc-`?$eX}rdBW@|je{k}JzW1k0C*WWSQ^it(w(oh@i}sOJ?*Dg7>`%o_Z92wt3UW{$5%H}&hZ=L3*_vk>eDNYC&=T! zRi9pLJjT3d#)ru3zttBc!E62 z)TcKwzI{sfx>i0#{QB>32Hl8Bq&sLvaWqgJ_F4U)&7=IAtCwg$ zy^Zk&a`tld=~c!bjQPxsb3RMsC35g;?WZ>|zQ0%JMaCzyju*y59ZhV02r!*d6e;ea9=GVW49+&eT8UF-+ z4`*zg*K=%qh+IY5Pj6v7M~?nMeR@;l`v>B4-0jt;w=upzF7B*8z1nz+ytupi^j5|z z_1QZyzAwA|-#=J= zdi{qe-@w~ETsghH@e=zJJw|bSZ)E{8|gC{CqVcwzf z487G;)aUUQ#`$yh=;`Xyn;H+1*UwU)-ro3Wcs=SpTYcWYq46EYC(l=(US@oP9K1w* zdIRIz7k6I$GWF>#jXxRlZ;f;QTjLG#@KxGRZ*07eyn3Db^fty9$h$YHf9SnQ`I6`3 z&B_bRGdI3Q@8I9n@1Zv`{;$}diE-}F%=pvbXU6H5#uMcBojM#r$#YrxzOEeXR4+PpeO_ zFdicppHrV+ZJfWqH2jkK^v1^f$g8iaPj74dS=gVwaqdt5BJJ70n|?z%z0~;g(4QM; zf8`u`{ax*+w==#(&VHmmz0!DsJou^l^djRg!2Bo1Ise4?2)X{H_S0*O7s%t^s!uOA z&h<8bP@i6FyhcugFU#i+dWG>Axqk`u=?#tVkLbL`CDo_5GS1hL;pNn)H#Xi!-ds_A zdVAw5eJg9Um~xLQJ>z%_yT!(Gxh1M zjn9$iw^X0r(s+gQH#t`Q5?*_pa*p2`Z;+GQs!uO7zPqsdy{z3G)Iap@sC*4?aTn!1 zcq`)-^7sB(^98RxpfhpRuq`OA!N@7sBW@ru2V)*c=&G`>5sICy@wk5!-E)_8;5 zoTfg#)_8vHZhyijsUIKP@%~elbNtZw{$D$9{|xo%^>gJskE>@Y-(dXoxym_yW_*Fy z<-$0xx7qWwC&24eZhVN>o5J|+QQi2x@f!OW6xttQ9@&eObKa%#`n%oFaf&n5r&k+K zk<+u)r&k(Z;ror+IA6yb;|22mwc1aw|2pLxc>6afr#E<`@)zTM#n3qCGco>B__1;N zsqr!LVy?%f*BU&JE93oVTAKGKbEjAzKr1=`Qv)_DHtu0Q;& z`W4RO;B(4n*q^!a8om85sn6pLjqlseYrm>Ky`AxMu+PCo>T{n5#eK6AR`~|r>I%x~ZH=Fc>vnIP*KPlb+OvT-9Vn+a zGaey_*HWL}*!bHppQ&-qXJ$M?o?p-U!I#E|SLx2z?)vI4u&(@QKzQ8`T#<>q$;|=ogSna1bHr_{Wj#HmrYrICzZmT}M(s+WL+);gc znehqoXrey7iSg!}-TU_FAJwNfH69`_PgI}Y+Ia61UH|Mp>eI`O=jY*b#C_GD!dpH- zImfS!FVHi1kot3YgHx1q{Kz=xlRi}aIo6pQ4=_G`r26bFj2F1x_QnS|PyI(}PYkd6 z7v=0-80Wtyik_f8y{YjKdHrPd>Ftfb2lrPmQ=j+O(D?h|N5<(-jfcqP)3u-8!uW^K zzckMNwedOf;5ph)Z)ALj^{3BOKSNLddCCKfPhY5c=nac=~DO9A6lZk>k&)PcJn- zM&7sT)9Zgp`4aa<|I5lNTz^yJ0oFM;zQOUruW1jD7a8w0FF1I=IQ)kC^v1^f$cv5o z^jhPe!}k&!<9wd%jjxcSA89|msqyxe-Tcd~`W1R=;}Uy;uR9G@5;A+Il?KE0jsC31Et z_34$y6Xen5)u%Tx9wpuPX8XSR56AauS5eOKwecQ$c2`wDg}1qea*p2{Um?#!_315* zZ+_T4XBJ1RPj6*>a+U7-Y>rW%UTeI<`0q4rkvw<#+S&+E!C%&8J{5UBlYPG zj#IwG`--7)J_jboKMp@OPCqq1Mqb=bk4tZ5yn1A}&)MzOujt)bImd^_cgJ_$;%@5G zTN$6>xPyDBU(q{JImd^_chk8ZXeh zPt@n}`VUsl=X3oq<@6fkeE# zYMg#yJVstUS?5Dd#s|ogH|hL2@5Fd? z*Y5W)2Xpo5MaEm)M-$_`j}qe}eCw==g*7FmHK^n`RA2$d}Vxw-2bxr^oGXwU+TR6 z*VLysG`_#6^9J8AAKu6~Kld#+>eE{r=jX@ach#T68~jK)$B&E$$n*bEpWf1ViCpc} zr?)VkBbUEXpWfVfhMfIgeR`$w0Q9It9*#S@o$@ip zFYc(Ey({B;TsQIY>R0scrkvx4#=nkzi;Q#Mrp80$a;p9G=EgJR{3P}1RmNw?gOk;# zH!>a|kN;VHdWrFG@;W!p^%lls6OM4dEuH)ub- zmGM6O@f+2z;5Bbi&hcyGzra3hjdPyCziCekZ~PAB^kU;f#P}aDpV&D4)c6>A@l8E0y_N9_x%sa8 z^jhOJa{VLq={3gtm{0m+^$U3WpDE|~{?C=i*yqtNly9)_bLZ#{f2}@y$Hp&q-R^zn z)HwHfW;{Zk|6cp)EsdARlfS4>FEKts-d_A7`}~6OM<_o6^B)-J{71$E1qE%s$`b@jJ{E)TDxoZ~0PFNJ-JjdR~p<74E- z(b`XMWxPVpj!~apX*@wrZl*rH%=qx1yX&DcJ~*x8$w+&q&**q&yf~}lrSTfCU$yZP z&+W!|5BJ5^cpv+=Gd{t*(_?j>TxV&#kMmU<=lN=k7s&ftYd^jIZIo}|Rb%D!7RGbr z=y>(%#m29M`Ol1V{<-lf^78K5Pj78}j$BREr?)WPzi#(;SElz;fAcpT-`z*~;rRP1 z&(RwjUt|2{{_6MO?TxRH^F)1mwehQBKNrTipDW`P^CPsMUTA#x@Xnh*T77y;<0W#N zs!wlgyg^<+QGI$l;~}nx-ILUxVO{Z)l`kTZo^*Y5r<%+B}{e`jxRynjyT2T#-aPxyD2jPGyW{d>;7@$eryJ}{o+?+b*+ z1N^(}q4C*=yPlEp^m82_8&B}>b0)_5bCB40gx|MLjOX}$!PIyUzh{#fAK~X8x$zag zZz+uL?uzHX@fgp~%J}xF-TBx*Q_l;pr@^z7ABFpLXq@-y*mxf~E&ksd1KE2rZwfMSeoa@bvPm!1J(SCYs z<01U`z3R{5%^T$$zcPLu%yVs=^V}I?H)APFC}Bp)2raf6YY9UW$&|e? zq9v9xh$ct}$rK?PgSNLN(h{P^mKH(V%Qk6y+dI}0OFEWJThk(FvHi~Pt$W{d?mgp= zIQMft&#mWqs=9i4`+dL0=g8Uj)TcKveiO{6G|u@; z^Pj6vZ)tprJot_J^hU-MbK^I| z{x6Jk{~O~o}dUwXT z-tfxWvxb*nLpi;H@f3M`ZT0uP>nLyFHIecTyq)m|pGS4BuRiA=8{cAlaU=EVmBttF zx5hK%@+R8D@l)fs#6HiAbDj(16Xf6)+D|VszB#1z7PnEK-rD%BF`un*&Zm=TPXjN# zqjL6S#yP$)o*?IU(H?pO<0a`_MJcedrkvkw^E{9(q&b zGwj>k_!{$D7#|>~x%RWSZ~S(c|G+rsKQf*pFOJlHdX4cJa&ff!^h)Cy^0-i+US)iU zyffba)64hnceBT9563Tz$JcM4N3tiWPp>eZAa9CaN9=uk2IDTY&7QJ%sx*AT^r#Cjx?pRl7oa^cu-=TN#UhSbbGM+PkPzx}PA#Z=G z{rld}l;`k6;|<0a#z*&P-(Pfop*zqnm%{k==WTCtk@mAUH~s^>?k$XS ze@f#Sa{YVlr?)a*A=j6xPj6+sLLU6xeDJaHjOW)l=RY?-Lf&4Xk@rFS-W8QM@FrJL z-hnqaeqYRIVVv`6jL(pxYid8e#CU+bJV1SVYvXg|!GY@28yPP#pUQZS+!$XS)n3n& z8)-j#=f)qv{V~43KgN5vZeNcTH_`qEUTHi-4sNbKz1aAJFrUOY=aU=%cld>I`lay< zxxS6f2Yh9`LauMGKE0K3_7Cr* z9xpY1G}fCL=Xwj{33Byt?Wb28A0teGvjZ%=N$`UUFK zTN$sAhhz2Wjg9w_d#_NRUSa%k*q@jz&OpWUeS!c)}WblcoD9z3Mw zx$$(+@{#cZ=c_W_#e8bxbIdP3P3OaTr^b0dU!0*ny|wWtU_ZCUxu2akYfl3&eYZNj=tAWj zKQ%r;j(({=y~KEc9B1@$KM~h$Vw~4)W<0;saeMm~9HRa7BIBEz z!@G_8^kU=NTen_wJN4;pjYpVYc?b0u@Zv+2@2}T5dvoI@_NOq;{V9!S$aPPTOK)Yo zLLMEiKE2BLNtn;vIOnr8K4re2_S1`v58$W9xA$$wZ*%S0AO9fbyQIBN(g!P#us=)V z4SH9`ho`qc2gx3$JsljcFrFZ9j#hu)dxY|nv7eD~?q^~=Kpy^w_Rt#}?;|(Is84Ta z{D7CYzaP$X<18;t!@(#R}@z=h&o&VZ6=f5+) zL{6Wh{q%C>~N_30JH6Xf8<>eGvjk9a>c&iQA?BjoWbw4YvOe2CnCjr#P4#(T)U zQ`M(e7=HogKQzwykB#?{mv7R3dTZlz)jY{ZuQRg_2s+uxH-Jh`;>DYQ{w~V_`~Yc>lt5P@!@;N&5iSX4UDJA zvrlM0y@l}!a`q|p=?#p(2-i<(ob#C)AH$y+r@t^hK@OHSAMnU{0lxjB`kODbx&Jlg z96vNZJ@WZ``@H#v`t*WtDqq118|C!6#&_Rsz2*n%)7u$;DfX@NL-o0DvGFa&7e7&- zUTHi-9&FU7H!_|hcYm!uy`J$N_O~#;z&wY>L*(#c?PqUd{1w=ro^kF^-+2DdAKN>> z)1CIyn;Rb?5C5t@y|M8=a(LPE+WW-be}jNt*ZA%-t+%|Q`t;Vu=g7-{P@mq~_#C+o z%?Do@uaH*lNs+}{QMyG*}F3S zYRrFaob%rqUm~YB*M54r@#cpAvv&p5ho~RJo7_e@$IpzH$b;LfPj6&A`RDeyn^b*z z!JU=o7~eC#!ua5B>T`T#eDklZx45VJ^w!StI(BQE`yU>rJ+H(0ijC7xjdzgCdutE9 ziSYtCdVu=$65|1K@DTOsMaDM|ZoR0lKE2fVsaS7joa-%&C&<;Kw4YvWe2mrUpwPdYn15)T^Y0qpp?B~??V&d^ zo+BqORi9pFJVK6Mr9QpX_*;3M8|VBB;|X$giuTj1jgOK0r>ReGXuOBKIzxSW8{-Y` zUs0ugfX8EOe3PHGcinc4hq(R|<2kOk)OdsIuQa~I`JEXLuy1qYHP+L8yUw5M>=_S{ z7w=S`USoWQ{VC5du`xK1MDyiOA10rK!e+Cy(_ypJ4wOnrKh@y$nD zZ}C6s(`$^+kY}G!pWedw1UX%*PcJtfBk#VVKE3Fx%72RYm0jc9&z|uRdGt-~p*J-? zKpr*f)2ocX6X$nsoby>4pCa#mr2XvaoUfeYW8+(lkAA8?y~KEc+-%gRw>7@T`RM*! z{Q>5m8((1j;@9f4cWwM#*te~5?pxTWzVEjGkFO9Q*V!S|JU8?=`HpXk@ z(cjglH#NRH_EmfL&++BIzxV&0z5fOQy~_9yIlQv^^t#6P=W{jn=}nCfkkf0aPcJtf zBRAJopWfE^0(pD`_32f{hsbHHKE2#H_j7#{_37=5FOfGlSD#*Ri1HP@{MO3p4UDJA z@$J;7mm2RNFYcs1y~g+qIlHU+^a|tIgWKzE+f$!jcn{_8!{a43&c{n?yn|f+oA%I~ z7%z}F_f?->a6jcMcvY^PUTu7g+FRgKlBR~sKAk6)oay~_CF zzHR^NmFma153Y?Tc>HgTH+cM~uhO0c)>9ZCVjk<)s?YiDjBhc|^c3}%@Y2(ib9~?U z$8fz3jPrUM8PAb>Z`A(s9__v@D&-vC7@r|8->yErwedOfupBjoMM`stmkyn(m-w(<_V@H@)a@aprF(_0y@kgN06r?)Wv z8LW3@oa@~fuaUbKYCpZ6@esNDOZDmXjEBg}i_8aK8=oWRm#9x~U_8fpSr{K9{A^fKegA6q{Reju;&BY5M>E9dyi_-fPk%#9bAUvLHO8N!=h zSvh-adUNA^ zJ`HZ9euDRXYvTjFf7=@0b=vD7h_xri^HFTPJgfCH;|cDox$zP9d1#!^%Om3>taE!4 zoe$R^9;|$W&rf3GJnyOT4sv-5?V&d@ULZ$_`t(xcU&M8o8RvWo;|X$gNA0Iq8xP=b zjE|A)yJ!!`H^#q=d2Wnzp21zUX9cf!Pv!Lb#=FSdBh=sb{!MuUZ+u_n9e9=TA##vUMlK$zKE2ZT3g1f`8(-jiTvOv6eBYxop5S{CbK|?;wm;9VjZY71KYv*nU*YrF z#&~zr{`_KNe1^}Lf+Kak4Ifv=E1ciRc!u8bQQE`(ni>BU9*?zgURNvQ6>|6(?Wfl@ zzAIX9{&@B2t&DFmpS5w$XJ>qgoIY9m>E*^_E*^_qc5*YG%vjC1~p z@c?=FZ0(^pHr_`rpQk>(iSYut_agP_^^JFtyDw9pUe9=lynL1V^ftyX!TH@8=l+Bf z?ODUiU$30rz<7$hJx%?6?{wu2y-IlpUTi$?|L5N8s_Jd()2oe-k&Ab#Pp>qdAxG~~ zpI%}-Kn^~jKE25J=KZa=_=x)S8sjtM;uGrA8yPeE{o-{5%R57eK)3ocO3@saV(y7eYMQ=i_Kcj~M6q4HE5H!Ry^o zIlaE|F7o|iKD~|c8o7SF`t%y( z7w|eX&V3G!(Vi8&-jkKn>l^PPFNW&VYmCp3yCH&UN*Tcaf*x z)P8!k@!xabjI)1je2yHSr~UL&;~nJsN9xmC8EpnN$#q~KfKEm}d zHeO@@C&ojpcV>Lb_1{p}#eIp5Z*S0gvsit4OXHWv`D%>wd~J;{kdvEfKfTO&gdE&b zeR`4c%`IAQlc>M%{fqJ|Vg8YE&Ob4}IeE{o z4=}&}J=CAT3yx6E@saV(;jLHSM}2xL<16fMcwhA^cge`y6y)kxd|zQa z!t37L_z17N2F5eIZW$V%;5r-`Ut)f{f7khN-r+-)2Y)@P<0ItsQR>s{ z8@~#!&w+7XpCjWr^5SvYPp>gPL!LfSeR^}_Bjog{>eK5RfAJ~p{d{12fBwdE9f zUgpMkXScoS`?a6FedE{V{l_@Zi^rprK$myrmrD!g@PjP@n6Kjc+l&_^SH!O5+)F@(uOrWyT}q=)3CEON=l7t9{?P`M&z}f*&Xk zFurSih4H(!`S8LEl=D6rU8tO1YWzU#b7q|TTo_M~t6yn9z1sNV^R3qyUt>M}Uu#c* z{?hmueH)@kCB&GQ=i`2_#C;umiqKo#w+CI_0*@gHeUX@{ri^F>zjX> zC+@93{wL)epBnEVHwURtZ)<#kT-;23dL!cp;XF=^^E}Rsm&lu2X+OQ-*2-7#n%gR; zw>4hiI!SM*{v7*T7|$@Dq45QJw|CN>{o|#|HxFrl-nzT1@(#T4UzM-n)%Q?NZ)Lpv z5kAL0LVbFL@dSBuANA=4_f@`v7v{?8b&Y2Swey)iNc{@)UK!s#u=O^^v-}u3}J_p8meU6Oh$cx8VKX_w&hMXUxKD~kQ7(J!&6nScVaaQ}j zzC2d@**i7f<$cvS*Sj!2K@Og#{q!Q^o8wz=a-#b5X2wh8(Mjsln;IV=Mn)5Y$kmIqpI&V|fWI={D_*;I-3Bk#o-w@f%apUXGT!^daIa_mYW3*_uTg#r zoZrwm*V{F|L+@a!J@iJ#vs2o~W9KyWb9jq0lyiJze2L>0Z&rT>Z}nE?9KSJMBM)cl z)0-H-HTI`6&iz>!PvEbN)881ck-P7;`GEI~kHMq&sUN}{eMmXSPmT9Ej}NOqfH(V? za*kgZ=jXALbJV9dGhQOspH-jU$~ZsAo_=2a3SRhSGh3wk=Kp-^mfLV$fF;sPj70R*MINF>eK5R?;_V1s!wlayh0xSQhj=3<9u8%f2%&d zwedM}`3LpsO^o+(yy%bW7x2b^R?hL2@gZ^+toQDV{5cW5!gzulTtR($k@3ytTd%&d z`t(-DE9Ak|)u%Tyo->&RZ@i1V zJ6L^s;Z2pV;Y|-wPH%2}gq+?+eR{d^b@KG!|Nn1wJN4;pjMvDMRDF6g<0W$Tujy!J=Lcd8Q1qDRP;sPj6y8#{Mpi7s%B^wTI(t<74FH zDD~-O#v|n9(dyI7j7P}nBQKt${q!2+Gvxkp>eCwHp50Hlw z_34d`_mKyus84TXJV(w?Q=i_zIDa0!JVSkYYvXg|(OcE0H#I&$j%VuAOO1Ds7iX(a zuQ5JD-n>tJdcpgZui&jeteoD?_!4>farNn~jn9$uh5Gac##7|oXVs?{eNOou@ObYU z=i|L+JVYLSS$pVBjSrBcmHPA&;{kH~ZT0D;#yiNH@2O8OI8XTs-s(rn>1~YH$i+|8 zr&k)!kOv#}>5Yu%$irW&Pj76zj~rgCKE1B--EUhj_@nytBI5(R{?3g@Q9FKUJjVUM zGM?hTFf+c!bvZY_`9s^^{fo|%^XnN8k?Y`s;Q#-xv-jU1ptmw!A zI3E{V;|t{Es@hL4Gaey#uc%A4O4p5)o#(0g~9H>6Mt?>o&@J8y>8yoK< z2RBilUSxdp&#hN?)u*>IULh}Ur9Qp2@j3G1w(8SsjL(oqcT%6;)c62-a98!|jf_ul zJ=DfSoY%GS9J#oM_OrJ%&i60D5$e;6jBgHaz3M*d)2og1{X*}7>eK5R?;;QWU443E zt$H8sx1*WCCBd3%)h?|VlpA7ec|<2iZ;#vAlTh4ysdrN;ji^UsWP{)O=bxjIJs z>D9)^$g^YBr?)UZL7ooPr#Ck~LY|+XKE0)J&VP5J`crz(R?hLU@$E^iHyx=@Z*F{q zoV-wddYSPExqgZI^j5|z}M0tMU%K#`s}a@5VUS8@x?>R`7afDW}&r-bGH|t3JKH@gp#wfpN}f zWIRV+d`SE0HO6Pi#mCgAR~nDeKQ*2q$LDAd$EU{Uv)AlBzwbVyKE3d>%GdCwOXc)x zv7RDR&Mi*&M2VQFYf!LqS zIQOS8o*-Ah*M54n@iB6GsrvMC<1upY@9NX*8}Bk-{>OWd8@~Rh7aQMRuJyJZ_4mCi zEAQa(85$qqaWOI;aDR+9I9_yh>xY*b|Jmz~-dj&*oabd={K34=jnkhPFOXN)(fQEZ z7_X6w>#I+%G@hWpIZ*u!UVS6w9KSMNA@^^hKE2ZTL$MEIRf@yoQI$4ia#bJXrceR@6PA#!qx`t&m65%TH{>eJgAKN^pt;57AlT}8$> z7~ikdr#Cd-L*Bkk{eAE4${TpQcPj6|3(r!%hPQZ+a(ZjykHUJl#<||`z1s5___1;N zsqqeS`62D0H!)ry7avofUTHi-4$e`ZUSxdpKdm?UjQaFu#vAO*?z8GA=ivKYpHn`6 zjghopI&5qvuVBYuhpkl86P6| zFIJykY5WP;&#`gtXJvedyxv(q_|ABWzXufj$$b1>oy7R|?myhSZgeE71KC&nlEzFKNL!{^Ak@t|nmclC|;@%dF@ zyu#-^1LMKf+w~8P&+)o&WIV#_tFiG8p8qDsXL!6!jrVYV=f;;j-+$Nh!t0=G{7Jap zQscbda^o@b8*@E8Ru(loabw2e2JXiO8e>cjUR{p zfpPYajOWOU+i5?&wehE+e`}omo!e_q11~#NIlaPo!hCo2>BYvkcWb@HVd~RsjL$Hi zjdSE-rac@#HXeU|x_4cb_gA0Z#CU-mJXn2tvGHeMpA+NU=gfG7Jnm~hy~_9yx&KJ@ z=?#tdkbD23KE1y2=pF6;RF74^3vW75&hfSJ6R{6V=vwvp1MBcnm`{@NQQoe#WeW`MK zwegdAzKnA|YvXg|_|@7^FE!pl-khR7z2NoASMXM+DW|tFo?(BMr>j50Jo|4{USoVy zDQEA_`15!@{I~ktpV;^oc>`}gSKfiQG(JV1en@?KbK@iA z!N=66H!_|h$LFX|FEt+jslCr^KBGRp;IqnC@K#IZ^tQ(T3+F5NqWU~vk?{@2_rI<_ zy`k~V+uQjsjK_Fhu2$O9&)PgUzIjl~7sf|}mamO3c%M2~`xm(0BI6zGdt$uCdJE${ ztY`jh?dSSe#$SYeUK{5=2j9`2m%tB=)9)JJp?B~D?V&d^zJy=@Q2pJz+kZECWjx3D z#gElzZ)1Fhod2)-^ajRL=3l8#uWS6}*q_um_a`?VBTp{YetI+GC35md_335CBjnYe z)u*>H9-sL?d#|r%!B6FV3cZE#`D>rI=M|S#e{@F6gDWZL_{jJKy#wQ$E4Jge|DZkl zQ>rMuQonL?%h^>dVS+vln)ufut-jPtzL#>dFJhigB*@F?YLc;iPYr&k%TasR3wt$vBe>D>4PkBgvC zKfv{w7+>N#NR9WguD0y)#sw^NfveF}^raeR`$w3^_bWeR^HvyJxlD{JHAWTNytM^Ise1 z{CCEe$mxr;pI&Y}My_6}KE2xb7`c9x`t%y(Z^ZmJ#yS6BqCG2kz1J(J*Ee3lUmNct zC#P!<$7jZu$G>^+I_y>I)9V}WB6r`eKE0mt#qGYg*S~wG`t-uHl&|5%?^RAOHQqs9 zd_aAAjqw@srdFR`@KNO<))N_DVf_4)>T~?k_!PPKY4z##jdzjPpI4t=@CD^(;Cc&< z^LpzV-=Vkv)&IL^V4UMe#;17PO^ipl&bG#vIBxH2dfXh|s=V~QY<1_g6dFm(d((nJ@ygFYwdu!ukeE{opCA{1QlDOFeDl%M_U<#?Kdawcw7mYia*l6| zpNW0g80S88f}iajhd&QG3w~srequa89$ry<=#7o9FptJ~A9;CI?cw;1@pogMJL8;Z zbT#dn!|xiW-!mQ}kFKpf^rptwn8(KW0J*uo_Hg{p_y;i0&VlN4p0V*Q#uu^r^h)Cy z^59_g>5Ywl81tDL=X~bIN66b-X#c)rcjL(pZ$Er`SG@c=k2kO(SjPrf>@G0uk8yoK1~YH$b*sk^hU;WN&!uth=i2xjIX*}G>7~Xy$lcGX zPp@a3?{i1SL*(>}+QadE#W>eBHok;EHBP@a{$=i)ar$fHbL4oX^QV^@AHm<9 zt9}Pw`5omPKQW%8XZ>CE3wWy^DChW%@raMBAF4mX_0TmQeCB;t$YP9xL7&8$oS^BtvC6D`t;_;zk5de^N59U zu6J$xo7kVNar)sO^|;@G9~-Bi8t)*Nf7Kp(6XOMPblD5#{TIE&c!PNtms3B0H|!|q z__6UBdKOn!zYlMDb>$qtG2X%F#yjKOpYR&mvxb)+pq$>oc#51Ks6M@c@e=Er8lU61 zweb`=zmfHW4~>5h*Tcv-*E@BN+#Ia^^tQ$q$b&=Fr#CX5Bj>kKpWeXu0P{)zMg0`s z><-E~eqnrq+&ff#dVS+vOdJsdwY-a{VUTYY+!@gLy) z&W-c@E{#u_bM2=W8!t~hb#MOb2dTe(V4I60m2-S)JVOqTR-ayC{Kr^V&p6lBH{L~_ zK1TcL&5bW^+-C?a{uti!c;y_wHr}n< z^D;b9eR^Z#)%#k%`A_xx@RrY3&hcyGbL9T>)TcKz-a{^4q&~gUIOn;1vHDzZI#!-x zeEo9e>|Gh3T-feI@oM$ymBu^k)?dCx{S01xs&bBB8LyDDH>yvsFrFai|E)f~fpN~W zevA5CZ}+XrQ;eUTshqtF;}!NXnW;a4w>(=p$FGggk@NSdPj6s6!~JLW5%uXUj8Bl4 z#^Xbuv3DPve?ogWerbG)oPSDvdIRH}=k(L+r|=fWIiJ}V)MxL)`26_R>n+t!v0u6I z3C1tJqCR^Y`QLEgY}G! zuW-EJTH4R!#l|;y9g-O5b(k5CkgIEJe?2&JZy(2za*nTz50Sh7s6M@(@!s$wd;Oam zt4}XDNcjq0byMZ^YU5+%;VsmsH#Xi!?kDQg8yfE+Z*Q;uzIO-Z4ZP~k$~*9CY6`#(04|%Cv{$r^W}!;r-R8*EPPoU+V=AR-ayEeDk2z z+a0Msz3^em*YMUyE2kGeLV5Ysuk2liUE@29pB3uUTNq!$?>>Yc!8*_a7X54E?B5w*BB!PH z)60#=$jfJ|Pj78}jy!sv`t&N}mtg*L_69{q$nv+ZVUq^yTW)n;Rb?=dV_u z-oW_wg!cJy{u=dDc(YTLbNtfyAF&UOaqh#`_yRdOL;LAv#v|m#Thyo57@r|e&Qzb? z%y@|$ovl8-)cB=XZ)Tk9EsQ6~)%&%d-op4_(Z4dz{*Cb(x%*M=r`Iz+hTr>``XRjJ z9OWFJ8xL;Mehyq1=R8Z}8FKwO?WeagULogSQlH+yc#7P7O?`S>;|t{3H`S-NG=4d( zw=vH3ZjCRHlk=<}JTo34uYROHy^Zl2dH56c>5Yx|k*6E=>CKJv{!siv{VDFl+utbP zAAgbZ2Hx~{$~*Ap#(6y#zgM5v?e0EyfqI`t(M|uZsSOarV!Qm&lu&YCpZ;X38`8L*pxszoq&d9~&QH zpL@m^SZ`%~dyBR={1@$KZ`U}l!_qh(r^DN7&j7DOO5+neFW1HcJbx{WN4TG_j8AZX zTN@wY{<1N?OWOGj?xgeNI!DI&_XL`|s84Tee1SaasZVcayhKh8SD#*HJVIXITYY*v z<4fep1JtKCGtR$zkUm6xdb#l!xz|^pUf*~ZdG-kP=`D;;kjuxYPj6zpK#q=4pI%}- zK(3yoKE2xb@a*<=Y<8Ub^a|tr{rdXp>eE{puaJkO`t-)e`^e#Q)Th@qzI%4-EuN=7 zy~g+qdH5pr>5Yx^_v@pVsZTF49w0AXr9QpJcpt~x8J{5!CfdW_-`~7WIeUXsl=Jts zlh-RR@i^%jALIJSjVH&ol^PP_bc`3mBz1u=dZDGK7Uol zhsf)9Xg|H3@g;KeF7@f{j9-h-*JrEG`NYPz7@xmiefAW_IeujPI(!~C&g0IEm&i@6 z$7RpP`2P5hs()P^H!{xSCdLEg;++4xXK0+`C&nWjw=&M-*2c%kyU*!y=|!JcegpJ( zjkCXJJVYLSMSJK?jSrB+bJeGp82=~Cr)Qk==^O7NPrs}E^ybD#$n_7@r?)a*A@?p& zpI+biZq<6F@hm-vs-R8|OX@jHk%6%l=&6m(g1opCFf4QlH+`_{}h% znQ_i%VSIudT;2M?BjcN^wO)K}_35R?3-k<(caWRwX%EM5jW3XgH&mbA#P}iDhsrqj zp*B87-W{a<^um8uzJ@ownR0q_<0Itsmg>{XjmOBvzo<`dWc*fG@5DIQJ2PG)Z|eDNXC&;VA)u*>Lo?yMf5$bcjk?{@2_wT1Zz0&yY&_6cL z{>u0edHrDRr?)fSgTH%-`b&75zViL?4_AIi%ri31c_zjKWhu+wDpZRg>(~FI7 zAKQA9f%^1j#!KYlDeBWJjql&Lk5hk**Aw;Am2>>cc!gY)>eDNY^Za(7r9RJNeX??n zUm35Eix;R*uQZ+^560@#8yTPBd2RI)^)sv|da3dp;}@?~&fdoO3^{+T`t*jz?~Lnn zWSrOM)H!nV2JNS}HNHTu&QPD;!uVY=pOtaWXJfoZ?!I07>1D?6j{d%J_79Eskmv8x zetJveA^h}g^{4PwbLAYrF`jbY->3c<>m3-cF~0eb`t02r&+xuxXMBbCGr@$HdC&u}BAAdx9)_DCoG2Y?pF5`VX?=OvKcz#?NuMcmJ*BD>ne!VfC;rs;Om-u@lGvl43+TW*I7$4&IqL;?k_)jd;@%`AH@y#{cpYI0O)BRsR2|xEWKE{1DG9KW1ON^&DUU>uUAAnDd-v`(E z%s8*}h4Be;aFF)Xi;Qn>+ArzSo1>CKFn$jRaA)60!N5c^OV=RTCiGvxZd z+D~s~yh1K>_32HF7s$y&)u)#kkC0anSD)V2_=B+C;3)OE-pKd{w6-dUNAk@4$G9JUc=A=`D=c*q^oW4tho>YR?4T z>RHO!yEXn$p0AVC=lmn%8;tKiPknkr<2~fzi`1t#Hr_`rU#332iSYtCny61NF&-dq zUZ?)PcZ%{5zpoJ)=l&$d1LWc9+Cy(_ypJ4K>eK5QpWOq0Z|c9*@8m77-l3f1YvW_& z*}K%Iw=~|zbqXCpEtNd^>*rW$oekrSa93PTzaJi&yH? zOO1Dsn{TO4Z)<#kTz*e|dK2RXa`#8-)9V=zk((c@Pj72{|L-aNTzz_(@d$bMYxU`c zzfr!1x4u|8y`Av|<~RPG`b&B{je_`Y#opWADwzwd?08+cRW+|TF$^*iuVqD*;5(k_}cgwxrnugUTHi-4h~kIUSxcV$A4k96wJu7&eI`OAA|E)80UE`jc3U9 ze`r6wmGKHWdxHA(3gZcK@MQJr#m1kA`6tFX|IB!VJbs$?)2oaRk-Pt?KE0mt5IKCd z`t%ax*TL)Xo^j5D9)^$i0`VPp@yhi}~zc zp?(+M^fk&ker`Ox{PBC&`R29iZ;oyA*7)uuc&}4`gx>8``Tp_Vpq&3+Lv)7n4!p#8 z^oZ6Q8*gyD%6Nbrzg7F$+cSO~u7}(>uZMy06nXYe?WeaeK0%(pM}2xr<5T4F1M1V8 z7%z~ET77z@@eDcmr26zCsXz2#x*)7uz73G?3>=lsKaY0ny7ejnxZ2F6q5%>&e@7d%k;3f}M`%IS@b_mPvn z`t&m65pwiM_35R?Pv-NNaqdrHJVCA=tNrw9<74D>pgz6ac#OPwvikHI<1^&R@#@o? z8-E_wyD-l6HpXYjQEC0)iSYnAeUAF{`o{kY^BEZDd`8A|eHJTU*oQ3-nf} zY7ghVF#ckkua$A0uZ{5RNJUl^Yt2TSdz7a1?$=f*c*XvbGy(H@Rp7=JmhTjQMP#(0g~{igQQ>lqJ` zC*M_{-pqK3Jo|zA^p?h7iTO9iIsdKk1#=(~FI7|F`uPzfzxGV|<2O z{8oK>rSUQLzcN0-x`KrdM2 z-(K$5^8RJtyS(xS-mIg%18-q`f}CAVeR_rQ1bK5!_2~uIQoe#0UQao_uJPSwyAbbs~fCB_5f@WJZS>l)uZsP%S7 zs!uO`nDPnEchC45wUK zdf`xcf%{I+_!{Ha&rqM^cgCx`v_EeSPEbF>_trYbYkXfQG``8(?;%9SSNL8|Y<&0T z_PB}h?akZIiBjiBwtQf`gU@w`#y6j6{gLqoub;-o3p`KEj4!!g&(i(jKE}p}7e00G z{xdsSeR>Py6Xfg#>eCw-pWyXCX`HVICdLco)l0OW-o|*1Jbb14^v1^f$kW%VPp>xq zTFifGobz8BpCgB-X+L{n;~bwF?;v;ItUdI4#zW-#t?JWT8LyCgGxh29ji>AO?-;Mo zR-fL^co*Y`?^b^aZ}&ds93Q=3`6<}{u5s>v&v=MDseHJTFOYX%QJ-G;Rpl$JGd8})`0yL*b9~qM?%dX!e@A_K zE8}m#zO9XO-*(2A$lV`mKYLQ+9G@GHk@FvG550l$6nT50`t-v8Ren0w6&vTeQsW)u z^4Ho!Z(_W`Ji_0oU%)FaR?hLI@$o(1)V|LAqx$qBeCw;&ymw>s!uOBKKxL-pUna4)7u(fAO|;4 zpI&5qjQxp?$CyWMd~;yi+l{rKy_xYh<9zjv^L!1B_mJl|)qZ+Q<5T3`E!3yiH{L}~ z67}h2#v|nA?bWBZF@8gQzO*yW^@exQo;AGuF3RZ*jL+fEji<GF*|RXt@s05r^76jgLvL+-j-2J{(<_W8$is)KPj76zj~pJQKE1B-;teP7 z-A4w6`t(M|XGgzo&tDv)KE1|x&hbxBe+F-Ita6T@884BOq5AZ4<8Ql3w~-pY7|JUK~ydNboCaxqe$UTHkSd`8AIqG;}vrFa_y(r zHNJaU>&++X(_0#6fAkvlr}R!$&hfGF?dw}_dAj=a*2d?^gGzmRW8-IG-=@a7Z*$`# z}L{m+}t0+V~i`KUbgL(0GpdjE(n@!w+c>$0x?$jeY1D=RWj}caf(b z*M53)<0ItJLVbEu;{)XQbL!Jejqg6#dJE$nJV#!vw4YvM ze1=?nTYY+^@eH{&=X3$jPDF!||E%2zh%q_4mEID{tV<4pZKNw=h0IE;9A$ zmBusV@c!!4>l)wPul42+QlH+^_!PN0Qhjmvja-crFiSYtCd5ZedFJleM2-_*~^{c#{_>r#CZRGLO}#7aQNcxb+q|DZ+=rF%3OW3~_S5Sc-<=0#CU+5Tt$6)x$)29{1(PJ|I&Dd zT!-3EZ)Lnf&JIwYUST{z4h~eGUTpjen15oN^UsV&$m3Z1=~c#u$diNBr#CZRB3Fl~ zPp>vUMjqZqeR^Z#lUvR9uAAi@)Tg&L&fhCZ@1*`5UVK;O9G@ERFyBLcda?1%^;<79 z-p6_-#<#uJkB-oO_9n*pdaS;W`t(-DE9CwI)u&e)|01rdv2k8kmGL3+>Y>`tp0#m~ z-x*&b&yUg`dQ0Oy9JhP4`crt#qm^^~&iI$H-cF%D*Bcw(VtjFo`t(ZU8S>y*_34d_ z=g8?$eR{d^7&$pXeR`Sk2zmQV_4mDJDR1CK&sE-mml#i8(EglwV0?t{!z3f^S>yX3 zsqra(?%y+>;pf?z@i1;bZ|WP5do3@F?;hUrf$`xBTRt`(l+{Z{i%ER+x1J-r?)e{ zL>|3TeR`Gguil*(S&P!^X=Os5DBTqi2 z{q$zWOXT<*_35R?JIIUAs86pkK0~gT>eE{p4||_!9~WO$pWe>+5_$3s_36!wm&m>E zs!y+Pyo)^ef%^1D#-npSyf^>i0`=*Y#xvyjLiOpT#yiZvRG(gKeEW;m+g+qSy>P31 z4R3sja(b2VA#(3e>eK5RkN)=kz5QAJRegFJ<2CZ=vcKIM$KU&=H#I&$POqdsz1%qe zo%Fu(-VM*&J6>fxM($o!``Ozw9=`Ydy`FWbKE0js&hy)!vlQ1-e+e(Wo^p=QjVIr0 z|K4wLL-pyE#xvyZjn${uGae$xH&vfr&-iz7AIpvNJ~lM|L--@(^ry~|n_KF9=xvRs z@T*&^zkrwAPC3VC#v|nBPU_R!8ebr<@2Wn%o$)1dbr1FF)yBuj$r0+)%Zx|J>3!9w zmm80fR}WO5-q!d}a2|tPeV)hI_|M@d#_4CqBjoXs+E1@CzQO$RzWPIW>qjW(_?_`3 z^7t|8)2oaRktfHfPj6uWNkwVR)ZVpI&Ty`|;M>F4W)mK4l#1PmMPizxbT`9e9oL8S?T= z>eE{rpCeDdu0FlF@e%UmTk6xB884CZ@2O93U_3=Gf22OWiSYut_=)=TO5+J0CrjfQ za=y_Xjvp8w-?{z!|5M{RUa!xMckw!PVLZg^xs~zwdhI+KG4o&5rxzRVJ-)qf6qmbr@BYEp z^YlvN8FJoHpWeWDioCh1`t*XUDPO@0uce$`V*Iz*&z^DaXWw`ic^YXyy}9uba{7iSYn=c&PT!8yoK<$9GqsUTVCeH)@kCC&7sL$gr9;Te*8{;dSzp$_V0_*7+pJDv+5$dyd zW4z1XLov?t9zIfg*6{MjDyKIvo+59bp#Hu$P|nwH&6AaP;BAdBkjvxMr#CTPFrTPC zz1aBRi7(x|PKsx%Pp>qd{L{VGvnjGzN)={zFmEK zJL5~_=~?R2n;Rb?r|(stUT%EUCKD~)?e(tpTn)>uM#`$^F=IiR$@S1Na=lHGh1@iQJ>eHJW=jSBb z^VQ$?*2?+$N#_FP4aV<&ro4mk;f2cA@akVEr?)ab!n}LGRKJ4PT%?@ix5f*cr_omZ z1-$Jg$~iv#z4A-(dLuT@>n%0jK`#HSJ@h8V3*=$&yS>LfUq90u8}B1eub@7?x$zP5 z?#k-Z3$LPl4R3pO<@??>lsE92Yb)=-+ZrF>=Y~7uJ^tM8I@+`SK>Krrt?>ZwYk~vJ z{|nx?7~fs9Js+X*`6F5$8E^19ATz!_q4oR5*LZ#^j7PY?4~)m}ZF@@NDehMz;|;FY z+V}$d7#wK(03I9vE3W6nIIri-c!WHTwVz&Pe282ftUkTk_!zl&i2C&U#=FSf+o(@3 zGyZq1w{M*59UAW;&+nl9^p?h_$oZk_(;FC1k;}WQPj71cvIpb$wv2QB3*!^y;0W!f z7a32U^wz!m&hp>X-yGiN{{575{Lpw0xp8*@c$o*r~r#Cd-LoSY0pI&KvfcaO(Gvwh=dpLe#{PuVq zRT<~L)yBujyA!paUihEN*YKt%DW_K(PcfgRan5ILe2yGHU;F8$#yiOIi`A!>8t)*l zUS>Y{#`xf~?fdk_M16XV@fmV{iu&{h##7|-H1+9CjEDcz&S!nP`USjIrJUop#_x*r z68yLNJTH;)4aWD+RG;3^cn^8^F7@e!XDeUB3*V=lUe`J9=c(~NuIHZd5w5GT@fzoQ zVx0Gf%6N@^m>J*A+j)0Ctn=r*d&cL_Idkv+9DZDVdR^nYkG0CKIY ze`$YDJpG;e^m5}da`Q*^>1~adC%5}t{zZLy6XOMPbeT)`&d>h)Ch)}g0>?`(t9}5l zcO~T<-!~ro{EK_X+x~<4``%TRH}IlsD(}Ecjb8=lF*DBdSQt-`tLte$z1sK~IlZC! z^m5}da(rX;>Gh1?3-^cIIOjhwo+8g~rv3C5#wW;I2pFi>~lAEWym^7;h1DecoFNBhi>$7Q>EraynAYmgUZ+c?Xg9_iBLG1+dC z$3N$`hx8Zx`QY_A^4L{wdgCkp^hlQ`kI8oDe1CeR>yuX>cJq%c^QUi0y7Gm7$Lnk4 zv8~*E>g+O4u*g$#zHgEDUvSS8ZSsPgw|eBUE!^_;$u${2wY{GJ#tI7qhtR3kx!f)uQ$mf zvYjaU^Fg{4c~rKWm;2KrU6(v8arMa&mpSJ&56O1^Km7S1U70*1+vS=+J<`?4^RgZPAAfqJOObCY z<2je7=;kMUHZI$s4jAxznFN@`;h- z^#-{v+ub$(d^V-K+wVy^PesU4&N#Uy+qwJv`5;}9JT2S$AN=W&E>6CK)SE$$@}$XQ zvR!%9pFh&o$qTZrJ>gG}bP@9I<8Hdhv;Oo*mmp8!yibnuXUOBSUHzLsf23=W7iGKp zcYk`MYmgUZJM|ArFP1n?&mZY}qv$J->= zo^?G>o{)A}ABVCF-D%;k<{`5%KCa=kMd!au)()G!AmHG*N%%2|h6D9A->obNwJ<{dL zP1%kf<4=!t3G$F^w@3Wxk*-H>$#(uke|n^=knbk(*2odBMP8O|?UVlekuE}>k@Riy z?o#*lu}}H)!Rt-(-KCsqa+EViZpd~$FVSK*^cG?>5FVSK*-rf0pC0K_3ZarY->0B(<5DkyxVZoRd4sFN4f@iQMN00 z`O_m^gZy-9pG|VqXNSBl+tGXd`6FF|JS5xEhy3Z0Eku0ei) z-*%^LP__QKfV4b zcUvd#e8Keyc~i#QD0%N{H+`JE{~xX=$P3ahvg8eEZ$*S5(!o+8hE=t6z2JjrxGUy;aWnnUhb1ym-NXJ02zP?)V$WW903z-#H#9Z|XNY zo*=jOy47)mJaX&pj+^9W|4zqKL0>m@bF zyF0p{<5=Xn+y~PnFU#i?EpjdDj(2VH-bUA>v;FN2<6we3B-_!s{`5$fAaBh**{Pot zd1f2e)8v+ThP)Ma(`U)8w-QeN1@iK7a~&^|BYl;;@ah~VeT}?&gXOwbt zioBe6Jx%^`DQAxSHt{0)0f)HdtOj@^z*_;{4R9^&uQ%*B65w%i92X1$8{mZi zuLO8Kz?%Wy3GjY^>$<;wrscTA0^A7jbb#jqycpos0B;0%E5N(tzx$}$-umRXiihU; z>*3(gX-=(K5#Z?n&jolfz^eh?2=G>bcLQAefWICPS0upW0d59(CcyIn zUJmeDfLj6H4)9)phqm2(Jw(Zy(jMaEo5l@t)Mq-ta{*o?-|0}dJy*yN5U-P8EZz+8 zPJs6VT;I-LKgd58;6{L_13VYt#Q?7ccq71D0p1O8ZT{xtjRbf+z|8>91b9Bc%K=^s za4W#u0p1Jn(Ds|JhiHH&0z4Jq*#IvDcqPE=0p1MoPJs6VT;E~y^$-hiBf!%Eo(u3| zfL8;&5#TNI_Hpib(hYDeviW!;0Ui%FeaF|8TuQZcMq}B9HF5 zjWb_rlViU<@`B{wCr5gHCx1O#cc$I>82NgspE&u)kC%E5@C^A)l0F~c=M}INNkCFbH3Gh65J-xNlKFj1r#`Oxhex~bH_P5;r zRU^lEVv*y0j5aym$LNs9mb&%RCx1#j^dWyeKPw&~UoRdbe^ER^{+hT+-WN}kZxqjx zA1>ErdGcAGbmJNYW?Bj}|w{Tar(j+?4cL^0uVUlb1*Vl5^s=yUc5=3 z6>pP&S-eZ06YrBR7Z2^~um5j|N60S~kCAsJ-UNA1+$6tD@=23lE}kVf(f-N5Bk7Ce z-xIHpCncX6`Hv)hgFGeao8*0ot4)sawnwfHy6>0v$sd>f>QR6F!(-&To#OU)Bf!(- zlaf9c;6?I(O8P2!?rQh_5K14e&;Qw*tHy;M#}%@uK{Z0FMW_8Q_@!&j)y!9P{}q`9-I>$E!|` zZ6 zzT}@H|L~{W<69uliC4%m4%EprXS(A+gWM9g$X}Q1$991C0z9;bzuu5flpN(ukf*M2 zKmRhwG5<`HNB42Z$qYI2&y#0XE_LS51@dQ6p8;ME@MeH_0=!R-a_W2f>#Y@bk5_~o z{VpEhCOPUqLyqw+Pmc1G$#Gp=AxA#-0B@3C^=Y>~x5Hw`ZoE)B{!~KfQR<+*8}=>lw7~k9Y15_Z(r`_pCH#KT{p?M7f+KPES@DlR6I{^ zh!@F^6|az=Bwi!`tayX`%i>M)oOqjjnRu7{0`Wfi*Th5n`s@D^@d){);xY1uc!K;^ zag+QG@l1f{1H2sIwE(vQydB`Z01xfwuOE~@8sLclPX%~3zzYFh3GjM=Hv_yA;QavC zKeG9Hhy}P2;OPL*1$Z&Qs{!5!@K%6#16KxuLZaj;OzkK z1$gLy&DTRTz!L$U3h-=z7XrKz;Pn7+26!jH`vI=UH(w9205<|W9pJeDF9vuuz#9SH z3h-`#YYR3XZ-o3GSG(ugIQfy+$oZEX*GC!hvVMwly^|$J`T{xL&o7c&-*B(Xs^t2< z?);%fj{Gh5F*kja9P^V7d0ooiCGUy%*yp+N_Q^|9Z~B4$`iI8?+z9Y=fae0d7~s_a zZv=QNz`Fsi9kls)BLN-{a5KO&0iF-=a)8$Y+#-Kbj$=E(djTFg*k2FGCmP_108a&Y zHoyx3ULh}i*X`Fe^2_D@@CNx^lDLE*ht$2=nSIH+&j`9=&yh#3*l(S5}mE>O`e@))c ztdd71eT^LDsgrAxzCo^wTjaZlH_11h@5r?eoZ_6XyX03%`L#p+?Xx4UlUK{``8q~! z%?&&G$H_B4a_@6Uke7e#x^Vd%`>UxMA<3=>V6XbJ#|3Hr1nB(3* znJ35fU71|p%RP=2a-3i4D%OOiMK~SDEHlk7WwOQ7x5@L z(kI9lO8OKz(r3v(Dd`L3XNgzHFA}c@cr(B|0p1UA{Rn?OV85{dHv&8z;JE-V26#2V z8v))TzeehDSgi{$6Zeyik&w@yA&`l&^Z^eytLJO5NBQeN`l?%g zogB|uN6ArdadOm~Nv`d6iZdRj$dNuvu0`DRIdWY*AK(RYzDoX* zc%3}{b9cYZ0Pm2WE9v_It}pi2&-Ic%7T^YX{A9O0Ci#KlDe}X`)8xmCXUNmyS@QTR z?s3eKpC#$@lfNn+AxHWs zdE~clJ~8s+#pC1`iYLf_E^d&o6*tNMDxM-oInx22A)j}nTmCHhQQ|rB^ThMyKM^mG z$FFevZ;|{E@iO@y;uZ2e#jE5mJ?xghM!xp~cfWOVoCh1^G0EQ|?@h>fNPe)SZ;|7D z+BW&iQqB(fKg7G_J@Fp-Rt-1aKKW7d{;+nezx^M+zgzwg`H!W3bn;hZzY+3R#iQh} ziO0zQDIO<(T|7a)LEIpJL);|qi>Jun6i<`CC7vNaZ!fogvgG69Ir6t9pFH_H;sx@H zWd2qpe^=6%$v28u$Z;QOmHfXBam!yLUm)$XPQI^rgM3={Ymu*)&qnc@-hS>jRhLGc** zMqzt5KoYA^^jXX2Kg@HCiy<%De^GJLXLh~B}YH4k)xm1$GvsHAXURV+o+Cd? zJWu{_;sx?AiWkYhEM6u*PrO2YzIc^?;u-QY#Ixk*i|5Eo;(2n6!v%7T!$oq8!)0=e z!xeIj!&P#O!!>e@!*z0u!wqtb!xlNl;U+o8;TAc@;WjzO;SM>*;VwDG;T}20;XXOW zVJ+!z{}_iu9OH169OH0}9OH1E9OH0<9OJM>j&Zn2 zj&Zm}j&Zn6j&Zm{j&Zn4j&Zn0j&Zn8j&WF9;&1=&VEiZFr{|8VI{6{u5%MF&qvXem z$H-3>kCUG!o*>VN8{}Kb`Nbsvqr{aWpCjqha#`uV@cm8 z|GK2_kYoL;E_q+-tw&yzeEQ@&$aREvqQCvO-gb{;i2NGKM<@S@c!a!nfct)9l>7vF z-!evi`jc+G#mN&=o&@>cZ@K9Wa_rY6$9_}f*l(J=j`x4ak$;vP`RB-yf1Vuq7s!7t z^;smxe#_+8Z-pHDt&*cYYvicUI=Lq8yg`ogSmY>AlN{w~k)u3qa+Ie-j{SDYvELp! z_S+{%{c9)r+dt|*M2_<4c}v_R-&w}b z6!~oNGuLk+g#VvBg)g*ta z?dH=WNB(W{XC-}y9Qk+2vA$@J9QD&De?aEF+QdAKiGP zUO^*CK~H_L-U*TaLatME^6|Jk&ySEJpC~!%KVo4&n*&-Ng;^xVTBaP&`F`lz5u_lj0e2oUgOwm=EO0e<|_i z$?^V7fgJD86v^@aOqm?xOod&pTdU;QZ;c%Lt&?NF4RY+)Vwe3k$hadPC7 zAV)q1Ir1^dca!{6xQ$GomU{;It1R3u0K zWpdo+Hf*kQ0QFCN4#Zn#9JXpyj607-VQn9 z?UEzj9y#LelOta36o30iydiSLtCJ(%2sz@7k|W+2IpU3zBi;l#;x)(-uSt%0Q{;#@ zO^$doUgoM_fH}#MLK9T-vGr_K&zihr339|` zkRvXW9C4+{5m%ZVab?I6SC$-c<;W3No*Z!%$PrhO9C4M&5m$vAaaG9?SB)HT)yWZ8 zgB)>Lw7>l$t`Irm(#a85gdA~2$q`qK z9C5|T5m$m7aT(-@%Opo!DRRV>CP!Qua>SJ-M_f5_#FZyUTm^E(RU}7TWpcz-AxB(Q za>P|5M_hGs#MK~2ToyUvYLX+a7CGW-lOwJUIpXS)Bd#7f;_8zlF6}gb`$t?Ma>S*R zBd!QJ;);?Zt{6GuijyO*1Ucd|$Pt%Gj<{0fh$~HwxH9C3D@%^Ja^#3BPmZ_>a+I?`j&c^sQO+_s%2^>tIjiI-XN?@?tdpah4RVyzB1bu! zA#aLD$=8X;$dP}X z9Qh~6k-tHX{7rJaUz8$`NWG=W*GoAwf|U-gBh>q7Wwt!ZE}qB9deBGUGlEn_tGOjTiSV_9OoD9 z41fE_eW4-p1LVF(o%|^&e}o+ObwtS#SBxBS#mNy@f*f%fXUqLv1@gybJS>uLDe24PZRx)i^6e#kl^n;VM*g=m-TPSTF>PlvoI-X%Xm%F`pqeGz@~<0QTI8Grj$vbj<6XacSgS;nhl7C6|n<5_-Pm}j0pA7joC4H9s zTjDu#?Opfy=E<*=^ab*Yc#-@%@iO@@#Vh1DiC4*2i`U5S7q62)D&8OuNn92=?(=Mt za9tRdTWuRoNaQHvqO$@cF9rB z9y!X{Cr3H8jKBS(oFVeI950=`Chapq{v_Hz`Cr9jp5u%g5aQ-X!nHx=$_g?IeAh{KMiM@}A_=C0`)vd*qn!^~o{LXrJ}Be~dFBa^$0v zBcBL4@`;k;eytce?#qgk<36qg`5SV5YLIVw{+E2y^S|Vqp8qAEE$h@}$mfb@$#)aa zk!NIl$di9W(ig}N6EBjFh?mJz;uZ4K#H-|=5wDSdLA*|$mGU>pbK(|xUc5=ZO!9A$ ze@(niUJ&n)kBN85FBk8Te^%@f!Jvc%A&y;tle1#Vzu0iZ{tG7jKbQ#oOe+6Yr2W#k=HBi}%QT z;(hW#Ie%%N_qYF+oL@rZhP*GTlOH1k>7~fAo?e=~E$8J7Io8w5l4Cu+9C=cnJIj+}J-q@s*3&DJV?DhxIo8vw zkYhc)Dmm8EtC3?py*fG8(`%4pJw1yY>*+Pgv7TOw9P8<|$+4bZhaBtab;+@wUXL8> z>GjF6o}Tt^{`Qac^g`rVPfsVudU_FZtfv5`*7J#v(%Pmc0vS%3Tg((CSV z36U4%xo8(W4x5%-6dz&2Jo6sT0dL~`+$7G$89yz{ep-+zQSww zb;&WW>ycw#*C)rkPWz(2{bODiBFDT=C&#=lLXLS|lpOQA7&+#3adOP-66BcI8RVGP zndF$)rN}X_OOs<>mm$ZzE=!JiU5*^{x;#1Nbp>+F>x$%<*OkdJud9$_URNc@ysk!$ zd0m|x^STB()~mP3pO*V)n&hvFx5%+xeVZKX)py9TUVWDw>(%$jv0itC&R57W&R5AX&ezB>&ezE?&Ns+0&RgUd=bPjh z=Ue0$=iB5M=R4#W=ey(>=X>NB=lkRs=e2YF?H}WOh#cd*PL6RtLXL4hN{(?pMviel zPL6RtL5^|WAjddwl4G1tkz<@slVhCEkYk+Bl4G3Dkz<_ClVhAOkYk)Ll4G1NlVhB( zkYk*$l4G2&kz<^%lP{9b(Hi7ff5{@>R>rp``EKGZa^&A8NB$jhe~TRJ z`8Ub2o_~uR>s`0Wv7Ud2yeQA#b;+@=Z;u@7`u54Op1<}LfBVOJ{vmQax1y8dxs?bx zozNL5};JO>*3y zoFd2l$!T)jpPV5_{bb3po_~%U<6EA*A?KF@Io9(pl3S9#OpfwY$eWVBN{;pXYvfpe zzD|z*(jdor{uVjP({rYA+dt|dM2>uP za^w>sM?O(_Y% zUnNKWHFD%%C&zmJ4RYjfkt6>mIr49jqaNDi7;ih|_`Io0j`jR|$UU! z?H}v#hscqSPL6ycN99M56J$uZAKkYgQqgB;_ANsj%d$g$rvIrf_&$9}Wq z*l&&;`^}SMzXfvaw@8kB%H+tWLXLc@0+{6ZUVs!iz84@(j_(D?kmGv+vgA1L=g2Xy$dluH0Se@JpQlKU_j$_X zc%P?2j&@#Um-l&UqA9Q76@$NGUW@;&AA!8keA4@{6_{Xl~p^LdjT^Z67xt{2ke zxL(MRBi<}I;?0pG-aI+tEs!JLB01tMlOx^=IpVF7BiP5t&$_&8ad*vlOx^+ zIpVd*5pRWogDE-$PsUp9P!4; z5pSFv@g~R-uR)G@O>)GWB1gPwa>SbQFD zN4zz1#9JpvybW^1Ymp<~COP75kt5zVIpXb*Bi=4K;_ZY z;*F3a-Y7ZZjgceXI62}?kRx7$9Pyguh&M%!c+=#FH$#qiv*d_3M~-;&fAylryC+aX81U2??RBS*Y_a>T3U z{p}y|hR6}GPL6mZY;*F3a-Y7ZZjgceXI62}?kRx7$9Pyguh&M%!c+=#F zH$#qiv*d_3M~-;&5a@-fuBgg#}eRAAip?%%o{x_|EP9Bo?MRjt-6(L7lQF6o; zBS&0ua>SJ&M_dLu;xfq*SBe~QrOC113_13jCC7eq}g!ZE}>eLymHG$x+T8Im+25M>(}`_}f3q z86rnHb#jz5LXL7q$x+T2Im#I)M>!MZacMsWIlgzmB**s-q{#8T18H)6??8qe-#d^c zPe^%k^YUGBLzfO+t9cYl_dj~9X z#MLCn{bMb1+&|VP$Ngg+a@;@GCCB|^J#ySX)+fh(dfG+)_K)u)2$AFa2y}9MA3=mX zE%g~C$M+G$$nkvyadLbgL4q9hY>;D}e3KmO*UD4L5}*d$WcE{a@0?Y9QD&CNBKMCD1Vn6 z*^QDExGTmOpbN+E96*Lze;|$ zjgf z>~H^F@ep}WTqno6`Vn%hs~;urOFl7jtg9a<$GZ9na;&RwkYinalN{^nr^vCcewrNX z>SxHYu6~vr>+0vov95le9P8>A$g!?|ksST2Opg07E9AHzqe_nZFl*$IN8R-z>f~5& zzd?@m_ATkmI>mgS;){m`RT3UQ^_F?ln!Gl>2Ej*RRuwLy;OUM+Gw z_u3@KbFVFOJonlr$8)b8ay<9iCC78GJ#swv+9$_zuUf(1{_)&vh#b$o>g0ItHA0T( zUZdoA?lne^=U(IFc%_`sAoLZH2%6quxT~s5hM)^%fyVy+z4UZ!vPzTbvx_Opv3T206-U zlB1j{a+EVoj&f$mQO+zm%9$faIrHQwXMr5$ERv&~Wpb3WLXL7)$?-iSHS(JDuR1xt zccVf6SD7zaHY zsD~~&>Y+!Ddgzm*9<(uk`$s*5$WaeEIqD%oj(UiaqaI@9sE0T?>LEdn>p_DY?ad@d zdrOfcpENo0$&e$TEIHl}%#q`Hr93&FS1OR>zVsqF?msV+<9_uD`5W^6I8}12?^h$o z`hInCtk>5d$9jDh`L7;uucMpfw~4pN?-y^AzaZWrA9&Esze|4M{jT@O%W^%~C+~@C z$Z!4~oUnbu(6(QeC(nrY;6pxV~E*>X8PCP-rRNNrP`++9;7V>=xDe^B$ zK56ph;u-Rb#k1t!7SECYP&`lmEAayPP2xrJ2gS?emV94Hg?zoFuaa*NuaR#h{iRO6 zi+F>4A90KPQ1K@D@!~D=v&7rv=%*cW^wTam`e~0G{j^VxeyXkXw}1505IOp(PL6&W zAxA%rlB1u-$k9*Zgi&X@ea7)FMYeZIYv(w#d;>+vMn{9dh*3E;;&X zj~xB9PmX@7eaqke(N9C<=%+gQVp-oiLVkgGl>DdSG4lAy?)MeO$qy7ykRL8?kRLB@ zlBdN}jY!mT%xe35vH+z?Nb zkBDc;KP{dmUnZU-k7}oB_J4WuGTJ}+rIJsPydqvE|G9XD{1@U?@?VSB$Zr*|liw}g zAb&{QBL9Z{crUhw>^Z&w-?vRW8x9=L&c-y$BM_umx{;9 zKP#Rf|Dw1-zFgcSFNmkeC&km`KNQc9|3W-V{#)@J`5oeU@(0BWN5;yU?H#Utc(@hJJN;xY2I;&JjniYLgQIMY3j26;!)o8)ylucgQ> z@ici$JVXAHEbo=ajbt! z{sl?jAdkts&LUqX>6_$nN#7zbNcuMUgm{PiI`J-fPwJ;feygPKldlukCj9OH3Gop5 zv*J4W-^Gn9{Q0!jxYv~_^18TI_NU*pO&*f%Xn@B8y!Rb{{^cW&b>`vKtNq>*Pkq<# zg}vPL+V}llm-Lm2->s*Qaq^GJM zHlIF3UX^@w^16709Q%!ucO-o*z~khWq)(6|A0xoc08a&YnjGcNkhi2fS#qS$1$dqu zpNogDc@$dON!JSzFb$m8O1azi{po)S06GvX#W%99H4GQRdUo%jl3Z7*2$57gS;&1Ep{nqGr(Kq$iE%nodEBW zSEW2Xa_b`Z{L&|{uW(&!_}hQ=Tdt?p_}$p~6z4pWA;Q+T(|LJmc}hJ)ZUWB9G@heuT&K9zW9K1&+usk-t+iL9`AcRjJie#L^BzCJ z4ZL3i@7KWlHSm57yk7(F*TDNV@c(uVycXW&EpzO}kU259`k|LJbEP#pW4dLI-5pxv z6ny%SeI9&Co8DtT^>27rL;YrNXYIeO?@X)z_V}>9ZNKHZzU6H1WN+JVwXV0E?GM=7 z_FJs$>(2HU|L~G_PFZa`|EYaP%*ny$$3Cu^rCCGf+Qma5`?_A)f^9ynZ1Iq8mR{&C z{{9Rty!AO{JN-y$-AJitmM$6!sbmiynUZ9ab63q(FPU_Fsr|Z#y637lS=H_Am3 z=0tKRx}zxw!zgC80hXqsbhg~DUs zv*Ta+aCm&3`eku=)i%d`EVTSl^|yiW_#G~tIB?9z%z@>W!WrT5UkJ`nIAi&LE1Ve~ zzeaGT!kNpzr*Kwy{1U-g3TG`}p>S~YD{2=f4k{Q7uRK>BB89U@PYbWQV74mV@W*nq zmw#5#7Nf^botB(Dxu2Z;;PxY9Yx+x8K78?>Dn+ui=A8HHH#zaq$@!76-5~yuREKq?dT&0wb$C}TeA7MZFq?a;lv|jk3str! z>1*CAPC3>6_XlS>N!{bGj*n_W33K4F@TLE*c5Ig3HYZeRCg*78!dJ}jaj%$T8@C+3 zLmf>m89sVLvb4c`<1usf%SYN>BVtZ$ZI+U%-Kln}+Xc59Xk=DC8`6V|9o=z)ZtTxKRLYAsm2j?geJn~ z%6muWCnru)gUE6EF$*3}?rX+|!&l!mwFO`ztBf=dbJd;p3h*SG=vM4>*?XuUheuX888| z-&kj^U1RUrd}K=5YP0mTIrjVbvX8Dm!`|bj@nwx+u2?gzJ~IhlYWH7r#a}d4Wc3P5 zUJ<@@KlOr?-s4_Z7Dr%PgK0W{GdtcI4T6SZL3^(k*C)N0)Cnr=+@73J$ z1?Gf$`P3d}=^xYcKcHUXyg=3N=2EM6zx+e$D6gN`I6ZBrDXCG%Zl|XYpE3NI;WN)r zJ$8=j7^CVKPMi`m2cA#^c|;X35^~B`Iya&M7>%e#wlty+^GW(hskvnDo}G`~w#_Yj z=IU;AbSni59yZ_DFtx>E`?ohXjO^V?mWHEKlidw}vb#d}S?9-ly<7Evr!!9up1r-> zz&#yvaxk{;WT$OK!lzo{c}~YTBxxtK2l}qv(pC2wdoiXu$h$2&sXG5m4nDUtvQo8f zmwYI4j$PXWD!~igi+U&7-NAc4$p-Yt;U@$8q#dXcQS}eILN~ta4+!&%mN(0}#!jDBr|r2r&X=ZRPRiuM z{$P~rW5tVYrDo~yA-n0Q%5c&qog?zSyWE0A?d}`15BtbiLJP0F)P98;hog4Y+2i%9 zqi3ru7TZU?WB)Xi-SE77I8FQP;#6nK{!?20>CPS9>de{s=H20ad`2vdRzIDZRqe$-7b=Q7f3q8EH|_2wyz63>XzWGR06dxB8htPGwK59+ z|IPf6E6z}3zq5~jzU72s&v)~l#;;nh>L_XoYwuGEH#xY&u-iOU)yd=`p+cMYSGRr* z_4_f)RmLh5&!j@dltq|M#i#8sGtS_rieM&7_jJGFmSWTB>h#C7r#vWyJ-&U%a7&@e zHu%l+-2Hi~PGxRle<}vMGbu7qt*QvB|G()!fX@D6D!-TR+jKs7*zWeuk#x@osz&Zn zhfXt!qeHvdr-U#3{UmK_P|hc*u6>t=Jymn(o9^)%>|AYM-`G{C%AngHsBNlH&%v4; zT<+{wHG%hrs`+1)aVN51L-!0i1K7t)wTHo<`|=+O%zyr7^4}Zz-(lBH_bq3TMfuhI z+1cfL+s7wn`Qx*X{q37O|JLqxhdb~2cjy?m#f7?;_U*b?<G|Kh^Cd00@a^!WUs8WEOYP*|{qXpq>h}{S=Nw^<^+RgX zUwUZ$TlN7P>qnPuvEbqL-?2AJcbQ|)bxxQ(_)v8vr7xI1Cw$&ubReavpL1jG&-ron z^R@7KrytQ%{|+6Y{xo$?_?@o$`A_w;r+&VBPWXv8&k2vJpHIG}wqI7;>(#dU`Q+cv z2~WMP{{P}@;Y%*Ev$$kGRid>~bKzUde_>z0j$f$?Qj3JguXYNw)*O4GZ%!V(P~|iD zd(AD%gYM7ykE)-}`1D%%;t$SKDgL5L&{02MJSY5&y+`%)S$mJFgpchv&m6leWG?*E z@^$9I{^-6Vle2a~`%+iClOMmc@YYV@tM0O%8w}l7+}@l#alpRDTey1ppY4l-(i7^E zY52@F>Oyk;ovN{_E5nzaQT17ss{7y0DP7sC%95pNv-C{&)D8Bba?0nweo+U`D5^8H z-6`$HpPW>)J#+FS&mEf5MoKTJ>x0F`{d9ABAX$2&yINgzs-Jd-r(7~iQ&Z^3Sbw+h z_}l7*W7fv8{;oIMcW#A`UOi_0T^-sB?>lC}OXlYnuhh(e?sRAPcLP)3RR7rT2&gu$ zuJzxXcmAL~6A!5=c6j{nb}cJQP7DntOK**YkN)H0#JMx3myem#O*JuAe^Pa#I>#SF z$%%8-q`uT08GF~8#mZAuS6x4;@)`c!4DW81{b1@^ht!)Lc1|1TnG>^yM#4v}wR3dN z#%cr(nc<`VaHlh84KMHmUiqe~V^xt|r(LSoslTYS_9gE6XYA@%*SGq- z^S3f54j-DHzw}nsKlt*%K8cNu&r-7;RbF)rUzmE#oLp4;z3N_*^G{aC=??o=pl;kb zOjD}yt4j*|HP6;&X;U-pO_jHOv7mRay(*#p{%rTBFF7N3*?T#vYSq4&SJxN!sLnL+ z{8`C~W%gybIek}neA=$w$>XQhrQE&trQAKLuGFR6%f~FR-|(2BuJt#LOs@@(|H(NF zeRUXiPlk{B%kb@Xg{Z%Fmn_^EzU&dTF)}tiZ`tAY9>SOY&`w=?Hd%UJ?Pq%a6)Jjl zA+Il4`BJ#}r2WFu3#vBsO&3ekdmMDjOX@1~-O;m_teg%Pe`LR2<+SW0>hiAqn*HkO z>G_w~m1wt#d+ptoes7l6Vh{VNKTUl|<)1%W<(({ToSy$xMRp?l1r=wX``T|NBun2= zSG%5lt4dw;z!pxOKXinu^LZ+5_gZ%po?P@uRK1NhIsXCsFH!q1*ZDo-7X@u2P$&=iCGPpUzNur_;kq8@t(;onwdj zjCwz>B$=li$qc zKTE2vZY)`8EeRj9R@I%|{_ea_B~foN-BMCNZ?;RQ-cVa$O+R8E%u>!y^5|G%*67Xa z&r-i8OE(U+R2nsfx34km>a>TCggK$!c^NR*+TgaEE7fg2=7c%`<3kQqT1}|5B|1#H*fm+8wRF!w%;{fd5gNo?}ph^+uSfXwbczX zre@zTYih;~GsCgL+*|6}eeZE6Ec<6hMPUC-$xnN3Xm8t7Z~JFde%hx7d)tn9fi<<= zIiB`nPFo`j?-@NHylT!&^(IpBhC!8f)hppuw;gOJHxm8Pr;NgMA-wWFwOJf@bn0I9 zmg}|7kr=*Vpm5vJ?^PvfqhFi2+&LJ=?+WIMH|;|bUTHTB`ygkX?)`+bH9C}DFg-QT z?LX6N)j2dgZmGYhG8|!-VSiNywS(2ihF4ua%Pz(6iZ@rNzmGnweks@qS1wX|)IDlQ zRzFuv-BJ&QS6Lfg4X?U;+!_vFbJxEXWc)(a0KLh=%Osb)b%;dPjEj0F`o%W>?~R)f>aB)`eHy=qA{>LS;YNUa_%Y z|7_N0tUuY#r*!#HPeD@6SrbO_+@T#77f&DB-ki8*sH)gJ?3$s5`WarigGy|cZX4>W zt;NNqL-UH~Jk)Y~fd;l0;B zyiT1D7v3y{$G@-GPBq(3v&t#`YL)C7=NKQ8xNr2v;lf*m@XDi9O)oCG4P&aBRAuVg zrBK~Hs;X0yfgz^euXU>TTXx&DyK>Z=ywT|bw-l6gm&FEE(XVv^N~%+{x(YbtTYpkl zId)PvNlGONuNocN!Ljaj_A8u>RK#|rb+1%XxM*m5l`5%fL{*wyl+iD%2*xMWZ|?hp zD>lxUp~`h>Lj7wup=hBvpng>+*$vCT>?_or_A%-%JVad)kM#%aKdQ2*!DlbEpQ$s$ zmtCd;Y}ipPczF1Y4W-|&&#T|D6FblFx1Mrj(@yL+hF30EHKukpdUbf!t8OTd?Ioeu z9}kqC=$>P5tD>pFOuZCig+2V*V~0IMGPP0lR=ye#r{^!Y!JZ;rG?WoaPtV^)C@++o zp1-w2w>hJ$HoA>Dahuahrsu!<8~f$AId96yAM9o`J^yj_hj7dtrowyMZyHU={#D~l z*|pno>h$aCY;lyD8hlJ0^ckvn>P0GXc-~RUlPY29_{gZPI-e@A`p9GU^!$R#SdH&( zl~lE273jEg8oJruxGXgG=FH{0+KsrSHk}jNEi2S-H>*m!M4ig!f6fkM#ohL~dDArL zj5TUzJofH@IrgYFe4AYcHC0YdEILu8o!ZAczMe37_seiOKml zt6%Q4k9POYzpMGOrS@JQSU;|Qs0-QTajLYcz6`rVn0Cn&K6}f_+SE?!mm@awS9u2{ zB^@WN`oX^?RVJ$K8QmYPx2HPwEvD3)3X3W#8@2x}RVMDd=*THG3?5ydJ+)PR=G5%^ zz|@TTtfG4WiTIwsx$l8##!O3t>om;O1ojL zFWYr*pY%<2$kWM*z1&^RT3~IsD;)l=WezmM;~Be-R9_FT{EJGyV0!&QHZ;^_iT&TM z>Vu>i=E8fzV;8C`GjsLxGu_6fcD2p<2bnitJv4Ha{XbJ(Rlf0O`$NQaFRQtP`m}F` zIsK5jQh4Z%bt7x}WQav*sME zF1DNMw@c<6Y))Prg(nZz@dx#*{Z8fB>W$0qtqqJuR1(X6>8!(5iov7pT-D2GsVkkg z^kqAbsOF=tIiH`N|M6d|>y5FE)62J2A70N>WqNHmeBP`f_3tIKwi{9J(ADh@lrbC2 z&t8^0`^)Dob1xVdv}}%;jW3^f)>l4z{&{CPAB~#}RI^yDE{GeSJ^$>loc(WKJJ)m* z8fIhJ*`r_k+*xOjN}9xy(%;mli&F=C#|QP%(ZZ3*<9o^7UOBorYrCV0i+9sUCXX6W zpDxyyEPQpOq%QqFqvj_^7Y^U9uv~q(*D_akW|@<-3dxc>;_6epq?%j3(NU>N$b-K*=Vck$u*%3WF z&s6^(R=*o+nmZCz+v@+r>UTq(HAdoUTm64HuHMQq4E4{5`sWhU{%2SXk4 z4q4Y6>!=yuRd!QUe^7t5kBl0+6UQug((dmO@BDONqq%zR+!H3|>}oD}!(4q&bVPmR zInW$gy;@(gV0CifA@$q*k%7KSH7~hf?Z|3NrFg|$pgQuJ(8$6y=ifeD`up(Mb6X6n zy9zE?eDuTzcWpRlfzoPo?B0Ro!gc2#Id$r$_UDvCO5~JH6-O1zlgEX(EqGG(_DwHe zw$t(I^TXlrP1}Vh=h%}CHE(;)-0~4~tT`jOu(j+%BLi!W4zJp7*VUbw>P61qrskr( ztItqJKci-UkJ>LBzSX|UA9>_2BU?T>qHb9TuiRA)2REzUq~3yY>LI!JI;n;w3m*U1 zYFO}!zb29ko|&4VZi2W)WuvKEI2M;$W1THV#-8h|xR))n-#>KoMcuA=#V*0WX8bSp zyJCa$hQ!!vb%(^d^KVw|S`A~f>`%?@AGfMZ)EQL$quzOVd}Q@=Gp6RKDqd`#C!e%G zVJ|)W|FQQa@KF@m{}Yl(K(Hr5G%8?%BPMc~2xuap2_(=BGaQ15ii*34C@2VtqM`&6 zB(uY~tgEi8sCZv^BbNvXkOSlf0YL#3vBPi#P;Qw2_r2=w>6z&q#N)^B|C5hqx~r<| zc=fJ&_3D*AW*)M<{zo}~d4$WoNy%Rgj<}^X_@^|PG*$W+AxD(x@M`d#KD5+|s)hx8(J)6&1^;9~>t9W*tR+B#KC7xF6M~BJ zfr5m_XjGp+Y%T+n<f&=rb@VxKzqD0lNl>s0{9zI=1e@o1;GY4 zRVw*KcBp>pA!)&349%H%I5V$v2iv&wz#GBzP-G3V4q`&&>D&iC7; zNw;I`Muz-@#mU>qEf;?ecJe*e7)?76;{sy_<2sUA7}Wuc>k50`aevMO5L4h!O=pvs zNnRtTW1%ADze)9Uayo`f`7h98S@FjZO29wVHJ~x{=MFKMg*lCFg-v5PB?5YPOavuG z6b^`io>g2gcSFT2dj=!PV7sPZYH~Bd&N$Y$?om`xVPUS1J`a|%I-m; z;vMXORpWcoAi&&}{GX00$t#uolMP^c^C_4Lw|^nwk3VkK+Yma*d%04lCxPUTR4@Q_ zkU|KKKhp6rRLF`#6b>4n0CUeuIq@5S`9gp>oh+v&{w^O`hq-y0<^~&|Sy368FiS`o zi~>>g*BM1Sq64B5@ON-j3bF@F^ml-ifb0oQ$xc5}lH$#dfY%93al-iuBBzaQTm`ol zkQ<%>v{Z0L+lfg+ zaN9A|IM#jW`*>(SN<=B9V1G^{C3z|Akp8&AZ<10_5=*1aUpmgD>8r;&VHpUwsqN}j zo$0A6`yKB*{-tmJF8XHnceT+sKf z--I2!2W;O*>y3$G2XcQ=4whlE;TEu%jD7O@-KmGE5LVFe9w^PZK%IqcA(@XVV1)ta z{qo#qgJ?tjF_pGF;vT>f%TTQwz80`T$531wq!l+3j%d)?aUSMK3sR-0(RecIFrH^lw6Gk{`#S9Xj{S)z+OGAzHuRXuVTV=bR$@8Y8>2xpRF&ItKty|N7RU ze+B3$x(83GT9Q-tYU}Q` z5$(4#+CM4iMI)!iBKrv3*G2D7tu=Me9@f1KhF@LiJ?pS_2R%C(eqN&ow*_@@q{tp< zWDhoXaMV{;@T(I)T6)sDf4(2Ne|zDwE+F)UAW#i}D@68eBYVLb6988)x9VSA=J)es z*4=Z8_In%cHw)@sTakUCk=@+fy_B%-@%+}Me;s>VZb=?9e_-%^2!C(^zVU)SHSl>w z_QOW@|iDB>qwt`f%K8-MJB>_4|$1I|X&lDYCCIvOAkQ*C(WN8vjc$7)(s98O(;; zto!%X4u;N3ayn!OxEBS1YQUQ*vY#`ur!z~|fcH^ZF!1Wm|K7aax_fOz`|XVOPYMFi zy4P4_AAz^B==~{Xd0O}EVcn}UeSH3uHT_QA&ft5>=)mBh{@pLKZ#J@TH}`Ked@h64 zoeZ1#Jm$NkCs>`wjLuw0TTa-pIGl93e9d@Iw^Pbp>RNTKPZa;0HySxv;v$#T-zblmd?_vI4MjPlZsp~3vQ6=f3@S>VHAbuc~?pZ+B{d%i>3T$0eq$S`^Zf8;6yX$jp;5g)b^pJz&5%Q zPR%e4C$Cl3Rwxl`mEwweihr5H4!24fkdwC2_bcf~q$ypgNj z*V3dUC#YV zd$F00O@Q_o09+ujm%b8v=@;-`I=0fA&{q19MIr6}JHV*ldYB)D?wW%ieC4yfqFFWnXK3zfh85Rdmhk+$k>?`wpk%BVS`{c^6q|i15 zZIoee3uk^et${~9HX;&*SGao>&d2Z`807;Z$j>jM?S~4n{czBkcrdSX6WciKv5ktP zd`hQDPF^LuH}T%s5o2#G75G3t9oQSg-isXZ4R*1bi2a&JXw zL0s`T;X9pyJ?|-C6}g$~2m{v*so)J{vv;%0I||!WfS?-bbRUyJr|=wr8+Zf7y&9x? zN{%>$?G0_Gs-YJ~ht_n!5Y3|PB(Ya@1y@GN-t54L~3_5g)_O z6xbU^lod@w1_GI;ntTVl=8f-yJDpT*dPV<}7weO%K5(@*qnIFVMlqc&#l8~nCu2Ve zO&ht|c9J%q%bkh4X+EXGn*eKVPQ_+Y7EK-x&<*A`oHvu;AjF$V0SGhXb1tI67&}IC zG8~lv^D8|>$xC8!Dh4}7LFb7@l}`6K(`1QB3{;dm$5*VroG6z1`_&EnG;Eq#o_tD- zp$2(ka4$G1E9t8;q^C=jdpGW&FEy!hDM^)ki#Vyag5@pp2dt}Ld3S0+uyk1zEHbAB z$(KRwJVpEwZ0=@&e+>(nV-S0?=gt_Xw-?0AG9g|dCU!u);MmED80@Ytal)Q%cx5H9 zpdz7C30UWQn?2s1zGQh=6w|t=Ai|Lkq{596r5i0rH1XlD_({6-{GItNb}Fij8M|QQQXB+ z!FWh{Y?L=*fwfW-Sk4GIYT?KU!O03VFT;q@M=+OR>mO*6(sP*eCp@$OXJAf2jijXB*vZ zEZkq}@c)Rv)IuUv-CycJu)oydV1KF1MdVPTtjD=5a+vyB$zN$WOksg>91c^vT@8-F zVQMc`nyG_GNiRY6L05y*O7V{-UnzK}X)aH$28T2hvh*zzE?@y)DfpJ1wZ2lii%Gy& zif}YOH`#EQ()CeiM46npo!N_(zm%M~tqOmslbZ&t~{HHPZZ>v~Qpw=1^l8mn^rYv&BN2fxprdAOalp^v4~^hfHvn z@wpQURO9mILJw4h9#~=Mfv2Dcu7n=APl?#Cdn`HKKltPPlSmaDsnrd)B?w<|s7_oz zPR)_qQYA>+*VEt+0e$d5sK1g)BP8E5@=cl$bs>2jDe2#_*U?izSd-TgeSp;^7^epZ zJ{9O_6wn0Pe!P13(2h`z44*jN<0x78I5ObJ`k`=~<3b_+Mo{=Qf1_?-WWoMMtltw* z;ZEdqk7gAS?%p!a7Qjt4$|3YZ8T6BX!sJPG{zS+wLsr8n7pH}n4l+3uY1NT;5>>+z zLR6Cbg|9^Y$AzR5(t+I~ehSD6;(xk+=r5HDYNsE*yxIK{{tMC%*8tEV`XMLPRzG~Q z`ESq<-ID_PVe`+c(+{B$Y6oIVgbB^*8G&=5yZJ!uYG9$&fmk}3ah!I(_Q`&DvhkTp z7%!ck_D~xS2?u&`!W~NbUTF#~k+2-EH+C>JAdb0H17ww8NkPClh6~zz0@^%XKqeK3o18Pbigku=}V<4 zq_8T*J5kRHY06H#(5H6-llYizL-953>^)wwgAjoB=J3lpVhl$NOI_!WyA|cgsp?DQ z&=Hgvv?mpOL~jBxd~O$jxeFunU0p>jO}Uob$MhO<9%PR6>*EB>%K%SM(g+xC&A_7l zNZ(g%pxawdw-A1@fG`9(2Y2>CPvd-)lYri+#TY&3%n{$bYJBrH=PaVZVd(1IPr0Bm zTo|Ab%B0IWHy=zHv+q`%tBvl3uPHE2j5w7t>kCFqV?9RnM*hV$ugA(CY*vQGI z+{1sxm#Dod)-uA>hjlfX`Xb?uUsP*zpZ((BKy^(f1gP%qPiSzwem--4@=)LUx%e-L zpTrX~2Cp|cskZ#&8pOz}^LjJ=iNMHKe$3Nmu>auorp8YaAZ-40eu867f}dPDp7}|F z;3v^a@t#g+!cRVXG>o6%dnw54m6{KbbU{`AN&&%ui07y4B22hR$Kcw8F5Mz3cWya}5r>7HS+=S`mtBW!%MI_WkZE`{ z&C<40e1*$|XXT9*$as}eO|=2{3f zh2BP}iFM$F921vhum)2wDPCh1Gn(Zb)6uN!XBsBR84=GDVJ#?Oc6c#DwIDyl{ zG3Zjze;bOY5#OMYrx_6uh;-K#kc|81w}jmYV?a<%;Yc-V>f+8eifj-q6|BM+PA@_L zP;DrI-GMHX0IKGZVy0!4g{rz!bm zG7fSp{#7}BQNw0iPILUIwwx<^d82k>IRR@#QH-yNZr>7_4YBdIL-wR)`e84;!Im>m z@k}_17vIM;tiEci8+zJ&O(`k^4H&(GZs3oT(IkN%CT<(sgr`K`giWvfqmj9ARlwX> zL`&%KAVxBADPd+{6%76o{n(y}RExe8)k4f~m&w;L1DbJ=8PNCj zsM2RRb73oVOr7%q^DXxhg`xy_ZpPaGhN(bIen1%&jp{qBJpFny&!X3M_tWfDORwjm$R9?p4|TGl*XKuu z(Q8L+q*Y6=1vC;XdX0=kMku{L_mD=fzY@)a zy&iw7Mtc4F8m8AuVW~;=?+KyT`XG5&f`aLF649hiuV2p(qSv>|1--U-Ih0-l^4i-2 z>oAheH3{oa4(P&KT8(N+SO++O<`4fWjld0KFZgLpieP@P(m2opG=ZPh0<|;y!|VDE zE$jYtf3lD2{|5Ev(~$x7r~4}e*O2u^5dU+6>*)M%`e!Eo*B%+f|L&uow%^?w#{UGr zs+Rxl$1Zmm|Jy=|7W&F!q!Wp7e7iqgUoq<`n(h(-@_1oukiLR|HQ;~qs^@3{3VE(s6Jya45ar z%*%ujePtcdq^_@A{%H`s9$qBq^?_$=ORs}z>mHnk>;Xe(n&`C~GC;3W0ejHv<9`dI z*On+ygFV2HE$%RS-A#!W^tuk|XPta)zadDzGQB1O=GD;a7=Y@}qSsYJYNXfqQREM! z*9)$)qSrJu8DbCk6??$dt}h&SRY9+>6IF!L>oxaj^!lttt_8g=JVB&I^!m&58oeI6 zm+5sVDiHMg0xkfkfnIa3WO|+U1Jmo;gQ4{L_DfuOuzYP$sl^!fw#*J_~GMJN(RukTT!1-(Aa^_^w%HEtEz zpbdKf?d+=$0_N4w>tcZF&!X2Bx7SFoCkFq4^g67y6}=Xs$q;(|9J|NW(rXTl#7e#% zBB}_b*C&T*^!k%Ut_8iGcT}g>ES6;0cj$&HAYW&p0zt34pR18xOIk6#?%2lknz%od zUXQR^8zNuF5KZdxwdB1ZdVOxLpx5)Bs)k4hT%dR^k=-p^?j}ypKv=JDgBk0N7?-<0+{Xvn@s2UWhuhsBZs!Bz z@s9ncJL2&kkM{(;C*U1de)b2>4NSs&65f;Wo`m-lyr?&n@MO=a$Widy7;0 z2xqBI#7L70F+)!8*rQqQUyJuf`b+YEip;qj=NTfgje-3zrFe04pY}~JqYsq)rHCH+ zQ?Aby@uM^ONBAhjk8y_h$5VM%`zBnRA2AI2R6N^F&++t(135bo_%i{0ssAuJW=2X= z(wRg~)RXf2&=Z2%O4-uvOSp0*;2}FcNAHqN@?ybs^^{x?HF^@jPKOET{aN3;?Fjk^5;7M~^55kj-yi;($oktKJ zvA*0DvD-!0v^KywF$H(@YzYn_5t6`OHInuxgDx{-r+cYxOLb^e^rK+7|0DNL0M{!!yL%*BMSS zdtDK~z~O|wwQhr|2UA$XPDI;MfrF|K(DE|hgCY1SW1bZ6X!vOF>sHt_ zs%znZR-mutbo6b+x-{j;8f8Rf8cuLr2#U$-Kx2%$5PzH(Vw3|eq+t%|Ai^+q5MdY* z?YJMJ(jLRfLfl*ggw5+L*~abWI=4`r*m=9KoNC+*J|r_49R=M@16H`a^3iPf^33Ah zk(vI*IMflDb0rQFfb_QN_#lIDdbV%cLVUO+#+AM$*XNAb=1K-89}A~HDlfOcfQpO9 zfw*SJc($9K<3*K4JK$oS0DcMj!(Y&!8$H7l=o#6DXeMb zp)6@ZX~kehzX1JadCsGjovF*U?w&+jgFodHw5PQ;}+t_!tDTPHOAt=R}#AYlm2HsJL^DIE9{n%JdF7wCjzY#Jp)I~hWv|p-D zuAocGfY|C6{AAE`kbSOP+y9UEM7P1-j}zLBV854tH{G;^upxTkI9_ESuk^J#QzsB|P`axu!i3`B} zfUdYQW_ATl2i=;I0Ubd^vS*-%xd5yn8l}r(2;?Z+msSTxG<#BjIRTf#BxSN|N-AOo zcic*IfUTXr^c^Bk?*xdmP?0yrkjR zaB}o?>>hlH4%imapG^Noc=|{M6mJ#;4OKYA+^J{GMEE3>t7mS)r& zP&g=(w&hdgPB;*qD^Y_9>bYo5qyl;gh!p#f)7_>Va4L_Xy6C~q4~S|HVB>CrCAc~` z4_VUW{U9EK=y2)|?Np3okBUbl@Hm>TUSNHiYJtzhaPlwftDbuhtFi@-Jfy-Iq9+QG zV+9{o$1f!V6zaBa2W#@LM#g5ElK^+;U>mArzA;ZF3;mN*0f{9Csj!e|YVFG0LK6OF?2!0iH z*&BW6CtCjqjMi@xLZ>Jz?-s0r67aCS$}+qb64wqfW@@(%c{`rmO^X*XO7*HjwljFU zv_p+p6upA_#G>eHHx@-bWRLb8`a#|3Gh?hnsYk6sO&JSW~M47_1 z;oGU)1l>?Z=s>vdYloGRuRZ>7lnNgN>ym{u3PO6kVrlB;v<*r#KlW#gXO?;z;vL01mEfbXBoJB>zgW zLfnUfRYb{HiWMR#2Y!r^nF|T6(TMp#bA98SIqvqO>m!up4a(X*O2h{Euj4@T3LI!& zK?j-86Rk?#P0NMcyx@`|HPs$pbz|>>%}!s z1+Nz`H?J4BI%!ZR{JG5_Yn0?YF84k5iX-S_(7I7Ua0Q$}zS5BQa`Aqw7yCiK+>%*1 zzOk)q;rJ`DUhEekr+)(#G3RrvHX37{xJOeui+_lAMnGF!Ed$~*E)q;W9i-38p6eC& zQ6+IRFJYo>q;HkG+>5g(FUxJ0$#F&S7J!c{VvCZvg$rX*OogG|LjhZs^AjmxxQbz| zf}_#Y3EMb3XD!MeP+K&9K-jRuQ9t?jt=$)A%Z+3O*EIWDAV2$h)vX>=uZ8G+pqSE46t&KdTK zOHpm8e(rq`u-k_9Mq^%YwBraH^-zKM3Kd|5Z>xBhL>;Xomh|Lx1Tc!vJ-rBGP`nR7 z5usb&5#{|?g`>QeV6{q7-m#82sjnmaajO(sM1W4|QUa`{ucH~43fSKrfj%&^gF^dP z_4)x*sR78eYQRiPKtOl;i9(ot0}meKWx_tf0({34zftyFK<0ul)%tRwS~Gt>6aBg` zfj30I?#wgUQgPo06T^LUG*U54Uc5@nxd7*!qV-dfn*Q5^Y$v4%wq6N$8MET+avN2J z)MKh8cfPM!{rfguL;f#6Y5uWiE^q#b^Gw5b{swt-uM&_qryi?L-oUdsBtFxlEOh>t z#b+vE$x}sqrXa~v>-bD#Sn_D`nIL%r@tFqclBbW5JR$L!Ry?80p4&CqlcLKWQ+%dt zfWVWB0^xR~$)rq+_)MMforuqLowWpdw-91NUw^Uu`Hk_J262U!@tN-KPLzhbjwn9U zSnx8il0bZ>9i;!+&m=w*ak9|(OdxJ8K2vn{@tI~k-3==A|4e))bh5hmOi7YG8|pOf zJaXA^=@Fom4aqW!uLyCGjLEcDq=MB|8Lw#+m(s2jSq@=BE4&0@r)rIbX-MQIGVHLp z8IT2h3ya)D>&G*X+|;)lNuRLDOxBEfAMP(Pp{7W zx)~1RiM2v?{Q61EZJqh`u}Qx(zkY`+wB*;HXPia+x@i7i{2FWp0Ujz0e*MPvzaPJz z(dBIB*Nf+#-TeB!PQRUBw^*n1>jC^E;?W~4#Tm!fAFv$IvIzEmiJOmAHZRhTRr(%b z0~~fZD8By5LeAc`NYCDr%h@6zvwu{u_Alb~_QVf@8+05xZr_c5caKO zJo-0QSa+_IXuXTk`nf@!YbLVKF|r$(J9lYF=fwQhB_8HnnvM2%2!3^;kE~_Z9Xv6aJ9uh=-odXPGI#J>kzHzJ zuNY(M;P#QB9i;x%1%A)kvMtGDuxS4dqy08P-RmN#}c%jf>@ny>eN z&uCKz{r81-knt~}4$P(L4r>5DCOYuA(Scq;{TnQ@yBpa~bN}wN>|b5*uVlY<_r9IP z@Yyy`htEtwpc?qT6xnYZ*&i@R*5aub-5Ux%p5MC0^Z))=>prH5PF!bnA||Mh7m4gh zBfEjQkIh2*SXch?#&PS;y*QBp_|jY*fFlHjY5*KBvWFSjBbg;@0Gu#96o8C>DRscV zomB|86M5XfQ*-qGeI+PV>)*E`yVS^D!8}>(-}ZZ~`d1hHi#}})zQLmXJB;?*1a+^A z$iBkJZfovdMp*YUjQDl5A2^frgc{=;_v9UG<`FWL*|btf*}-f;(4ct z_WIcsz&d39id9k2P3pK4xVnA7GW+*o1bZVs7>(yl&TC#5i2olQG#E0L*LE=emA_#y z^-P0#?rs_k$#*)hsvr(Cb{w$}OmQo`jW>Tro5_tQf`VzsH-HQ-n_gykH7Z6)bHS0&Vt(d8s^w z-fMv>s&%JGpy#t%i1NaJc|IWqWnfnx{K=d0K%^~b#n0F&oH60!=XGYBL&U+~PhXE`>bBzYu= zj?Cix)OG6mspt(HJ1DuHH2FozveXB`rEF`9nU%VnuMLNRNv{sPB1N}jyT>0aP?hx>=ipQVB&*h!JGMd^(~R2F!nASZPh z#W2R~`dVTWT-Z->2?Ut2v(o}DK@N%;Qo%p)EnG~mJzN~|Nkncdr{@jF^Jv7G{_P*-VoK~c`tigysK zoPZ;JoPG!%ty*m#BcU`Z9$p4ZC~-Am!6CYDIaL?TwBh)ncnV; zI$!kgxmoVYMhU)4>3bx-lI1>-cOaqj#nSBJOsQK@0UVre2PR3g%VqzvKz9yE`Ck&j zd!BKK?li%Skn|$W~Ds{zP2`Zx17J&sODl+6W9;e0Y)=zm(ydUC*MP}i)=A)up#RA z$DQ8>Yz*xe961*gxxn!%rpCsWfn3x%RbV6d1rZYS3t$(KA~_Wi+EXGu69w}#h#7dVC>9VqGS^oC;^nv*8KghE8bgk|uTQcJe?wpENnqTZpo)HHRd zAgDt~t>&t-1rb3FgLSG;T~Q8YEi4%oY)*P|p?jfR!12G0t-M&eQf!u%DHzKGaQKt1^NvrqHpehqKZ;G|7;jE#+X{Qr9E61SBG7 zeTFpq@Wj)8)FVw^O_25%QJgh*IjVU0OIIfu{xMmOAvvvm-F31`Ez)Rc$^!JKBC`QF zOX^;uXfDnq;3jkmExFPOiTvf4v<-3zg^VAfxN(OHUnKw%YK^%1&g9(>wUNEJl>&X_ zhH(SYRL2bT#2?q`N(gAT>I8;T0@sjLm;w*P)-kxN$K?jKc{Rq&a5h-gxwhQo3g2-w z?2T$7K4}8PqPZ}YkqXLDWE!)Wi^raunYSu|oIBHemk^7|%sUJQ1K0ObBCIs2YdO(6 ze4VwKrAbW(LQ=I!aBYc{BL#9xvrz|vRjY@lbVmPoRE$6?CjTDUeKf#lc1ZaHxss_G z`$h0oZ?j_T`Xs^XOhb3T)TlyD!BC+L1KZBb>P150Gj-Xx+5{tR?*3ntv*nQPHWNu9#{3?^Y__; zJvM35EIKyhnJ&7SzeG;mE6pkCLhK+XDafCPb_zkB+u^Nv;K|N5L_F5Y<^B}tRzq8E zW4%l2qie-Es3Lr*ey~*$%%s3!N0X!nL}-xzoT=;`txaY=Er^ z=}zd?VR34a86Weni;z8!#3Lo zZ!gvZr!2!c62h24fDJ{>yp$O05WK(%Dbs%wHv1nJQN<8Tv(P~#jbU*1EG}m5?c^Jw zV30~v;K)M};=nXwDOnT4!|_5|+i3n>;Ft!1Hb0fYaQEfVA!pBI;Ra~DhR?ydQlvQr zj<@hU3@;r>t=n7=0LeLz=64Mq{c*oswwGj37OJe5a}S~TQKXZ`8iOPXlXf{`p5ds{ z<;zjh*8uU(;wjh}PM9HX*#Qx^Y=cjw%5C^Uk5x7ur710*)3`x99{q9oTE<*-OX~^Y zl|Sx2WZ*yz^y!wQ>UpO-RHV~*jd6mm5dRxc1UpRulr9DyNOLf>VR&glFG&Cu2NuJp zPWMd54*X^m&U9QvnSf6`e)GmV9tB^>2jJl4=6J-D;~1yUs_dQWSc7j=2eB{AYY}?M z4xRcBA(sj6weN{uonZg$WwspkFN2}zPl7s_KjtpP3&|xC} zExMn%0MKS&60Pe?6##WSGEG1Q%m~_GPVMmn$kF6MhOWntQ8Nb(1jav)DiKZ=fONU9 zU{rz1(gS{Sqv93sgaoZx0(55KM|prcYNz^8JJpxz{$~LaGu=}r(u^Rpi2BGu1_=c? z$ly$B1K=)45o4Mt%w702J(57I3j{~GL~xjN`sA@dkimf{;)}-=8U7fic!T|apLm19 z2B3bnPtigS+RzVuw!Xd;N0xz?NC5=&sDt%W#ghF}(u(qsZsE%R1&t1_{8$W_T=^kB zuKs+F&36+8A@;@%q-TZvZM<>I@4D6Iy9l(RxL4q{KV`ua{wqBH2U*Ba@4N-VAcKJK zjq8PcO6x^w6r^8q!|`*M+KJwqQ5kocZ#o|x@cqokOcs&`t#%rK{FCT2&If$Nb!hX5 zVG>p2OUmk;teqivvC1;++yV^22ih3|!3a9eoiEN16d_0T-OQ$(Bu$&vdAV3n3#~-m zl!w#LS3&%hCb9Ut7HtagcRxns>qo4ERsaUap|yy?>!=yxb<`2mkyb$#%*Op+Uprqj-^D&^isalhw5tBJAK2Z%7v-xb(ly?y-adg&O)PNaQK5uK z#leZ^`%q14Kdvx9deWs?p#GaP2WAfF53}5G*?kCZ{tBGw*X~#RtHt^Q5aGKRkE>5_ z&xYhE^N-mBc6l4Q%l7s}JP~9D2F=0fZrwn?^ zz|%SSzc*G_d&M>Mp?ly^$Z=9o5D@KuN=p8+(VHaEUVTmmVn_f2E`-hm=H3BvE5YXcigbFB0&KJp7Hq z83el10%oL_w$Y$5#C(4QuG}PpN&eE|!~pKdypyPWMd=<)ILs*9)PLPXU=D#V1J>K! zFKZXF6`=~8Ux2CMpuBcB9k9;-{xmKCLk(mvXe_5zDnO}XUwtKYiOanO$17u9I7RGU z<4i2VIZHXc5|OUA$?33$L_+~_CT~WPl)siGY$FAVUNq(>gXRZ7lmz_gNx)ySM@bTn zHPi7>DFINGtl*FG^`RFy>-Pol>!VbClpk6j}kz$)l02Qi^rCMW0qKep|s4R9c zswK!H178y0>B$Q2C`%O$K$WphR2~~uA44PnI8)as?!`Es3;^JwM!Nel)|tAN7O@0? zbpikz6#~FskfJkr4FiB=QXg+41wjZ50CWvNfFA`2@E9fG4}gHbfCB#30SsLU4)_B= z;4dJ7zW@dP0v7oDn}C7g3T(hSl|nz%ms4R=q_kMvHwQ?-YMEY%OK4WnHC<5UrF@DL zE+>~WFqY7>x6zINd$EDYjOc6WViJpGY6q+(=+>fTNc))6R;vk|27?;XrfX@9I4wYg zLFZXX?1RPOYDS!zf?*3c-{P8ptH%z(VS&+^EL#x?`PKNn0sm=;U>x6ed4^Rgo))tE zJ30AlS?Y=tfmjWFEk6&ZKPg+qfg-8!DXQF$W4NV5oaxxb$X&|bxmZ&99%J)d=9~z* ztYjMKKl95WC`{%Fbi&Ce4$(*-kE2~L&){~rm2sPryise$9~X=MP)klJyAt};xQ=AP zh?o7iwu(-vr^9IabeWuA0wz^51omeq76A6#x1fqrKCa-Co++_zzA~C0nW~21 zF$&0Ucc$3!cR&hLRSGi~lpO$80OpQYXc=JO*?oy-Qoy6_*+e*5Dd5p?k;WevSg`#j zDs(&QiyfRof4RO`t~)j=g;>jIFzRe(GDGMIOa?U*cSkO@2JVj9V{cEvAF3^u>W$5Y zetWv!7(Rs$*l%Zms7E#+U4OZF6J8ij05ib5YV0V61Femd_rtB%5Xgd4_4{y&W!x2P+^LY$ z_eoC|L9Sxve$D-)VkoS^STd)tk_v7i`!YINfmy($A*BaW5NZUIv|P&n5o@J)V8#E1 z)=b*e;2P40l;WS@9F2+N$@wkwL=_}y6UEQkOyM~y34feP)W(1$p6Vo;rYa|krZ`E= z7C%}}7gfO3aFwxKeQZ<`&sYmO{6I4X{Y34tp63f9S{?ayHVEl79Z8NEJ4Q^DHbqa^ zdwV;;oL_4H1eiP$w_MYFfpqlAI!%VJ_*;SwDKGj-(ru$gLUIa7ArWT?%QFUpvpqij4{X0|kmE=uQ0oADf_~tBnb2zV3IO zpn&O@5Ud#>PkU|r`5 z!31V?E_l_sr173h8t=J~LJ$riLJ1#4lH!W*@kEL%zPCq3;?qd_G?G4zgw9Ie$5KtP zRA($ICuxN8_#96|=*g13;ZypaYKo;gW1}LOwc!vYxY}X$!ByHc99ExOlMNen#Vto^ z^wBZ2{>Jt25K1w!d$F3N@XF8|w|^dG9N`T0d`=D0cgnFq(C+V8L1ro}3`yj}KO*@B zlYhj=$b)~xHxm7{U49;xzoz&dPa~K8BQ5~zvi6S{g(6}85w}vJMf{GgT;J~)zoRb> za1Vm^kIrXVUE%RIK|#dt7$T!=N({IB6V<*< zZ9k60P)~2v{U}IV#!h#KC8%Qwn*`~B?2_V^?U6X4OZuSyT&X}~W=e{J<6i4>($Gr!*^SXdNT+5$UvhmYLt4oi2nHFI_ix^a-*dP^>JDI4y74U zoeBr>X}bhxr;(0$X>t@TebEV6Irga+q7!8EOsLokjRe&m&PKH~1*}8+CDZRXnFoF&uZV1n18RCY}14SxuqZnG5My&t|MU)bM z+&H}zx}6RNIMI3Tun333oxKkYG0Wf{2Th$rOdVCpQ%4VcK{|$pgfoaslA@0Nz#Nyv zg&vXVTtv+fMn#yYpK7GVB>~C9nhZ_@{Th25Tu4+ z{^??v8K@hIint~QmI}47G@C+`&^8Q4iuHGBXp+7b_DtWon4+pflkB_!W<@PD$)Hz> z%@lBlLPC@L)KoJoW>r~+BWYQMCb{b^RIA&np27XNuy%R7{2Mi5Jr{-ggvszaoW-kE zXcFmbHWXgzWkcbJm#FqTjnNu4^XK%M`18Z)L=b--NYxUeYyA0o zy;_4mUlGcm+jAXf#Gfl~2ua4i^XK$X{=9tPpTeKlzg-LdyziVpfPpv z(3NWVbJleM{yg`^D*1D^r19rBsw`6_e=eS3;?KWy(fISB^O!#mMSX%lzW_;5EB-uc zHS_0xOkw`~)qg_y^Q&EdFaCVtuR;8I^DLb|uc9aB&rx>?{yhGgYWTCN>Cb&V(cfMq z`13m?0=$>U{?o*ti;xHY{9o)RQ~bNgVE+6Xa+yEp(vEJC^7p6$XT%Qwj?|)gBwQ+` zPa01^kud&zA0;w>o`GWYkL(wo=o`5{jX%#o@^AAmh9@v|htb3wSa%5bEItSQ*7WCb zq!lHZ^yd^x232UZQ zuoIn;W=9l4lOZc7w!f)_)7y5A8(XT`RDtn5DMnDU;np?MVHbMv_!3Co!6op!%PFyI z>SF?Iqwp__-isQP^pc!HXyNzUT%O0_es{MWx@8BP_RQp{WSTmD38sK4c&Yj0 z+Hkq)jv2^vy5C^$F#2VGWhh%BeV6*nK@t(#J9fP(zgub4wVeP4DsW^i@j&+T4;BGQ?t=HpF&Xo3@6gAvP5lHLH&h;R2&-9%33=8qF=47DzYiEiHwO z7^9*?){677}R8jIm^1Wq2_5to2v z5)b~2hBxyX0x9)@d+v|>H{BCOASH(teR%Dy=Wqhr<&hb4SmW?Ib9*KNyi9Lz8t|AX z!p0_m6tSY_;lYP|gh zz0sLS#27*G*LMoV(W|*3AYIisN>wtB(t~C=ARPU<1C0_SU|U3g5V!55HcATKL_mds z1;p5609pluG^`c7)CIk&oIydJ~%Aah*Aa zHst1r$!R?F09}$oQ+S8g974qs5A6{;wjDjI92@gY8XG?dlTU(fYar+jgF6%XyCFbq zf#U^wKmxhK=wV`K;8}*%q>z6RwoLv0Mb`K!1Ce5HrOv@3lR-0pa+J*1cfb?_Z_rs9`J4ZWmDh=lv7kp_kM<0vSnR z3>Kq|?jEVB|8G`VCJPogd`$9Q^ZJ_0-*#O5464c04PFf^%^=@ky!!5TtMoTQ43tCSP<{Iyv0xaazC=$*8?LS&K%QMk)LvKefxDE=^Z*#s$(}>i zW4-X}B-45!jScP1@1@I1JZ*110>?m;z5Qb3@_J!vY*p)pBe2?rtrvcvM2qzT+4GI_ zh%?Zg-*vqJ?g*~}I5rU61siCNew)_|2{Fjg?CoTfcEoT3?Co^;GiSJIz0g;z7t&~w z6KK6K#CKW9dchm*!WX1g58}nbw`f=_7BYCTfONpy`#4q#9TD#W;ijF?$z!0aO;Frz z5G!_MX$-W*QmhORz7J8$l>DW%GFXog(4$i* z-YA7maP)P$+bjlv77H6b9@u=Z4U5kpryw4DPHPEk5gK*$6YXeu;P=Pf&-YpJ^5Fc6 zILg%g@$~fp!c9Bf$Nh1QxS+m1(C`yJ{H*V5)DEtuZrDW~p6QrDvkKLo@=I}hMJI~i zjdPXsPDcY6zteqz^#OUp{f9pmh4f1F!VIZG)I7@$ z8^j{v`L=*R;g_~X$oo};e~0rJ{@NM=U^m4jAB$QD_PkM&01!WfDCkQeKbPuDgr(*s z0-%es0BLJ#j5v@c-J0l)l{F?_Qes*mpzFEKxGc>y_x)5i>O1g_N2enlS}o=E0X=9U zP9Pr|oR9N-=Fz?Oi#ED}Xpr}TczK|Wj+X}s>a*Mqv>+a0jiaN1-AL`26wB-McJ|Tv zMt6z6I1r;^$)%6#imFFN<#<&5ppg_>+u1sJR4Wc?qsl{TJgP>b>*hII)YX`?91Km& zSt&!0rk~rP2W?rGq0iaF)R<{#cj}EbF%1n%0vg(dT+o;>Cz=$P2%S>r5&})Mp)J)` z1jd9l2pQS|x|@phpEq&Zfrr+ZhL$1FQJb)xnF29_Cae}in~r01=AjknjivF?3NdR~ z4p_|EgWM!WWyZzoht`f-Gf~9ylOa$go;YX>p^B_;fYQ9t2IwHL(qf)G4PW{az7Vgs{jDDY>a+hd z-cH>`@4>)k> zCDgPqIN2-8ktz1Sb$Nn&5%?ml1^cO(kSDTR$OHN{%M-flpkN2#zfhrdd6HQg)xs=K zNK}wKkwfK44}7eD6sSZLCV2vQM8QEU2lhfj6lwA>U7n~TucuE5MF@{7ZWI!w`xU`> z-i}5=B>V%pI`V#XI0+}BDq1cv38V<{=9sKbI1I}W);JU#)pY)}sZ}thFWRRyH&!%9 ztharKzyNYDF=6_9UCbj8JN|>Hbw)R`C^DmRuQa2(;{Jt^9W#0>HEyEmu6pB#VSeJV zUO~n~aFC>2jagmGO`1nawp3o~vhYMpLH0EgFNbhq&&;T{?$yTlPtgpIF&&mBS{2%J zFEWj=yt4qTn4@68YD`#|o|VXa=K8?8kfDI>T}i_Dlt7lQTevyO zfCiF4Mm(3hgD?V7ZJ5I{v*!T~?t+lPo!+Aj?o%vI07DwwHK}xU8w_2+jLO$Z5G5ED zR7x>#IxLw}>2|f?!M%Y~f#$(Y)mzLEEtcAb5FnF;>43*I5iRkMc+|BT*Y(tjN!e+o zx3UFYBizWSca1QI>O;FIpzo-59vY2`c{HP>J~Up#(a`uoaKU&$a>Zq6(Zu0q`7}rl z7cHW-&TJGhkL>O1svH?r#WTha!f-${Hk8_-m7`{Xaq8`m8I4EA78oZiFqjwUp)_yo zodP{>pW2aIqzvFljLCv$pbFK^4fBJrPtpK=IM8RFxb<`a3$d0dfCQ6UXEAZy7*AYz zIt>p9NhrbySp~UirdJwY0X1WqxsiG^30gCn5ymM-#*H3TnuS)w7c z^^B%1Ft{hs8qZjjgR5%VI#8P?X3|V=a}5%C+F(PYp#`QbmK)<~!@{mc4OB=zhQs{%455pgB#^WC57v+VXWJ(S z$Y$8(dVekKayVNHj-^V^3cK78HJYA~HeBtLNp`uP)z2=VaZjuLdB$}gX50SHooD>+ z0~&NS=NV6Wjq{Af&DhduY_*H^5*-x%>pWxVIa2s`|8<@bXK49QtpzatI?t$`XZ*!Y zQl?BDdJz$qIM29)(^ji}IZd2rT%o0P=CpvlA!xs$kok2@=NZ>--*Z--XUs%@{yNWy zLvw%FdB$ts$Oe*WhZ}Ew3opDtV>8I_a-Q*t@5B`Tb)L~N(i&-%rIu_G$ziNt>1p0@ro^BGu4tT$YCc>|2oeI z=1HfIEsqDMy<$wz?N~3e+MZ8|@GpT6G?H}xV^8#P981#tOOSOY&LyL9 zrchkQKCfaZ9?9=G4^?YMD+aemczK0;ncRooQ@m?$^s)>4@U-;Rd`xKH&oLbJ06U_; zWq$`uo+tVuxNTtIIV}tqB7BY6q$y1xL`qQa;7Xn3n9}hf7pg^S-}z*wS6{~=yECru z37{42K2d#F2G`fWF7>seO<%3PQfE;ABI{CLZ}Mr->bqwI8J1|gH0A1NC3P6@X?ULK z^<5NP-{0#}->UNi^?h|;Q2(0LrM{Qr0`+Y*>LWx`mn^NrcwfFGP~Rs;eGI>`b*b-x z7J>Ty9$epLb*bbe{rM{<<1NF5IuJ6aibr|m*Z36Y}Ah$E75ANT;>r&qn?E>{ZYt+a1(ycD_wMz}u z*CV*TL&bF%@9Fk|`i|YBkC*%RI_e|uScFHwiIzYxAKBAM_Vj|qzZXt2N6O@$hG6$O ztz>Uz#Qb>7qn_!Eppj*4{Nt3KVaYNSaL5ap~+TH zoFkNzF2^?!JmN;60%5X$HHLE#pznNgl)y$I9Q$${gVfDV86~wKd@o)pg77u5QR!(W zd7i%qTL$AD8J_3~@U5KaJdMMgMK4DlQk|Z3*>eki z5Fp?4NRsTy#K|)Hj6kkRB;flc@%&ImW(MUTvO;8zi`2B{93%}Pv?Iz9zI1y|V>x-X zoL^SykNfGXJyfpVn9C^=X#(G}z9UN9&AL4Y_s1?laPCUjO8jy2QItAMxX8hLr$qk@ zR|x_IB57eH7B1Uwt-!?OFO`EaFzIhd1qRv)1I6II(O=+nI%D9)7P;DfOM-@hNx;Bv z_n;Esgk60Eu@~6)dK@2ckE^&#$G}SkZUXtZU`moewRcXP#s|V*$AoVa_XrPd?3#F@ z2V-c2atT1WHwKzet{XCdaw`B0pxl?sfpW2?^LC!-mJF0AX-W(51#5is!xJM6-*!_X z;~Q~>0KTn5x`A(qgkR*6vdhY%9HbmF$f1(YcjJqBw8fcCmt^?Y(~i13Tz>@h0pvq; zd>bB)Z?7W{S9oZEPM{e|q3(b+Ol(YOMhc;~R1}(6K!=QscM8YOykdi>P}4xLzEIfhk~++U{~e0dE~A3ZV0{Cj1ZZ+mGN3 zqVwA?`kRpdIb;C&2|hsnqB1LfI|gNH;J1BHBn^R#Xv$UetQjOB%I&Q9gNgae%ot}hJo){Bq6NRL$MtFW_CLvQV`BpRcK2YRY{rYl=X3MUet!Fp zCAH?accN$rza0-(6$90+_-(JHKnN>-yZjbpg!0?lS8CY4z#`Xz-~I%yD){XsCpB!p z7*zn^SJ3}p`mEySrTF4X7LY{yY(j8jJIV7fQ(n7kE7Sfxvkb$Iy+)*nnB&R4q z6@F5lZ)vv<}&6&;I#CRS82YalX0siMbnjVj)<$hDw~)wiJ% z)X;cw~DnJ#vs6bG~`>a}kDvVX1MjAhi>ct-qQr~GNs3PGY%LS7IO^`kkL?4YX za$O%E+RH>Ahkhi&Xx(c} zOeEtx(Va1JqK^!$R|m-^`nU`kppRw%7U-k#f-w51$1uZs^+wq3tkhgRxJ1-Ea$wpaj?Jbeo+(>1U@-&g!I5_oDk@{78 zyeID zc@)b<>Yc%=y)w?jlt+QVHYK z6p^~#NaY$X7O6!>D$jhBNd3e}W!%{ZcT&J%hLOsn*o;(7;mII`<^4j!)HIZRNGqGh zH_NFrMGbcusa)@KBDJrP%00^ysa=9o?-Qw42B!`Xsjege$uxm|*NfB$qb#?Ugj5mu z0oI)a3Fez=01ugS^5_>DR~p%UWJ;MqDJbzVeh~=XLbW0gNJ&~r*m$TU)F(|^P);6~ z5Uo%SX;-~#rCnVxr`FQLH=CsghoI2RnMdIWWUM)?B2a8X^^hLKc7ts^16{~~^hl%W z%wTrqjjkxtq=#&gOJ*H>AZvKg7c>9hji>~iAWeOn89$`QTc`rs)rF`)NDtQmU3#?A z79MG2=*dtEhUp6r7=K_R#$i5nG}5TT;p#O_ghcsJ4VEaw%=Y#meXBEIq3c`Cx|-z) zc}v0m3GhLle2JTjLe?Yo7>bZ5Rj)_3!;dFS-&#(I7W&qwNH^rkAHE*1W<4_TD9ICH z|J>;k{6kxhpYtBm`I_L=%6HFxeQW1uwWgSPC<^p8TSYJU#zZkztMoT#0Zpv*Ek{pe zgz8&!zSJn@0*hP=ed~rks00WeujcMyy6|?%K^35wpA?;9F4?D3jJ^w{tw(PByRL7= z+XZz@`ze?@LhPeK^f3~iPC9+qZ!pnEe{zBHG@l7zfj(aPG>ks3Mu8gEBNB>)(Z}&k z*7WfM($5O|xa-#deJt%6L?64z$JX2N-B2(&oU7eQkNg!wGet&ywJN!U#}A-{HgnA^FIhsLJeER|3uLcN|?I721XDj8IDO&e14gk43HpCB#7<2ukR+OQVFIr~;Jm1u77faNuW+5={GNZEx4rDv;42 zbzcKP3B$Hi(dy*Go^=8Ik54z@|9WH){sTmW|1-nz|5FsGK|cHwMZ)m^QA)JH|G#m4 ze-{2%qd#Tt58(ehS-O1SHDD>ZjC(tlT@pkUA0zc_mk)2e7odt7?75GiXb4r5uBm}4 z?tUL=Vnr1@GmsHV6%WtSsA8iYt})R^Br-rBBLOVX$L;Ti(Z>&PY^s4i7NJNO zeY{7B7WDBn*LN1sN8+9UeLR(^(+97>-y&CWZ^y@jQ>P*IccKqkvi>3a9R+XKnm%qp z(GdDLys`%R$bJWCVnrWIyC5T!K5qU*qmS7Zxfb-Xy(=nV`iR@1(MMBM0s5GX3Iu(8 z@qHEaad4ncA9EuGeWZL-d-`x<`a97F$m5TpkD+hWnm*D|G=x4{ zeN_W}T>d7|#EL%NxDFYi^l|Nn8ht!xk!wL8i*7(AOdr28>xaeamk*de?nVWIK3?2b z1%0gRuhYl#HbEcujn&dez&~liazPyA4|?P(6LAbf28iP-Knlc>@H&Vi+#eKWSbkLF z4~imT^wE$KnLg}{4f=k^!DS};I4k^Tj;q zaZwUjs{1D;oQ5AVu9Sa%J>wn6Z!r181=)KBV`w@*e!i^<<+`yiT=NBh22k#U8Dadm zB?F~;f6y`ueA`Wl7W{Y}(*HbuT+Mp+!5;(sSWVOUG4F63ex^>G_fK8V?tVGId23kD zE<(`|&g(2Sp}Ljj^Zi$V5LTS`%8mltd9PCU2mSIL4cnVpOvHB?D;`ua>b-s$*1^GXx`{~H-#xeEXy!vB}T z@P7;n)S$2TL6I=ePqLn z0jj8BJ^L<-hETt)yN3dN8Wx@ql$AZaxJLhDsXy16?bpYsA4Fp z09AaQs#C?etYldDCw1+m>mxBo1y$s&WVui)|Dn5Wanj4Mp^u>={QkLdsw=)?O$ z7=65k0yWUb1QZFQkNYUmfJzs13 zaHD7leatSZfj)Bo3pBB!k6+p$Ba}X-yr$8|E{j|X`j8+S1bt+$)#xJ&Re(M|M+HJ( z_pRfcaQ~#1vQ8iBFM>XXEU%V6^7r7J(!)4DT!|3DQo&vDlaSq~WE}aBz5OF7j8Aa| z?iARd%X1O>mi}ET=NHvO{9!5oBiJUD;+>J=0w%O@-k9$4Lamr2&-=GS zd7A!nx_8J&zE_erC~Nm95gU}^J@pj-3Pt*I#gVm2St(Vjtly`kAC{&JrYil2vVTM= z{yEC!eE@e0opMI(l_qsXjyzW%x}07jO}UDa5PkRtL`IwiE0vsoN|L7B244?yGe|(+ zc{URk(t?De4YvTw;pETcldu|5K*@xPbd=6qKm{tUr4Q#Bqf9JLJv>Yr75&0Dy=?)T z-7snYvSFFhP-jQPMDms6aRMG??-L1u9D5)K6L4D2FFu`H_D)33#VArlA7^!;kE1iF zW>kPzIsdqQtV8iWPFK$Q<9h#xMsvcS+X7byJ6jLM$v*ep_6k3y?og&QDx3aJ$ch6% zo^9CjiaEvO`=u`PT~7LmT)aPB_V%lk6Srg*j&E%1S~&hnoF4Co>#)DUT<3h6nTOQ8 z+&!{;xqM`uT>L|nGh(;wUM&OOXj@J`9dbWf_e!Uy_faQGNFNDsJM6>7h`(1o1WuEmBm2zq6GA-{=-Y~H&U8Xf!^V%o|NyWe&R5x zgh<(dOj)!uwT!=VA5{`JAL=HJ%8IrP%aS&gyWESjCojuwllcXq0^aod4_pyjl*BDu zG)@#%@|W0AHs_~9+0ue#u86ft;y2w0sJ3x-%qAv>Yvf$Tz1)?&*yaApmAu52x?V}# zs^p)rOOxon0++j7IkHB9ce5)(?IFz`(3mIB<-Mg6<+{=2;ZJLOX5Mjs&hSIhsCqQ@ zF^8lH4Qcjm6?dVMY1tmT7}zEa947&eC?5VKoP_dcOLIaBoJN6qfQmF3J3ao2O8ha; zm-j*7&bG|btj0Ef*V3$ZcE8p%TAXzXmpHrk`{S;E23+2~6nD)@1s`KYqj(=c^o2^f zSdDbL56Jo7AC;4fmHg8UWU1>)SHwvKSX@Yx;dJj-+$;TY-Tw`3ptTl`6y7*#gzQp5 zM^t4-X%nl1!%mE^>#%8Z@$PiRI~sl5*R8N=RM)}*tw3WsDr*2mkE1TcoK1*|3ZTAJ z@GRI^UT4WR4*0&DFkb;4B(G6CqbpsW450X8z;KO{e-tSGFG2&a3>06US-cx4zBn`g zhsd1PO7Ras@vS%#ip6#2q5MM3(7MW`ZM7-I#aYm&MyUiA7%VL3jC(CjCcorzk(+?kmj5x&Ax_fOFhUHxHkek zge_4W2p5a8aqC|~<~%}eXT+-DJSD#v=v^4&CLi&~4Vp%}MOiEz3dmoYWO6YxeH(%^ zrdo36`-;^StuQjgWZAFQyMmrf_KXmD{IQV7PS1oG#d~wOJcb!4#wB(ASy`wHr8>#u zHbNdxp}DD19`8q~s^#%%T^@f)+Z8O2+t*eKmtYzoh4j;VbYBdshD&~}MLBW?oB2NfNFCcY)yFC7QZB_Dk;XeuU{GsyrVW<&AX0?#V&cx%v^4OVv%t{`6o8BmU zn|_TM0I7mct&)#ylf4}t!vDXD#C@UiS%rMAthIaw?+TUAO8d?%OmUPwMoHhA>r)~& zE6LydQS$jBV5gAJSK+A&`RqzOT3h+-N<3bze0C)stEGH)C7uxSxjVR=kk5U*Q5n6x zQ6&WXFgcC#!E#zEpb*Hi=QGZg`(QinCKP-g@HNC@3?YN9}kA5%sj=-Coft zSpHTg&#@+{R-VsB{{Lg|UErfAvi9K_l0ZP9Cqf`1XyT5TfMB8^3D<-K>4q7J8UzIt z6%Y_5LV~C$fdt7oj?1dN>#D1+`tHK2uZW0(hzXYjM39RL-VjlshXDkUyD;B#>$< zClihTb@zM!-|zD$neKY3s_Sy9&Z%=wRRt^T`KjRNo|JQu{9N@RldVZMGh__{89J!tXuvrWOpu@*V#b^c_scGdSqIPo5TExt~JMk#AWeEq!|QMG2u z&yFz>JYn~#G%-qh||lUQp)@`PJiMH45{nk z^Sd2GC2u>%3NiX^!syGXW9u^dOAJOI!QYYKxA6CE5&YeJCjM?d(~v`!zn#BtQ~%%M z?^N7hYIRpFabuOaB=%k??|p~F;S)nWoA&?gG`m4N*$khi&b1*{VA z5)0&%=>onjV4MYF>FCf~3HaDPu8MxrYy=Y8_2Vh2U`4( z1#%;-5U@Z}{>cJ4-4zob6=U4%o3E0yPssjFW5qEY6JJ?yk zodP;6kQe?1bj%q>n#u$2Rii80^TEFcMIgs&J}Q!fJqj}&DT-DfdZa6Zq}2* zrUGUNxYG_Ec!(R}LIEr7;Ku^S3HXW~TrA)Z9k^HKS|C?tzJR*~oM?eupy>jBD4^F4 zju3E(faw;uxJ%Fiv3Q|_C=jc|v6D=ZMF z{W?P0=cs%2)OeUXWQ2TIa`l_YXwZPgI5TcFWJUgAQRa60`?Pd-;cINICeib zLT3R#v_Kx8I|Otd<^sKLf!y%#33##{H{U!9k{huGQ`27qv(&f{)jcuTn*t%tTF{x3G`r7;uWan9H%8?{OM~4&A zhO`0zBc08WY4;xGwAV!%@8MO!Zvw&Ees z`H)G-JP-6MW?Ee%U`q>RTD?TT*w&o#$U!qD51u#y4@$~U?4Vx6*?uPAI~K^_+#q1Q zfX`SU5B2{M&?(?U76|=>L;sV2d(Y4t5am z0RayjFdKmjxYz=@ZL0(vH^DU55E);Npq?~RC9~1Cg z0yn}43uN{`S-{DXvabbl!(T7p9!Z&Efn1>O0uB@~)&jYnNdjsD?hBcXz}cRe!u32) zzz;2uQ|=Vd_~z>t$n~rgaFe8*XMtRxR|H(_;(AWCK+blqfcd&`J_}?PHBrDBl5Lg+ z@;AK#c9fLuEs#^D3wXB(Na6ivJ$YVlC19l#XtxD&fsWtHjj&x7hifg6v;AB^pQK!1 zft+%MfY|~*Zh_pNF9^6x1c!SqkP9?hz-J_7fdz8Pu>w9UU=Isq{-p{yM!R zT=`}f3*=GOSHM3@N|yz4$`k>wmy}2MnT@~$DOSK<0)A$JT$O$Ia3iD$xXccIDBxxC z&F3tTzxld=`&)25XIdcFbDn?)r!aWC1@bqi3V6Mw9AF1;6!6~WoU*e8@(h+G;0OU* zS|GPjdjWF=JhInp1ZG#^ySbk24|2nQVu4(h-2!fqHRn4P$aBJ40hbE+j2&Dc;9mLW zLl(#l?-y|Od0dsz7RZfokAMpW%(Xx!&Fcg_U%uJV0=Yol1bk3ZHnl+hW?KQr2zX$R z*$51tp2UrCA?^MOwD{Npxe>k=u%&>D?O=s~7fZJDEs(Q)S-^M!r`y3t1bi#R-yC6q z{LKjhJ}zKiJLnPct7hDMDHh1hcZGn%C1tDya<=CSI8##Y``&B>PI>GuZiKM{erSQ* z@H+%t_$`W zH~_VmTT|~hmRnn+pi!1vXPO}sUT$S9FqT{C$O6l)zaaxzZf##!&vL8fA#=I)$p%?& zdH%-BEz4)PzV+4$Y*8}(g+iYRr~TZ1StiofucoZs)|FZ^rvnLANvthbb56-oluy%aqi6-Rr=rMwC1MR(Hq z;@e}X3t+xl-iDSgf4`kaMy=3!wL{6VLw`U*Keuw=&@mGFr4@>sSRDGb68ecfG*d!1 zTA{3Wy+lIS+e4d6=vsT|@!Pn(mG;nG68gS9^g{_JEEtV4TVLSMB)xfbOT z`id3GdjBaB`hq=lBtj#6tnC_<+{kMxF8Sq~175wW&Pdj=2kI9`@}DQwGm_ghl96oN z6SJ_`7|HQbP*SphRwBtrO){wqbTZ~S^tS9AP2PDYI1t9T<=hu6?N7{7m=SZDm6&#i?0U?0^xet*C&vO44U z3kr-fepey<_uCKlYvcF2`p55Wuh)#<+gM1V@ylFh?=3tYhS)f_J<%1Awk zG*Nl(q;nx-k|q~)T2^4@4&Q5x)LWvUQAX4E8_+|2jKwMBJJXNWt0iWsctuw4zx&G4N(SPzfGV6C%X z_zT2geme}cjm~f1L6kb<^(6|7qThU!^ZUK@o7w0FmAe7{5czfeA-B7X=vzUG@d zh@@f^7w#g$%nt=RsXL)hA5Qx8@#Y;xxS-GFC~78B(S;Weq+Kj3jblSWz7CtXta&~= zih}$NG$cG%rrWjS89xi@*tFwoCL5&lhbU;2ZN45%kh#f1F#)^Ne4=Kez_MeDt>{wYq3G41y z(f|JM@sFK{e53DId45b(|JZjhegE$Mu}?(vk6ro;{;@mYAG_=SBLCPdOjqI`I|NVv z`~71}ev5zXYeeF|!9N!MvPtllO@hB{68vQ$jXsc!_hh^$<2^Zeq21s0m;7hn{1yM% z|04fc%#F48!_@Vk#it9C*?(4}22YOM zA|tM}sU%dK*IlkZ5`*@$3c}f+i2Li z_6c&X#W>5`j)4~8TT&-~~7Yl(%` z>tB0#WWD~ifuk|T_LzouTb1s@ zo~w1(8%CRFs#MGG*W;@+H?v|{MEh1<(>iM53QtxAcC=QIv-VV#_OYIneXPd5na5BO z4;H$(`tJ()3ih(*9Iv)Ev)&GBmCdXq>Sb&VUPS@5HnUbJr7t=0>t~s%5PsbM4b=bnXj<&EyZk`#<1(MA(Z;-&@TZ5sG#rSH~8B%6HM^aPP zQDyFv^niU%w0ZRew$ovs6E?5ThZq@E6o7O6ZKFgK7)>c5%_axwaPD`>$1FIR($$p& zc0Lb|ZQJir-+q}J>)pTlS(N>&*b0gLt0j~>rUz_9#pL9g+QHbr>hYZpC;FL)&V`Fx zXRHst3PHsX1h6ZQ_Pf?>T;1yN1w$F8|AmJAeQIC|_ADG9P+pMexTd_IEB3EWaiSD2 zda{00eLpH?!$<@wnURQntlyI}eC6Ia+9Tuf{h+3uz=jzxq^??N#fyaDGH%*FgD4*7 zAT&xDJ zNv4owgy10|HyI)66q1e*JS60%BP5$bvJrxZgxqY*sMq9E0}Rf`{>^LYab|A5*MHNC zn*XK+n(qq_?fb(9Z)J8l(NEyPlX| zzu0f6@d!GD{f4*F6KIz9(_Y9~WN^v7zHQ!=qr3^H11Mwr4zKTOsXFMrK(X$<}nYJZOo!Cr^ID~1w?cTI+G~ZX= zw6DAwKYLSt!Ui{NrQHCAtNFgvPHYlwkkPH79A)XG4rr_WS!l|`_#kMhgJWQM z!4tjSLeJbA>Nbr?6YE>}!O0pgX|M$WhoJ6qL#R2d#7;CijoE(z8vmJLrt&TvM|e>L?awa^|n;? zyl$v_URxS_dEIF6VK*>jnzpEaL0dGy$hK7Zk=^KTK{sv#PdAZty2&=8BiNg#lsyG{ zuO;d5Cn4>$eG$@5+Xc2g!vPdKinMc?CGF%9(fu#oFT9hcr+W4aM`BU-3-2)Y3+EHD zQ!Wwvg?q~Yu;y2ryhGcYe{nw%MToMW$m<&mzB(%2>w5?rW{wxP40VnSS~i+SH^?`h zc(xOpSI?PShY|}w!8NBylvX6v-a+*0evxp#(ZA)VnxR%#AEJ8v1F;gRV0q^XTHE_? z1+$7cykm=oz3^JvdYaoYBsO?_>uaPO?1h4UX<8>OT}W=M06wt8kD-)tJV@iSwv1D$ls<;_I2d0{&I%AV2H&Y# zGR``dakgk%f*OuBs0>2JSq~X!J;^w0WP|Vl95S+uEK+i)hfxx8 z-#(dHa0%ScG_#!b_)eJT34{|*U5`G+wB^FogLcM*GKTon%5Cv4&nchS&n=YT&m4d@ zUDjphd{393t{bi`&zo8p)Ai8{T7@QIhPUXG<{Ml+j`IcdobuK!alSx0cCJDA+pJ>Q#Bl4tj({oUuivV(f($IVHVYVsn2hVr>|#lu-qo!JQ67 zsZico7d(X_%WdZIrK|qtZtwscCNmz*K+A993_dkE*pz6F#u&$Hjad0Lu_%I0G-wk^ z!*ra=;HO9=wc6X1N1OLE4^3&_PYv9cY=(RK)tsi%4_`jP(&&1erjmpxe40vZ4-!U? zJ}JUzY!8nQWv25~+G&BADD}B;;<@Wszz!Fm4`DP11*0}>LcA}wEyzOsz#@xfCRuoW zr$e2_&C@Cm;k=1#(8G>_<=vWGQ(lzm;yx{1wb|^~10Xj{flW$^_fWqQjeu6XzMr+U zHR_2S-oWKew9>Vkg^WCb_Suk9aOlSwlL#&c5$wTP2WLY)=0R?R)JZodLI!o zg?AD{vx%xE=h8A=71oW%nc2yzf52vSnMLp!7|8pWk_POcry4@~R`Y$PWmIX~Ft&cg z88J*tZHbmZTOg-YJI%HB8$~yV%n{ zQ!}b?u!vfE4niBOj5tUHrL;zs$9WP$TWf{doAxXt>VWcY3fjA`iw-~;#^WT=TBAi? z+7>Nqqf)vVx!}MfrL>x|tFG7#lBP@=DNDOKbIQ9lDsSz?dqE?ovb4yFkfKJ;@&YH8 z5*3Y#KMPW-d0Iflw?5CUifuy2on+y-6I3LI{tQN|yKaD>pHGbp1rHs%;-F8_pfE)w z5WSiNCK7pvJ2#@ow;g8=>7C2Yg-K?bbJ-c(M^1}1)ptl=J6n|Vaj)!+VlVo57&P{^ zthauONEUy6A>=?hjIacG+3%+w?(yFVezc4E(OYmK({TEboh8wdsB|xmXW2w73CFV> zRdHa8af%d)X1+1*_-S3$aFv>MSXBld#)Y4#Vk}0~x%jCAF;+^?+1L`Pce|z(^v5P6T$Luc#M7iG5HzJ zsI7;e5f9>JjYsZ%r{*Tk7KLZ!k!qzb&-!zK3@RmP5G+UK{I7qRU*#fC%$YM|d(`4p z*AKRMRYmYM2$j@<2Cq_AZq9fi?UKx6+H&8dYY#kqx@$ai1zz8o(B*c@yy21u8fxCT8kaDBy93 z+h)&Q`f#rk@)urqctC+(=gHtww2R3vG`|;}jq@djVpfR98&15)$H^B%X`ZBaNPzhS zlN5m)g}tEvd}#KE(oz#^LN9n(elp&Z@t%x#oROEGiuY8!3VxMw*psofcAKiRj?j5zkxdfZg666}1sbw~ zJF@#np$yNwzSp26PT5KNNm^Dw zEG}JZ@f(lx2t-AZciWiq?z&kZb6z~HSKe9g_3hQts#M=bHEpdYlm1mMR-0Nzzc0M@dgoau|wv2x}Esxd2Pu8BOo?U$4@)uNpF!P5CaimO)U zhDhlWuBMe}<@Zf+iX9G3+M_u?Rc3FoX=pUk(5z$)jYz)UtYf5`N>b+Dhfr^X_~-!X!H_jHXSLEjP;{+@5rQ-{AyY#WPP{os4B0M>1n6ei9#=;<;|UBb8IZAF zTW&4H-!rAk;L~UhOTQuVFt6D#WEw-9$$&Jso&@2_Z<~-6x1ez{#IKp2#-h$?tOat=v_Z{R zsgzNfE?&I>6H^G{>wZ;sX@?^XmqXL;Au%y?Ld59w<-+G%`*0_Sm}%Sc%l ziV#xJ{Bt%0Q@eg9R~geBYkM4b3+r8T5K^J&XAln6mkHoeqZ65M+HDm5%ng(+%ex+* z2cCF#1yf@UuUNQBU_(yqe#8tyo+?<{Cn?zKy+hG?q=+Cu_fUE=k9q@BQt#osrvv#=7wbYB9xy|A)IkHLVenFcKjN4kdw4!G>yYfNW!wWg)XpUJ(N}EMwc4AiqS?;#0gZ49JMyP|*Om$Gr_#=IgtjD73gJ?bW3;LjSc74zx(Fa{aBrEzL z8b)<=L5FO*pb<3GVPsa*K2)=|DW%hq+LNU#rIRU}>WUJ~h9*6LKQ;${?A8eSpqTRJ zjqvUv{s>hN^g-Z{o<^oVh>q6-f7DRHAlRc~ut)BdLbN?v82vLEPiSR4QGcL+sL!Zp zxb581DJ}#TaF=uU)@Gb{k&_Ts#QAl!NOicT$5*ZTw&C1defPakB>BEDS?7b01bF7a zq0RcVLW6Y<{Ui$OEE!Ojb@rx+%sOu_64puLcWr%=$v=~re>&>&&q#IBSyCq*v#XP) zb*j-M!B`SsON#{atMJdi;?tx>f*VIv3r9KeOtx?+c!Gsv1O?cP50h=Y~`qV+N5eIY1W83sE&m(@x z`Xjbw@Co2dy0Q2>Gqw$8TX47^paLp-5R+tY$Ml2D-$>`#Fv9=N+l;F zKDK$z*5ZqJs+gxbkKj`^2jS$iS9~52|w0IS43pjC` z7+b6`wut<4`~yzr_(%PWX~Y{-d^l}2s1F(h?ZkJcV&HR4d1C`~!_&s#sPbtuvE;kT z&`w+h?F1}gyH&_2P)&%gp%y;`)2ySPsFMZ+4*f*vKKQego^ej=1visvd9t9r>Srck zi+-)eZJm#Yy3u*}NFQardsR48v))}Li+`ikq#hwo1N(@zCXD1~zSUS0rsNomZ#A7j zof2YtzL?g7q;#pVr+qH=H1NB6)`K431~m%l|Tda&e7xTqa}-wi1>9#1oy;|ZpSjOhHzjEflC3_imS9inK)ps8nd25$~xGY{TX zvpgGNnk>$*#3Ni?mlfLhBzN_@Ze-CoO*r zQ6(QIk5lE@Ua^6!NiYJyI)UlWHLaT(uB0n4U_IA}!C=_}E^`WX8RJeOJ33x$28%~9 zb9((fqS-1I6H{R>lZ7X6nK=|ti_2iC_9b%}(~gc0kga05dEEt**KQc8$gJWdYdvfg z>tU;?V@Ic*m!_>^F7m{n1by*A+lH;;7~9kDqVHLphVQ-@PC=OZvFxTL+jJN!&MI>g zDU&qv!-26PQ<)uycg&ZjvEqbftk?^C29|6192?ZJ+6&hh)E8WZ84XizlEzjdaGQ9r zQx6$=Om0KP({a^9=;qqv-{3biFv?@wg5P9e#)k1mEPc3fBGCML*eljxtx)hWn=@nA z5K+f|tOc$C=h=xyP|C=a2Gd$MURxnGOy#h?2YRnXI1a}CK_AlsMui$Kq!?UC?3WSq z9rzK7!efHt)Z#}f^P{%lN4W++VyV{7k5Wl6p!OhThsl(ncgEE!HCFFJ;YVfB`O(ng z+We@mW$*55vv>Ecv3K`{jy#&Z`)aax#~?@MM^~FmsfW?f$HR%|Q}5B;A?IgQ1P_6L zsq&4viQ7cl59;zGuU{FEu~oB-;h~PE{h&Yi519`jKfoVC3-m`vK@wf1l#Rm&&{1tl zim?cW>YBUR8*t+amru15U!&`pK&<(EP@wtU(uYBR!Mel#N$Y;nAm7G}T&Jgfs^X~W zNL9Q>wrfLO4X*Stl;_iKAsy@e;7T0~uGAqaS2E>)(O0+9{JGHGtQLKF6n;eda^Xi% zSN9@qHTY2swACHz@S|3upsw>-gCCt0e$`jE97WjF15a*n9T4ZbAo*9? z=|O{RD(c8KwBE{ag(W2t@Sqh|_bAelMCj7|LtI`Mxm7IbRqQmt)g161f;oFL&G}e= zRI&zgVEsIfRFHojLp-jURgmAB>nJkIcfG^laV@H&@VHF6#1Z@@QU&=_mC57IzmwA1 z_Cu3~h)nR9|F-BJe~Y<%4ONj_4Yjf86LWYb6{O5TGe^{1&{ zVeT7%{^1tLtUcetmjS#G{_8wNe~YDYV+ekYHGl7xUVmOobVNZ*v_F&x^n^*Oz@1J{ z$@G+r#%`HPUxewc8xj>Xrk-nz1Ri&)<{#M@;hx5bOYT+vyvB$Np5yhc)zUuIl>VDN zzKuEIE$Y*A;G{o5_s%(3d<(INbd6$sjsDm{N)_1Tirh&0MflUms8>-`*#4k+0o5Q! z#NSNulPSKdCUV4lu2mlFht(HFfK@N3Wu2Ik6kG~6XV_;+!I^bJDSeqZAr@byuhK*1 zzQ$hP0jO~r5BB%&JJ_GsH-50+L-VW0olQ?@7bs`wiR+q7Ptq=f{oOha_7`-d1RbSa z2Kz^LOrlq57ZnwdvLoY;(n3a~sAv@I_bZ;jjlvP5G)m&+%Q0o64bA91xnU?e^O!mf zlh`*RfqgvTYuq-VwhItR@jZ*7<8_|EN&V1CG{L_iq?{O*j6b)gD{0TUOF*PbS^=FD z>4A154T=q5rcw)!mLdbXC1j9rYdZc=1_?u4bSHYgl1d3vDT`Fe4;U05_{(V%KsmQ#yDtUZj;2GnSMxTsNjK13A6N7hB#Q4O( zHO6PA7d|g(+i84yBgf}SI(MJPCk*O{@dL)2PU9_|S{cN=KgSw#9QR71L(K8jM2DHk z(j1^zOF&l>5!=!aYL!3q)12RUA)0{$WNTR;VSFA!XB*>_v>aI zFlnV)xrfFlhFf05aHCP#k;i9h&6uMn9-kPN-MV6YcBS#zmB%Ly-maX025DCwq?xq; zCT$y)AGvo$(lYlvP+-mcg|W8-UiL=&P;}He$w*VvNYX%N6>l0@3(cy!@UtwC2mHIJgfNrt@y$|hle zV{jn0-=IMIhh$j(tY&S%?5fP}gW~ZJG{)cT5*np}#Kf({A3xT=9?cAM)*51U5f(p0 zX@)3p|HpDoe@9{k5?gW@hWRG_WixE|7K#_vpD+W09Pooaivwzg66zCl29wm1trW~a-0|VKUwu9N}Su}(>R?$5QCXYx1k&;G=UCf#|BLK6Tk{0VmEEt|l zS71yqO`zCE!UWipFcHGClt5XeA|~cbJW%3P$|ixM!haYs;7Obi3*|Q1v09K~#HNuq0fkvG3CiZr41yKIBD1PMTjfNE-Wp9h3x24v{u8#!DqCu@s-khsJ!R4EX$gA~}qln1K z${0v2;;@hP?>UTCCxOJ#M%ZQ!izHZ^zGKz_8YHUkD6|~!(>TNW+2fC!;s*04)i>)i zLKoWkIWEJ5#wboHD*$n-Szjxq&8VXhAA-{%+-}ww8stSzYyO3J7OVODvVV~OTAmM8 zum52%l53NRHD%%p7SpcN=S(a_h*Q_%99xpHdnV0#2p16u1% z&WD!{w0Oq~KCTfm0c(n_NvF)-Lmh*B%J?{tz|gRo^@UPOp~owoO4(8FHyV8jQy8!K%dY=C;Om#C6pF2IY=z|yu`)NIiCDG{a9$Yv_0QU3nZ__g8qN!&6XpQO zAfIBM#w1E>m@jT5{X9R0Z^ENL&UMKFNANAgSmeZ+HMM5yjEc~HxL16?foL5b%R8~G z(i@MEbx`6)4*mhb`j0n9UEdhzW9MOOn0ek){^E!uWIEHHG2DNiLO)$zPp)&`Q!_;1 z^JDTL+C@JSiAt+Oze_9!0iRW0^m!J*;J!L`MQ2hvMB+yJdlugjS zX9qgSj+=xbiX+po;>lFfo^qD}Blcd%XXx{+dM)kDpcO{~FBlrDbHYWPRTu<1l15^A z5>k-0p;WG|q765tr_8-)f9X)?oT-*WBTfp6c9i~{i!f~Jj9HA=*d;VxQDojNPJNER zKchQC?eK8?t-2_AK_NlpiEtM$Lp17ReJF0E#kH7$J_Sq>iEEL8oHKQ17$bG>yS|d! z6SKa4@_so$sBj2Ht(kjievZ(GkmLqxPA6uU3S)2*?GB-vufIko!4iOz0%o{tjtV$s zY@LIOnvM$i$nKa$R@P)XAi&%@$J^%kqH9+7s{!MH08;m>^_&e*h;|cwKh5ws8z7eg zZ2Eq7&4R-XyJj)h{w>?)R5=FH z4=J-Z5oBrmHEfQU`yPVee$4v?_{4y<*vAOD04D}~MGIma9+Zh1aA#(+=?dF>!iiUa z;%MthDUuTp%nU9^Y;iaWzDo%s{eR@T>sN1qUb&_Z*?wAc-L-MswQ*Vig^RkH!a-hg zR=@^pcNVU?mZJiOQm%Yb0D1pp^Kk*~Ra|!sj>X3XjBI}ZH4GQG!UnD5m{wrxf(v4Q zIV@m#@z|+_WAC0kl?4XqU$uAdo;>EB+ont&BeF$Cg~tgwxuS&{@UqzA(%?s3xhk0m zE=m31wkc!p8GGmbldxSEu^@h)U}v+bV~g&;eazS*NY|mxvOa^&iS4bPlwJMHi&{9c z%ZpOkfykSMy;Jb|A~~$T+@Y;QpRrMz9XeBA2%1&sm~}F}8U_nif(F`G*0iUx^eU`O zAlQ2Xy))Iy3YRD2q}Ub$m&fBhQFCth`p$W=N2{_r*^_a|<2x3pHbtk%gIR)(LWbt}msL z3>nyyH8_4vL@EzHY7_|@@u<)q2)(Ek3g@TTlThk!HS$N-`msKqOe;u^IfI+pe%(+!9Oit^G(G+xa0eCp`@9HVLTQ8u5kqu#6Ft?--}&PZR0-e zs=QRvZzCRXQg72fvzd*9&+#f7FQ_Xx3!5_`_A>U8A0vpE6BN~;p@-&im3vqae~Ygl*ep<@9pZcR-WI5-9pW>X zpAjg?w|`g-)q=h?Qy|5jitqLsBhYvDRD681CeUg-M4LABt^$?tWmslEuH@sWTM0DT zo{BG$Jo!hivSvZl!7CFf!>r$-3^BLQ#1iH*h#SPV#QvE|9hXrwlv>4DI6X^3K zlQtM?N6@_jy?KcZx|pCF1*%d^h`TbGpk4yWr6X1eQwT~HsL=kcO9+ZHAbW;?AZY*N z+#02R8%4PZ`dFYmd#XzbS|U*6<+7-AEu+3)*^!{X2(-VgS$MAUWduDe&^LT>hgJAg zg6`-Tdx(JkJZ^O$8I$xl%_F{koIrI|&uJRmvhF1{ul|Z-Kp>%>O z1=1{t2_S=@zYCOMhpr^ZFHlnp;@0RvP@zD(`AQLL4bG4Rd3~rrAK9TSf_e&+X0KOI zf-V*)eU{mkH27EYN;?)1Epg$Z4iSTvxKIKA?n~UIE$b|Cj}G{iCGJZKI9aqMZpwel zBGz^u?h+6;FL7H%K}kzO>q0||0eIP*EDA(bpmV* zSiK#m)5t0h^@F{?2qv`iNaYhx9MMHY!OQtjQ+~%QFXoa}?AL-X+mHI{a30pGu#JOr zLSiavtG-K#@L!3VRb7ldpKCHlL&V9cuiw@&r;T){!|6a|Dg0h z5)=kIKEgQm#k%R^@vOxN#HBoIw!d$m{(Xvy9AJ+{e6q5@x&rq*R5ot$OyaeqT?n+; z`?Rz+!rAL%lkQRN4HhBqus#6J0sc58uSVGU$IB7I&hcCpc4oFelK~)g$7OH-i5rAt@1zy`g9=fp+sZYd=&*{6Q+IG95Xu7 zrT5C?!4c@w6InoJdKDRnX6RcurGTiQ#DLz$rT=)R43UX_YSUK)vHbUp8e(bs7a0Bm zEqdaIa;Tx1BnW-xdF2t~>)$uFhW#Vv|9ouS+`MLN9qP*^x2zB2togzDnKJub>T66C zbt)2I$uxW5v`SvSTC)hv zH1*FSdg0&yg=$Vcucn$!xSDK_jTq0i`!Z8|)z|}iM-FKP0M;+BHRU1w*Z4Z?mqXa- zz~lMtddKqyM5!~Lmr`I9d%*LY-+$`UUIOII&ue=2C~jk2;RSh=fWUe^Z?J z50Nf)5-@Qsg$t=n_p@jDB znpOhfFguSri<3{_Ly+J0OIz z71bZt4ZZFOtZ?r@ojrj|H@+CbRg!>#1k>m~6n~d?jX{DfO@8Q)JIzgk`$q;P)W=V@ zBMRtm3idC&OOpBFJmt+Ut0)lkSLWV~Ao`E=SN^zv8cqD)9=|}|ITc=IKy`Jjn|v2| zUWaI~+=mn_0YWvIQ30zcG`GIHDaxm%nXyGngSX+448POyi4sJ1;vcP|A*|HqDlQbA ztWt{3QaP*2+|SSh0_G9ubYg0Wo7xAh0k4>BEdBg(58(}iu&9d~kRXC~ zfjQAT|KgqMsiKYPSHB9YE)_MT^d3J{XKqskGVfVruYU?u*bi|eUiVu#O;WaZyrYYavcJ5IPremL#4RN z+&ZFUm%qlvQ4-3e>wQbyI-*7vg^HW8Re$OBUYPWygpHIr%dpmr5^IJ%){{|UslFBN z7bVYY?XkyFY@FO#b{uPWOw}XcSc~m^W$pzOy@ICd(Kw_f(q8THuW&B{ihaM>bO+qi zYXwJF%HBjKUjJlBgGLni!m9q~+|#LP(0(QKOFJR1ft!W#8U_JS@SOD|YYvBj8|?>u zUK+)ypi+R=SbBpmp2zo^dmX|;ov}~A^w$cbz^kbc6x-vM7^FH=m9i(08T^EMz)1e4 zv$&(j|B8D7zUImLPAMIY6+e~gY5IJi`InGg*QGm@`ITksi_Ry2q@0rJ@i4E)gRrT1 zDmKBK%PtES^;83sp{iTr-b{(fi*taHTLl8DVpCx{J*#FNy3ZX<01(-JW~z*Xz?DaS zq!|Gpv(i}~KF?7!J|}R^2fZ)2@4P(U;pWMqi)g$e=!HDrk&+|Hz1t~EE0x^pGFYg_ zfY6ks>&OYpDiwTgUgO-KGIDQ*ZKV~o3-OWrIs7pr90!g;RL-`wPJfDl?#0%P*J_%` zFeiANY{N*`N@r|zIEvsufjv7}LFJJylq%5rAbP@~#^Ag?KMsb4eFrAGaA*MYW5h*p zHvFF}4?{qRC1Ihn8o15{wdCQv%zL5m+)}(>EnQ_LZimD*`be{9L^+y;!)lh}V;?x; zv5=$*C!Dy|iHQPVEt`tcl&o;Si7s)l0<9Q%J|^Udxn&o^d5Qw1(a@yH=rF}aAU)HF z=4TA{BoGpX(dfpPP)Ui)j1!gNSq}Lm0|#w-dcER)5y^2J4@X|XP3ZCM)gOA>>j=(8 zpgEtL1?0sN6|l@!K*Zz^Qvv0}k8vUS!|1oNIz>|wa_TKlaWc&yMDbLXBTKwIV0Z-J zyEHT~5-L>xQ(O^jfZ3Q$6Bo6V;xaz$dWu^?aXsgDp|)W9BR8^-$VT@1*hseLyp13p z3|k{lY*Q^g4P_oxPCf=-W=|j%n*(~U1N~@zY)+xk&=GSpcBWzmaqDJBmrOqo?Kl*j z5^N0LKAZy+Pxme0+6kqs9IXQ*3M>OKzJ{99_#pj!nm#R$9NLLY;ex+AHsg3+W>KOe zTbW<=0oj(6{wK0aaAeZfY-Q>3S?4%t4$b5!HTeONT}Hoeg|`>&3dnO8l1*@YQF>^w zIl3|`jG;95ZImgPhRUH3_V~p(ZhU+^6!0E+6OMfndSd_GXm836v(tFh_neyqZjUd7 zgP!R`M$Bp-deZh!OHl*UT~ur?N>w;LXoIzfBI<}8>h=+CAOZ(+8$x>F4 zO;+47xSh^o3B-1i*ojPA@1iTYMaz}}g?zwMOuMP)<&q`mdu2Fq^)>WI|nf83s*3`62vZbrljDyNMYx~fYP=o`7FD^rV;PEnrd;`a(H%Inzgx8vJim?a4 zWFpNR#jyMuf=JJQKtMEK?uLgAk7YM=R2si;8oz%te*a|r&N6=QHGXe1ey=lr zbBx~%<2S|lO)!3)#xHFTr|*$iL)9c+2GNTKJMn(Zlof;o5>NHH$$@>_=kxqsUe>lwC^*es z++P7ArEaTmWC;Ift$5Yao=&>6h0WC^TVm90a19&;5(X{78zw*wYZWT^j|zv+;w_=u zt**M{UMJZ&aUung$#^sZ>~cjH6N42eKd;JBvWHPbPj*U0P3IDwu<|Q@%fR7eGBm3gPAoVX!mVLMBOIB?VHe(r9C+gPcfS%b zB3c!V#!JD++`0G~nvQx8qS{gXSlO4O1>x6$7WDcqV`71HG7$U2CMV(S7vHE8hUh4Kw zkK;6ffzZ**Jmm08N$$sxOU2$CkH1T6L4eL{J`C_Ow4`Y64Z|NeFhS50tB&1Pq_l@fQBqC)xbz1k+mfSO`*OBB%Vgj6zz0Zgxx}6 zq=HF&i$1s+5C6miZ+i-@g8HBcAD{uo9f%rI8z2obigSkZ9ie1AjIK8h+!87AE+jCx zwa#g~KQs^78pNzG>Ov}?4?sAMl_ag}Gt*GC)s!gJkfP0*gBBWAy7C))IdIrupwE5h z$Xc1GqvXO7FQWR+rVKEL=tyHtJty%Jx+3a~6fs#852laMOrW>Q?Nu{f@{saD$APTz z-M3fLcU!nne@`GTVJ_9_DQ+sUnC`<-4sZ{NGVi>|?mxF4MVrqL4MGoSxKT;-4};u% zLeDM`Nr%W?f3klsNAOAd9z`lfq@jqkPrne6YBR~uZMAYbeuL!1HPMh$$iuz8Lgwr{ zCnKb%o`030i3@cNwWsce^Ny%K^!aN+?dOFWhhjsG1Tj19yrEFD1ZKFW>syA1=1#-m z7s`2hBhJmHKW2u3wX*7u`?*t%NvK;OLV5Qc0P=r9laT+*k7yaY|H~>wVEyqBI2J^= z2fctOb@a!NQeYH&&=k(^_p%3#h5~jx4-5=_wXWvw6X-KkKM$pO)R~CxB7%n>W(7|D zAWx(~+{J06tAi%jAD4$mQq*0f2JlXS!|7=_Jrz>B7wWz~lqFCc6M=Od{J-8th8}-1 zpD{r`QhZ^De&W+m);yYkk^=+6DY_Q^Sd;*P*3-2(rYo1S;`4(?~6Z8o2a**;v)z&aZJJQmwj|;PF@L{?{(G>%OwSx@WTd z{oAWvOjWhH!I-F_=AL6Tv+DJX1-TX$c>}#}AXt}L+3(fGz))|e` zCE9AogVM;}mVQEg=|4LVS-X1Er`4DK&kai->|@lccKL@lEd9dz(qGW9^b_h!{{{7) zMP2pRzrOU(HY|OxcRlqV*|78r>r3CEVd*E-mwu;>y6dlhwDef_CT@H$vi<5EoxxsF z>QCwa*s$~qqouzM=|4T%pzlwpFMX?qeLpQ)dWd6*TgZ9LqM!Qf-!n@6DgCX%2BlvZ zEj^9@l!m3BP+$7*^ag!Dt-kdC-LUk*tSI%T^55C8^b6}tpVqMS6Y5JJ+Sjo9*O&hF zhNTZ?)>Hq<4NJeUzVsOlOFyB$^hftLtp3r`-;4fx+m;^Moao#+*dt2)DgE?@rC(TI z`d$r7KcT+#=k`R_zuxkv)tA1qVd;Zc*HizphNWLvU;2R!OFyB$^vxQUKCQm=8^3Q* z`vtq#Q~!AlOTRE$`mvy&8*J(85#0^yBdT!Am3SZ+(A>y97f)oK@3k z6$5P%uZ8?s*jfTh#JzBianjDq^T@i{IGot;duUa#t}<0Bqid^FMn_SpblQUzWHi6i zg%8jQ7V9ore2MQ~Ag(tgY4&V+HVT?o*Y9-AOk~1~m(%Te)g0(^ikd5sI1w3$_Tj~g z%=Pp|p=P1@$kj8JSunF;8KnC^>Bbq2*8h|(>*uCzD48KI+t$zH$v%wrv&$d120Mmm z|HyPm+3^oYte;;6fc5j`XfmvyJA7AX{ro5*@cMaPz3b;Y5v9)h`FaZE^>ZP*4+dE3 zMYxjm}R(1Gnxo1Qky?z77DHU*(pgSi2_}iPl_mV zy&BFgS2v?MSGd=)P8^3w>FxSLL4nOsnaa}VIJg9Nv6i(&KF~+5M>LS%NBDt#t_W0d zFR6caaca1h@b3yHPs1A}v^zwb7scLGKGIERaYM=Hfg?&e$`kqRLU^IH&la;7m50q@ zb8aFHKtu^C*71I|V_g*`*5*2~S|AoHLP;Hl>Lk-I{JnVd3Qpcwr$VF4fp8Q_0;>4hXgJ^P8nnZ8|0s)r{kO{apM?{5OL$^Y@}yvP2kcWFM*n| z^js%p_OqmXN8-_lP?eqLR0ACj0$kY%?V*%S0a}&a309*rw`2y_jC6XVj8IzS@Ib8` zl(OEo5K1it=MrDZ;A2wSKx}YOY44x|wQC3mAulr$aQCjMv96lTX4SR($JA_YC7Sh#S;oS3v zE#wM&H}^2}0KKhBW_m#;IkqH}$wXU-WI|+0w_KE#F!&S~8+3}Toz3^7$Mqz5Oi(w)*?Fsnp+S|5H%()$VUxEwy+}`vxA2WV z)ZdcO*6&@hWtg*Qj4UF%+)P=_Da&|lhhW@4Oozyp4n=IU!{M275T9}2W+-firE`vx z!GPA0kH9+k2(Z5S!LD#0!46k{W79pLIu=m6p?NL9mdV$!GyxVAK-6j;oANH zGJ(J!pqXUfWiBbU=|gw?Ni~(Ia2tTJ9P@ISd!hO87xTeqKHP6UOfVmAG9NVaAujt^qWDFeY|(fNQ|kP}>@MEH7*Q zA)>Jw??)}`Go{Rh50&&zu>1pBQ?7ixi0L2T!7N@zUoV-F5aAy%fyCE9;uH9W$RjQY z7Qsb^e*l@S)xZ)il;I!X`if)*vuB$*#6N(>A^U^9LH!T^0O~jx&MJNv|A1Si_u{UL zbPkBe7cA!h7d2H~=YY;%h;snNCFV=fsPJZS=UfMgLYxEADGH`$sxnW_WO%333TRKu z5;xh|i6N&G(-8N7#$Sqiz;#H8Jg>(OM1yp454aJ}DxCd56U1drjw`Jc0U zz)yH-R0L6g%g_r5dVO3kcI~poriF$uvJkuKD9$b!g`Pn z``ju-B>#YJTl(^Yq_g zDyqZwW-9bH?#6g@7#`pSzz-OL3s3@-@-g?j#0ijNDzRQvW*xor{FI3&I!AdMbR@}8g$@d!V`L}c6f=}f z90j=5b3i(VqX6ZEd?}|K|3s2~bubh+2Le z%4al@J;&rgT}RYFN$#of6FBfG`m81Hf3EQl$p3x(1IQG5<140fz#@FwbPkw~Z<@>4 zcTsD{+_1Q-rH#`z}rPZ4gY}>WM=pe@Kh1#-lq^*5%ud+ThOZ6lDy67ouKho!*pJXv@q2d z;4@%~Yf(61if3A)0iOj(W1D;kIg1^5kSs!88YR;?l)f*a4V^sZY@_nQ!yozSn=gUL zh-(W9t?3liN13KQPi1Pc1!aQ!z}9h;q`+M$z5}n~m=Wc?(7;+2eefU27+tU5hm1o- z9HYiDpb=t_V?ZQ>#PTQ7d*For^;JeTRK9e|rVCr!d0LcDN z4F~%_4iv3r|9=7zSby<3svh0`KN(T#=r3-jK-OQRqZ@1V7yUUuLw}L}uj((7K+?%H z=E<0sT33I;jy8Ti2QCfkb;Kn1JF!G=Aq9za{*O zkwq+ZH2uk^KiTvreGx8EbNDKIXSD{G-cps%yBYdNM>Z4aTsKlh#iir{QdL97K>x#|v)8+M#>(J|dZXWD6JBtcN zr`KvksY9=eDKHAXK4UaD_M4&Q{@wICn~36nAHBi@?N1;V+GR-_-{$i(i0EDk$#WMw zowaE?1AWs_n(hw&;9sQakLXO;Xf!=|41n4+y>q)k(|w|#QD}PH1Z2WA{aj;%rk_O? zpy}qwKxn#uyp5)B=p;0~A&l$8&a?dM>!auVQ#JG)J3fM*djJ4EAE3K^{9V5Os17~1 zK?I(E8(}<0r{|+5qtNqC3XDR}RS2i1{?E|!TpK;7en=jvl1Ty!M?<4bt z)W?KRq&_8lBjJW*C1EgZB{AcwbJMX4t#tL3oUXo!dgO^;A?gzw(CN{LdfIIOY7=$S zPYt3T9|es<)PG{Zh9>Ij7=x&*K4GHnfeeJG?`8?Y5HXVUhc6SNKK?TiHSJHTkDkjx zMdtjhj*Xz_$pApl?Wt=1E-gN+L(kVT{b7EtU!LfUD0SxNHWV0zp3fPr{GXxc{{`|y zW~4mP1M);xU3uc|^$nkU--j>sFV4OB$Sf+Eetb(5GQEAPL8g^a&?scO{|;orb8oWK zAk&MH1?Jv)$Y5n>3{1U>1qX{vx4RAb_cYJFmU7uHPt=@;@(pT8#F_-*_l?^lh_wm; zh;{Nh`sp&d8pPV#zW>G__YyY`==B-Q8PVt8nTS${UMEr@)2jpd1hbJ5OX z`Kk(CQffQ(53=elBN2*u(Pm0M^07g1`B6})MJPeCA;6|WfW4olPf&wPe*^a?@hQFk zgDgOB7b629xS@^+X7AF+T_Oax^Msw?#@WwHFxOk@{j!xt~mW%cKUk?8SQ#Zt?rf-&KBvRS{+zo4vRn z(;Iwc<0itDoSGhsPx7~i2vg)%1BPZn);=(eQFKJgqz=i{`_gR~ejI1auZEgDh&H0N zR0&lpay^w9eLa7RL){4KB+#&4 zC=!2*rd2sKUJ+=`6J{~^TYPBzPZPKpKl9ERDj`FBY~JSr?X^QRiRdc@+H67R(YN^6 zyq5(ky3#BL87^1yv3cbJ-DZb+QHFO5bfHy3SjQYI`GETC1)6Mq3q9vpiM=_OuC{3UO3*y#L z32G@&FAL&&X#^dmg6HmC4s)TLtcXB z3UuK-GZla9T7o7C^rn@HOE`p}>jZkvg18Oy3A$RKG7I8V*AaA~K$9(q3Hy4290J{B zL7eIag7%E#*0?0oYqf}RrS47qUgsN`=ABj|pC z_F5398cxtH0=>|~R*ahn$`$A>D-{>xW`a@$y4#*=1VJqXnr%-tlAs^Qa+NP#YnG5R zyoI3c0wvosyp^C80`;*&;|cm3pnv}nm~XwuMx1==AVUGVgT)EMh!gFQtru2+nMHF& zyy$uWwdKb*(IV`M=!$}Zty6+X`7vu4GNC@!C;w!~kN0q+CVq3B$*&WS8~i$SKCN0{ ziG>dbxgUCZ(ov~&1m^ik=nrhOdGsJfHTOG3thejE-(f9iOYV0lp!*%@M&uYT-_&(d zOIr^gsNdy&2g)`!qax?{Dn*%Jp*q(oWrZZI@qNxm(Hr&O@8CuOabH%<`^1=kpZguQ zfLf^~qulR6w^i007tZ%P&~244Kziu50>0m24}{TQzu#d9XpPSQq5Gl9dft%x9X9;z z{Wsk2P)xbPsGA6-6wWcxN>96{cChYu*cwipv79ROvt00S4D%}tX2t~%i4OHYalu0; z-rx6|?swpu95$TU)%_#TIoZ=n@`@g9fA2gMloIIQ6(IS-lE&@&;W_+sV!6cN-ta z7MWjP?+#yP%96zBSCW*k`$w>t*>#Z#vFuMGuU;rnq6M)aOoE+0RG_nO*iwNF<9v33 z4!&zb{4El%^@{~sZ%;)FHa%9LMHa;0qV<&?yqQb*v;}bq;cey6HwiS;g7{ms9Mazs zXsiWsDq0WgPYdL+ApRCSh#dMu0(G+>PK8|r4*hn47TfEEZ4wTBpg?8z=2Zx~T%b%l zL>gv2L7?__D1o5kH*uBU_#ayvo=?!10?oG|E@3NzDg?Us9a}2C3h%!Ky3L*{ky1S> zkZM8P8f^%gEKs@y@weI%R3K2S{aY6hlqJy5ubai-RP6}5NTBa5h`)6qK`{b#>ttJ6 zwI@g)&aJV?o~i>u8wGmWg7{l}#ouCq+-uBYFl}5+ss1cb9__#4#UDe-1kDg=M}-ag z13|Y5G{~wl7v4?KH3GG=ioqFPN>FEkPQ7Mk$R+GZkV~LlcIYyKjt%1~S6dK&E0v%x z1gf+bo?O`U4+MJ3O2ywIS2g_=fgZFV&ag8p+-2&7u6IKwUk-5}5v zcBm^snF8%yV#{y>K^+A8$PP^;sF6UsUbUsVi=cfsa%)ss5Eo+-K_3b9x&?9J?z1)5={ z;&0tg(A@&vVL_bg0fMdv^zT(xo0|5DGB-#n`k@uf<h5XnwM(Z?g5)-($ZdR0645;J&UNc#dS_$iX3Ko#k6m8TK6c1jmmKygbK0 zBozlr;c!_OU1&Un{6)xZMD^W}>>Hd~o_l#!ZWr<$>B=ch-;qy1LG0v55_p4*Qp*>j z{Ik|jpW40rvieEIvPo7{0TWezwAi4^&QVaqD3xzmH-^I~Rgi~FxaN<3Yfz;RSwMq) zy01x<>E9VtNfDFuoH(JtWnWORVXu?>O*RwN!4O-71x296(#TeQz6 zeKKblvG}+72bLZfj$2NX&09_jAk3-$TV0;O9Z-UOD@w3$jZ02(eRaG?>A%5t$tlk7 zLfcO3RCCFx$3HB-)ikrhoeLylxrGgBbJGz-N-&&W*5Bpv z7bbgf`1jm>q@GJVq?PVH?CFKQd~~rLF7Qj%a7s9COr@nhE<*J9P8k;=Vh>4E&G#|d z^DGE`C61oLc9(5`M<;ehzhmQ&Qq~;xquW&TiG1-TDE)p|kI#;2-ea5+T8F2Z&3mW;<9=9#dwR$Pu>kOB z-VnRqx*--(V%s8V+*QbslE=0s4I-%gXV=vBI7AYyeU7e_Pwa^fMBf#kj~il1u}*E$ z@A@WPd*JEQUE}$x*KP4H&nchS&#k@J zW#)WOm!Ga19!ll&tSk5PeXnZDj@Dl;cV{rNC zw3&na1>Fzh3fn>cyzVDG*no!XqMfJI|A)3S0gtLW8~;o)fdm3~kVK-Q1RFFFtVBTx zn;A&p4$MGQR8-nx#gw)bkW2uVO2Q;1({Wnb`gPN`+Re6hv7i0e>XKm#pt7nUxBv>w zFal8v1Qq80d(XMEWTEwIzdz4I=H7G9e%^E5{XL~Bb2!|uqrb6#1L4swbO*U$)W6Y5 z!7j>h^QUvsYq3SZi~p>B;VA#v%!L)MV7GC!^=WKUx<4y*ou~2GFc}Z!Yx6-27n*_X zF=CCc?1s>6+VFVHQM!}PmU4A1_kA8T`KxSsZ{W)Zr)^G8aLMt zd|tqr=jCp$sU7$>%Qnve#Ox+S`35I0wh@6rJ_BPz7_A`tjhRFhZLie@Os*434-!yHk6Sp^{ zV=m4>vg8&SE1Y~PYT|D16`mryv7*ZEYC=`fWZG3q1}PbmlF?*lsFX}nG9@Lm$;?zK z4pJPF;%G7*DkY1QEJ?{~GP6`lH&VJuO1CDnn@Z_UN_R==-eiJ(X+4{iY)Q#(GIf7) zNXe0uoF+3z<>^664@v3KWcE-gJxS>)DLtFao+>4mlw3*4Z8CFJN-t7+NlLFKvzJQg zO-gS`>D^@ZRw)K4hNKuxrlC@tq%b=mye1QHpoe`(=_4t9n#?{b53luIS$(kAm#m2w#=mr2THP3C1PWdJDyBxOL8IUs72c=;iBD?mGbqr-@E z$#0o6u3*1N{vwV94Vd!B7JcdyIfUi#9gH?WowpprIGwMbo<x_F5mCJ zc9ysoAF_4C$F?ztkm@hWUgF;DNZqTN(#iVL2u(p13I$bcQBdFhJ>(AvZKy>hVX`!Q zf@FmFDU8h8BV{|-gQeNu%z)Yyd$2<2?YyyR^!9imL$UwU!K!d{E&Yok31xV0XOG_#;pAr^2l#) z?;wxN{g^wn0(%f^o5AI#EJV;>B|o7BTo*yKd3t_(GgmYqi)S&0^3Jzj_a4v!$^x;! zNzv&AFDRRv-9LZ`5Smom*=$O_D$AAC$=6CMi~J$^I#FI9OTH>AhewjH%6#FQ$ye!Q zWNz|R*&=+2S7Bibdql$6d72Em~CcI0wwct8F2x%rWDi-ogR@T$MwHSmR zU3|3|gkozcSkB?sS)gAK`6^pVSy9fW3K)bpu1zoq#%}c`urA5AvQY`P8Cht}n;FSH zBRY+DA`M$R?H_dw`LP`iim_4tB?zJ!Q=vV`8)0-v-IXF{fAnilh7m`_u3B|OKp;t)UPPT z_c6#TV@1}fU7R+e2s`u`OD&fT?Bj!I#88BZdP>pviHpv;#ofB-{DeF3O6sC>h{R(* z6)JxYr>wB0(Dh6&s6Hwagtu`vcbtzA3M*-XouKczbUbDS0LZ4gV#F{!LTBU6knHC~rn)O-cww|~&?e)A6WeCq!4 zdn|fBb$_`8EYQPB-Cqt&u>BhMDST3!AC;>NEWMXU5%{tb{LNgtu%8`@Il?C=jE1|& zlt~yBExxB_l63OIw5-4Y%|%OShTfaG_ELnJ?VE;NH3Se&zl-X5eE! z_VJW%tYr7BuDRED|CeXo>vNZeW7jHzI}IL=!4H&!)8Pk(IL0;2DTE&=hmG6g4gi;2 z_9*;-1Af38SnEE$(~HCG>3vCl5s;YEA5s)1U=x~WF1~1XdP-Xb^TYXz3Ba-TCIIfz za~}IicX(qjb2acK|FYesueeK(o8b+G?$Qlj`w4e=gVS4j)?+`$Q@+=Z{lLaPZZ5<_E1 zFm|_j11BrFkhW-*kTAU9UvJ;w9{85x2ZpFDK&z8HzQZ3?8qdMrpKuR+NAu2xummbp zb@N9R#&c~5Ry-xGuw&kmlgtyt$Dbj?NX{GIx-^0ePLZ>@{oiIxn4b`no{;DY5HO0M}i9o^8F>82^0Px zeXma=#wLiDVerx~{ZM|cuKF*Cu}=OVmy<`)V_yezo`)X8nXi-l^Qa_tp&#B!dXgUd zkM+alNtqw}7->vL`}|e_Mae(Kel6a65-+37;P~v0l6U3kCJt|0j~e$~E~Lq&LZqpC zXM{3&$JYzW#Pqkc#`BFw6?Gz^U=lWZpW;-P6snhZ;iUWtWjYY+P$A#Eid4?Cb`BoS zpIfBKye__W;o$M(Yp6s{!pPQ_Ez;zbpDEI0EET+mRUtw=vviAT=f=3^UZ#ZMmw(x2=?5mwgx7*L z&baMcsTPF!fob2uQ=$sQV^%E)uM$=0QttXwg6le!gbdBJI#3ZfoGiV=DjhzIEKM~# z*jF^8Q|bDR)Omqb-W5Is-d2MUIh`JXE9Wh%lq&~x$8Blhd}_3cFh9_<&>W2Fv`{Ck z7rcZALQzPOqh-~`+_lxl%;pb``OOen{DCq-QfUs{h8Q__1R+4SR~x<^f)jV9;iKxx z#+|;aT%kMT6$5t(irne8f9xK(#eI73)KLHLy8?SBjF?sMN$u{~tqPwY!?(NC?TkLe zth+y;iN;eduHi)BcFMG$GY4*^nO+-qLY>jn4yv!c)?;tspme%H#nG<|9hyQ?9{Zk( z!0b=WQF90#(fA!OV6=ok#){EHxw&&O#Na%Jv%6KQSBZ5;?B&LaxLE@HRRm6iPZXdB z$ma5g_1>I_Co~1TytyfFC_)uGcS;Clc=~N((XA+NdMGi4GH+aKn}`D%6-h+^k=*va+lygFT5h9$?BxVD$=a%GNuhyR#)4>oV$i| zUh}e_kP9u=1WD+?%Z3gAaQdgTSkDP!P+F{Zye!h{^XjhFYhLz!?u1eXcJ|D%kS$8wJT}tj3eW7b!?H^k^=wsUPYiatJ4*c5dUGQsp!ms^` z3KhSWm$K--EWxjN0+@9F{t+3>S z@xW(+M$FRFN|TeqIBR2ruxCB4^f#V?k?~E#a>q6KgkN*ny=Cy|pi>cdz&_+!`kT|+ zvE;7v+TT?g%st$OS!ZU>kU(hGeUrxd?6*yrH}kXDZ=1rroif3ACQOO_1RN0v?W}1R zhAzRpnWZO_%-dGW1l%g+*38@aN+ye)>`?4HEp^VH%BYyPQ%UCSoOIel-%F2s;4A~D zyaSIb&P+3J9?iU6shBrj6n-)78$1J#DQ3MZ{*6(12c9?||Hd`2t?-PVl9Nmo)o5J~ zmwF-d5%X;rXx8em#m31(&ub+c3q6{JR&3mtkjsk(=6YAtb*?7Ss*D$<%|bLdHT<6- zFXKgNvk(nV4gV*|%XlfW5DiWZ|0l@Hcv0FcM1xbq{|SyLo-&wsms|GT5#;;17XPO+ zlgAazbOpLa1qTXdFBdMbP|$=D%0$1<;iF_)eF7=t?k7p~VvWH7_iLfnfuz#AaFJCKBMRpBwLe3UmT8R@=e8o0C#u=mHMw1TGiRg8%FZUv5IyRq!q5 zF?m8;%(F!MxlF%6+e!}c@z=tWT4kKO4`T=tbBgcre7L z)GRAJ_y9>39?VwmP2FBd;KASg6FfMd^%6Wdj^Y{*`crtYzH2=AehX+T4gQpz5;KJ1 zP^H)>V1+OobZg;5N!Q{_Nl#iQyp*&~FlOP=B-rr3q}qSx-}HDRu$7QsJ}=17nD=k` zH?;~bEJ(wJ*`Em)w)byBe#sHpi%_h-VucVB1`Yk`+qk-idfDn~Bi_JE?$f*6T#s$} zHF06Qu#5%h*e!b~j*9EiV_?$Y38A=B(#-vG+yU*DL({9?z>$*HSs->AAL{){mRF~>3%}g(86{CXo#Zp2_4>ku1^{SRSB=<8X-?qnM@r$Q~=PNV&oiXPy;*AT7_7OjqknoHGbC z-}4<3ZtXp<{eAbqH(7u|HrwLfa7*g4JSEWF4^84JK}LGWTXHsCpjoU0nn&EHce}$! zSgI4^$AsPi(nqfF6UnBaLz}C~ceRK%FA;Q{DSr(9Ea@qKx<{`S;pTE^Bav+*%Isx} zZ>%WR`fABc7WBy-P#Jr|bVeUept1=|Q>g5Z{~VPCUWN-e%-ps^W!`$x&&<+z5*bLb z>=~nBq-tOml8MkaTDhn-HYq`mb%oCqO%CtA-y!&ni`?036!1DhV4a`lKPVAD!$HnGLp(S^9bMe}KGveRm*T@za$*^{5ZYP~O%rxZ8e4!_}##MxjH z67&hCEtvIJoYF+3ed12vyrvK*_VX7t|;C_C9Ir`tAM%!8N?4sTbfbG2|BExJIG*3aR4eUh2#*}NQBPo~ zM1OmNkHkBI?Bo(#o}~vOH&Z$l&Gg@sG!QCLLF<^^?V_9dziW9bixy2 z^CJ~az>9=omOf7k%o*Iqai~YbA-lwZ_Ism5ZkO(Jizre{sOH0wJC}(P;E$>{xrJni z^z_G6EyH?3ni{2V46l7!mP;x}-WeHBq~X~2)IcOj&G0ik2n0wAGI`DN8yd6eL4?Hq zKc@?ceb>dVmuZy}+5ERez}zIDi~N@qscKiGHY@VZ?tdv)PF6IX5l9QO`IUb_+|Ubj8b0?X1(%b9@`DO`&1rCo1(c2F069ihCpA%|l_DZHQ$Y&% zTQ4(Z#G`sW|lB@j>itoHvji*FE5$wZ(mqp@t$rI+;6qvMDtTv@$r4BEf|KNO`W*UVGa4&cH)(zk zSwuEVE*VASfdKG?biB~!yH-Lu!{CS%lE~vSIJf;3cgf2#h3d`!sl9e~Y)R?_P1XNi zcXf$_v}Pw&X29mVKw6ZN5f1tqYy}8 zhFNJFa}5w|Gz^yaRpPA2AUpxApAP~mchy$eBFjHz(bY(dhH7fTjaM`UDr|cK6kZdo zf>E_!%~TLspp=-7uYiY3iYQPnXo(QNh^9P@dOHniWx9nIjE21o!wk+Sn&}R-VWQza z{f@h&S?22r@?uX};x>M@Wxl(N7f*iR&{O;6v<;ebHeLKy; zVwrFMn0jM3Y54@Bai;MDX4xBtzesoosqcrXzR@M7T)%QJFZ6A6jwf`7-8FJ_Z%^P2 zA9o->t|y^nuNkmrPr>n(W3O^UH1o zxM!z2cPdi%ErEP}L^6UONGZUzmEYv4$g)a}Zu`sbl2@eP@&bM*5pOT$i#VaS8r=`y3y$v9w2jCez{(R4Gp(Hi+nj z5F5!(tKPzrj}WAk#|Ub_A33%q4VYU`tqV4y4O(QZTZ^S9e*5{+8Mr8k7$ z-*Rz|K(cAyWtMCg)TZ7-`Rl$}WsAPs7LTLUtuW5H>e^mhGKFW4an@CL=0)SXf2S1h z(~M7D{)63J;e*{={sT8w=In_6hA&(zBwJN5lG-=EY0|Q)+uAd+yIlVL1JwNo$%SsL zV_$bHicy|)P{2g}LfY~heaCu9uTyT9YS<;*B-kbs#Tis9sDjD<$3s;%k5Tb42tE?+ z!LaD8;R+w1)BEZ4CRccWH=ZhTnt`Ck7pP*4&DMw0=?PhTZE85CjwTme${Tx*@7cT= zrN_uQ@9+aJ|=~*}WnirS!jD7`xG#c-gL*=1s;x;32HyL<5 z_hR&R$=YFPX4xL2VWHStXea<|W*@7||bCc%&XmI8NtYy10sUX4ZMTwX=7#N8k>C}I>#3&ldE6)Q@c z6_5^~_dTE*Li-#jTxYf{e0u_P;k13-!#qV z0J*PA(z;N7zD762hLs&V}%B;xwA;?n_zxRNpQf=+x ztEgXPL#G+VUzAHFLO@5R{@zllPN51~?Z+3bQawqdvC;4b!}OQmP__QDPrh9KA~0xs zVJ3efM}JL19|pu-9TT!+=qV#tK9f+$RzsO2xtwY)cZ0(@9eHZzFk1{`uXV9oI(

A7?%;S%Emx%KWv%qx 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�hL+=bk z#0mS;@I!w>YKh&XcS4K`rm%v*rn*QDXTpa_h#aBI34S|9{_~jdY>b37CU}t$k}?B{ z%oIX^^kpQ*%`);Cr{8rkD%mz2mAGZD9OmjCBiD<})hN$Xvm-egQIXf>$ME_GuX#KXYd_^T?{^F@G*mJ47M;>&!C#YN(Rdqyw2cd z1`8QH$KYuOPcWFx;6VoWGpJxt%3vCU$qa5|Fpj~E3~pd>9RqsD^??koVBlfkX3(3# z#SFSJ$Yju&!C4I2Gibx$bOy~BG+~g$AfCZ7xUThs41Q<{iF?f{0ECxOX_cEBlU^;^-3??$Tl|dncQ4EGN zxSGKr2K^cIWsu9j$$%e0)-Pg^#h?p=vl*Pppe=(I3{GXxltD6s1O`F)fAvEQ{>z|- zL4d(t274HM$zUgg4;j4AU?YQd3|2E(!C(o4R~fv>;NJ}9GkB80V+WPkXDy__a^gsWHQyt*0N6PSIG&B9g-bq7;g=YW_u|6) z4>+)_HQmlkd!m4YxFmir3OHdrfJ@=~W^r`1|E-8WACB*$9(ybt|K(=H?+wS#n1J}? zaC{B>FxH4iYtHx*Xr8{Y(|#yM+IdLR_uvhEy%T@E1<$Vj6atCc8^pB{Q&u4lfYA*+ z%S!ZcfdiY;6cE^s}uUl_YUE(^?LfiuGe7Sl?Y61zZi7PyuLMDP=Q zy7~_cHZ%ANf$Y~8r1=HRxR@#H7_64beyXR<)WxaHaFsE9(Vcl=5;|UE6p2prGwmbR zd9$n&!(2;MzlOlUu}ckMsi(sQy0fDXus})}cn^DcyNsL0z^&wn(FQOYmpIm{#!mZw zBGS4TX_2<)7N#^qiayJj9MRRj$PB;6PJ4i9AInLFo^K@+y^FXA92>R1 ztmC2B^`FPIlGtg@n07VW`o)}f9L~3CXZA6Q7_w*u4U|kPr29BP+QqK+ZSqS4R(m(+ z$~0LwIyZx+nTEJNmcjK5hB26cK=$=k8f)(m*oVPj25&LA5J8Mdm46#LG22KBS$u_3 zM1IPG)6GP7?yg%6A-LKKyovLwzzVsMVy!pPUx|xuVl;ai*Ol#A(O-$3YjF{f zJAgF3#K=Gy)|yoKCLEu}_=n6?U;rc8YY|uPOK`-M1TwjJ0}aG^0P1a6@ceLXt7tNp z6F2~iX8kBGsFRdkhe;*mzmYkbOB0A|KO@cii;7R2XXrXCLs_~TN4$${$4^pzOIB@d zB1Xt|LXxa`)(~<4Ck+Jh%<~kv<9ib#KQP|{JF5CN0~n3hN)E-6*l7h5fb-+%qJFN? z&*;MEGs9$N=!E@f{TGhaj|_NOn!cOAzF@$+Zh&HRaVOj6K?(h17})w^X5DSjBs%N6 z?_ z&0(jX^4n`#3HzZe-0Cdsd6K1y!l0LLM9~Dc^e?vgXt>fxnDQfmg$&LCdrCxZ$DTK< z>BM5qByWgj$%WeIjeCjYMojJ!uJBAb%YS2a%_ZENAr-U)aPkIbGl#B8RPw#W;JD!u z1(e~ENqY#}ow~;al3Rs6(cKDZLW8EG6>^wNa;g<_HF?}dtnM;~IePTwjKk>d;y^n% zME^nKF}QCcbFE;m{;{hWzzlPYG%~@S8_=$ojDAY&0+~0$2Ye%Ioldza+$1bc# zT+flk%>f+^_X?RL!9beTK2wOyPcZXW=rozh%zQTdVa!}l2U-xn5ojQgW-T><9IDE8 zeFod>50aisIZT_3=_Na0zW9EmeNREPak3ondO?i85s#+bQ)AJ_cScRoX)|sHS{q}h zm5jmAy$n_s2$MJ87>%0#MZ{XfE^+~@yWL0&QRZbV6-b#?EVv6?tAEbmV+Pv{CXPny z$D2@37V~dlt{0759Do8Uh0~*2c!~By17^qJyjXnwFLJ{kRt52a^&f-53v@H!dcWd;iw zJSQ{yITmM+Le{1R28PY_J=HcoQ5GJrGIsk%2|@K`tRA1N#X8^2CY3=l`%_Js+>6P4 zH49`Bw?`Rzd5KXVx)&~TL?w&-ME%iHR*SZF-eipW1}4VEE`2I3ufEK%F}8~P=0*@n z=uy5mO+G};tFA{Wd`OG&@YLo8YCQbT$xkJZN$bYabELSIc;RW|~c^ z?+)i2&y;RR3EZi_7Mpjrj0GmmSa?>r+(j&RRK`uI^qNG+#mv*95{0lD1A3ZKG`h7n#-O!BvCBQqG<@|^9OC^P;Y9VBC2x^`Np0^wARM&^ye$g5$)8iKuk7EIUrQuM!E)@}HIRyYWNCG)dR)osfu|&kkr` zd(G^knKRa8+XA_0b!_OqGu--C+$ zUCR%(58MP*w*WVz(YUHsqS2c~quQAwtFo-&r31kc;@!HE5tZ<0qaF^WX|O@8LY(MK0g?0$1npLvwwvl%iwG(#w+9UzQx-6Zc&I#C*65 zj$Pc6ihKWX>X=kOoX5$gHWN1p5`v2ZOKu9j%bN;kA?oreW!1;Z4xX_b=BZ8TQ;mzl z$_`?uhWuGkrId4CmDQf6RJ?;9xYIBx-*>m&Q-;%@<-GL_*BWj^&NyxguzLRGc@O4! zYxD<@jALZ1h<7crHJ%tHe=4atElALXOxqCO0S|9ZlD8i|5;G8Mi%A){5sY28+z94D z(;nXtJMLyg(-VOVrv{tUe*9j1zg{%2l;19s*dDK-YttON8WKA;CT6DWCe(s2+@ckSs$w29{_2hDmjOgvc{0}s&}(`;B$2YHflh_Gn}}qFW~}DS#7YmiyIdrX2!Wn ztN-os;taxiSLwmMp0aI#9NatcQ`Ngw^{&;9K3a=Sn(e5xu~Lo?C*pL%!4#!pF@LQX zRWfnnnDND<)C=(e;v}`(gmDuls>vIbiieP#wMoAZHmFH9(#CcwX(Q-QI?N7nwC^w|!?Je8qhthcV#Z_p5)#KyLH^>1qwPzKyTi zuUwrtbG?ddZq6KpixP)y+OLeL-mloxrU1BKxo$1u8}Zz}U+J=TeNGZS$@yz#zvRkW z8aXR(Xxty@$2hyvJ&TdOQKa%W9PJYI|&s^!QHk_^z;HIKVSO zGDz9MMjVrgx001h8X3j!L2*fr4LRgLFwi7>o_Cr_1;O_fBSd>w)Zj{U{wl+wt~lA_ z>lIAfc;#N3CwN7zQgMk$Szm(*7)*N&V7(I{QG;KK7XI}3KO)D!`Y1YaigF)bTgKLA z+U>unHg#0W{c7Cy;2vdJ(u`lnU60XRTF{{Ew;RSLZ&u1Lz~CDRqs)XtkuWAnCKOIG z6UK>zn_<9;5`|OD1f!}+Sb2+ti8nIA*`TZj3E;C=zytc5F!0nB#S^a|KdI>YiQq-` zE%6JSsa{wRuM(MqGy*YY@-byRm@>twS)1@o%TscGo!Cb2g_)AaoA5A)LU5(*Y=XU; z)B~TX8`c^V2>jeNRfTa~oTV%+w#PY3*JJu@Q-f=rrN_kd;dA0=LK1QYp}e;IVO+WD z-R@bwV8PXIF8*!kPIb+oS3J+Y@!gdhJa3hZnN&39)(Ml;)z@P(jk)pmak<_tuCi|% zqGWE?A8Og2+T#4MzQ~VT>#444(%08KGe2var+RI=nzd7nJEm4|u&Y@IJaLEcD=jZ> zJ#wXbvTD@o_33$8J3Uz+LSQF(dTgDz%2jqaVPfOUe0UiIWU&PjbF;pq=)f%B6qncI zGu1oSp@M5Cwe0IpxjBF>x zi&~?)GjIBktB+3GReu{#p1<3Umj>GMd*pqcRMOhxPx)H)^-#U*^SqmbY1{kn6}tK! zN;VuDC$CV_%|daC`Ib$N2BXy;?&^IQ$;vW$$+e%2COc{Tk_4;i|F~6K)xI{e?*oGzkzioZ3s!I-#RXXd$7mW9qIL1%*VYGoh?z zBIU(hhbR<(Q2n!o@}aHrQ@3{LM1sTkqQS%P8^Ew@!M8%hm9Dc;I}RJn$3t0~_`$t< zZEKnXzhK(REB4xOv#C;E1>pp{gE?@GH!mV(870*Qr4p|{3_E8=cHyLP*DK}squ`9} zi8tPGy;AY}L5fiW4b{7gm^8Zv-z!cgh63@4=iYh~gc-0;Qp;+l3cb3TrHtI)jYjS- z5O*od^1im?l4|$Y&8m0XlQ&``!4`Zi&K#LQLRQslah3g&ygA9HPD|l^W07=7xXen2 z8!3uS8Z2giGBzsfHx5?Lt5)tWhSWfOtda&;RZzf2Qowq@Q(*`)J8ju#E8B_Zp?lkr z7IBvLI|#g&;wEk5I&IjLo1BHKhkpVRhA>#H8xdgSX<|A0%zS3rHP-y;$ky^0IMB6<6s|(4`pa zvX4LIXXG#mlJ9dk^1KU#{SS+{B`6SIX`Gl5BrtCIGucb?wrGdJOmOh>K)hHo2%p)( zr8>A-2bXs8CLSm66K5s3C|q3iY{zfos^?m5k)PLvzvBdh9VM5}MVxPgI9Z!Y9vR9P zu66@Ez5rLqA*o?Rd?6%=Uu>rcljmW)qbMiO-Tma`DT9%)0eR5-e<6tC$(l}9p4>q) z8a&B2#Fi$y!WEupR!FO31Mh6M1@fY5yP>_cwu<`V zoeBC%Obv82LB+k>NyNv_*FeFJ#aIt|iyb4qAP%_It$GJJ)W86~+ad_!?UzC6up79E z1&J3gRrO2KPsgQo9`Bd91;0}O*Megu=+t&L1plHzR5j8&%rQF8`>o6S4o>MgI~KPj z_3?ILVF5lFFx2gxUy2IF%m}@tLyS2@91u6q%p;l@YP=VRyqIIV@!&vx$LMUwPk3N~ zK`7U2H-zTVu3sT1aOpix)8R_&*O4vuO^F>R?oq$Q{$n2Dk zqwj|N{)*Bb2xh2c4uKe!s-kKv`oJYgdhLE3vdnX|07v2FFrk$&vVe5)_Ul4G8)R#P zc!9TH3v#KG#ZX%3eeB{TbPy5e&FN~%^DS~{czS~QSWYb9ud+L_oM`0n-3gsG^)jv} z^0A)qille3p7JJ^;R>nLUI#)itEjjBJ<_zi)!8IOdqNZZJ?1ThYVgF*EVf_TsPi7pS5Ezjow z48ekL1gNv0uW%OtQm4?m>NHECL#SDj6O11#|05Cki4yonS_Rw80#G&~G5bv`@`s7l z6QKe?2~!!X?a_`NVp6C+%w3-~#Ro9F?}Ha%9L+XvHa%6$EW8en*HaNTmpq6`2Kko(f!M`WdL+IWH(Zlga2i3A z9MJ~fM>VoUXm3N+z`KIRw4O}xqqOm9wwdCbCtt(I%(No|BoW?{T$<>j1}|vtguDI$FFV+=q$e6oT=S;zSs4An9oyAHkr2s@*^X^|p0-U{zwMh<4pff< z7!17tYh$MXGOs_ee|O`^Z=n&@ zmhi|gY;TxANdQ3}z^RHS^2##MfEX#TgGlywdsh_sLF+h;j#bqw73T9t;QH+lXh#5M zKtpGuEzmraS_>5sNDQE@bz)t9Ok4VLAH;TPy^2{)cy&E?R)jxvBk=?aW2)i{9K=fs zEaI34Rh>SI;(MsF)Rny6l?*psC)iLas=ov_RjpQ3UJKXgtxiZ$ZNZTvU^7@tm`O!R zuF|dWSK*BkDDIZ=?#g0E3w)17^>cUSjvpzgM?2DSYexnt2r&=Zswv{uM9#74n4)Yq z&r@~;dYLXrS_xRTr{gCXbUF!0Un)30McOVl%*R4#dvY9R@HpsyH-3tl4WnWh2<^*( zQGv0*4|KU)I81$IrRXf61p-$wnVYEoNya?(!J}ba5cTxQ^lA431C!0>qNx;BXF<-fZPIMxZ z1g=b_0LF5MUvR0_KE_PW^LJc(Q(sIJD}E&X)aSD?D7fuGey=4Tl_bRVL6Gh)uPHt? za80;BSycd)cu7nnnEQc);RB|@*n=MaSzuB@+>jz8%-m&I> z1XwSftY;Hlj92Xa>=cKFT#=S5*uNn3%_MRWZ3uX<%8oUlV4@YF`VDIW#$`2sGY3gq z#ix?{TXY+^IHW7u4 z*p@D2GD=b6*6^8{w+(B91ULt=7{|%IW{To;M=A%i97QMP2L!G1L*9n`XE^j@pJOM+>QdO}wQ`_+~-fdHw2012iYxCEdX z?@;Vo_F^~!g#eK)OpGZ_i1AQ9!5^hSO9%&wiz4Q=-)#WPhY5MOx+`&^qUesA0Nk54Zstto=u5rvN^L zA@oza_Sg@AUn+B^qh4(^b9UD5H1$~Ej8Nu-&w_gKGBanqb|cP!g_!dGp195d;`W|f zsk^jGL=9S3@rcr2l_>1-{z2`vPVnHu+A=n{{b6)9$z~{nN1QB zDXf_pkK(2 zA5d3VB)NPKFc*HN2!tSm8=?>R`Wg3craKyHUrnbw!`Qh@MK4HIgEffq8bDS{eMKnr z71U#~qhWEL&|2kEYjFfQSM8l)nFy7Y#5G+yCN?`P`wErSsoX(?usbGsmtF&vMboLf zKs)L#U@kvZmSQTdVn-*=W)@~8HLS#-3M%5f7oRddzk$KFq>`X5m)!VH8LTeXYHF@P zHXEc4846$uS{fFvmYHRpTsD%fB$(T~&*lAZ9=O9P$Aps&RXFqfi-a0?d2@xCpXpLk zbFn89$r2AmqOoARD?OPWu81KZ=09DE;4^%?p` z^*8A-sxK-@NOG6g7B>kD;{GM|O)d4!4?Gn5%Aq6j`(V^J;qQahqiGTp>CJ$GnKui?H)-Qvak5qg7 zmIsZ&NmtU6Sx0J5Eue;BJs77VR)(NCz7Da(P%=;~g87M&)FonaauyEwjd}#%N&7=P zWxvoOnSx6@2s9zTgeK{XkND`X00b557F)Rq+L7wQ(SAQpp8)E&Wr#uvz~V_7-6kxA1sBR(*2O>cx3QZ63C50~av6z5;n% zWk=(uG(rfU>kE-(Sd%Ks+=4Qy52b@?wcYlLrD>k`M^L$iUcx<0uxJ%CLmdej=5@i% zAypPs5`PP$F4dKu=gp#E7zv3IH@Pqmm4d9rjw0GLAK~CEp24(7(1>1&8fid{6l*23 zZi|}Z+Auw5Qg~7FzE#tJZ6d=Bf3t zAfE9K<+D}M8G2A3BKBA>y|a%{{)ZNu%D-j;l>cl&47@hUQ3m7A7hNeAQj8ig18{1@ zS%ia^OYx*?6Hnw%VmW`}JJ=v*aj7P+`;Va)Es75sumEL6VNr-YL%pb?20**@U>QM( z$Av0_#u8@WAKHNiJ%QUUZP!?;D6#MoL#*v<*wYrcU8*)>r2VuHL^E|Lxm>#jr^ui~ zM+sdU(xI8!mAe5qb?7$c%w*2aS`SkzhjeJB_U4lo9ZET-z0tRoz;>k8<03o4ff-8KJT zf1X%>wgS6H>d%dH>d~LyUV8%lIUafg@(SPAJZb&;B<6`_z4m`ue_r?0|6G5j215FC zJ$^z9|KHZ1BXExU&+5<4C?oaf^7H;V{W%-2Gzk4U5RLpz`qTbcg#OGz6DQQ4ADw&B z`t#CDg#LW%1yg@6F8urSXZe{C`m^o)Kd(Oz&NKDr5TS{}`g7UgON9QMHzG=ZzG92k zpNqJ%jL@I0XoL;cItZO?(Vxve13W^1*5H&l^yk5GYz3`b^k>QJX#F`U$JCz(&olIA zoWM?dOBC1M5RXXxSxZ|33yDf-Yc4`*dD4X{EC|5pLM@0~f6^9X_Ig~ZZD9hLF4X}) z(4}hZKSg*|TVV0mUU*eu5@Lx5TT=VIssZ+-(HtyEcx+*ujpQ?y^AALK5_v$&9M5+=}Z_#U6IJ53X-O2);L#xygFOmOn`q+c$RHn!Nm>q*DoFs_W+ zW3i>^YhiF({cquRm@U+ZDDA{S9uo^L$cDmxn}fEwfWS&vA{2!vDMUogMGm4YgWMbO zK#aXYjQEC(ZJ2so8!`ueX5%N5@w2DpCv(#dqd&!o-?ZuRQx$7+ZZFTmaKl^qJK=MM z?-Gdi9Zx*4=Yw`tZyX-kURM$xJ&_CR%UV`3+p!$Q_&w_*i1N9T zac-;$Ya7Mszm_(wbYatS4Y{zp2*!wVVQ&WGnl9{P-x(%N6&f)3X3_UYf^;D(rXQP0 z@C%6Ld+}hg;NtryT(OZ{BnoY6?ANop3Ey;k+%r=a3Zvk8cvkki)8%0}B5+m!OdBn`NP!q0S7x8QHg2k{h6gxN+q4r7AQ=}d;V+9l}gQTo&%wo~;rgD1go zQ?sDf;sF{##uAXMB8s6_;|Xs99Ngp)B17-AKn^>H0@>6-_H=NAovv!Ta8(-;)$~>e z_DFBFA;z^QzY(TV0Ug#wVu^y^eZQ?nJ;o+?H7zRWYPISV9eY>bon)GURQ2ws z=|G)D(}6OUe>5GSDwYVXW8Gg{nv=Xf2OBNE4iF(tJW&2lZg_nM6D!|84o*yX&Q9M2 zp{^{QB=%vsxfaV}xMA+;;J0B=g!r&Eg|={CN9@C@WrrPbHg{1f5`ihioxz80WB;`c zVAlOt9__O#D&h4rHd^PSM~0T-*l$BjXeuX802YhQR`lU0UTg?!szF~Hnkt(l5*AJa zbP5bd0Q8fya-2g^%AZ12LPw=a9pz+x^a`G_MGiLGDL@fA2D2Q3+~T^9+-r^KJU~0@=zL+!V+Dx>3eJ5rR_G)`_-=DS_S`1eQ%kpWhanv`}fBkwCEv#%q>r z9Hxzo;GBtJ_TeNNJ7O0i0NKQdinB06v58^zfbmuTxfkU@vtb`0sMS_x<81{fN6#g& zizc=4NRK#N;Thb3Z5FsXv|k#z|N8W|e`-C?E!!=lBJ^3P3xZ^I_Flp8O2zjeUdY~& zo30B9gU%68smX*rWN5O*Os+?had1CHx}ninfwp(1q0vNbkoBTCY8OwOY^OHcjf|GP z){p`dvmcZEf-elk<^5Xw0Y5=cF7Hcj;&>RY@omN?YudR&XFdF+sk17tfzIMf#?j4C zS5Xj!^pqE7nz4<8lN!b*n|AS;a%YvwN{|2@5aP?*7l-_ea}HEioKF@7MV5@|at(sHQ*TK|V0cP)(WI;2|N^gdG&^lTV>k%vJ4fV5W5)AoNoHaEo4| z55DJSz|B={3!tJkV$RN52a(gNmol|^6&Ah339Q|^x2@1ig6m4t4ZW06AoS86p)R%0 z#lw_W5&CH=yYBsO_;e6>49E)QluhNtA&y+%Dob;d*XL3{jp2Fgu!71NX;Dy zc$lt_A@|2y^p&#A?ZBx89F#V`AYnaag$+7vU61AtaLYh1WB-g(gw;`3Ob;2=&=p1A zjn!HbiO(N)?=GP!D)Trh#SXYv<_dcpuV~=COGire9=zHy$k8ZyZSrQUe=*696KvgpIq^k&?ni(`Y8Kk)<@GYT`c}#>IC*j^|{)R=w)6;U_Hl!{nL*!xGWMItLa+8y(Ea(XU8#A z7Rul_;O)+?1*kp6Sy@~Vhvg2MUgYe-L4a7C&OITb7JML@&DUO+v$yMHbV&}#B2G&)&T;!aD4$0P@C^dD6Ds_mn z?jmO#n~FT0b2UNHNUh_XrrhP=nmUA1fI5VlBDM~xBJ%#kUU*fE1%;aQC+@u8&>`7e zzc^7?EN_P5iOg~z7&A;|GAB5o-QHjsutT<%Iv_%aJp3W_K({~#xl%#;I{-wiRI)Yy z-4=~Nd8utlO9YKce=?!=Q}w0j+AghmUsfJ{DUC*FR`v~P9*=oHpPBZigzU}_95=`98Hs}u}VC?us1wJ zUPIWI9*R7@=&h;@5=A=dp5nqs}| z3W)VPF_kFb*sBwW^_CFp$x^I0g;+lsdEW5UzeApHy5l6|`P^o8K7r;*S;4e&t0qQ%JWsXN6YiWN`yRbv(k{~ZudVd&nLkw2+8y3 z-#ZC;9=H9Uljq+L49oMDK!&STYH7oa-vG#8m*?#{$^Nn#|Noji?{{S#d0soYUU{B+ z@p0w((@@oaQl4*t)%3qWo_EE;_89iMRi0nJDJ0KN+k7H3v z**hna=S68kp8s5C%JXmg{PXhs#)f}~JnuB&B;@&#Q|icbouI#0o^RzVnqhy-jko`K zd7i^ELY_a<2rsugO30HWOfYf9Z0(zjQg@UpfO0cD#&hyub7<^uOw#<`m9)WYn5fAHn50OD|7K zv5WlN(lqvg;Ze8{|LJ_$7ddeWhz&nW#VXW}0bpg~5jB%Up?L0hojOa0sqpWx2y}3Bu*Y zp__w@l*)83G_S-zHlVZN`DKlKqZp@~5|xTH#Kij^%Fztju#sJ0yrN!-3h4!zPbi#xbm;S2+*N#b z8f3j#hBY|FO)%vNc&DMPwnNGJz+Ek?-lh6oad;ba1qyLvuo}4<6t}~TN+s8kyHsue zE#Q;^vlww|>)!<{xw)hs8Z7Bar&ob+S!P*ZtymE+r%>zA3x&@E6uJKbN^wlfj-H}a z@VyWNQW&+oy4pX^;54P;H{L>7wys9J zzM2iNj<-~T#~bG=(1Y9|rVX%|k2p6;$Vouhq55Y_e|jG~9BIv!RPjnJby(cm*PqkN+ltYomzAPA(?zMx_s9AV&D zss@T3_#o!v&O_gHc4eDvt4chLLx03=G2&p1VhW&fxZ%KeX8~R-7aNbIXx;65nGeXz z_INM)po{xjsk}P@Qu&y6VGa$5e3nqv9@R?OZr1L<&KWq<%8#md@X%ld>){24J=Q8^ z%bCx2p|Z4RQ@lF;X=55#%}-Z@oAdmMU(Z!-o>9$b<;ATHexnAfRWBOwZVs#qou^R! z1L9C;fwMH&q~uvtIO(a^uuyw;vnJdehH=S|l z{B!WD;yhv!E+%@x8?o|01m7y+49uG5`J1?!_O;u%|k-zp(Z7* zaNfn!qiRw!6gs6*Nn;OiV@>(qjmR=IxWOxs%J){Y?!kEBpV*~6*F<2~yqSkIZ2RJq z0=q|m9Z>TGs{*Yp_<4dGBjg1u4kJAACE%~dZ6(RDsS?DIB{9Cf!38>AYZl8G!H_~7 zWxfTg&|q<%+!)SnWEC_m>y=b;O4(fr=NGpX>mJNwZNW;BmsgUDZRax3AyRffJQ>^N zrqEG+D;=fCf;&VJ>T3~T*N*pLaBGc?u&^65Ub;qew>PBz4AuRQE^1a0x< zS6(-ULM`~1>1cz8S$m+B+k4QAbUGNU#)T|qU3l5l`8$Fn)xX40BdJ$lvg1}d*cbDG zPY3*C0&}Aqjc|tyZ5pSvA!YNtQ^C1Y&3j{bg~)NVvZ-cFrDUif$^{#{io4oME>_t| z#N7P0=?_~Le`Ya$Lc%ymo! zgp71nrZ~9~OndY2_dJz_qSkDcGF$L`ne72&qmX7NDXCa98c>-Jo#k#W&YzP$f*ZYY zu&lDf*3~lHpQt~Ji`&RgqzqI>KcO<_8iE&>9pFm9D6P>FjdDv>sW?NVNUhNTV7&<- zz}qwpJ>IXlJ>0x!Lh)q%ZX%b5w3))lBemU#*JnlHwp-F0RK~V9EvXl7$hNsw(Ofm_ zJX72x&s3*&%gSTHh*YJbDH=58c5H2jw(lP?}#4zHej< zf%ew1Ahclf1n6ZuvT?P+R`?fgNvUuE_GiY$zPRl_H7+HCi5SPEt3F;_G-pt~TO`%b zilX{ywI12y{L%8MlEZ(SL>*H!S@}h@n*Q!wM!h zHPzE`=cIRoSXexb1Q!nr3p1Vaz6vT=DPJcF80+H7az`JI?J{G<%#|}mwi~7bZw96| zufh}B={*s}Yf5-x`RBxCB~6uz4^bDUU30dwCK17EB=bH&{RKP?l4d`9EC_^5a`GmT zrb_t@Bsq_+0w*X6t}4*@Tv4jr@f|V68Cocp`2ZQ$ozRFk*5{X^FlKos8^d2c=(?7~ zQ3qKuE^$O)X`+rN9hJ6K>_Q+5cfgf9J^}z_*v7|7@z#wSl`Tiq4SCjuk(Dyi+_fBL zi_Nuyp_^w)a7p+n#XXsax-k!n5-P=fUth>cTv3s#x_4>jM{C=ZIshD5-U-1tqs zp6mV04brp2Zdfnrqy`oh^AQ(IW5nIcve{y+#xloj=2Vu>7NhB|ob7lFfIJ*Y$ANvA zSj>-z%B;L9KM$3&O(xdh$;Q|&(`)g>r4uk!42E%giyd8YV<+^zop^L|i`UhN6X<}; z1hD`C8Jj4Z* z)A56bQYoHpJS*`8C5brA3sKl5zVE<};mtP(=?32da}j;73r-F!T=5gBUEP%n91D%q zOs1AQUOKQJNA2O2=EQ8r59@7(W06(ySDqa>wJSqtZ2m4L^#XXm~J*oQ-5)OV$T! zP9rAB>-s4~^;FlF-bId~NOXf#!x`r<-NPpSbC?Vq*4zI0%xXc?12*%mf=rJ!I zFBTNvU}kXvLN24jBD=FOeZ|$Ag1FL^rnOv*%^~ER4}3tD<#?cPi$tTQ$4GLaxT~iC znN}K^7Rt)Sv2vUsHg2}#n9B=-?8XH_9OhCKfn*o&KsYI9oX7^m3eZ>qe&WuWjwQF5 z{03LTmj>s%eiB@7kHZlitY!wJEB321O*s|zOqdQm0#U*V@?!v z;so;18MZFkz>FhOqFv*~3DAgxtG$bNiD1K#C@8>gqd-^kB_uVeX&7N-1{L#;T*moF z*5T*M*i9aEZo{`M;4i>o+!SOjGLpIiIbKqZc{-JknU3jrhzSMsJxDFZlbpF5Pf@xk zv>M2eu9*x;fDD5G$c0yi5#l-}gb;zET&6h^WIP^g3cas5=>qzj+m3A27t&*i==Cbz zf)_}OS|1>Y$RKq4;$EnjBoCe4RdU|vHGKDmui*<7T$6=8m79TN*uQ}lYJvj+ z)*lE5;iPFNNNuPIa!RIn!ufFmTPQAj( zxX9z(!gUcfDLmS{&`hQ|Yh;SE^K?D5|v zTpvt*i<=$6w9KDj;BKI|z*e?ym+J2qmsJJ3OWdx-?SbYr{QHr{LWXP~2;09Wm*7-6 z!ICUmW9&`c)67o?jHS2bl}#T(Gv48rQuv6qIL(|6?D#&~NE%T#_6xflc0N17cP@mP z>WA1Nk1l3jf8ylb#=hEeBdQGNzM5hA(Vasd4pPL1RTZB6qq{|vW-W{(A613O=kNCA zb=+n%T;y7J2RFk!-VKI5y8PeR4Y^1}aVHm;LYsUk-Z{D+MYS%SnKdv_rV2u}cpRxY zNVNiUScD!*?ch1GcKwW~JQJ=2h1stDJ}{G|DUY>|^V;H@>HunQhf336Mjps!(~Uvb z%;8m+*!ab^X!y5)Q}9%xP2Y4J-)`_nOEE>~qZ$g0A|znWmooi$u9-krt-FasAR`ck zLf|ws9Y~FAKNsIP18ui~SF~wE;1)!L&1uK(G9nxpEfvdW%(5fIk}65tHsS)2RWNkU z&-m^c4&NSbP3mb&I*G^2;t>{~k@sP=pd^6`D@1MFhZF`O#(g&s;a{Hr+>HNv1nZcr zL5{NebEy?rJbXV!OY1J@Q4GJi%So-Oby+|cYq>0=CY5fo^UZEHO z#g%oaavQ6c7gb>KL%b0cQwvkozFrg8@2$AV9K3XBh5+AOB&suKpp$cI&(7bR8n}OCvDcgmp zg;4+@%r-{SL(S_Uwh==Jg-^kabnB26N`|40LUdq}qlzWV--AZMwd`k}fos`Y01`}7 zet@j!$9m3b$)4g;R`H@SZ^p&F$*_b|<2~M89(+d$T+byHso*bsf}j1iyGCeIIzVQi>fo`SU$7l4^i2VMEyoNN^2 zY|uN2{@|5hUqhh4sp-2s0l(OcZ$y&YcXvuKt!mHrkP5YG_3m`$ikXI~5% zWuASp11s}u8zC|E!p)|b5=UOdm7>fTapdJs2rB9UcAtB4@g>8BbW+N1V~tA_XSNDS zrQ5%eQfXmx3{gE&>1$8*zI4`x9EOWi&qpk@Uu}BK>z7R*@Hm9&F)!4fR85chNNoZf zo0egp|5PK49o~Aw(2HT`)yyUB(Cz}XpH*dIKofp3kkHpz&_bENVgRr{X#l{W=RiY} z*T6XEH*3fWe4}SxQ{anul@Sl7t>5*%P1p-WkXIHnr_fFD`YL|p41yM{V~Qa>f;obSZXeJuy0F*uUp@P-_&1XW2%1s_#+{LKc-z4 z=8yjKBlx5ANmDEo<3<#28n=d{8P|GzAX`zFAG9FY`E`}`}6^*+%; zg#Bsw$LSf`4Z`6;)ku>_;}cjE@kkBRaDpYB4kN7W``FnB0fGaKU}ZDaCF0{eZN7Gl3`pgcNa%qw&LDdjEgBxx*T$|XLpAco3~>ADd$>OTQ_ zoIg1+KOUqB6_!_loG?GGc`AY*Yv!2z2sI`6v0WrT2E+V_&lUxSd$*n>Q{D_h-V8hS zb&^~V630$i1vCUCird%Q9pcMAUwm&fx=Nck-lPv@4u_Z8fZBxSDo3A}-2ZtFWhs)e zL~&!!yA7<>z-`JIZd4C^aIZ;+k{qs**pQVOR{(vCk&zJQ%&(A*Bt9#|k`;YG<J5k7154=?`$74`EI!!I5P( zKKlEZV@lfd1Fg~D#w;#rL;>9qTo!P;z5CsrzBN9Mn5n(>7;Ip}z=OG107nKDXJ*G@ zQwJA8ql_GCcnJ6wj4%N)p$*S6BxNRrI5!(`qZh0eswMHMMY=6ULp6;)-#TD%{(sne7x*}dQJ2a=y$Z5HF3s3;O2Yuk{d#L6%Bxglj+5%$XLM9#^FgsEGUjLG;` zh2v2b*z07PhdNCqM~rVN1;y-SG+e`UT(9qrZtrgTJCnEq2%%_KsE15cy(V@wKhm++ z`}=WenKa2o`Z#{sGN2|VqZ+M7Q-5;=Q=kfc(vExh@PtVJ=&PTRWkquY(<~pvZ|Ycw zmiwjt(H9e+{w*=N{l78wg5Vm4@lR%N_A`FlmhA6+Ep}87RERfj1)63=CbJC0b0d}b zCGGBR2av<2&g$>A3k3W)n139fG#wHC(Wh++lIDw3uO=ieQf-Qiw)aNn?~-(bzg@K!UQ8s4!A$Aj*q>RH8=ge|GJn)+VlktsE0m89R|D|^25 zPsjVR;Xq;}CN!CYy#w1x7tPmzgKrveVEi?az^ECQbwHgG?{gv~0FnqP*0a(CP2JH- zGLF%9-i=Ld2p?`=dvMDp7)Pmk)kO7H@5;z>wc>=o0mzc#sb}O-UC76*Ed6zLB&~n8 zyd8vH3RYPxg9vZ8jtHJF6+4#N-k4ga8Z|a5Q$xs4E0Z+v`K19PZGub7`=ydM1|_ZM z?mh;2Clf2g7}e#lzcKZCLu#w7u*THRXli|mV+#;afxw}}I)ewTAEC*%2sMjpwV7qA zbk4=o(Q!I3^`lyR?p7;tSL98VAW4B>4ory7{e#p zuSd(D>cj{C3wd+T0c&?Ql|&ydqMuxFoYPNA20Tzdd8fu=fPV7uLi)+Wv-(LD@VBip z{iHy0`bm9d^^;L=>d)Y#mv;_SP+G~40d#ty6qKPqu4wo4ItH_s8qhalnp-_Xib`%h zAW2+9tn`knEoACkuIWc9TZ5KJy@rq+t%Q1~B)NqTrfLBJQ>AK!&WjZ59@tVHX3An= z(8egV=%di4^E?srVU^apN{Md3GsIC+B5a{Z=+y|RZ&0^|<}uG*O%RFRs+BXZyVb zPx&Okvo#KYfgft84>Un9bUkqJ32pE9Pu?pxa?8J{kz+S>lD`N8sWDhX zh0%w{@mGwDIihylef&Hd%O3%P><}hvFw{C5Rl{MpGm7@3J#<^Qe`${_RPG1_i%waR z^$zWbjrI*uqVQB9M#c=Htw$+(NBcF%&u7t&PRc2JCo&{DY}=zkx@E`ykg~~CV-b3U zafzt50Zkslxj%A$%GY`nIS!k45LGMMC>+al3k^xjRG$7mjJLSAMcyb!GTp&Gs6su} zWccSD7<#F8P^Ld;Dog{f#Qy?U5W7Cm3R_H|U=`#^vR@^PXg z#gF|8-L~u$)yX>0R)eOBSopIPS7S>l8q>E*Xt`-|iU%rDS~Yg#mgnrrAN0LFl;KZ0 zWw>>8-BGZ2rVJO(2Fh^ZvY5|-5AWUdGsk%5DZ{T))HUm*pUhK+KUztj9vQ zq2=p2`T|uEE|!PNrP(z>$HUgNKlwWJ?*|1jBA@=-V^OA`PHF$H-IY6YN|0)EvstOS zZ0LW>@Hf%7t0%efG1L}ny zV0zt8edG9&^mp8EQIG}x#oKY?&xn z*w6S+W@A;QsJhm_|GZKSSolCuiRRRc{?8Rzk@*Oq5i6mA@{5T1_hj?aIZdfw{WB~8 zpq^OT1eQ$a*E@~7EwksImNSY!`KiCZBaQnM1H(Vw1xHyB_-8vk*73>;d$?(bcmERh zh2c&Cz_BjWQu6HFbKBT%PKZR}`!$il$pv*}G38{mYe|(%pUmg$y{L++aK|H&H`##72CDj0WIsXu)o|`@lQAIq+M#9wq!p|4w|h!!_ZQnK zde{_>F`2P>s}zGcE(aonDc2j$*9{z}Tx4X;n!H1Yks^b(- z)$>uqM-5?ZYHBUPgw)gtv5s{s&WWBMz2LmZr394=?}NbH^fWPlS?yl|e|$~OAFEcg zp0Z>k+MD_Ro42&Sb-s6X((W~Ox2qR`wczfuH6ygybIt7szixu>KA>z~jFCIw2fx*? z6UXbwd+QtRG7L8$tB1yH<$jwE z^p56JnP131p40c9>GZw#=>FsP?f&C;oZ{By{I}c;H+C*fb{Uh)0yLSDRHfCK2nuwdiNWA?XiVEo0@l;sd){E=G0@Eo0@u}D2}J8 zWrHWYtoXWr+IMhQ(R09`FG6q5z&CZD*$URI_+?W``eq3Ycw-ba-RWOmse{!4KPDgP zvq+Z#^MDDvc7|jMu6`C+oBVK3y#}VZA<_mH$6Y))xD_aLrH!lgIxn>u%xQJw7a@VF ziZ4!|Pr^WbJ?oEWgl9%T$%i8v+E};lFCr(Au9aml;%`y!>Ve8uF2>%y33OLul&?u2 zY3;>Wt5O|Td7aw%3rGMLd7Xc>l%Z0hF<6dXCODZ2MD4dvx zBR{Md9KA4c9?`=GN5>N==wl-WN6$+fj8vyse$|hDO|(& zxB8!O#Pp8+9-Qzna zf@DgV93xHI79lOG2_&<>LqAtV?jnE(RV=u{ZQ;(@tRTAtlb#8~_TMxAPdCZJrPg&J zUxKPG)ckjM;js(oLg$UJPDcBhQ+`YLVhBP4i>m zI>INVXH(DO`pki$JfMmD;L(8>!Uxm85sv=d)Li;hK>ysW?mYSz-2Wa*|6I-wP5-Qz z*}G^qTe$xnbr--z_+-J8-O-Hx*_G)QZf5U-{{3r9>ASjrZS?PqqV&(*{4PNM?AmvW zUHgu@d*6BVudxvQ`wuYzjS#*wAbb^9|4bX?9^1}~h4e2G(7!U#zdim$0@-GfjrR+T z{$=Ow+Snla*L|1mkD`OeUzw$Y+@Lo#h@*whpLxDaC~P zg3d?lqy4)f^;X097eadVr7sx0svS(P9;1lY=}{&NLu7^m?==*Lk0$?NE#-~b*9 z9%bog2UxDX5IBE$-5>T1(UXvosyKWjSe(jdq$c&h z1J+dROG3y&WoPc%Y2`bztmA$twCh-3 z318N`!MOd=XU7mI;qF;drE}9iCBr~`QzF7!G*Obn)tg-%crTQWrDlks;%ssC2uag= zi37LS5zxQ|u7UezsR6hE$%L#FXWIv@G*_8G$kcE9UaRDMAVw;E5jeOTgk-tE#0_klj@JpjrV?!&@Fg0%92{acbao3x68Y4Z{%hW&bo zPL-rH{L!^Kv40ZcidNcep}AsuM?7KEd+wR+yLYlZ7VGaaud|nuMf;oZI#;{&!u@4D z+Fg3#{!UEHE!y9OiI{i)X%z+Ma!F!Bw!h4IiSrEPUJhwyjcg?@vnZ?I(QQ;|Nwqxm zpRhPy!BAvI$NKBH^5G@*R(+QL7Of~@Ad2sI;Gwvqwd$Zu)xBh=E7!yZ7%{F7}WXAJ_8 zmrPQR<<_^x2hO~_efx;`#Ppa7MTmg%tfc5g z|I5pawW!m(DxWZV%afOl<6q&mOL=>m-0_8yVO&4$c%m|`aSG=LQmE^hn~8E%l^(mvfko#aI{iM%U(q5;FP&V?f1*h%X`x7HVR+6EGKiR&AU86=F_wKSL%NT;( z-3Vz-x+@qR+xio{>lJhc%=D6n9%QCd<-%Z_8XX%KO?o>W5ghnIdgl+Z4eKFU`TSRN zPx%o|R2DxDSx0kSX|%oXTTR%d_OFk&Z-23=V-qpkUtG4?(RBa3x3xzeaO!C$Y{>NL z^3X4lx%?ftE4}Mms2nF)w~`#2GxCeE(qHyJcg^JaiKlty9;(M)iSW+*s6GtOrK6)=A9 zGaBc>jyxPTe!I<(OQMX5dqW3oPd(lDTD4GLw`Mj`ZLE8@U|C$G{VrDrkoxJNhq39sU(wJ9&dlaB zP3a%OX?IsX6u94V>r{Yl6flbFA%F0KtdF<`d9ec)( zq*&EcUgy*FSUoe?hY9w~ar#X=!jq8}Q>z#Ox~9^8OBCaNmu4hE#XqRa{ZNFDyGvyd zE{qU%hzw}h(-p9Tjgx-WzI}MqTlJVbB;5a4gV(qz`iP3@TH35e&6c6rQ|uT#j@!s#a3eL-vVunV}T{c2Ok`F3oH_ ztx)e|q@7<7a40-lRnSI+)3|Ac815DBb>mmG4)im?`8a@ zJk|GdHN*&W1HQ)a1^oz7Ee|=PVsg0lvDA5HWHdjGs_NQyBI~=Zs?rsPYGy=^J4W_B zKSrERdEblGRlntw{BGY%l~wQX@yn`rp8UPh#!s>{o~-oS%q@sr z0NGDe+oz#at6t{Sa!UVUjHb|8P55KZ(X|Zjh?3IWeSEZgDVV-=R%7>f+KKUk7g>eo zKcZNuce;6@<0jf1Wvtz59=A z=$Za#w0+zDQSav7Xz!MaXyrD3!a4Uq&%FCDFD;yb9d z2{JTJdNQ1w_4Sp*8oFXt>Cb|8>>vAB&oI9uv_aA|+gUUH+P=F09tr#=x>+3f3%$-C zx(r2t=dk!Cm!SyooTL`J4CO_8*X%M>6wWZw>paY57+yF7ho9YCh7pA`Fa>D_gl<+A z&Ty&MxzS~)Dx3irzT-0NRyf1OUgvc#!|sJM0OUNEVPxS90NLO&>`^!aXSjo1hCK^q zxO*7b*ybfSv%eeBEsC-n!2e)Nbr&eBy9B#LS@A_=C^GBu#1$kKoAJc?Bo>+NB?(B^ zJ`3e!8M? z4)9P?Ou;d{a1QWHrzGVVQ8)*Pc6pGavQUn@D;N@v3^#B?AuR@qVcd=WyE4Uxa9mJn z@gXb=augrJ=fEm~UVI224RRD8!mkH8iVb1n>Rk-qoWzB@7`l0hsY)$4Z0+wZN{mx# zRlz|W&Y&*xlE-0@)|lk(`0eFvTW_+ngvjc3wy<)GE?RI@_yzhG*=In}GMAw^seYab zpoSug76k2c8Hz1jq)0A9k;Myo%71C`1-!uPloq?#B5vQt5;)OiC_<{~rn|Lpc@a_# z7rw*MrXr-8CIa$ToKy$ouL!B8n*sSNLaHw|@>h^dw{Kf!Aafl4N#vvBl|BX0Q?r`X<=2+Kloe(srb&O4O zyEe_fXzz1untl9ajE;8O*%T;#p&TsLy@MP@>R{7+gVjzWQ=s^T>VPImY;6?SNB8<)sE})??ATN3a7zp(dLH;rI6NlK;+tviptnI-?wKc8O`Ssn!e^$F%p} z7t{V2k<^K+3{J zRb*1y+@dNnA#t~;icH2rx2WKc72zRKAq1>Z5gu})u|`Gs$BT?LDsuR{&{(5_hd)k!#u^pm z8SmbWZEc>HeDt+lutxve4^4bmLo;tzL$hKRL$fX&mX&s|uzA-`*~Lw}R<#8B*rZ|J@6w!(-@PEa@W)rnC3o>(ciq zm<~twWtYBZ!So9gmr}P^Fl}Mt9MY-_rY%XFOxmb|Y4Z{XleX8;wCLR<5ymg`lCg}I zU13ubR^9*B7^M+)Gg=s z<5S~p(_-B-47E;wd>D^wn0o7*%tovmH}0&1`Ke2*&@0z>UAlW}#>iM|I>rT8Pscdo z;@Z^G39$_$4klCAS(QUyT@3G_e0?*D+~c^O8b+*C#FW24EJKyiMW}d8U88nBr@OnWpG3mUH6brI$}c17(V(taA0p))A&voviHT zWFKjN%hMtO$oTQK7ptD{EqQXj7q3{gc{8rLtyf;+ z;}u;&-nLxcz7v(z>-^cD)mG+{D#E{5nd)5N@>c};`>4A&$bXyim#HgjhGq5-zDhII z_+=n2QyIim3i{|hr6@4c(HEcwyL-F4`w(YD&x)QIov9mKt?mX_bN5L@G)mK|)=#S{ zlSb(=jsc-YseXpjDAnpF)8F`kHnLXtDFTgBois|^EJCBCXYg>qkG)_shJUeUEOcsg zor&w04fr5m6p5q{WaEl)P3+UBQBirsZr4g$D|13_Ee)}(8!kk{7R^iU;l9uqz3aY4 zc%6T-ZLl!S`@Glrgxe(xo7Z8w_AQrQco$`tlJN#qx9~1X`FSqA@Gi@1i=# zTKZ|jhps^uAT+On^!40BOG^WuQ=jq3;@{9m6(jb@{&eI3@S+{R%cU3YID);EF1>Ka zNnhmB3wIpAn=QSVt(w<4fpj`n8eXhx9U|2F47x6J{T45CxRWUB`*J^PJ!CasZCv?3x2J-YdqkJ-$}oQ znodMtBZ6S|aE>0FA&PL#E1Rh%cdZk`fd5pvM70ZZ^`RqGNQ^uqE{ZW(fNs&St zD3$LZXvVIgzJdHB(-WC^X~x@$_V+xM7M%Tq(T_Bd(mOlrA|oNRV;h#&IO#8Z?APK= z{rmELGts~ZEiZQ2#Fp-Tqur;qM!U@~S@f{eX7xW7U5ouj$)qPI_2vPgS8WEEN@VRR zV?7_xUIHTtvzOTMi_l&|Hf4Kx*I(*v%5IpDXD@NhsV(DoeCCiOzp_v6q&&l*zC zJE+G0q5m;9;UsW1Ga%}}4Oc_zJ+>7$mfV42GE#llJXb>*kNX2?{#i7AG3A4mxYS;4yIu%Wc$_B zu|1NA$zG+EH>TUmkV|gSA42vWV6`pV>HW|5|46Kg|-TrUq8-l@ouw>*0zBA{`5T@FH z=GdV(hC!$YmEUrx@{(0$U=KYpUw4yS1LKpCUNWh3`-xD6G|8@<9mt{+af*;5Goz_{ zPYpypZV9j*S=&yeyXFj_%mVi$JZe*Pj4_$aVy%TgIwki8FsW-ur2`l~mI_QN3PF5-Mt{;=YLKCVL(# z*;Z8&J92W6Y$*vX%WEFn-d{mVb?nGCEYyDMb$$=X(mJBW)*91w;pZgFJ>J;)%pQeeD-wwSKqBlCMFV#|S0Y1AUmGE65P0i3)^i zSGu&2f7)O0bOh<-aSYeRmMLDb)WT=QaM2n>)zuh3SG8qxpB?1BFfVtIaoK>3twF|F zxr`wkH>2r&klvPLS|1eg&NPK3hl>Ne?rGyLE52l*0Th;;MM;Cr1}Za3j%Rr3&gRIX zplH#xLdf*Vbk>|32#=L+XOW>ydfBJvqKS=+N{2=uIOaD94e<0r#{Re&iPpAJ+z90P$G8Cl$ zE-j>ry*z%ujtxdkipc~1%nykDKQ0gWI5kTiaNHCs3giJ5iYp=yxKdn&?4<1ZD!z8d zRGYoD*kPDc;mwv@L>7LJOD`--M+za&Ce&Y8mahI=`f0lrJcS}zJ&kmD;F5GbA2}%mrfOf< zg%pB@KjIoLEQO%q?XW8VR(RkMS^wUp7an+|5Kco@eH6ni$VXqpDSG@brH!)%R4&;O% zVWo04Eff`wKHiZAJG5=&N5}^r8p;9O^~nM52I?7!^7wS~two3Tkql@|RvaKWvVsE1 z1~_=OaXgLdO45q7rZ~J2YW3^nCs*repKS-I=Kw95iD^q#K8`y zvafynQgfZ$Hjef(Q$_yT{OeCNHgvUs%3WL3MH0@cZR6s25*p6C1+DTPA6%Go?vtZk z=i5TCcnI4fM7dInwz#=U2hSushpTi;lZG%-(xw zz$wK)V(zzGrretwYTBJ;c^nAYETUSu^b{m=*r~eAadQL0+Iqa@j!Vq>vHD#9Bi_sf z%D<}c3f?5pVHwlk_3`~}Fm%LSO+NpkPrTPJ7lrx}-b-spwN-k1*N?34TCh)W)uBH5 zDvDwVV|qWKki2@~M5~G0JWlZB;LgdODx;zBDZWSc6g7}Y(tUdwVOAqA%>q0Loj*^e?DXtsWK2JA3<+_phr2KuxhWd^?<8r{odw-tq$SI1tX5BX0 z&JzG}uE*QBJQs=peSQVZoekE?LpUyQ%wKoc5dN;siFU(s$ zHw4{nSwVO39^eP(XD=^jc?OhY_ECBK?B2XJ0N&I}c#*H)nr7nbvso>>)^Di~MRXT` zh0tjhT92WLfYbdk98xh(H_&{QXEk5wz|84V$9rhLuBEnOJTIEBIhI_6=S6ch)uk6^ zz0iCe?9vOfUX(9$>4mi+uzr8u70-*N<#9_duKBv1bmKX1;v>g%mhW2g1+y=6JovN1 zJSPo5?a~W(oR0m#r5Ema8<((12e4u3ZG3tH$!axDSh+8UFe(JcA;-xz6*Wx!d>W_mj?vl^?~~4roxBQ zLg&sLIeY>RDzxS4<>{jI1w=UQb32nCoIgJ}e#^c&#P2l|oW241lj)mhquCC(?8Ez? z5R=HQcT~xE568`wUEhz-wtM>?_x9gic8Qr?zwdsY-XvUg%+SBGu)>X7tf5-U zuRpOmVDNLzcpWDI`2d}9;GgtE>WhDRcc?Ge0nMrMuK$bR>KXmco_YF$weuIQKpE(q zV9b>dibu!=f|sY|&LKNJyI@l8r$9JyBkpD5aLO$ukDi0fzK z5bdIwrDzC4cN_8v5TB?jFS(5S{?ZV}oATx_Fo04~}Ai zafeQWbafwkYR;}Xl_ev}N*CL7PK?vVD;YfV+KZV8r;ZKvm5j7bV-bS%_dsX!rr26K z=}F#@;xYTD7|3C`Jj8#0qdOjrc!s0bv2vBzPMLn4AMx(d)IY<{k5}U$k(1BK{iA=k zNax2Hc7EKj6{^xddL2=Nr7f$eB==UOP4W}i!O-t|o?;H9Ey^@h+EOon=e!Xz6PtO zqdH>#W-zjdyK!D?7C^WgpCzo*?C7;pJZoT%6~j$Q{lT=w%q(Dv76sTjg;^vemcp?- zWn!r*=5-uwol--@g4C2+f<>t*6FA3eP34_qvm%_^e*lg7F|v`6=-jM`L)dn6&J734 zD`n==lzOKr^`0A?M-Ooi7CHltvuJb-V2+gULHq+Qiqvq(UCLCC2%W~)cN=C}X*o-| zYCr{3CHopfEn|f*HL+C2Z2}Am%W)bt6YvMebu%D9K2+Xlx+sR)2jvu+r)KLHVT@zDeIo=O_exFsDL;cl} zJbw3d9IrAQL(cCX*gn-x}eqY!a1tg zQn9N`cl1%NP;`5+$fY}Gq$L_yQj#+ym$Wi3d9ooO!$w5Ddr4Kf~ z{5^x8N{h65F(nw8T|kav?V2D*kvf(p=IjFMrHMwR7J>Nli9?lIJ|Z zx>2r7-)nFAYQMP8KrAe!VYCCQ`NER6r6$EFysITlicwh9dXY&n3d@)A|5DTuuEY4M z^jo-o{pX}}m3P32{;S-4=o(FySIM)VH~B@NUn%w?5-eApf56!AP4VK7BB6T`YsgW- z9z?XK&cA^C2qmMy?l&mjT6LgG_JjLtyA^G%nZ}QuG zc=uPgKlZK0Nxkjwz9=_tUWdFqGasd1@;XazEhPh~_+Bk(fA@t;<2t^1NeOzq`&)+% zOgxLkGB4?Fm9&-(Omrvc*_0|Dm~arKD!8(3*xOo>pZKD8ZH8zDAh5^3WHs`Yj(1V9 zNDa&v1)Z4kUBr}%yJm8H!9sTZ4SbvNF4t1h|H7UO?_mce45Q~pTC;baum|USr#nxX zV*&xvnFoYCW#XfQg-7^*qptMruEO_YW-^Pz^U_7%1WP|oskMM7S&Vr=y#z_jL1t+z zD1XXsyLR!sxeEhPO=7V`HSrUN%2tkfKiNu7=Vlhjs(o=F+RH7GLH5Oi&ucf#%{RC_ zTc@qytR{g6=OAe%cX?oI8Bl}VXXc&PP_b5~f1z0C)J+b_CcRN; zl1FhVf=dt^q+BdXpHYsyC25yiFt{)^6?M&2U2|1eT!t$(l$Gg$a7=ZXXFuw;0|;%+ zC7sf71^Dp9RKtweuz0vrB?(s$8osr3AKHSn4FeP)78=H)7)`WOadiE3Iqu$B7T>d} zhvy0)tvmhn*JXUN4mr?E{sH^CBPgr?J%1BFsG?PpzXLR)vpPdR5|#SZ0zHY)riw#$c8u2jN05|BW$t ze#J*DQn|UIRE{^4M(})6t1OWkQf4t^9?_#+({r-9tw03a1!QwuNMR72D12o^mk}Ar zKPtbARaa-(A2R`wX3S8K-E9{IA{2^Pit#iz_JS zyHs0Er%`AM2r_?6-!UcWTLjcfhcvdC4#JpF_$H^+A-X6ipz;o*Q~al`&<{VdvB~6%Ba73yj1sW^myrP zh2xQl5;DS8hE54iz#eJ2lFl(LPn_298#r$y5I(Qc&sCAzlxsYXV_3*-CJUX{Z*Tl< z)(IKuv{^jUt{-*5kDBmBURqbZEQZ-Kh*8~I8FTqo1AH!$HBGDXTT8VogO>7a$&{!W z3Ln$9x1;r&F5YPIYTlXWP&`OkV=3V^tf_6*gyKd`<>Hw$Fyq^rwpvC_t(VM=h-TJN z?aT;8Zi}>Ak#jIYIlTq~gKb8c?CJqNPpl=28txCuJGdlP{sC9)>}Pgc)m`Fe5&Bgw zZgvp2KyhzfZu#1RIFS_pIpSoBb8O0}=U>07U;w?Wgs|yNWcfIfMPGCGr*d!YxOokq z+erqV)9GRq5z5b`)Hv@uXM7r#11Sp?Cid z|GOM5H0^`t@7j9uh*AitnnAwRV2Kn;msPW^xb-S>%VUQ3+1>?{E=nYvXvS}QwMMh^ zb$$&{GcAG_E{`uy%LEKkqWw@LP?K!-rV80U>u5|B->7tM=GOBY+ESxnWkh~4W$jo? zIJiwJt)x);yVi2}$YEhS$0dn^c8*IE1??P{$gR#$JI8qm**OZbaWt9vOhal%!}vct z>qf=;{wM~_K?UsAliMNl4=Q0xv7!j$#OkCb`Q{jckRi7 zv+`ydCpvQl z45F5j7M_+;Zt1|g*_dglxa|vifDuQq3WNvO6a_u<82&O0&b#C12lKX%Yl z(bN-7RnPpG>6AqEK7%IKeF7>;G?5Ld?Wxy7K0rOyWNIdD>>*d;{s=VavDDA$Q%ylP{GgbQdW zb!R+=ezA43S3N5x$^tl73mm68mfbQ-tC!sU;r@^~R*h)hWBswMiNi#k^{c5Pr{#X5 zB_tD)dUR~q+CTcgh>AW?*0BTE`~e;?IU2-R_fc2~t5UZ}qOJO#tOioiS$tOWnYyN( ztls^ONfF7kd5cOz30q1xH8)!148L|3e(Aw7;ikwzmM>&hL_(OkRsyx8ikT64aNNa= z%p%!lWC0(Vkrfu+7U?34(JdZGGmw8OLLfl=$9Wzd?kv`Q2|b$1G0%0SyCY~(6J=Ko zqV4^N&AwZqiZ;~y$5%>bc1M75W*hAj1*mP5fYQ5bR1IAqR_3tVY<%>b$is%4yeKlp z>wFRbpiaeK6xqvO6zMp*Ov9Z2kkO4F*uMl%o0xxzTYCa~q3xsGJquQAmGhT_%cR8@ zUOaE&@_F3JXJ^g5ShF4g*OaC|wVP(OVsa-!j1^2o|LAcb3fgBcdDO==KPw|QYJgL* zHsc-mX1AEF?>6_{s_)tEyI$Wy2HQG>2HH9_-yVk-O}IB|7VLRz4O1C|Keq;Kn_ycY zSt!RAQ5tBZ#XaY-?jWpVX52|WM}Zyll23#kd(-Wh0KIWztCA@aP*5AUNj1>DV-*4U z(A?_x3BhmqAWQ#@Ke5!t*gKnJ8y*wc!agC^bCh1p>yIDKvXAe_gDLBIFlAG$|1li- z1P`XX=iZlUPQB~z?1uN#GSP!6e`RX+_OAai3V|4J9;ac}=Zx%%mG<>N7kd!L3=8K> zym(pDkt1SjFJ5-x+=aMlXgYER#!-E2LRN-Te~csLR^akGR_$+xcx+<4zfFhCO5Md`d(+~A$#?I^RB{7#e@+*W|X;`vo94aQU!C7 zum!7refmUc27+zc>?hnx&?JlJVUu#J4XH!;bdJ}#KVri4p8R3PjFDtqwIsudXh^-t z9GnnIf6ka>Jx;&FPp(9|c`%}U00bv<&b5xe!LG{gG1WqI#1%N#N+#GmkmfaYUkzsW z_iLw&vQuvOXdt&8++a)Ujh60Dxh=RUwWPHf07c$fc=Nq6^=%P`#;(h%T2fDooN1IH z8rmJ9YJVrNJ(P~GGQ${atWS<-o8 zd^tu!0VkZmAmu)r4b`^-ApGwQFJvurgsrCmtJw%}7e)9;T3LFmaSF&yX!NRxlW~SPF5ftB&Ol>lJR?(HcIjl4vboCWVMjNdH+1PQ0VA z{QCVzxLvJ7|3tMbQvqvNe`btOyQ71ees1A_b}tCq&E*~uYF&bS zH`@4w8Es{=Zt=PXm-8dHhvW}k(pdoh;mO~RSu-W+0~o&8S~&^4aM{F*n~wBi4`!)v z_gN!ilO8h{gognrR<4lc3l~|orX#20P7ur6SKb`lC!i_umtO*a@koss4kX*OJ~$X~ zZtRQorEByC7`hNl&vF!c2x$(?2-!oaQ9s&r25aSq6d{qOzUOKJs@_!f#*a0R=^5dS zFp^g}lzk}Wknk}J^HHaB(qPd2iC+qb6=m4#qaDy=oO#?@8VI=eK5ZRb3WHTQsOz%) zzY^+Wso%v?F#UZm*N7o+r(Al;05q)dPYT_fGpvG?l{PS6E+R9xnB zIF_9);!zchj1bP$?xvZF<TLGr98TJax zsb(W#&&Z!sS$G0vo6-?`4D&+18sYQ(6}^|kch-}sfAsgK1bpW+`=|<@#8g%6lWVL> zwhyt&Y%uz*$<_CReCxk8Wg)|^L;e2fI{yu{< zFmJXN_HE($>!r{I{u;ZcgJ?A;KX25zW$?-~%i!3qZZ4Cf z)$%f4F_o-NZHS3g7jr$0@9y2dO)q&L+rgWrJU9CWAE?jQ8`9RrRrqu~Ap z{|XX2CRcl%|H4KY)+^3VrSj?@8REg_Yjd};N79IQKZii_w*S4`s%-hs~q?9hMW`c_=U!fh(mu|48-UQDBaqvq9n^2d7MJNX&l zuqp$Gfm|TZ_pVxLFzdO)IwCaS8Up_-XO}beZfe3|c1F|=?;E<;w5#>Jt~@p~J2#Q| z!P!DA9OaZ$u_0xJ>VqjCG9fx1YR0syl^A$TkU9|#0~4eUL=y6O=<~&(^itq&s_GSf z|II_9ATdThV3(b_Kf~iDf-!nf$;_|DI(_$`ye;I-W&MFm4Rh-u&Mhi+2Y(pCUIH6J zwJ16#LK2KSkgcH$q8m2mOyuhP0X}LL15BbK)xFt-6jd3Dwh=U^wrX11sk^D~wVLz; zR33elUqJ8R@RCNkLL8HEFa7p^?@No%^Q|nz_npBkCYGI^>-j%FeX{{}$odja2)lF( zJ-!>0R&mk~P)SwU^vT30JAG@J%aX(h7KTU%870paD$ulRx1Ve#tgAu;B4x=mAv$Ql0vfC80LR!Z{v6CsDNA5eqWg*wrdK5UeI52HS%p&RDA` zvUUnFiJvoKoX-vFZpHhU0>y?jwHMj9KM!)OR+vz^EZy6zQ)$r@r|+N zA8YDvVe2a|ox-2G*wh|y6cNvX&ueTC+I6jh+VhM#BCte0>0OA^c+p5-N#c}idQvc}R zAN_*n_F?18B#A;$O)i=-%JF!5Oa;Gi?m}5euo~4qdlx?iq?#HooVFJP6VO#+ZNPy*HlN=VBH3Omz(pnn68iNu!p$DYA4aSLAq z(}29hKY+AM)4&8PRIY@&feF^Crh;VAKcMS>d&Ha4&G5USBn4%agyH4@gM z3YsfFHYOklgt(KQ&0JleuItpupwT z1AJwUvs-zJ*BjpsaF3tM6z-er#&orE5Na%;prc#l8BXZX)mc$ z80;}>S9?r&a0#`Z?!+uwtKrZgM8n3SP3sJ;BRm>mj)%D;e61n(8d8?tJPlikW16u(elXH1n!V4QnsN=8`4%Fn;9QFdGogOHX$Enwv<^uh}n1x+Z6Bo+9QGeE;{=_$#4!u%*(!Nf@;~^T_ z{I;-?)7zhupd}zIRf&N4qng9mh6wt5om4;MQPOv)0CccjiOzygT+&dRigk6NvJ~+- z3^;P*yNL?-kSx7qMzd5{#KkahB_E*HZ3@su5;S+u<0QLy)D+&#rU^bOdwoP^|BO-ywcKQnu* z6}OeGD%=%QK$uz#pOcKVlb-6---a%?Eoj6=GDYyUZ<9%NQuP*ofm+%snB&CBnn?8@ zaB`H^F+3^}{YiuZ*~Y1$o!_BGCNqbMw-6D)Y@3_f%l1iz78+1n420U;W-mkYVFnbM z+8c=tx3>2_$<`L=`Ka0LXHw#{XxhMpPC9F z72hpwaU2cc6Q+RBjn}9CMJxv#B~>?f*Ey@NhiwJ;KOl`Hp&koIZ5n%N;lnmdAed8l zFl)N81rVF5h+nJRuV?vXYNN4kNJC2iD=2c2p1}h!Zg7(efHKY#G=r&)bMImvG}6H>K(Zza@!s>MoEY>R%A z&nL8eJx5=mDj-R!!vF0&0M?Bbdb6kN>PJa;T|N5}8HT!nsaNi<3l*V$sXqcsZQ8mP z*w(RDKCEL~NU~L7umY2Xg2@K2;`oDH&wTguH{Vdt#BgDNK88wwyCG6XXdSXbB-bcb zl#|$_*QiVn!cl)u_2Zk0?WT|*t9K(!g@6TJHkh=)4W=4v)R7F!O^uB9cWN9=G553H zU~9pkrn@!%6+T8-uYZuQ*bI1)$*0{^;eH8Nq>&7prGd0pG;Nh)#|jm5OnIuB}Bff zmcDDXWj;r0AgmbiY1lmsf-SeE(4SXZUXnQ_h%xw1Ka%nqE{oJ;MzLc~zor_`vKrIw zRTHbk;8@*QUSb?ZP*1hSV0YE?;2_}M#?(1|yQ&(Q?P>`4yU&m&BRPNT!f+T!6KeS9 zb7d%Vh5x(!1RJ}fZ=^?_|45hsk1fk=cXHL}^{T=dUy0gG{qCHg;>^bbP_2^cn{>S; zh_UvrIu;(A#_v?)&*=yA{531>pJr|Or&y4E&t-tUw&;9Q>aD=vM6G{y=`dRfwUS_Y zogb%G-CwH1o`Q>D4dT04WavT`<8-1C%2aPICuiq9Jc93{*K|Ll+&_ZK@c2+0iI1_& zSg_A_Qql+8X*b%n*xW{N3V@-Lwhxmqqy{9(jQ&Oo-7YG=hMz$61oI6U5k&=(eW2tk z`4nYQenB^z8!ulN09{+?_>mPa==`sh3<0do0k*oGS{l2)@ZkZ|tCcyxB76!k;Ng{+ z9B^%efI}WiuEFqa?=KAoj@vDaGAxR+{j(s-)JJ=X22cJyx5sjKw zqo_KfkR+aJbw@W0CwocyGyIKq{C!x$(+1qAU z9tx8x>xOZZ4sM*GkbTX+^;YL61m`8rPl%kCjG*voxxy!hg}2jSQ_AiWS>f|@g~fgY zyGoZwD86^Dcu83Nr&b&R9hjuH56l&B%$9B}c@XGJ(t1-kYL=lQ4x(AD=%2R6pB4J6HXHL2$lSRCoFv8jzfVhQzV7^S>OMcxl3G%m{y3F3cH&3* zaoS~=uIH-Zqht8)9~~bT43m7jXYs)LansiZ50gg7O~w}~Y)H#)wsj8ejEmkHN0bVbt^0%tV{@m+_O7*W&`!GF|A;X2aF;5y?HTSMwv=FDuR8WYBe zHd#=o))2CwPGvzgYeAh_OECsY^>WjP2xS7_CF-G4M9w>e@}Wg{U1PMj&)x0PgeqpG#@G%6V^T zwvswA0hd~l*ZsZ27HtJIr(X0YsferbCI8LG1Av0$_x!zb$^HH_VRE+eUmr^4lc@aO zQu@G@2#Wuzr^<>j5{jtx@+6VTXA>2fQ6%L0dk@j_1hoH5jf?+lV|w%b|1iUE>nbTM z*;lXAHQ93Kuej}l_$!`E3Eh^DhxhDJmP_LpY*{!Tu7+%}l|qM*uSv2nJLePHTzMtT z&2cPqRKB0$UAQ?m|L67o=YGC(*FK7K!sEgItb~y<@fRS1IJA=|3=jz(3@K`0NXNim zaGgY4x>g>iw0Yc7$?+HL;CHsGDpex7`_5tL^7w|euzauxqz6*UreuSOdS(VT>v#;PT8C>b!3{N?9zk{gvMaRND+fkPej0A zOlR>ygh{APZ)3L?F{}|c!4`j3UARe4wSuFV(gwrdd8%CIk+v8#|dQRPmYXzhJ zcw*O{`yEiIV_T`$c_$x@oo{3u=TXwS5r9ox#H4-*HcGW^n;x2h*U7Hn0wsuL+=8!#A&M=Jek-N7~aSjsUD zp!FiL$BiZFqp8ST5TsK8@SsT=uI5Wkw?%te26jt(RLo2MD;cbBU*W^H&gTrWou%;; zfofU~sv|?F4$Xr~L%> z`w%nNn(n0_AUu9Xc3{>V5Dd%=U<}x?U|=SOKr~UMu~gL|Lw0Shf~8>vdULmFz{tLm z$~qtjMwarBlKU&Bb`zQDF-(0K-o%m|@(OX^~F z<>~D97qBZYg^`&KBXdEdDYdjVJ%RddE;AK2kzg{2J|o!pXMpIo&(C1vUs?x-vn&f14s$JkZJaM&3)21*obc0=kd{b=jx75X-KQ?|fR$Ipk=E=^ou zDMDl&b-|SQ$qdQiGqZCtc5E;wx}+M;iB3zmc4Y^2z>HXhnUVRuV~DKl>Xo2|eTA=~ zzjcIkZ3bOi%D5e_anpikjh_{CZ3csPagL>VYkeV>Mz{Z~g=g05w#=7w(&U?1;psQv z;PM!hQ8VCJ^0}T8MdWimub)apKG*YKipb}Bey)gouIFJQ#Px8+;dTFpA3G*vLjz7C zY+<*Yo5%FDjo)8P&o^yEH%Jt7z6wCEtn_E}gBji6+*8c%dwn};U~y&61ML=w zd1&MRm0wFI#g;Dv|JZL(4uFihl9BiRiCh8?xEg#CMq}mi#`L#H00Y@?W@g{tVZEqh z$o$~*M82>V#UvDO6++$*^!m>H!msZvEd2V;qQbB5EV9>kTE_um=7a%WXj}b~-ll#ZC5)bqk$*dHqil{>sz(*X42hrwOzsp!dsC9onRQ~25gGQPv zKn1UMW9ntEc9U+!ZeCL=Oif&pJ}#U0nO^d~YzJ5asa-v_H+&vTJN_olOz*L}?T4$p%>NXR;0k6x%;-Lh7c-l#3HH}0XI?Y|=zPQyn(!Rlx zRz~h3hnb9bHAF_}(vpNhAwgUBbRI#w^cPuz=5;XTqm;`1m_j7((*Iy-QDxKT=fpW=-2 z2c)#Ss0oFghA-1Nh$Ozc$@IcX8%Py*QCD1)BI~-_2&Q}ljc~3IV3400uoyY9MRF_o0P?E03A}n7VFvy?Q0+yrg z|ELimdeV7qAuI}&E808!UctFi#$8G&PxvC zSI4%46VhtmqVGPiELzI$Y&TV6-c);7%uB8U4k25u7&_(jU;8{e^+#}llXdE-BsJsT zy9rjU8{qk2Hg{in90v>x2mM}x!en@;&B02>6f`QSo~q;fKA7vcmt3KHtlE5o&Nrm2 zfVhzKxunTj;ZB!JbXujA3@BZk)5b-@jTF>3zR@ohGqJ6%x48j74?`XH9{rH3n34iqo=37mdexV(H zPixN3s&Av)0%|nE@h5Eys4@E(sbsYU)XKlwaQRn@AE4=Irw#w*pOVw@DVF&iG7rRE z)(>$Z`mz$#z?@f%U#S_M2tE2M(_q|X>1bO=%A)1OW{!f-QLpz=&f!dTGxf1{>w{%1 zfV%|n__ZiZcaSKWSmW={PiJ_Ggb@O?UcI4G24v}D((QNxmDwStwAI|y_iM93yX79pChQ!dDG z+08{ar24WciK)HmiA+bB_RVZ4FuyLd1IRGDvKi zxEvQ+DGCQeE5%;w3*F#wXmPjgc9g|~dssXC)|TAjNj~9>6x9u(_fhL@Rp_UVg%?Su zK1M$VuAqAQ;@`=_W90O0E6C`ma8ngMyTz@OvKXXG;Avz9ng(^Ym+a%yal^g z)R4xyMq&4*)y+Lgvz}{8wQ&p?fdopXWDT^Z>5UOmXtsit5gdL}ra)5}jxbSc_w8xMSkC}U@7;}DO zJ2Bz&sULRvV}YgO9XrbOyk)TBkNMF~?UP0c60^ZF=w-K|)?qVd_4hrpA0%#8^YoeLQS=rVoGDdM999Lfd}VD zhPWQ$J|n+CnO8;@S*Ga`z-*yx%GpY3 zqtXJ4fdH?l%2D+rRjtrcNU+K-6MzdNL9FbW8dV>`X0Jw3uxHH_nybCFM*jYA)1x*= zweo~UEJo7gjveKR12xoY*ZAj<>4UP2A0yF<3C$^9tlHpADLfe)}5p82`Ko1t!Q zeVEN~A8PpT+zh?WkJ5?khM4Qy@i2tx14%RC?V3_ZP$dXZ(m3fa4c&Jcni2?)l1Qg- zB*mWe3bT0+thD`IX!|mWv7YZQGEenI62!IZcRv1g(&`Ikf+Qi$P+&voo9OU#3S zcE?(~jdUIsgQkf!*~H|@m5In(srgeh79wXtD|-d8%L z;rR7DMxA^%{&DqF#&tUKY*WZCK1*u|X_W|GrVN7yxQs=*v{X+7eyV^sK2fu=XIC;Z zOhoMg_}KZ3fhb%Qk1ySK*s%)wEiO89G(2&|4TkJK!JF29OsKzf{v@g0bhHT0QqB&GojK|Eh7_C&F#eY~BP$%&p`u#p! zY6zMCN5)-SV-1B22ew!!cyC$^ys7`x{2urI5F2YefOsIzoSSJBq{3!FYLt#$WQ+X{ zDdEtPS?E5wJJg(NOg=H`*~VnQ*SJ}*Xj(P@tqR$%1hpMt1wE)Yn|NV(iSUEtjHX=F zNhlfZy8fri{(zhO`O(z%x(Airel(=^dk{+}^a|0EedyXt=g(52YG9Q zvSTbvx@&Z--YvBC(4G9T%Lj`}Uyu|QEztFf0}DCf;YwoE^^);4rhX{y(qiKldmlfe zsUJ#EWKyMg(rNypOY}a=-63_%3?e#z7Gurj6#W>A|s zA~3PkH2TlZh17<$;v2i|OF&O?xfX(2Z&{@R_+?VGNvzLGH$F*VVy=15hn>IorYz0Sg|It$M(Mw-NFQ50GBl`w3b<`)Xzj~vY$FKpr+GMJ1J zX6D=ovX&gw`KB!f^=;pN4~^P(ZZ=gqNI9*O9Z2&nT%ujn^C2PB8MH={3au!wa~gx~ zfQDRj5ygPkHUM=>$;9122u0D-@*cP?(nFZv8O#rvDoq0p$-)jn`p7nTCN_SH=j3hJ z4|1Jx*GYuf=u%-D{0}4Vb$%ICgt#=NHp|+sra84O*5@Mv zbQ{0)$93WtMD${PucE1b6`z{Y{ne%CLlUTlR|VyA2=r@?%;A1}+zb00?v40CX`zww@XTJ}i z_m5ui_rExsSou|yUKe(MO!rhw5o8Hl1`(AV?5A@DjtL7KXa&|;UY456%p~4lF*cXG zD$K3T1P7@pvGtgr8!9>o)7JusXe)re{k1$mK@QZ+1LHKwun2p+mCGnokvi+v9YW&(3^E;?JMtO(e6gNBm&OK5K$NQxoJJM0^h^RR-a>4&lo)d82`uLW`o!0;lD46 zUnXHdG_^gN`nBOm`n!~*pGW1|JBaqIF+GeX%E-)*(VgX~^tTkZ>Op75=ioMw-#8)* z@_)S>R3ScX7gfA?OWqg(#Sd~-+!|K#tzB1fdwvzs)H4BaEAykNd1kKWC^d)UdA2I2 ze|7ZF#*`k~h-Sy{if>7!zf*%Xh8I0-C>cB(M-6tJw0n>@x9&3MX$55qpG09TCt85i z{M;7dFKitSS*BDV(!%m#;aDr}?^c-J%Ubc0dOH()So{&Cp@wzQu2V-e^}SldT3Ygt zFD~ALoE+`iSB~;&Ja6+iPXLc-UHQMCfX&D0c@Y~GF(ohJ0Yyy8i}r*r5gtci$+(fk1X7$Uzlg zij>1_Yjt`0mF$-9T70%U=-=2trINqTi)4cN(>_46@;ndgl#$+kLh6(W;tocNe;JGF zoqtnDk^mDVt-QP8U+>@WO_}yaQ?Eo*uV;`cu}Aw?5Z92}Mq~yFk75?OnEI|uDjT}4 zsA}k%vs>5H-E&Gp&2rvK$|1wh_jDXS1opsn{taIiMnH|6cPD2LyeKkRHw;b?!&k4} zrjk({pqZPU;yGFK0{;!l>1Nqyv?h0eCqD zaH4wNQqG(=@l*FjZy`+i0;ZP3)@sG_UBkDe^ZK4W7|7}njTu9O@;`2-v#FQmB+vmH zT5?xAMrd_ARfS^M4*{)t0-&hZ`B{T{LPVkjLCo3yHUe>Ns};h{X|6(~tR9Gz*1l%k zpndbEa7+i`rDYSUiL)_w?Zdz-9F*j@7dX7mgS6oWz-FN|9;)y8npm0ftL)@9zS@9l z)8~j4xl$O?5J5%GjLMQpJ4Um1EbN{ZMP`|)rL&s68a8V>riC-cU||U#Z~+%g&VtQa zS{F^NPd{GHX!JC`Cu`qFsF|Ue%0s_q?7NkjXVbsn6IpxC=D!9U$!Hp|;~o=hRrm|%yL&SAG2?KwG)9$C z`k-9tJzZ&ev2XK|FVPG;g5id%;*hY4Ca&;^($v9345yC&9G`{YsW%J)xf86$?36kN zg7N&k!C=Urh7eRN*CX_(B>iV;lXC+)V3PiN!;nczORS!k9~;=M*}=bu{GXmPat;2c z-KYmszyR8pnEP6k>TW3a$#tYu9l=WptGvzl#8UM|3&jn_N3tDZaxf;ro1#Vp7eKBT z(Vm7#J~}Y1S)dNEPJ~Xeb3Gk`I&XeSz0F4*Rsc7dxKSdo_`@=B>pT5@lqg{rp-h~5 zSxn-+MW?jW8;0F{s|Y=It9eT@)?LoUB%ChdUc*dx|K70;rp!IAq~6XRfPh}|t1xM4 zyLI*}FDZLw%g$*Ypdha`OjS|x^3WQQSu)c0o5(DBctoa$ft(&r zRu55nbNe^3aR1C6fu!BM0{A!Z6&$GIWjeG&U;7$^ovp#TkgvE+CW;Hx*k7z=l4gqr z!o-0SAbc$Z+-_Nyn&Kt8#11kqHn}PO>IYl1qp8gcpMjMn+5 zr`rj$Q%t=mkKd(dcXe-)o_lBBO-=EY**D2E*6iJsp6RprUb2Q>{iL{BQQl-K;p6dX zdXgknW=ION&Y=lFGddpN78V``B}aH&O@n9!ezWTAC#odx%aSXc2jLZBZiCS$S)Z*A?8(8NhU11~Cyz$EoGnxd%pA49c(^3Io$Ggy}PTf z@q<0!{?@>V9;|oLS!{W&-3ApFMr;^P4$e@yY(++T9Bz5C{tO(f`FD#orfWBbW79Q0 zdv`|1&Hnzg8~^LSpW|P>2RPTpKCF#xlg1p*#B|lW`Ai=vfK#$~`cDRDI{zkjB#$%xb>Z!fCdt6UY17Ug0}2Cx?{LP5 z&+9Q4X7jpY-rhVp02X|^7a+KAAM&LFll}?De}VXDALd#U)Ot4k zO>E^4XJ(nzsaYp*^c(+YBP#0v<^p6zNp(kw5}Jz(PsfS9OqyGAjveX`zDy)e?(>Id zp0+lBdHh=41r1-Eb*s5cuV)!@d{=Tfe=-m1dMI|q(ArqEoKH9L>1CnVj6FiJQ$~hj zHTbt{*qLilxi(hAqRN@0YrAWT0>B$pMSLpDW5A5%E~e{NEu!G_`2sJC8|rxW${<@f^+9$9o>Y4TuB4do|?rH@n~*sBQqND_4evAl|} z0Y);4$M^igcnI^u_({7N@j4`+AOHL*JHv0kdv$Mg^e^YP4}7Vw{PwmIJReAeJVCJY zT&?f?b_CtqA-}z$qX6mce9t}sza8@5!*4HZ?hQ}=llbj5ooRkMWQY8AA(G1=Oker! zXx`pue*5)Ufl2@G;kQF}j^7@AT@QXcBzCRkZ} zypHBxZ;#h2x7q-I<52y|*Gzzam7LJ7&Tc7{dI@YxkMCko5W-w_tYR$3kI*LmV& z&0F?#ZhXA!)zY%3nzuxvyZcqAT|zcUU@`aW3@04e$=0g zZkSn5F!)e!mzL`CW<(RBZN!?7*;qW@eAM4!=YuR@o8tYM9L$x`8o@3kU8l2E%t&;q z3Zf=YXAt8w2$nnN2Eu93Pc)zx#M1-I496W};VTL%@UZfXv9$k5vTv-zy3>R-tz3Hs}kIpL}3pS_r3_3S< z2fN-X4VHb#=~AcdIBs`VFD>?MUqT)?(|%IF&ZRuRUC*x%cD>2-zvpzh)7Fo6=8)LM z{sFp~*o*V@Bqly<;yV35el985@UZpv@jGpMKi|%=xRg-%zDXkFXI4++mLF#jpHTT?mrHI_=s)yAICvX+c#{x|2X*m6}G+9 zcbxN_wli(}0N?hDVLY~dpl>_R?`_-5eA_jC7#HIo3*mn-*MbD&dh;Q4{C{k$YP~Wy?(NWIolZN@v zTXYa})<4lt1sBDO282_=jgg~Vp4JWB&|R$);r=39v&XLM^VszRd%&*0LRmtku+6aS z?EF`K;@7W2t{%T$_2n#nee#X}Y5e*Nd{g}ThMO|{`a7VBKfiWb<$i%tmpHBO*rTCN zYqRce+0Hh&zZpXF=a=A@atJb41@Zs;w%s59;WHh!-5>wKzYA=;KmN~g+NPWK0{pVc zX&XzsghApajm?ux47RN|K|sgew}jq}2C0 z&q%4g(G&`C9XjW7je?zXxkkaxxm?2^>U7TK8vanva1DR1li?cvTqnad{JDA1#~Bj6g8uQyzyXS{IB+bfKQ$2tJ}z=J=f z>K$>JHAJhhZ#23bmrS*BVP?hilo0!1LUmXlk&^ceWkoPm!(LH*lhIE5|$oK_gd%Z)}ht~_&wT) z!_%f%4L7yDOjAM;UEcY%*$z zo4vU$>xU-3>UF|o{mQYzw4yZJtX8umW-Kr*FoqckX%)%`W_LO@;)GwnPMk(6Iy!MX zH-Qhi?oK$`NUpPhM%)(nMGn=>mBpJ+D=kW1s8Md}^dwU>pv^TUe1k%Y8Nei`nop-j zy#CDVMafC2bq02rVJv?kx+~2pKL;2Zrqk22tT4T2Xhyc@n_@2vhf04g2D?vgJ}1Rc zx+EGFF<^?#=R_}erv zh*`4Epjtv2WRo#M0wI;nsfra78OOWIIIb`yrm_v=c|L~mV*gA|OZ+oAE%wjkG|yym zDj!Ank}S!;RWs(jP>LXE(dXgUeViherb=0yCWx!_$l{b{3nJ4hEdq6ElxBgAkuXx~ z<}yfUjLp@^4Xe08(foJt%f3?Cm#)KIfCQUKsNH>B8LCZ@bJ}m5)4CGpbL>~pD6%WX zjH1)EXuXQN&?c(~aWOO^V>_;!WBD zB@c?=vWj0K`1BKSTJPj1J)*l;$Sa2m^Q&URwzHxMb9!X^ZR0YZnEgq*g~LG3BqoZv z(?kDI6bC4fip>NvrqXqjrxlSt%1{C4B*IBnr*rL; z4TGOGfp+%M7>}9!yIi(M-I&pn);B)}dwGThxS!2LcUI(8S#t*bTW(^SD{>kI>636IZHI* zQOgLXe53Q&Axz}K;6ldW^ofTcL=I`XBl%PY&+-8C`4$V9pz!%moG^r7T0Vu1e0p0` z3S4mJ;ko-LWgNEy$Ts*q4S=fJppa03xC&Q3HTuY>Zu1^5r5E<&SGeFSqpt9C-Y$vG z_jBGZH4?3VPoM6EMxvGUygbK9w9?M-W6dAo0bbkn*V3}J%^%s^g#Hq3ZrjdEv{izO zuSApPghXrRM-r`7r#G1b3P?0v73jf9B6QXV%lf<8YhrgS)g8z)JskhzL7qI*hg^Bq z&S8Fath?6b$+NF;DVHM?aFGc>Hz;!2eS1g?W?!L~6sk#fMs5Il&SpX%cK2Bm9AFf+ z^`Wwo#KABb%b?;Hq21>Qh5Rl&@Yuh+3#Ezg10>spd41@@_y;~!7s7_?|C~uJik7g} zU*XB3L=)>zNF@X6d)Fz(3UX8qpy(LEENo!betKDZ2+O9}<+T#2*~Sff^|%om&w6#( zY$w`0o#X*~=%AJZas&)$pIMe%o0b%R832QM6G_qA`hVZ}%b3y(f9bw5i@#iY)&J)& z`5JS{%Kvu$@&*Lh7yfd|m_GBDscZB2%b{G_5pnYioXDLZ1Y2WA*-uzg{#+`=-w zrbWiLP=iTZGxj{zdwpI5>IW|co0qh%x5T_0*moP^%R|cP-GU0^@(f>3}+C$`+^Pi`=Jjv#l#Ra8{Q$KYk~{Sj}7B z3^_M;EsJm?>F4K}w)$ckX{l{_wy1f_8_Q3lk-R`Ajl=5tez}cWY3}c|jH2emb}~m)g*u3%O=Upz>l=2 zm{f@e`NLFOv^T8#q(sCJVCa!&zrN4UqPg5}@fG5+7ZFbsL@(FgGqt;f(wy^=1b^RbihP|YwV*@+Kn_d z(cqd)6CdtHgD(qpP9q?>YjS!+l(Tv*yR0snt>tZZXM1RM|Kym^YN86?PVUS8!$2{W zC;Rb~-F{W=)NEAK05au-R`(M&RK=fNzz&x7%gWf9$gad?gV~vw-j+eWo^?&3Qiq7yt;GOy2ApBxp6y<8o8t$Iu{^@Kb~{h=}OoJz1L zP#ya?pY{Apaj4Y8p>?Q3JH(-D_U;=Fo%+)}9Gb$VTz$Vau!`yE;Zi7B<*B@0x?bJ1 zL$3mkXYFnp;r&|K_{0&H6pkX8pt*vpzXiJIFF-{6rMEf@VDaRte!OA3$2G9QYwz zbw9Mq^p$^Z;>t7@qO&Iq96Qq zkG>J!#~(VRWeHnR#nQ;Ir7yA0q7Jux1+5fivgx59)34J zi_Y86OVfFDbZTANB^bSgYAR(3voz(^g_->>4E`4UH)%~;8xnAv&9!?$%;I9X0+5WI zEsKIZ3ch}>`J-ct$0f$GT$)yUw!g#M%}Tg+6kWfNp4nX;r>k4|CJ(ReI2GUI7PC*` zRQwc&8>KD&U35dTdf>;Iby00m*s0m@5aZQ>3W$|PKF{Bh=%Fho$qyJEEBAm*{IX<( zkr0@~qHm&>zC2_+Y{ky%+LD&PM+U8pOwaeQ)$8_&tfTvS*v=UpJAYha7T!8*HE)i8 zUc*|+1@Eha+8fdix3OF|LCRV2ZYEz@j=$}+k*-_%r4gZsr_vofVQvxwo5#J zTgk&n8YLjI{$v&g zc0!;2MwY+r)^oFnXZqX>@tA#7R-ZPx!Lyg+7hsZPi(ou-`~`rDom3a2gae-Bs7 zALsoyXyCi|MU^`HGkp_-huoDX21jyf$EwtKvs^7p=VW2YsB?U=WH-sTY%Gz7ZXh1I zZ99b}?{T-~H6O=+9*5VQl;fepVWaq99}gW48ynu?;zG2i$-_66Qr?}Jy#j4|aPo4PJIbKTB zj+edb`=nUCdE=+-L~n}K*G|ZCyo|j0ztZt?{TmR=blfcd@f2C|pG4d*T%GHW9 zMfr9aKud(9&w}{vdV`i14)pRanN`@}SaoFzbHzH=1|Uo7bmvCK|omUJeg<(X*u&q(uX z(2`E#RA#C$T_0zaio?pFYg1x2=q}_;%wNbUTa`!D|NK^8#Kcds7ILPak&7%Jb6yZx z0zKtLgOL~KCWg?^16hEH#g-2QmR`^$TY6maDg-g%f0y*Ag&cQ6dh9G}?dPGEx9pQ| zq3sae)|d7H-M;pXJaoH;OSv+HwRX>QpJ71L+F{@JG!qhNY=BHiph1^r_=z%X874!J zvG|MjAX(cK`f~mFd&?nijME1E_@$XZw?s--4hHFywXU^{RZ1D!`r3}O8+sN~v#XlV zWO2@88XyL1`hCEmHT|5nlb{#vvl{cFiC7`bAk=a!#b}STk75-Lr0ii{#0o4}#iv9f z6saU~orzEX@gTSvtmzYnkxUCdIW7Ykr@2fQfMV5l?W0Rq!B3 z4=ovFm>{cx0|81;^bthC}C+*HSME6zl zq!)eUFn0yPK7LgO>eEW(<%Q3?yC`HOr^>AqOBYelL@4mt}3$Ua7Zwlu;N+WIZ=9%Yfco z4aU~5e6vW-x{hP&VoU17v9qbwcx^NN(FU5(L;G_yo;btSfUXgj)fF1Fv6@r)58e2A zh0{y6@CC~0>NZM*iK$e_?l4=%f~~0tncCR@id-3#C0Fj=j9hVb>iBt6dRi^MVz26& z9g97w)Xj9Du+-Dyb#La&pN{M47p605r*K9HAD1nJy|_`=5ob8Cz_?RVc$bV6#zmaC zSRg|5*3zLJ`GU_ACAD<3)}4y~qCQsxz2ro&$3jKs%5L%q+eER76OEoDr!ZdAT+>AL z+g1Tb;|MmRaOWA-Q{G^US;E8yCchVd@S_x8bmhJAwa>!0AsP9}UOZwmnr&S@k+|fg0I!+psdxv%%aYqle zsggTN*a@n)Bo9lEI>F)vIKo9&IokcVMmZV~IbVtq+m%t2%tO(oR`N#ANB&5?;~P2g z!*48K!#7H!pX(`@?Bjm(_VU~Ch z<-y3dY@Xi5#oTly^Rw%h1#~+;mWavNcnSy)I+nX7iWTEV8JUMOzuW@1Y+;9;e86=Ex$g`5Z~5GVF7RcD{k(`M0Y#KJb!#~62T z3&@CI6MT~}xZK=LhVPY63NQWQ#(w=QBIOe7i=Of1 zd#HGZ68gQbzLAey8V+v01m-(eu2W&t5bp{GoYvp-=p&l2 zgf?qP0R;V7W345i&Iq~DRM3>#z{LtKQY3F?dEzzhZF|RQy_#Qg@;a?jHL0iY7JDS! ziVwfl#HiTAQ#2`Izd%7rh4{%^Mwm&etfe}g)lT$@fo4yT=~eW^51cERItvIlC!OEWX`L^v zrDc1W(|Vyj8sfAz>;9JQgPpcrcw3>&O$(g1$H3Cw@@0L?w)4h|IAI~`${oT`tP5)i74%tZM%Q=CemU(X50NUIFS$U zTeO>eUAqdl>3m&fh$sa*6iCEJ!ob^X$Nf`ck#g!%+g=c`%9_T&`~l0rj-oK5>1i1ddVRBxw?f$?a-`FFz-5=`!-ZyN!Kh~{a z{I=a6>*)WProBKmNLIOzrXAq-OI+Ct5}uRJ#^?`c;OOR6^M^Ck_d6qi3Lqg!^i$jJ z59bTg*%xkjQ+4)XtFU5@WqNKv8*v zsIgr0CY`^j@A-4T2cmjPcX=>NzC6JR%1xepA)7DmiesU)!pTD9ph)b;n=9b{j}00Y%(bYLfxXF&rMBH4yO13x*>-;_CYR`c*mi&H zg35L=?FDizg5B>k5W~A)(TLK#oA{Bvaf}pVPju{I?k_kn*u&RsyZ^v0j*>~F0LjdY z&Y{hJKufhyP=F;ZQ!0j&2Kb`&Jd+{X%iEZonT6Vo{)tAD`==STiE2bM&rJ%WbTPdp zhB;sz_+KLypOcOB6X5?^oWW`QKRO%#Ir&uh|G4H{_%A|owWvD{9{AzER(@DhPG^ZO zb*`mSD>l&4XYDI9eg|2i!HKn2-ukmzM9#NOdx0#`bMbl5E_s?*!a*PAC$ZGL(4ROF z5#vpBfkde255sM{KMq4&e}`8T#A9gWIn#bpi7!s_el1BE;*$ndh}IAxG5Z~VxB*v{ zL!cl2{RFPHw%wnJ(2p^;-Jj-o{~*&|fQc~91Wd+=+CLa>QxM*3Ewl0;2mScAZTBAs z-_c@FL3q>8Ikw$@9K1hd+x!j5&XR=UCko9MDuoPM`sqJT@W$nx z{^JBMUEb+GU-Jy_^dI9Q!#n-Qx6trTe^p|!;hp|^tmU1gJTjTtlVh@Y=O;+g>|nYk z4#t_=Gyb{n`hW^5di=0xVirIA2`8V5AO6DShl7vG@WXri%nwVPYm*QP{BZurzVSm9 zWi5y&(CzJ(?)g%KC#95=Dh{Ubd+f>fWDBCRHTCJ2K0Wzl9@mH zLdFWSL{t}Ki+5TwD@p`MB@84#~yf9mQ ziFU&lXZK=(oS(K3{Kr8)`J2sm3XEf!u@L-W9WfSyfBzR63&EdN%r_Q-zbbW!Yaz6M zY73!c4Xof$oQt^{(oW}VH}My)Q-0&2S^VI;6a4wXzo5Q`!jPmny>fVlQ=H0p+J9@%s~{Er)MB4MR$%|$Y}@^X2+SjD+x;=)ymUTtf9$|AILtg>0K38d z5wwHdX@9#(7UwC5c-q=_>xFu;TwJ@^e|%uQYd8CkkN&w-;Xl5Jp$h-8Ei_c&kNHi8 zD*T1yB1090gruq%6er%(VsFN7uJt!A{OpFbI-6*Nvb+`KR~~{!_HnIpxEB!{xC4<6PK_XY!n0Jd@F0Jd=@LJd?KKLrEg2SeFck{RAe+bw7cp zCf&e`PvDO^ifQrqY4g}DetPIQe}4Ke&^LY~Mv1=Bgz4mQ+MV*$EU}!nsJw5SHn;;$ zTWQ)0bJ`->4Jp41?@F`S#Ga@Go@gt*pJ{lY7tL6Pa&Md!9pP)eaaJ_=ODyN~FX)2r z{&d<6=bUD4EXd*ihd7Fg6aPCLMg0^1Z#ard{~vS|u_Y$oQFLJ6_267%FtdNV@A~fB zS^DlPqq6w(R}T13@M&NFPfw=!GkPp9wLjP~ZK# z)f4^4!F)Yu+Y64vE@2i}azoGjvVGoP4@BR+$hP}i&FH%)(#|;hC$8^Z-`!^4<3CRN z@se#XIL=3Gd%V^(U4jrpjqnz;0l^UA^8Pj(o?}>;2)lv=@J(t^eo`zeq3s#B+P`CoVAl#L@&= zDnF%O|G?cSl>PGps6ZNZq`oYa>lW_J~!W%-3A;+`?P zien_Gx0#>9)iuhgW}{fuGG};ELfZ#?gLgB9qV%?S^Hap{nnF?fMz4i6W}K53!h0l_ z6ewvXb<{XElMulfE{aUl92Kq&jfzRc)wCrOgS-PM6g^VUvMUDn3lOpfhYuW#+ErK;ezfC6q#`AmY2 z>&p34QXWnf6JD_>Ks+$D0?UI0@7hT0^wuV`d-Bcr@gq%c2ukjaG`EiSaug^g*lcX7 zY3DV928q>`#G9aC-gZ->Vkg3dV8k!?6UrcYpaa z0X6I#_kK9`H_o3AckB|L^uE(}6k=cTtIM8d4+xK#aJq2pkBR+g(0n$=C#qn);+w;< z7bq&#Z)vHSG$^(>y4+kSsq2^!09I8*uNLte9H@^07WRjJ7%!W;M^S56#7zzGg;kV{ z=PeJFanH{yb)z%og~!xA{0HIGufws)Bg1RoDy=L2Fn*A3?%{HzZk++>NSC8rXvPufMf5l^h)3{4K@o>MBa-*e1S6 zeWv|yH1WJInzjtW{za=3Z&uX9EYcSB!mxc6)Y%eXN)5 z+20ZL(%Z9(QGv|1qs=^+zwIcqJ^KaI-gC#1yFFW(IPy0eneEw;OY`>_X%hy!s;xV- zzQ^XEeQ9KC_KQYV_t*mDTs?^|xjT?<2FzwFc56Tv&GziOc#5O`PTOd8>A|vbZwqZLo5Oi;H%GGtOsITj2Z17U$d#q?rn_x=v#lkoUIXNN|D`<|>2eWbr zW$(!@b=vmVw^!%w$;P8-137&5Wjk%}ngQqU%|;J?-Ztg!&qmeIW+_Hj(lY@w+R8U* zg04*Mro_{nfcaJeDl&e7b`8QDJXuIQ-UOXh`UYB=WEUa;vmxOEi-KPLh0EC(o+NZ#o=oo-;#5&_yCo;z>xGOwz_yg?hHmzu4$hIxfM7BDRf8knZ3 zgW9VDj;hZgBTQ|%D{WdQ%}qFVui4S+w9NwI$^=sr*1>_m^V`E3|!;8LFCn{gu(x|KBPo}W6DX@#lX`Tc+vA68H@U*Uc0@WaH)gS?*8o=!(%C8q7A763*#4yRglX|5 z9r0AZv<8q)r)|n7o#@5BWD`9*O)_8NQKk-(VH-^$l1X#|txrDb`&RrHPI~`D7s&2E z=@-yqCjIL=Fq3{~*WpEp>vWo3UV$B;wW*n=2I!S#MG;h$V^SlQHb}LbX=;G3--!H9 zjX0Z2pv+A7b%t*oy1T&*@eQYK3M~>`*}NmoM@{XUfz-Zv)oHm=uh7oe7zgaCrgLI$M@<2M2OZOGGr^_fNuE1miL*cQM_*Dhv z>YCWrFu!OyvjU@&mzl1@H(iN&?yc^g-BFT}rk^B>%NLT-{StrT)%onw9h$Opm>d#U z!823dmfL!>xz_8(jE(_yq|nkfx*4(h`WdkW4K-FZB~1Y=y{4U7YnH)M7&5kuLOj#i zBz9TFLzO&|xFx+j6wIwR{1C0K{TP%K4|ja7uH!Q3^IW9(_nT?W>=qp)Cf@QyP`cS^ z!=*#5F{u#hF!?~pP4RxafRI*q1}ANnF!k72lj}Li=2Q`uk*J3>Bca58Y{fV8?G8~X z4OVekX60yQ3A;}Z^O=b;Hv7fu0wYx%v(luH$mEtRQDVP5HQ`@aiMV1E-AEoy>4fSr zuTfJ0x~_=-;Io$JOe8_mWGsM+QIWlbLD-GOJp>IkvdorHHn6kj5Zln?i5LlTnN+i* zjS)dpy^?>;VuZ7~r(U4sMpXLlpcHllX;FZmgi`$Yv7g9p(6@L&d32ikSRWs=2D9=g zS%Zx!+ik@2yg+7i^tD?Hi z9M*R1!__*Dq!$gUrqKFngZe9LQe;@Tb6F6a+ZO-j zS4Bq_uTr1M#;fh|A2~TFwZD+Tq7-`-uI7^_7sy>4r1wMD#1bw#)pb~fCfxaeL8ovB z*>(X42Fq#XvKEIA6g0pv%p}n`^~lliYC9&@#m+-RSdND9rDon8qPmpQH`rQ3J?u|Y zV&el39li-+NbfM{pebhhoVI7xQ(gckfxfORtA)URinW*wCT;ke$;m%os74iKBDpR3B)jjymWwGD2EDF>WFZ~St9y)1VY@O5A z!aGeJ`2+Cj@?dJj?@oNZC{e+g;0z^-iB+0~Pm60;4Ao0*&Xn5NR5s9pIw2A$mxsEi zmZ{%*dnh(_Xl?fZgU6JiT zQctD#S3F@Nk}&ws)%=8LY3v<#6Ds%{@K<9$YlCsJZBr^)8m~Ti3pQ=iac$j(_;>gE zC}qkJ3s5WK4;&1jV5O5={PwH5`F-O6tTy&f`9lzrE`MGIMO_9(eYY7XWcc&nJ|l9l zboAg5YvVT6#ompdKh!7+X7){j-xY=<+k6^Xc^i*49C>QuPF~B@Mnn=T(&=TqjEy(Y zDvZi4t7WdH)BO6E)mrRdR%?lWS*^wXWwi*L@M_^4ULE_Odd$bRy3Hs!M>R&6scvIR z+c3d35JVG{yaGyIC1{1(FElK;QY^T!L(Z1mqFN#z?R$rUs-YM$1Z6>R+FE%UcTyA; z?MxA)k&#wJhSt{%>K|&}j-9;F$;`o_gY6syH3x5UV&AoIWU+bSuSW>sDOZ#&PnzOq z4zrUbx`}9Cd-enjO&;OL@txKmYEoonNKX=e1>+M|qj3I;Q^Oc)J7xfjOMu0khS>jU z=5kGY)VQ>UilI*i&)iMb;B1zIi zmAu0~&W`%fuHo)bnFu)+DvvF!ik&{8yBPhxC=uaNNuzo)Q;J%{`GRQij66Yf2A7a2 zHL_uk(A;{P{96Oh(ua=bW__wPFj^hzZVhyCDw#Fkd9TZ)Yudnx8aBHP=AvAkx>(My z?lu>t1&1EhX}Hs1Lu+6Kmukkp&Yl0@vi@=Sx;+B2_Xb|zI9WOWhLpX7z4S7Mt7*|) zl0~{hb7P2d)RqcWIBp6!ZE*y-FkyxGX0vYUxINI$Z*9xl#nU^7&aLen_e|(9E)=1| zZ(DXyI5r_51TG7sbdU^TO+Z5{a$5HQyqF2&`AN$|dHQN&FY@Fo^61Og_qccPd^q+% zAg+rLG)P~~RDkvMlJ^a|S#FKS+KySzl*={3ZNEp??YESzQ&B$tY;EVzXTmLO(KN3M zG;%{Ywl+NG?{$;@x@>M;F_kSJ-GytNQ&VB*kqsX{7w+!DqnQdnAD4Gj>_?s17*4Hs zT5r;wvG?LXM5_s#YVfo+hbQ4;il_<5m=6$<+p?vYPlqYUS=UJ~)SuzujtlAQ-@_fl z!;>Cgx=ZqcFgk#JKv$NXAt=Zl8sv-KkpF;>vm{)+t@gtgO*Vp%8RH3^LrZFn1@s;x zsskqEdsXB#k<{78e267#nioPSs23Swn7=4w#Zj68Qg~N)He~`Z3#b?KFir;!0oDo$@rvk0f zPdbM(0t&|0#+YtKR1#1+iIQi+43!@1o`j;PP375s;n*un+4;?o@NTdDE2->9G8a#j zg+ILA4lcDWd8pzY!fRhGsf#hb*rM_>eDd4`d@Ka&isQV!7N?B{-}(=uWB?(w#?6@- z94~Z{SIIf9JKQn0)|v85#+R-ce?NMgQb%0uKb$y3VGuFEg}mYxFk77yNUp>W^RO3X>dxZlp;M75Scy zjEekX|18n|rINI0ciPVJ_(;n!1EOJR#;BX&j>XK&wp3(sxb2-t)M?)f5rwANwvtXs zp^MZ?)9jX}d1m5mbcj6tHX~%a24o3Y=H3Xh$K20me=T}rxZ?upt9&%t5ps1S-1>iE z@gp^20}xS4sdey~pw(MhsRBckz>i$N4Pu8Vs@Rw}8O|KPcxweTk63qq?jb+exg}4t8IdyB8RDzPQ z9jBIXG*J}QaViEo%Sqf5`E7?5N`9PqV)7Yud zp?xLQ+qQD3r(>t$$gr>Es`3@BfQThkfO!*B##bK*lO2@HTWmN@WFnm@SUhldxSjbf+5IoCY?u!IyZ$9FqK5*q0H*;JYt6NXjZB3?OcI#^?C`~3u!w{92=U`G28iVYmYV4j$ z&eEE(zN2@9JC>K%b;@vzHHmKy)SF1qN>fLuzT?ZfXKbheE-EcaI+3gwIwSocc2Rk9 zuU>A8omdqMxq6cb7&8a!u%6CHNs!VaK3>T$!oq1CG{_YayQSs7YwtL%@02lK*XH?~ zv3XukjTpe2k}uLRaA=mY1k9$35T6DD($;odfe2iV+ISTz^xYbYRA}T`P#Ut71<00# z9G7g3=6UIMXceMVuTV;4y=vMGOu;qbT=Walx%4{y69#VJ*J5B7NAXQxsmVM9Ht1rw zbLhner*#~gwZZnWNqDxw#WV8_Zr7)UAshIWk}5zs=(&>cG>b{l`T%Ei<34`)kMCJ2 z=b;uLupbtkiv*nE*BP|bjfQe~$E{p9EJY-(hGs744MF!@c&ziVdwzp^Uhkgk1!`~L zd}n0BO_-UUxwm247PC@pG|S7jZ;`1XbB`=SdOP!p$;Tch?c{B_vg8n_?bjT+c9hA< zD1F*+yJzW!;dW5SXpUp;&D<&{;}N0unn7v(HTseQT%c%X_zLsP5)6GoN&^;0)WCXh zL}xfJq@TAHQ|$eX!r@CkPLfMKk8_GWT?+5o?<6$8BF?3;SYutOFT{!t5K={Um8klLu+P;D7P~z)Xj%Q|48lw< zE!5{82vZPFv&^fP1sTHjcGtqAU zl!>1JhaxwHTUMY6cZNGAT1B|U-1;21CZaOY;NDU(JRjIAMrmZK6ZG zj-c&~zRm#I8GTbg%vAw8_vt%ht_!R(zjkdxvVRrr;n>U-dbZhp_6Ge9pSb{EWrJkK zeL9Dqsk3@Vvv~)MRUZ%+cSheHSY>|iupb&eKj;iUtI8REYNazA_wr1Po~iYTHgGk~ z;RG=~tW}fB9_$X0S|X8JhLspd9wzJz$`3^DMcYk--wj6GsJBum7RdJ2a1yefQtQ&9 zJT1iGqIeHsGSez!CqSd8Rm7H8hP$U(*UU81zAUebEt$|g&>%4iKrk%4U9C>?WW7P! zPR@k1!wtGVdz6Q+k>&ZQIwcELaS?#3yUx$TKNnwD7r@uLI^nCZ^cxmSznaF<>kO8T z)eS3!GQ_r7A8nBSi2NGjKfKf;XSu)w7FY1=-LhFxMFE#EkR_p3q1~ zy8dD_;Fpi|2JEzcha2(-{fX&w_Vhl}=Xh>4^l6;xg=MWxhiN5D6H$GQs&Z|#+@LZ& z);pt>&vJM@*cz^q^r>`xd})A@0C|9bow zcl-|UV~B15KU}Yviz0h#7%QKQGkIB&iN-Juh4A|#a3L>BShY+~4Q zO&H`F@%ket7Cky#cl>P`_uisAFq>n)k8in<^J{eu!8RIak0DfO*Q5+(g$0r=!DaV~ z6g}~qaA)b02Vuu^+HOzJ{Qil&PlgTl*$S>1ucSDI{)Ic;=k&bJQCp>Fnfp2qtJ1^Z ze^dPWi`+=Mgb59?adu7dfy=h063^b z{2tPyDz(s~O7m;YFA-!p=hzDi_z@N~^4;;jiGSgb^6iLpOj_SL$RP!5EnvCjN<3se z=3te;;5{9G^m#iC0iRBrJ8RmnG|L=4z&K`>TM|gTQk6xWwtBv+Zj2Tg)@xv80zJuv z74kc#I#883MqN{Qusg0*8V=_IwbTzY184_L=G>bhZ^qmiq}bDC+W0*rf-7IsSz!Q!O^-~bgq9K%7)gz_4vm5mzaQRRR>K}==GqU z{k3+TCUPRz4ZG5bW>Y7GA;7Q%mKhxfgwRClLt|MWIxStd=er zqhSD4Ron7p5HgM*`JOczG`;b6IMLi1YxL*5KswukjM3m$xtagIxvk3Fwq9Lv@xyp} z<461<2SseAAyCA-E4~`+MI&fr9@n96Y4!*R$LW=sJq=PkGjX48SS{5_zA|+wc5;=T zxP)lUeRZ&qgW+K!Y1*fkyJo72JfU0RIl@+uU%8nFwZ?8R1u2WJhW<7|`rAaHHY?Fj zqkx&$b0eR4E57vQttx9#LounEu}gsH-Fin3K!StrFDah107v=Il?j+{3ec=^=j7pRn|o#VBLuYu=ao=}V{~<6Y&VDt_P+RFe_9 zwl{yYvb5qDu3*fe(YWfyZU?hY$%#0Bd{7l9Xc!mGF&f5!OZ4OH)2gxM#@m%~yBlw} zKr)$K3o|;-tEavkwdKCm%YBJ5PK zxg=tPmY`irhAs($Fk&9eQ_n~avq@nGksNdUBRQh}ksJ~KNRB0$NRGoYRTkirUwC`V z&XhZ}DpUvhwQOHl%}`4Z=vb=&35tpkPiFE>I=v}yJ3p=(gSd%~62dO%4wi8llr+J0 zP=KZ?ivs+da(KMjenE8?@Iar4uf56JzO{-|cl*|@9OhTvyndV*)(IxYw|k>;>R-ks zqo^SxC^iUEoQI6~Q8UjQd25RezCbrUta$FNEUaja`(lNv2IOGHbb}Qq+4YG&W5pdB zMdxxGv9|{Zo|r?}YIgADT%X{}W&U{5rw8=|+v8>6seZQ-T^f2wT8}a;# zQqy$pa$N!qvMAj6k_ayicVHVP4g{kGw=KeyaRGYawDsp2T`GAjz{`TGixWl-L{(qK zd9N7!t1)>P{4kgL2BMpA`gfd#84w*N5Q)ewC+owAKZlsn zh|97@{2^>LXT%e@shTZ$g3*{QsmH}dsxd)fkA!L{WQ3zK9aZTFF@V#tw&U=+*kah{ zm8^^1)eNvg?Pm>oY<~{MZwkjOLx|bhGY8h(PU zEabh-fdOUO{=qenWwIGyt*z*<7$P<9ZUxkd9TR zjTz-m>r&1Ix31rAO|c5vc0T8Hq=ye&Y!iN|)y!D^=vY{Bm`>|jVj*i=wx+1*$hbe3NVVx@kjie+`~EASlvz=WHW^lg&~Vybl8L=rJ!X4qJ-yWDs$+i*ci4KL3du%=USpQI!?DT8SSvKuz=q*t!ju@z z37a@8tHdaH18Ph}K2LT=%hVRK0BnQ{;g=ZF4G5XpswFz1tt-+f=r15}#Gq$rsOQOG z<279X#W*0Hzu9n|2vLvGU}?PHuQQ0vV8Kr}d?BW?Yd96dv2aCVuqr(6n75lHZkYP3 z{}6++T#~iJFwFhe=F%GLN@?ldnAihuZ~7H`e5~~>AXTq3;O9wkR4wekqF<1wh`y!c zLpT>6>s)xP_RahvZjF3K-qs7y?WXO@1`hSQ*rUz-&5^*!4OGL4fD#C|nwPpzzRrG; z7A@^J0B``kDe73DJ^l37)FTF39@+n#D-we97*%2uNRm86mY~-QsG}*~y@%Y^FUOah zEYr_gjVAtx>u$`y%S7HmC()fX=FW7!J~!T9YJl}Wt2Yht$B1hXBpWQ35e^!_n)QW7 zvxp7Kp!C6H7UycFc8ao>BZlzRZdJ3b*n~H3Wx`6u;8ce99iJ#i#M%DA9FU)a?P~0RaazT=Mc|bX z_&pq(paAx~bC@vOM6wM6%kJ~Ht^Ry(83Z}oR`1~wuPrZ*j@5{bEUGjfU8=_sNBvPM zx*OjLZVY#?#SN3Xs?6j|BVb>6P$?IooJZyOddlWIzn{Vt@F_OEilNarzkNAo6wx=$ z*vv4Ze=@7a|2zmc9+@r7qEvbOt_ko)$nenXoj1TmG>OJ=Vt$dDl*6y`@Jp zL&V^R&3p>u8w~D?B!d}}%yICfZFzamU4weV*%?yY`Ugvj2#-ziAH85mv0kLuAX03Q z=ll|pVRV@nza`^BxU@jKR?6L8Xyb@ck}Uy3ano^?Nz_>C>+WBo*;P$19-Sq46ZIhC zwHtllYNEQFT|UXm96!zdf7(eujW~OUpP%Lx8Xzg@10t#4>hz|-i~Jxjbd~WtZ9h^o zbZsDW=i50m@wD1RRPOLC35%4wXz`|^kXt2dDvmxYGZh#8K5Hrh%nKjTRM>3g-gG!^ zn?=HgGb-(bH!a$X;YZjewA^XEO+6NMo32CM8fW~}wy zkK_2bvhIGGRk~SaC|(dW6#uyTve{7lL__h9>+8@;5Q^6tuS@aY=P;ouTb60fZ)jM+O^6rnq<*YP?-`^kQ6NC%gLLa;__7LO6*m8c2F zmX+&Ly)(Q&Wz95!G}ibAv8bbZI=^9ba|!8? zo&q~SOqi(C`nY;5n)s&2&DyM&hX;IkFalgq0RrJXGNP5Drwq$<}zs0tTBLwU9=!iuE1{gP|>B(^L0rS zx;OxZ&NerEathVg1+Mrj2X2*DK#x;nK#2z%45@AVR&*w;$02gu2CB3JU)h1%l_^a!6<%T=8DXtZ*wXo_~B~1 zVA;$)MJl|lgK+F)(LgYM!MzpID1xx-=wVW?!m>F~772uKhO@dL{;;c%x+FVfz|{TL zi_UmL4^``-S$b%$Q$AbX+u4C}xd8_-h_cvpycq=)rnH&k!E7qk4=rDaccY70SC>o~*Z>?0L8Jg3(NZ zdnZPgcXxsKv5ft0ck7e2Maj3=f8Mdm02PQf#1qGwV3me|n~sWGvbU%&w%f~qu=p+z zBZy^|s*vM?vnD?>qC5~Sr*{>P1^_X8ek1+lo|;SU4NTp78O1|1edY13YfRKhh^Uhg zQ755}YfVRBJ7H9SbS#h4_9PVLt;sC^<(8Dvgy9b`X~I7LtF%jiM8Mo=(}FeHG(kNX~ZLMyFNlU)qe>Wik$_i(!*gXo!S*eKoHh z>aKRx#b)9%`D!!WRKlT0_g8=M(8&?wN-B4iUAq}2Z16+4tMHbo#_lyvVm9;!qPr+l z5#(+YtS2r5fyLPMviP*09U)b{~`-t6{8`1#kvTY zNQt@T$@SptfZC3k00Tb+TiWFnEi$>X%D~qxPK##H;Omb#$j8_FHGG4wUo!1I@YT82 zMQCzmEw(rGz*!+Qd9svHIzO$W5E@*YU>kd+breE_v%A~I9Grc_AoPI9Bwjfnn+({G zFT)xLxe2VkGs7S>^?%oxkqDvJarCgz#YO0OOD#eR(TUUoRf-bFTdcDvt@SH(!MOn( zd*Gk-+8Lxy9_ixprg-~PIk?QiY8L37wszt2<@vbmd9j3NF0xRjHaWw?@Gs8i@KJzaJ#togz19~g&JZLtSPn9dU7LKpLB9C|!pU_TECKICYz>o~>bgaXovur-N zo_X3e(6WW-?L~nV(GeyAq_mDQ2q${DsYHEBHGF|pAwDkoSSgRqD#k6AhNsSIoH%3e z;96ooFjQ3C%t?GDREjF4V?JT4HA@W=$rEcG7A?k}QA!1uA|XgqpZ8-J2K6X!A+Umg z{Nuhib;tF2$>!OOy(H`;^sN`rX zN<7Dq{}D0S zN}@u$|A^?(2HWmGA}0GD+wPw&pUG^u?f%*FXo7h?Qrz;D~82 zvF-jN1|qK;=3ijMKt%c+@An@u5V^y)`;QoiwA%K9Bc5y9{p$k&k!sr05E)OPf8uur zh6MrgkOi?nQUj1%ZM#1}XkTI5{ZRmbHQ084fY9NIw!I)gDr~zyKq$Dd*-n^0KqyhE z9lX@@EAy?N4be*AqyhFbcwJHA+vbsi5WB{Hu^_~3W!wTp14O3U=lvlDL=Ld+{tyF2 z2H19ghyjr|dqW{0qCkHjQlJPWk#yN8^fP!)QNpTP1tAi#U-X9vBc5g3{c(s9TXm}d zQ8D6O?eqQ+VZ{HSj}V
RF&Fh=ZOj20Ytfc6Xyz%q*xT7@gbIO*}#rnx{_m^sn; z^u~X*OQXlr=0Er6VLcZrX*@5wOQwggI0D|1b>lb5gjj2&oTPW86tR{ZCdG>br?B=SZ?I)+rhz+2m^vJws?V)Q@ zr+QO&whthYhi+`yKG4fa?vL&%^I84mNLJ8XfAH2n#R~T&lRgpCO5UNo$ClH9xj&(Asy)gYC

Xw3)cnV*U*or&(>s=d$x=^bcZAcU~5Z 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

  • Wc~__DY0 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 C_Y2CaiNBdlcztbR#|3*`;U)d9 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

    ?W7P>!+%jdsK9|;XsrUx`nEKGDW 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

    ~}!+S+5P*VJ$%R$Rx7W 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%0D$+-u{{FXVC3YDblW$Bb8&bM= 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

    PKbNg55- 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�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

  • lEU$!ESgmMjCW>~&fC-A!g-rc4C|RDq!`?s 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 z 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
    &sb?%S*p! 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 z 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 z
  • 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

    ;kcnRje{5-ej`sgcnjd@6%9(y?Y5l#f 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

    ;RgaT$kwK)o+Y7+Rq5P-)_?JT=4E^?_ijH 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�`I~7)zL4uKD6bW8K;seXFNJMN^LfM|G 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

    kyM)#TCIO+&DN;s#U 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 VE(Geu~sNoU3fE867R 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⋘Cjbfq?Wq1pI7bluT$TJGJiq_&4V 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

    cz{|zqVw7jz{eQox>!C+V%KKi<*xBS_ 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

    ~B+L4RMr996!eMbO+tqXWLIjKCf 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:D$x|2Lvk1G7q9FhQ2qd0>6^CXee&}&> z>tfpt4EWd3Ef_u)5=FrMmGUveA> zKmYN*!c^f)>DTH;EQ`IlwDuOf)Qx`O7!ZI!d5xAld7Jos(g0H`__j46|X9EtU>?+5P(1% z0V@uTN&L|BriJ$qSK9Eg2muJhh=Ap@Y4MhR9;DKt`wN=ySl)}H*Ds$RBV<$s0ubnP z0+tsG;-_n+{iiDq+e6-`Rr(N~Q|MTQ00bZafn^BjxKfq)q30VKA0w_TgO4l-Kp?>c ztnqm2beTU6Y;lTuVH&urK1Xdtm`Ea=IymyW4dxk1wN67mjGM~qv3LUEufB*y_ z&_=+DLwSiGdVZq#72--8J{BPWfd~j#UaE+H^m7&U7x*W?BB)Fs7CGF+<9*nzGzkI_ zSb=~QSH{GLdc0e>8BeZ&lRrTK0v#Y=d1+ewqsO~L-@{8Cz)lemfIy50SRTxZ@AQ2F z^Ph7bOwHrN75kUs}O(y1R$^s0UcK|zjX0KU*E|MeQBA!$$|g`AkcdP*0{PT-qQ02>D%J7 z-uD_cfB*#A30NM>iLds_#^<*0^tX<9s_zb~7*8-9wgJ180g5QrfG%afzxL;XFO>^<>h47-skK>z{~ z5U~6>As##;$2?8a=@+~?f?C)`&K&;2l0Qz>+p8ka^A z<&t>DTliV(Fc*cqPd0zzPPHei5P$##;z7XjU+#WxoTcw)YW)f0uXywvwSWKwIz_

    ZX2yssL5k!+00O-vV0o-A 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�N;Cw(qGpugv*0ACay>a$aXjH?Rk^MBR_(N};{S+G2ux4aG4J-c88)rX- zMl~cE*&joKIrK)@AE8kVNk;a^kYEnI5%x!DR6~-H{V^n%LvO_2cNBVs0Wz|@0RRoK znEVC+G{9o=8vxJ%i^*>QKm#mJ-gI<2hqNv5w~6IFNPF8M(%vtvFTYEa=lxoKzg$|G zf1q><+wBrIaht^Z8&RHLFNw5Y z&s)D-+7{&RIQNir|F?b1*_Q7(>+k0sVEB~uVls$C$bby&PR?;a1{?=2+;LxUzeVn7 z@c%*}!1Gjv&gB2j`E>TR4BgwAdLl=FOiqcTQ}#@q0}izgw(g>V&Gwz4kg~LRD-+ z<%HdL*=@oul@oV}M8?mrpTA({zr@LA*}NIEr`i?pEirpRWc;i-v&{eI>-baWnlB4xG?@Qq z8n4MTcly)?QzPSN)So?W^51P~whpG?bbY6uK5Lr!lHNvo#c6X-KYhlW1=*c22#4^N-2GGFX7lzx5x+@!a+BBQUr&*!Z@inPyU`m}#8 z)7v;UXzRb8`SbNhv5{lV7rV@_@1GO();}lex9`{Y?f*K~KM)1_=T5zi!*AEO&!)=t z>y6J=(bg^f@y}<%`sZ)`Vq4eD&oq&Ud+Y1#i}7i1 z&lKx7VtsF?t=+!{e*3<>^Thi8Ib?7B^T|HHZ2yH=-}hgntIlPGjaT@dbMBZkAOC-u z`DXd~_2Yf+L0xZ`Uhr|&^cT7P>%{tfXHQAz`^5HN!*lbc-Xhjdy%kR{^7httUo*Ex z|I#9nyN%nHxi%K~=eCpg+K~~7fJXYe{ZDTH9^)J=5{rdj7 z@D^;}=QCN-AD{O2kH%~H`}JG#TzMUKHy`{PU`fZvDjWCPT)@ujgH_nlIMp>z{Z4 y>)qvSjjuRXkn6u`{I>p;Snf>%>!08qur{y#WLm#%x5WMb5Z3=7)0wfJcmF>EJd)G^ literal 0 HcmV?d00001 diff --git a/node_modules/@minify-html/node-linux-x64/package.json b/node_modules/@minify-html/node-linux-x64/package.json new file mode 100644 index 0000000..756b8e0 --- /dev/null +++ b/node_modules/@minify-html/node-linux-x64/package.json @@ -0,0 +1,17 @@ +{ + "name": "@minify-html/node-linux-x64", + "version": "0.15.0", + "description": "@minify-html/node native module build for linux-x64", + "main": "index.node", + "files": [ + "README.md", + "index.node" + ], + "repository": "wilsonzlin/minify-html", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ] +} \ No newline at end of file diff --git a/node_modules/@minify-html/node/README.md b/node_modules/@minify-html/node/README.md new file mode 100644 index 0000000..a1e19eb --- /dev/null +++ b/node_modules/@minify-html/node/README.md @@ -0,0 +1,497 @@ +

    +minify-html + + + + + + + + +

    + +A Rust HTML minifier meticulously optimised for speed and effectiveness, with bindings for other languages. + +- Advanced minification strategy beats other minifiers while being much faster. +- Uses SIMD searching, direct tries, and lookup tables. +- Handles [invalid HTML](./notes/Parsing.md), with extensive testing and [fuzzing](./fuzz). +- Uses [minify-js](https://github.com/wilsonzlin/minify-js) and [lightningcss](https://github.com/parcel-bundler/lightningcss) for super fast JS and CSS minification. + +View the [changelog](./CHANGELOG.md) to see the latest updates. + +## Performance + +Comparison with [html-minifier](https://github.com/kangax/html-minifier) and [minimize](https://github.com/Swaagie/minimize), run on the top web pages. [See the breakdown here.](./bench) + +Chart showing speed of HTML minifiersChart showing compression of HTML minifiers + +The [onepass](https://github.com/wilsonzlin/minify-html/tree/master/rust/onepass) variant is even more optimised for speed. See its [README](https://github.com/wilsonzlin/minify-html/tree/master/rust/onepass) for more details. + +## Compatibility and usage + +
    + CLI + +The CLI is called [minhtml](./minhtml). +Precompiled binaries are available for Linux (ARM64 and x64), macOS (ARM64 and x64), and Windows (x64). +You can download them in the GitHub release. + +If you have Cargo installed, you can also build and install from source: `cargo install minhtml`. + +### Use + +Use the `--help` argument for more details. + +```bash +minhtml --output /path/to/output.min.html --keep-closing-tags --minify-css /path/to/src.html +``` + +To quickly parallel process a batch of files in place: + +```bash +minhtml --keep-closing-tags --minify-css /path/to/**/*.html +``` + +
    + +
    + Rust + +### Get + +```toml +[dependencies] +minify-html = "0.15.0" +``` + +### Use + +Check out the [docs](https://docs.rs/minify-html) for API and usage examples. + +
    + +
    + Deno + +- Package: https://wilsonl.in/minify-html/deno/0.15.0/index.js +- Binding: [WASM](https://webassembly.org/) +- Platforms: All + +### Use + +```ts +import init, {minify} from "https://wilsonl.in/minify-html/deno/0.15.0/index.js"; + +const encoder = new TextEncoder(); +const decoder = new TextDecoder(); + +await init(); + +const minified = decoder.decode(minify(encoder.encode("

    Hello, world!

    "), { keep_spaces_between_attributes: true, keep_comments: true })); +``` + +All [`Cfg` fields](https://docs.rs/minify-html/latest/minify_html/struct.Cfg.html) are available as snake_case properties on the object provided as the second argument; if any are not set, they default to `false`. + +
    + +
    + Node.js + +- Package: [@minify-html/node](https://www.npmjs.com/package/@minify-html/node) +- Binding: [Neon](https://github.com/neon-bindings/neon) +- Platforms: Linux (ARM64 and x64), macOS (ARM64 and x64), Windows (x64); Node.js 8.6.0 and higher + +### Get + +Using npm: + +```bash +npm i @minify-html/node +``` + +Using Yarn: + +```bash +yarn add @minify-html/node +``` + +### Use + +TypeScript definitions are available. + +```ts +import { Buffer } from "node:buffer"; +import minifyHtml from "@minify-html/node"; +// Or `const minifyHtml = require("@minify-html/node")` if not using TS/ESM. + +const minified = minifyHtml.minify(Buffer.from("

    Hello, world!

    "), { keep_spaces_between_attributes: true, keep_comments: true }); +``` + +All [`Cfg` fields](https://docs.rs/minify-html/latest/minify_html/struct.Cfg.html) are available as snake_case properties on the object provided as the second argument; if any are not set, they default to `false`. + +
    + +
    + Java + +- Package: [in.wilsonl.minifyhtml](https://search.maven.org/artifact/in.wilsonl.minifyhtml/minify-html) +- Binding: [JNI](https://github.com/jni-rs/jni-rs) +- Platforms: Linux (ARM64 and x64), macOS (ARM64 and x64), Windows (x64); Java 7 and higher + +### Get + +Add as a Maven dependency: + +```xml + + in.wilsonl.minifyhtml + minify-html + 0.15.0 + +``` + +### Use + +```java +import in.wilsonl.minifyhtml.Configuration; +import in.wilsonl.minifyhtml.MinifyHtml; + +Configuration cfg = new Configuration.Builder() + .setKeepHtmlAndHeadOpeningTags(true) + .setMinifyCss(true) + .build(); + +String minified = MinifyHtml.minify("

    Hello, world!

    ", cfg); +``` + +All [`Cfg` fields](https://docs.rs/minify-html/latest/minify_html/struct.Cfg.html) are available as camelCase setter methods on the `Builder`; if any are not set, they default to `false`. + +
    + +
    + Python + +- Package: [minify-html](https://pypi.org/project/minify-html) +- Binding: [PyO3](https://github.com/PyO3/pyo3) +- Platforms: Linux (ARM64 and x64), macOS (ARM64 and x64), Windows (x64); Python 3.8 to 3.12 + +### Get + +Add the PyPI project as a dependency and install it using `pip` or `pipenv`. + +### Use + +```python +import minify_html + +minified = minify_html.minify("

    Hello, world!

    ", minify_js=True, remove_processing_instructions=True) +``` + +All [`Cfg` fields](https://docs.rs/minify-html/latest/minify_html/struct.Cfg.html) are available as Python keyword arguments; if any are omitted, they default to `False`. + +
    + +
    + Ruby + +- Package: [minify_html](https://rubygems.org/gems/minify_html) +- Binding: [rb-sys](https://github.com/oxidize-rb/rb-sys) and [magnus](https://github.com/matsadler/magnus) +- Platforms: Linux (ARM64 and x64), macOS (ARM64 and x64), Windows (x64); Ruby 2.7 to 3.2 + +### Get + +Add the library as a dependency to `Gemfile` or `*.gemspec`. + +### Use + +```ruby +require 'minify_html' + +print minify_html("

    Hello, world!

    ", { :keep_spaces_between_attributes => true, :minify_js => true }) +``` + +All [`Cfg` fields](https://docs.rs/minify-html/latest/minify_html/struct.Cfg.html) are available; if any are omitted, they default to `false`. + +
    + +
    + WASM + +- Package: [@minify-html/wasm](https://npmjs.org/package/@minify-html/wasm) +- Binding: [WASM](https://webassembly.org/) +- Platforms: All + +A bundler may be required to use the WebAssembly module, see [this](https://rustwasm.github.io/wasm-bindgen/reference/deployment.html#bundlers) for more details. + +### Use + +```ts +import init, {minify} from "@minify-html/wasm"; + +const encoder = new TextEncoder(); +const decoder = new TextDecoder(); + +await init(); + +const minified = decoder.decode(minify(encoder.encode("

    Hello, world!

    "), { keep_spaces_between_attributes: true, keep_comments: true })); +``` + +All [`Cfg` fields](https://docs.rs/minify-html/latest/minify_html/struct.Cfg.html) are available as snake_case properties on the object provided as the second argument; if any are not set, they default to `false`. + +
    + +## Templating syntax + +minify-html can parse and preserve `{{`/`{%`/`{#` and `<%` syntax in the source code, which allows minification of many HTML templates written for most engines like Pebble, Mustache, Django, Go, Jinja, Twix, Nunjucks, Handlebars, Sailfish, JSP, EJS, and ERB. Look for the `preserve_*_template_syntax` Cfg options. + +PHP blocks (` +Collapse whitespace + +> **Applies to:** any element except [whitespace sensitive](./minify-html-common/src/spec/tag/whitespace.rs) elements. + +Reduce a sequence of whitespace characters in text nodes to a single space (U+0020). + +
    BeforeAfter
    + +```html +

    ↵ +··The·quick·brown·fox↵ +··jumps·over·the·lazy↵ +··dog.↵ +

    +``` + +
    + +```html +

    ·The·quick·brown·fox·jumps·over·the·lazy·dog.·

    +``` + +
    + + +
    +Destroy whole whitespace + +> **Applies to:** any element except [whitespace sensitive](./minify-html-common/src/spec/tag/whitespace.rs), [content](src/spec/tag/whitespace.rs), [content-first](./minify-html-common/src/spec/tag/whitespace.rs), and [formatting](./minify-html-common/src/spec/tag/whitespace.rs) elements. + +Remove any text nodes between tags that only consist of whitespace characters. + +
    BeforeAfter
    + +```html +
      ↵ +··
    • A
    • ↵ +··
    • B
    • ↵ +··
    • C
    • ↵ +
    +``` + +
    + +```html +
      ↵ +··
    • A
    • B
    • C
    • ↵ +
    +``` + +
    +
    + +
    +Trim whitespace + +> **Applies to:** any element except [whitespace sensitive](./minify-html-common/src/spec/tag/whitespace.rs) and [formatting](./minify-html-common/src/spec/tag/whitespace.rs) elements. + +Remove any leading/trailing whitespace from any leading/trailing text nodes of a tag. + +
    BeforeAfter
    + +```html +

    ↵ +··Hey,·I·just·found↵ +··out·about·this·cool·website!↵ +··[1]↵ +

    +``` + +
    + +```html +

    Hey,·I·just·found↵ +··out·about·this·cool·website!↵ +··[1]

    +``` + +
    +
    + +#### Element types + +minify-html assumes HTML and SVG elements are used in specific ways, based on standards and best practices. By making these assumptions, it can apply optimal whitespace minification strategies. If these assumptions do not hold, consider adjusting the HTML source or turning off whitespace minification. + +|Group|Elements|Expected children| +|---|---|---| +|Formatting|`a`, `strong`, [and others](./minify-html-common/src/spec/tag/whitespace.rs)|Formatting elements, text.| +|Content|`h1`, `p`, [and others](./minify-html-common/src/spec/tag/whitespace.rs)|Formatting elements, text.| +|Layout|`div`, `ul`, [and others](./minify-html-common/src/spec/tag/whitespace.rs)|Layout elements, content elements.| +|Content-first|`label`, `li`, [and others](./minify-html-common/src/spec/tag/whitespace.rs)|Like content but could be layout with only one child.| + +
    +Formatting elements + +> Whitespace is collapsed. + +Formatting elements are usually inline elements that wrap around part of some text in a content element, so its whitespace isn't trimmed as they're probably part of the content. + +
    + +
    +Content elements + +> Whitespace is trimmed and collapsed. + +Content elements usually represent a contiguous and complete unit of content such as a paragraph. As such, whitespace is significant but sequences of them are most likely due to formatting. + +###### Before + +```html +

    ↵ +··Hey,·I·just·found↵ +··out·about·this·cool·website!↵ +··[1]↵ +

    +``` + +###### After + +```html +

    Hey,·I·just·found·out·about·this·cool·website!·[1]

    +``` + +
    + +
    +Layout elements + +> Whitespace is trimmed and collapsed. Whole whitespace is removed. + +These elements should only contain other elements and no text. This makes it possible to remove whole whitespace, which is useful when using `display: inline-block` so that whitespace between elements (e.g. indentation) does not alter layout and styling. + +###### Before + +```html +
      ↵ +··
    • A
    • ↵ +··
    • B
    • ↵ +··
    • C
    • ↵ +
    +``` + +###### After + +```html +
    • A
    • B
    • C
    +``` + +
    + +
    +Content-first elements + +> Whitespace is trimmed and collapsed. + +These elements are usually like content elements but are occasionally used like a layout element with one child. Whole whitespace is not removed as it might contain content, but this is OK for using as layout as there is only one child and whitespace is trimmed. + +###### Before + +```html +
  • ↵ +··
    ↵ +····
    ↵ +····
    ↵ +··
    ↵ +
  • +``` + +###### After + +```html +
  • +``` + +
    + +### Tags + +[Optional opening and closing tags](https://html.spec.whatwg.org/multipage/syntax.html#syntax-tag-omission) are removed. + +### Attributes + +Any entities in attribute values are decoded, and then the shortest representation of the value is calculated and used: + +- Double quoted, with any `"` encoded. +- Single quoted, with any `'` encoded. +- Unquoted, with `"`/`'` first character (if applicable), any `>`, and any whitespace encoded. + +Attributes have their whitespace (after any decoding) trimmed and collapsed when possible. + +[Boolean attribute](https://github.com/wilsonzlin/html-data) values are removed. +[Some other attributes](https://github.com/wilsonzlin/html-data) are completely removed if their value is empty or the default value after any processing. + +`type` attributes on `script` tags with a value equaling a [JavaScript MIME type](https://mimesniff.spec.whatwg.org/#javascript-mime-type) are removed. + +If an attribute value is empty after any processing, everything but the name is completely removed (i.e. no `=`), as an empty attribute is implicitly [the same](https://html.spec.whatwg.org/multipage/syntax.html#attributes-2) as an attribute with an empty string value. + +Spaces are removed between attributes when possible. + +### Entities + +Entities are decoded if they're valid and shorter or equal in length when decoded. UTF-8 sequences that have a shorter entity representation are encoded. + +Numeric entities that do not refer to a valid [Unicode Scalar Value](https://www.unicode.org/glossary/#unicode_scalar_value) are replaced with the [replacement character](https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character). + +Encoding is avoided when possible; for example, `<` are only encoded in content if they are followed by a valid tag name character. +If necessary, the shortest entity representation is chosen. + +### Comments + +Comments are removed. + +### Ignored + +Bangs, [processing instructions](https://en.wikipedia.org/wiki/Processing_Instruction), and empty elements are not removed as it is assumed there is a special reason for their declaration. + +## Parsing + +minify-html can process any HTML, handling all possible syntax (including invalid ones) gracefully like browsers. See [Parsing.md](./notes/Parsing.md) for more details. + +## Issues and contributions + +Pull requests and any contributions welcome! + +If minify-html did something unexpected, misunderstood some syntax, or incorrectly kept/removed some code, [raise an issue](https://github.com/wilsonzlin/minify-html/issues) with some relevant code that can be used to reproduce and investigate the issue. diff --git a/node_modules/@minify-html/node/cli.js b/node_modules/@minify-html/node/cli.js new file mode 100755 index 0000000..a7b687e --- /dev/null +++ b/node_modules/@minify-html/node/cli.js @@ -0,0 +1,25 @@ +#!/usr/bin/env node + +const lib = require("."); +const fs = require("fs"); + +const cfg = {}; +let input; +let output; +const args = process.argv.slice(2); +let arg; +while ((arg = args.shift()) !== undefined) { + if (arg.slice(0, 2) === "--") { + const name = arg.slice(2); + if (name === "output") { + output = args.shift(); + } else { + cfg[name.replace(/-/g, "_")] = true; + } + } else { + input = arg; + } +} + +const min = lib.minify(fs.readFileSync(input), cfg); +fs.writeFileSync(output, min); diff --git a/node_modules/@minify-html/node/index.d.ts b/node_modules/@minify-html/node/index.d.ts new file mode 100644 index 0000000..7f0da0e --- /dev/null +++ b/node_modules/@minify-html/node/index.d.ts @@ -0,0 +1,42 @@ +/** + * Minifies a Buffer containing UTF-8 HTML code. + * + * @param src - Source HTML code + * @param cfg - Configurable minifier settings to use + * @returns Minified HTML code + */ +export function minify( + src: Buffer, + cfg: { + /** Do not minify DOCTYPEs. Minified DOCTYPEs may not be spec compliant. */ + do_not_minify_doctype?: boolean; + /** Ensure all unquoted attribute values in the output do not contain any characters prohibited by the WHATWG specification. */ + ensure_spec_compliant_unquoted_attribute_values?: boolean; + /** Do not omit closing tags when possible. */ + keep_closing_tags?: boolean; + /** Do not omit `` and `` opening tags when they don't have attributes. */ + keep_html_and_head_opening_tags?: boolean; + /** Keep spaces between attributes when possible to conform to HTML standards. */ + keep_spaces_between_attributes?: boolean; + /** Keep all comments. */ + keep_comments?: boolean; + /** Keep SSI comments. */ + keep_ssi_comments?: boolean; + /** When `{{`, `{#`, or `{%` are seen in content, all source code until the subsequent matching closing `}}`, `#}`, or `%}` respectively gets piped through untouched. */ + preserve_brace_template_syntax?: boolean; + /** When `<%` is seen in content, all source code until the subsequent matching closing `%>` gets piped through untouched. */ + preserve_chevron_percent_template_syntax?: boolean; + /** + * If enabled, content in ` + +-------------------------------------------------------------------------------- + + + + + +## Table of Contents + +- [Examples](#examples) + - [Consuming a source map](#consuming-a-source-map) + - [Generating a source map](#generating-a-source-map) + - [With SourceNode (high level API)](#with-sourcenode-high-level-api) + - [With SourceMapGenerator (low level API)](#with-sourcemapgenerator-low-level-api) +- [API](#api) + - [SourceMapConsumer](#sourcemapconsumer) + - [new SourceMapConsumer(rawSourceMap)](#new-sourcemapconsumerrawsourcemap) + - [SourceMapConsumer.prototype.computeColumnSpans()](#sourcemapconsumerprototypecomputecolumnspans) + - [SourceMapConsumer.prototype.originalPositionFor(generatedPosition)](#sourcemapconsumerprototypeoriginalpositionforgeneratedposition) + - [SourceMapConsumer.prototype.generatedPositionFor(originalPosition)](#sourcemapconsumerprototypegeneratedpositionfororiginalposition) + - [SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)](#sourcemapconsumerprototypeallgeneratedpositionsfororiginalposition) + - [SourceMapConsumer.prototype.hasContentsOfAllSources()](#sourcemapconsumerprototypehascontentsofallsources) + - [SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])](#sourcemapconsumerprototypesourcecontentforsource-returnnullonmissing) + - [SourceMapConsumer.prototype.eachMapping(callback, context, order)](#sourcemapconsumerprototypeeachmappingcallback-context-order) + - [SourceMapGenerator](#sourcemapgenerator) + - [new SourceMapGenerator([startOfSourceMap])](#new-sourcemapgeneratorstartofsourcemap) + - [SourceMapGenerator.fromSourceMap(sourceMapConsumer)](#sourcemapgeneratorfromsourcemapsourcemapconsumer) + - [SourceMapGenerator.prototype.addMapping(mapping)](#sourcemapgeneratorprototypeaddmappingmapping) + - [SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)](#sourcemapgeneratorprototypesetsourcecontentsourcefile-sourcecontent) + - [SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])](#sourcemapgeneratorprototypeapplysourcemapsourcemapconsumer-sourcefile-sourcemappath) + - [SourceMapGenerator.prototype.toString()](#sourcemapgeneratorprototypetostring) + - [SourceNode](#sourcenode) + - [new SourceNode([line, column, source[, chunk[, name]]])](#new-sourcenodeline-column-source-chunk-name) + - [SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])](#sourcenodefromstringwithsourcemapcode-sourcemapconsumer-relativepath) + - [SourceNode.prototype.add(chunk)](#sourcenodeprototypeaddchunk) + - [SourceNode.prototype.prepend(chunk)](#sourcenodeprototypeprependchunk) + - [SourceNode.prototype.setSourceContent(sourceFile, sourceContent)](#sourcenodeprototypesetsourcecontentsourcefile-sourcecontent) + - [SourceNode.prototype.walk(fn)](#sourcenodeprototypewalkfn) + - [SourceNode.prototype.walkSourceContents(fn)](#sourcenodeprototypewalksourcecontentsfn) + - [SourceNode.prototype.join(sep)](#sourcenodeprototypejoinsep) + - [SourceNode.prototype.replaceRight(pattern, replacement)](#sourcenodeprototypereplacerightpattern-replacement) + - [SourceNode.prototype.toString()](#sourcenodeprototypetostring) + - [SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])](#sourcenodeprototypetostringwithsourcemapstartofsourcemap) + + + +## Examples + +### Consuming a source map + +```js +var rawSourceMap = { + version: 3, + file: 'min.js', + names: ['bar', 'baz', 'n'], + sources: ['one.js', 'two.js'], + sourceRoot: 'http://example.com/www/js/', + mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA' +}; + +var smc = new SourceMapConsumer(rawSourceMap); + +console.log(smc.sources); +// [ 'http://example.com/www/js/one.js', +// 'http://example.com/www/js/two.js' ] + +console.log(smc.originalPositionFor({ + line: 2, + column: 28 +})); +// { source: 'http://example.com/www/js/two.js', +// line: 2, +// column: 10, +// name: 'n' } + +console.log(smc.generatedPositionFor({ + source: 'http://example.com/www/js/two.js', + line: 2, + column: 10 +})); +// { line: 2, column: 28 } + +smc.eachMapping(function (m) { + // ... +}); +``` + +### Generating a source map + +In depth guide: +[**Compiling to JavaScript, and Debugging with Source Maps**](https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/) + +#### With SourceNode (high level API) + +```js +function compile(ast) { + switch (ast.type) { + case 'BinaryExpression': + return new SourceNode( + ast.location.line, + ast.location.column, + ast.location.source, + [compile(ast.left), " + ", compile(ast.right)] + ); + case 'Literal': + return new SourceNode( + ast.location.line, + ast.location.column, + ast.location.source, + String(ast.value) + ); + // ... + default: + throw new Error("Bad AST"); + } +} + +var ast = parse("40 + 2", "add.js"); +console.log(compile(ast).toStringWithSourceMap({ + file: 'add.js' +})); +// { code: '40 + 2', +// map: [object SourceMapGenerator] } +``` + +#### With SourceMapGenerator (low level API) + +```js +var map = new SourceMapGenerator({ + file: "source-mapped.js" +}); + +map.addMapping({ + generated: { + line: 10, + column: 35 + }, + source: "foo.js", + original: { + line: 33, + column: 2 + }, + name: "christopher" +}); + +console.log(map.toString()); +// '{"version":3,"file":"source-mapped.js","sources":["foo.js"],"names":["christopher"],"mappings":";;;;;;;;;mCAgCEA"}' +``` + +## API + +Get a reference to the module: + +```js +// Node.js +var sourceMap = require('source-map'); + +// Browser builds +var sourceMap = window.sourceMap; + +// Inside Firefox +const sourceMap = require("devtools/toolkit/sourcemap/source-map.js"); +``` + +### SourceMapConsumer + +A SourceMapConsumer instance represents a parsed source map which we can query +for information about the original file positions by giving it a file position +in the generated source. + +#### new SourceMapConsumer(rawSourceMap) + +The only parameter is the raw source map (either as a string which can be +`JSON.parse`'d, or an object). According to the spec, source maps have the +following attributes: + +* `version`: Which version of the source map spec this map is following. + +* `sources`: An array of URLs to the original source files. + +* `names`: An array of identifiers which can be referenced by individual + mappings. + +* `sourceRoot`: Optional. The URL root from which all sources are relative. + +* `sourcesContent`: Optional. An array of contents of the original source files. + +* `mappings`: A string of base64 VLQs which contain the actual mappings. + +* `file`: Optional. The generated filename this source map is associated with. + +```js +var consumer = new sourceMap.SourceMapConsumer(rawSourceMapJsonData); +``` + +#### SourceMapConsumer.prototype.computeColumnSpans() + +Compute the last column for each generated mapping. The last column is +inclusive. + +```js +// Before: +consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1 }, +// { line: 2, +// column: 10 }, +// { line: 2, +// column: 20 } ] + +consumer.computeColumnSpans(); + +// After: +consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1, +// lastColumn: 9 }, +// { line: 2, +// column: 10, +// lastColumn: 19 }, +// { line: 2, +// column: 20, +// lastColumn: Infinity } ] + +``` + +#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition) + +Returns the original source, line, and column information for the generated +source's line and column positions provided. The only argument is an object with +the following properties: + +* `line`: The line number in the generated source. Line numbers in + this library are 1-based (note that the underlying source map + specification uses 0-based line numbers -- this library handles the + translation). + +* `column`: The column number in the generated source. Column numbers + in this library are 0-based. + +* `bias`: Either `SourceMapConsumer.GREATEST_LOWER_BOUND` or + `SourceMapConsumer.LEAST_UPPER_BOUND`. Specifies whether to return the closest + element that is smaller than or greater than the one we are searching for, + respectively, if the exact element cannot be found. Defaults to + `SourceMapConsumer.GREATEST_LOWER_BOUND`. + +and an object is returned with the following properties: + +* `source`: The original source file, or null if this information is not + available. + +* `line`: The line number in the original source, or null if this information is + not available. The line number is 1-based. + +* `column`: The column number in the original source, or null if this + information is not available. The column number is 0-based. + +* `name`: The original identifier, or null if this information is not available. + +```js +consumer.originalPositionFor({ line: 2, column: 10 }) +// { source: 'foo.coffee', +// line: 2, +// column: 2, +// name: null } + +consumer.originalPositionFor({ line: 99999999999999999, column: 999999999999999 }) +// { source: null, +// line: null, +// column: null, +// name: null } +``` + +#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition) + +Returns the generated line and column information for the original source, +line, and column positions provided. The only argument is an object with +the following properties: + +* `source`: The filename of the original source. + +* `line`: The line number in the original source. The line number is + 1-based. + +* `column`: The column number in the original source. The column + number is 0-based. + +and an object is returned with the following properties: + +* `line`: The line number in the generated source, or null. The line + number is 1-based. + +* `column`: The column number in the generated source, or null. The + column number is 0-based. + +```js +consumer.generatedPositionFor({ source: "example.js", line: 2, column: 10 }) +// { line: 1, +// column: 56 } +``` + +#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition) + +Returns all generated line and column information for the original source, line, +and column provided. If no column is provided, returns all mappings +corresponding to a either the line we are searching for or the next closest line +that has any mappings. Otherwise, returns all mappings corresponding to the +given line and either the column we are searching for or the next closest column +that has any offsets. + +The only argument is an object with the following properties: + +* `source`: The filename of the original source. + +* `line`: The line number in the original source. The line number is + 1-based. + +* `column`: Optional. The column number in the original source. The + column number is 0-based. + +and an array of objects is returned, each with the following properties: + +* `line`: The line number in the generated source, or null. The line + number is 1-based. + +* `column`: The column number in the generated source, or null. The + column number is 0-based. + +```js +consumer.allGeneratedpositionsfor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1 }, +// { line: 2, +// column: 10 }, +// { line: 2, +// column: 20 } ] +``` + +#### SourceMapConsumer.prototype.hasContentsOfAllSources() + +Return true if we have the embedded source content for every source listed in +the source map, false otherwise. + +In other words, if this method returns `true`, then +`consumer.sourceContentFor(s)` will succeed for every source `s` in +`consumer.sources`. + +```js +// ... +if (consumer.hasContentsOfAllSources()) { + consumerReadyCallback(consumer); +} else { + fetchSources(consumer, consumerReadyCallback); +} +// ... +``` + +#### SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing]) + +Returns the original source content for the source provided. The only +argument is the URL of the original source file. + +If the source content for the given source is not found, then an error is +thrown. Optionally, pass `true` as the second param to have `null` returned +instead. + +```js +consumer.sources +// [ "my-cool-lib.clj" ] + +consumer.sourceContentFor("my-cool-lib.clj") +// "..." + +consumer.sourceContentFor("this is not in the source map"); +// Error: "this is not in the source map" is not in the source map + +consumer.sourceContentFor("this is not in the source map", true); +// null +``` + +#### SourceMapConsumer.prototype.eachMapping(callback, context, order) + +Iterate over each mapping between an original source/line/column and a +generated line/column in this source map. + +* `callback`: The function that is called with each mapping. Mappings have the + form `{ source, generatedLine, generatedColumn, originalLine, originalColumn, + name }` + +* `context`: Optional. If specified, this object will be the value of `this` + every time that `callback` is called. + +* `order`: Either `SourceMapConsumer.GENERATED_ORDER` or + `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to iterate over + the mappings sorted by the generated file's line/column order or the + original's source/line/column order, respectively. Defaults to + `SourceMapConsumer.GENERATED_ORDER`. + +```js +consumer.eachMapping(function (m) { console.log(m); }) +// ... +// { source: 'illmatic.js', +// generatedLine: 1, +// generatedColumn: 0, +// originalLine: 1, +// originalColumn: 0, +// name: null } +// { source: 'illmatic.js', +// generatedLine: 2, +// generatedColumn: 0, +// originalLine: 2, +// originalColumn: 0, +// name: null } +// ... +``` +### SourceMapGenerator + +An instance of the SourceMapGenerator represents a source map which is being +built incrementally. + +#### new SourceMapGenerator([startOfSourceMap]) + +You may pass an object with the following properties: + +* `file`: The filename of the generated source that this source map is + associated with. + +* `sourceRoot`: A root for all relative URLs in this source map. + +* `skipValidation`: Optional. When `true`, disables validation of mappings as + they are added. This can improve performance but should be used with + discretion, as a last resort. Even then, one should avoid using this flag when + running tests, if possible. + +```js +var generator = new sourceMap.SourceMapGenerator({ + file: "my-generated-javascript-file.js", + sourceRoot: "http://example.com/app/js/" +}); +``` + +#### SourceMapGenerator.fromSourceMap(sourceMapConsumer) + +Creates a new `SourceMapGenerator` from an existing `SourceMapConsumer` instance. + +* `sourceMapConsumer` The SourceMap. + +```js +var generator = sourceMap.SourceMapGenerator.fromSourceMap(consumer); +``` + +#### SourceMapGenerator.prototype.addMapping(mapping) + +Add a single mapping from original source line and column to the generated +source's line and column for this source map being created. The mapping object +should have the following properties: + +* `generated`: An object with the generated line and column positions. + +* `original`: An object with the original line and column positions. + +* `source`: The original source file (relative to the sourceRoot). + +* `name`: An optional original token name for this mapping. + +```js +generator.addMapping({ + source: "module-one.scm", + original: { line: 128, column: 0 }, + generated: { line: 3, column: 456 } +}) +``` + +#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent) + +Set the source content for an original source file. + +* `sourceFile` the URL of the original source file. + +* `sourceContent` the content of the source file. + +```js +generator.setSourceContent("module-one.scm", + fs.readFileSync("path/to/module-one.scm")) +``` + +#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]]) + +Applies a SourceMap for a source file to the SourceMap. +Each mapping to the supplied source file is rewritten using the +supplied SourceMap. Note: The resolution for the resulting mappings +is the minimum of this map and the supplied map. + +* `sourceMapConsumer`: The SourceMap to be applied. + +* `sourceFile`: Optional. The filename of the source file. + If omitted, sourceMapConsumer.file will be used, if it exists. + Otherwise an error will be thrown. + +* `sourceMapPath`: Optional. The dirname of the path to the SourceMap + to be applied. If relative, it is relative to the SourceMap. + + This parameter is needed when the two SourceMaps aren't in the same + directory, and the SourceMap to be applied contains relative source + paths. If so, those relative source paths need to be rewritten + relative to the SourceMap. + + If omitted, it is assumed that both SourceMaps are in the same directory, + thus not needing any rewriting. (Supplying `'.'` has the same effect.) + +#### SourceMapGenerator.prototype.toString() + +Renders the source map being generated to a string. + +```js +generator.toString() +// '{"version":3,"sources":["module-one.scm"],"names":[],"mappings":"...snip...","file":"my-generated-javascript-file.js","sourceRoot":"http://example.com/app/js/"}' +``` + +### SourceNode + +SourceNodes provide a way to abstract over interpolating and/or concatenating +snippets of generated JavaScript source code, while maintaining the line and +column information associated between those snippets and the original source +code. This is useful as the final intermediate representation a compiler might +use before outputting the generated JS and source map. + +#### new SourceNode([line, column, source[, chunk[, name]]]) + +* `line`: The original line number associated with this source node, or null if + it isn't associated with an original line. The line number is 1-based. + +* `column`: The original column number associated with this source node, or null + if it isn't associated with an original column. The column number + is 0-based. + +* `source`: The original source's filename; null if no filename is provided. + +* `chunk`: Optional. Is immediately passed to `SourceNode.prototype.add`, see + below. + +* `name`: Optional. The original identifier. + +```js +var node = new SourceNode(1, 2, "a.cpp", [ + new SourceNode(3, 4, "b.cpp", "extern int status;\n"), + new SourceNode(5, 6, "c.cpp", "std::string* make_string(size_t n);\n"), + new SourceNode(7, 8, "d.cpp", "int main(int argc, char** argv) {}\n"), +]); +``` + +#### SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath]) + +Creates a SourceNode from generated code and a SourceMapConsumer. + +* `code`: The generated code + +* `sourceMapConsumer` The SourceMap for the generated code + +* `relativePath` The optional path that relative sources in `sourceMapConsumer` + should be relative to. + +```js +var consumer = new SourceMapConsumer(fs.readFileSync("path/to/my-file.js.map", "utf8")); +var node = SourceNode.fromStringWithSourceMap(fs.readFileSync("path/to/my-file.js"), + consumer); +``` + +#### SourceNode.prototype.add(chunk) + +Add a chunk of generated JS to this source node. + +* `chunk`: A string snippet of generated JS code, another instance of + `SourceNode`, or an array where each member is one of those things. + +```js +node.add(" + "); +node.add(otherNode); +node.add([leftHandOperandNode, " + ", rightHandOperandNode]); +``` + +#### SourceNode.prototype.prepend(chunk) + +Prepend a chunk of generated JS to this source node. + +* `chunk`: A string snippet of generated JS code, another instance of + `SourceNode`, or an array where each member is one of those things. + +```js +node.prepend("/** Build Id: f783haef86324gf **/\n\n"); +``` + +#### SourceNode.prototype.setSourceContent(sourceFile, sourceContent) + +Set the source content for a source file. This will be added to the +`SourceMap` in the `sourcesContent` field. + +* `sourceFile`: The filename of the source file + +* `sourceContent`: The content of the source file + +```js +node.setSourceContent("module-one.scm", + fs.readFileSync("path/to/module-one.scm")) +``` + +#### SourceNode.prototype.walk(fn) + +Walk over the tree of JS snippets in this node and its children. The walking +function is called once for each snippet of JS and is passed that snippet and +the its original associated source's line/column location. + +* `fn`: The traversal function. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.walk(function (code, loc) { console.log("WALK:", code, loc); }) +// WALK: uno { source: 'b.js', line: 3, column: 4, name: null } +// WALK: dos { source: 'a.js', line: 1, column: 2, name: null } +// WALK: tres { source: 'a.js', line: 1, column: 2, name: null } +// WALK: quatro { source: 'c.js', line: 5, column: 6, name: null } +``` + +#### SourceNode.prototype.walkSourceContents(fn) + +Walk over the tree of SourceNodes. The walking function is called for each +source file content and is passed the filename and source content. + +* `fn`: The traversal function. + +```js +var a = new SourceNode(1, 2, "a.js", "generated from a"); +a.setSourceContent("a.js", "original a"); +var b = new SourceNode(1, 2, "b.js", "generated from b"); +b.setSourceContent("b.js", "original b"); +var c = new SourceNode(1, 2, "c.js", "generated from c"); +c.setSourceContent("c.js", "original c"); + +var node = new SourceNode(null, null, null, [a, b, c]); +node.walkSourceContents(function (source, contents) { console.log("WALK:", source, ":", contents); }) +// WALK: a.js : original a +// WALK: b.js : original b +// WALK: c.js : original c +``` + +#### SourceNode.prototype.join(sep) + +Like `Array.prototype.join` except for SourceNodes. Inserts the separator +between each of this source node's children. + +* `sep`: The separator. + +```js +var lhs = new SourceNode(1, 2, "a.rs", "my_copy"); +var operand = new SourceNode(3, 4, "a.rs", "="); +var rhs = new SourceNode(5, 6, "a.rs", "orig.clone()"); + +var node = new SourceNode(null, null, null, [ lhs, operand, rhs ]); +var joinedNode = node.join(" "); +``` + +#### SourceNode.prototype.replaceRight(pattern, replacement) + +Call `String.prototype.replace` on the very right-most source snippet. Useful +for trimming white space from the end of a source node, etc. + +* `pattern`: The pattern to replace. + +* `replacement`: The thing to replace the pattern with. + +```js +// Trim trailing white space. +node.replaceRight(/\s*$/, ""); +``` + +#### SourceNode.prototype.toString() + +Return the string representation of this source node. Walks over the tree and +concatenates all the various snippets together to one string. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.toString() +// 'unodostresquatro' +``` + +#### SourceNode.prototype.toStringWithSourceMap([startOfSourceMap]) + +Returns the string representation of this tree of source nodes, plus a +SourceMapGenerator which contains all the mappings between the generated and +original sources. + +The arguments are the same as those to `new SourceMapGenerator`. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.toStringWithSourceMap({ file: "my-output-file.js" }) +// { code: 'unodostresquatro', +// map: [object SourceMapGenerator] } +``` diff --git a/node_modules/source-map/dist/source-map.debug.js b/node_modules/source-map/dist/source-map.debug.js new file mode 100644 index 0000000..aad0620 --- /dev/null +++ b/node_modules/source-map/dist/source-map.debug.js @@ -0,0 +1,3234 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["sourceMap"] = factory(); + else + root["sourceMap"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + /* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ + exports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator; + exports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer; + exports.SourceNode = __webpack_require__(10).SourceNode; + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var base64VLQ = __webpack_require__(2); + var util = __webpack_require__(4); + var ArraySet = __webpack_require__(5).ArraySet; + var MappingList = __webpack_require__(6).MappingList; + + /** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ + function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; + } + + SourceMapGenerator.prototype._version = 3; + + /** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ + SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator({ + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + }); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + + /** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ + SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + + /** + * Set the source content for a source file. + */ + SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + + /** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ + SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source) + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + + /** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ + SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + throw new Error( + 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + ); + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + throw new Error('Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + })); + } + }; + + /** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ + SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = '' + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + + SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + + /** + * Externalize the source map. + */ + SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + + /** + * Render the source map being generated to a string. + */ + SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + + exports.SourceMapGenerator = SourceMapGenerator; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + var base64 = __webpack_require__(3); + + // A single base 64 digit can contain 6 bits of data. For the base 64 variable + // length quantities we use in the source map spec, the first bit is the sign, + // the next four bits are the actual value, and the 6th bit is the + // continuation bit. The continuation bit tells us whether there are more + // digits in this value following this digit. + // + // Continuation + // | Sign + // | | + // V V + // 101011 + + var VLQ_BASE_SHIFT = 5; + + // binary: 100000 + var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + + // binary: 011111 + var VLQ_BASE_MASK = VLQ_BASE - 1; + + // binary: 100000 + var VLQ_CONTINUATION_BIT = VLQ_BASE; + + /** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ + function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; + } + + /** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ + function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; + } + + /** + * Returns the base 64 VLQ encoded value. + */ + exports.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; + }; + + /** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ + exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; + }; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + + /** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ + exports.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); + }; + + /** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ + exports.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; + }; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + /** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ + function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } + } + exports.getArg = getArg; + + var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; + var dataUrlRegexp = /^data:.+\,.+$/; + + function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; + } + exports.urlParse = urlParse; + + function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; + } + exports.urlGenerate = urlGenerate; + + /** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ + function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + + var parts = path.split(/\/+/); + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; + } + exports.normalize = normalize; + + /** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ + function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; + } + exports.join = join; + + exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); + }; + + /** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ + function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); + } + exports.relative = relative; + + var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); + }()); + + function identity (s) { + return s; + } + + /** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ + function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; + } + exports.toSetString = supportsNullProto ? identity : toSetString; + + function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; + } + exports.fromSetString = supportsNullProto ? identity : fromSetString; + + function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; + } + + /** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ + function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByOriginalPositions = compareByOriginalPositions; + + /** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ + function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + + function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; + } + + /** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ + function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + + /** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ + function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); + } + exports.parseSourceMapInput = parseSourceMapInput; + + /** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ + function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); + } + exports.computeSourceURL = computeSourceURL; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = __webpack_require__(4); + var has = Object.prototype.hasOwnProperty; + var hasNativeMap = typeof Map !== "undefined"; + + /** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ + function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); + } + + /** + * Static method for creating ArraySet instances from an existing array. + */ + ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; + }; + + /** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ + ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; + }; + + /** + * Add the given string to this set. + * + * @param String aStr + */ + ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } + }; + + /** + * Is the given string a member of this set? + * + * @param String aStr + */ + ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } + }; + + /** + * What is the index of the given string in the array? + * + * @param String aStr + */ + ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); + }; + + /** + * What is the element at the given index? + * + * @param Number aIdx + */ + ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); + }; + + /** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ + ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); + }; + + exports.ArraySet = ArraySet; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = __webpack_require__(4); + + /** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ + function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; + } + + /** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ + function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; + } + + /** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ + MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + + /** + * Add the given source mapping. + * + * @param Object aMapping + */ + MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } + }; + + /** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ + MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; + }; + + exports.MappingList = MappingList; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = __webpack_require__(4); + var binarySearch = __webpack_require__(8); + var ArraySet = __webpack_require__(5).ArraySet; + var base64VLQ = __webpack_require__(2); + var quickSort = __webpack_require__(9).quickSort; + + function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); + } + + SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); + } + + /** + * The version of the source mapping spec that we are consuming. + */ + SourceMapConsumer.prototype._version = 3; + + // `__generatedMappings` and `__originalMappings` are arrays that hold the + // parsed mapping coordinates from the source map's "mappings" attribute. They + // are lazily instantiated, accessed via the `_generatedMappings` and + // `_originalMappings` getters respectively, and we only parse the mappings + // and create these arrays once queried for a source location. We jump through + // these hoops because there can be many thousands of mappings, and parsing + // them is expensive, so we only want to do it if we must. + // + // Each object in the arrays is of the form: + // + // { + // generatedLine: The line number in the generated code, + // generatedColumn: The column number in the generated code, + // source: The path to the original source file that generated this + // chunk of code, + // originalLine: The line number in the original source that + // corresponds to this chunk of generated code, + // originalColumn: The column number in the original source that + // corresponds to this chunk of generated code, + // name: The name of the original symbol which generated this chunk of + // code. + // } + // + // All properties except for `generatedLine` and `generatedColumn` can be + // `null`. + // + // `_generatedMappings` is ordered by the generated positions. + // + // `_originalMappings` is ordered by the original positions. + + SourceMapConsumer.prototype.__generatedMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } + }); + + SourceMapConsumer.prototype.__originalMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } + }); + + SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + + SourceMapConsumer.GENERATED_ORDER = 1; + SourceMapConsumer.ORIGINAL_ORDER = 2; + + SourceMapConsumer.GREATEST_LOWER_BOUND = 1; + SourceMapConsumer.LEAST_UPPER_BOUND = 2; + + /** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ + SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + mappings.map(function (mapping) { + var source = mapping.source === null ? null : this._sources.at(mapping.source); + source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL); + return { + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : this._names.at(mapping.name) + }; + }, this).forEach(aCallback, context); + }; + + /** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + + exports.SourceMapConsumer = SourceMapConsumer; + + /** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ + function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; + } + + BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + + /** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ + BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; + }; + + /** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ + BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + + /** + * The version of the source mapping spec that we are consuming. + */ + BasicSourceMapConsumer.prototype._version = 3; + + /** + * The list of original sources. + */ + Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } + }); + + /** + * Provide the JIT with a nice shape / hidden class. + */ + function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; + } + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + // Because each offset is encoded relative to the previous one, + // many segments often have the same encoding. We can exploit this + // fact by caching the parsed variable length fields of each segment, + // allowing us to avoid a second parse if we encounter the same + // segment again. + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = cachedSegments[str]; + if (segment) { + index += str.length; + } else { + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + cachedSegments[str] = segment; + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + originalMappings.push(mapping); + } + } + } + + quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); + this.__generatedMappings = generatedMappings; + + quickSort(originalMappings, util.compareByOriginalPositions); + this.__originalMappings = originalMappings; + }; + + /** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ + BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + + /** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ + BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + + exports.BasicSourceMapConsumer = BasicSourceMapConsumer; + + /** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ + function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); + } + + IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + + /** + * The version of the source mapping spec that we are consuming. + */ + IndexedSourceMapConsumer.prototype._version = 3; + + /** + * The list of original sources. + */ + Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } + }); + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content) { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + + exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + exports.GREATEST_LOWER_BOUND = 1; + exports.LEAST_UPPER_BOUND = 2; + + /** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ + function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } + } + + /** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ + exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; + }; + + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + // It turns out that some (most?) JavaScript engines don't self-host + // `Array.prototype.sort`. This makes sense because C++ will likely remain + // faster than JS when doing raw CPU-intensive sorting. However, when using a + // custom comparator function, calling back and forth between the VM's C++ and + // JIT'd JS is rather slow *and* loses JIT type information, resulting in + // worse generated code for the comparator function than would be optimal. In + // fact, when sorting with a comparator, these costs outweigh the benefits of + // sorting in C++. By using our own JS-implemented Quick Sort (below), we get + // a ~3500ms mean speed-up in `bench/bench.html`. + + /** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ + function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; + } + + /** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ + function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); + } + + /** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ + function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } + } + + /** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ + exports.quickSort = function (ary, comparator) { + doQuickSort(ary, comparator, 0, ary.length - 1); + }; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var SourceMapGenerator = __webpack_require__(1).SourceMapGenerator; + var util = __webpack_require__(4); + + // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other + // operating systems these days (capturing the result). + var REGEX_NEWLINE = /(\r?\n)/; + + // Newline character code for charCodeAt() comparisons + var NEWLINE_CODE = 10; + + // Private symbol for identifying `SourceNode`s when multiple versions of + // the source-map library are loaded. This MUST NOT CHANGE across + // versions! + var isSourceNode = "$$$isSourceNode$$$"; + + /** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ + function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); + } + + /** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ + SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + + /** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + + /** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + + /** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ + SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } + }; + + /** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ + SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; + }; + + /** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ + SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; + }; + + /** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ + SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + + /** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ + SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + + /** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ + SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; + }; + + /** + * Returns the string representation of this source node along with a source + * map. + */ + SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; + }; + + exports.SourceNode = SourceNode; + + +/***/ }) +/******/ ]) +}); +; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCAxNjI0YzcyOTliODg3ZjdiZGY2NCIsIndlYnBhY2s6Ly8vLi9zb3VyY2UtbWFwLmpzIiwid2VicGFjazovLy8uL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmFzZTY0LXZscS5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmFzZTY0LmpzIiwid2VicGFjazovLy8uL2xpYi91dGlsLmpzIiwid2VicGFjazovLy8uL2xpYi9hcnJheS1zZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbGliL21hcHBpbmctbGlzdC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvc291cmNlLW1hcC1jb25zdW1lci5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmluYXJ5LXNlYXJjaC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvcXVpY2stc29ydC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvc291cmNlLW5vZGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNWQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNQQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDJDQUEwQyxTQUFTO0FBQ25EO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscUJBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7Ozs7OztBQ3hhQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBMkQ7QUFDM0QscUJBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRzs7QUFFSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUc7O0FBRUg7QUFDQTtBQUNBOzs7Ozs7O0FDM0lBLGlCQUFnQixvQkFBb0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFnQjtBQUNoQixpQkFBZ0I7O0FBRWhCLG9CQUFtQjtBQUNuQixxQkFBb0I7O0FBRXBCLGlCQUFnQjtBQUNoQixpQkFBZ0I7O0FBRWhCLGlCQUFnQjtBQUNoQixrQkFBaUI7O0FBRWpCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7Ozs7O0FDbEVBLGlCQUFnQixvQkFBb0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUc7QUFDSDtBQUNBLElBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLCtDQUE4QyxRQUFRO0FBQ3REO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBLE1BQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBQzs7QUFFRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0QkFBMkIsUUFBUTtBQUNuQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGNBQWE7QUFDYjs7QUFFQTtBQUNBLGVBQWM7QUFDZDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUFzQztBQUN0QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7Ozs7O0FDdmVBLGlCQUFnQixvQkFBb0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUFzQyxTQUFTO0FBQy9DO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7Ozs7QUN4SEEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7Ozs7QUM5RUEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0Esb0JBQW1CO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVc7O0FBRVg7QUFDQTtBQUNBLFFBQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBVzs7QUFFWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTJCLE1BQU07QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWEsa0NBQWtDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHVEQUFzRCxZQUFZO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0NBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBeUIsY0FBYztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXVCLHdDQUF3QztBQUMvRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUErQyxtQkFBbUIsRUFBRTtBQUNwRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBaUIsb0JBQW9CO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBNkIsTUFBTTtBQUNuQztBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBTztBQUNQO0FBQ0E7QUFDQSxJQUFHO0FBQ0g7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBbUIsMkJBQTJC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Q0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBVyxPQUFPO0FBQ2xCO0FBQ0EsWUFBVyxPQUFPO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBVyxNQUFNO0FBQ2pCO0FBQ0EsWUFBVyxTQUFTO0FBQ3BCO0FBQ0EsWUFBVyxPQUFPO0FBQ2xCO0FBQ0EsWUFBVyxPQUFPO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBbUIsT0FBTztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBVyxNQUFNO0FBQ2pCO0FBQ0EsWUFBVyxTQUFTO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNqSEEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSzs7QUFFTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWlDLFFBQVE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLFNBQVM7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQW9CO0FBQ3BCO0FBQ0E7QUFDQSx1Q0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWUsV0FBVztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQStDLFNBQVM7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwwQ0FBeUMsU0FBUztBQUNsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxZQUFXO0FBQ1g7QUFDQSxVQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsNkNBQTRDLGNBQWM7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxjQUFhO0FBQ2I7QUFDQSxZQUFXO0FBQ1g7QUFDQSxRQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsSUFBRztBQUNIO0FBQ0E7QUFDQSxJQUFHOztBQUVILFdBQVU7QUFDVjs7QUFFQSIsImZpbGUiOiJzb3VyY2UtbWFwLmRlYnVnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wic291cmNlTWFwXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcInNvdXJjZU1hcFwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuIFxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0ZXhwb3J0czoge30sXG4gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuIFx0XHRcdGxvYWRlZDogZmFsc2VcbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCAxNjI0YzcyOTliODg3ZjdiZGY2NCIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwOS0yMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRS50eHQgb3I6XG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlXG4gKi9cbmV4cG9ydHMuU291cmNlTWFwR2VuZXJhdG9yID0gcmVxdWlyZSgnLi9saWIvc291cmNlLW1hcC1nZW5lcmF0b3InKS5Tb3VyY2VNYXBHZW5lcmF0b3I7XG5leHBvcnRzLlNvdXJjZU1hcENvbnN1bWVyID0gcmVxdWlyZSgnLi9saWIvc291cmNlLW1hcC1jb25zdW1lcicpLlNvdXJjZU1hcENvbnN1bWVyO1xuZXhwb3J0cy5Tb3VyY2VOb2RlID0gcmVxdWlyZSgnLi9saWIvc291cmNlLW5vZGUnKS5Tb3VyY2VOb2RlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zb3VyY2UtbWFwLmpzXG4vLyBtb2R1bGUgaWQgPSAwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qIC0qLSBNb2RlOiBqczsganMtaW5kZW50LWxldmVsOiAyOyAtKi0gKi9cbi8qXG4gKiBDb3B5cmlnaHQgMjAxMSBNb3ppbGxhIEZvdW5kYXRpb24gYW5kIGNvbnRyaWJ1dG9yc1xuICogTGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgbGljZW5zZS4gU2VlIExJQ0VOU0Ugb3I6XG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlXG4gKi9cblxudmFyIGJhc2U2NFZMUSA9IHJlcXVpcmUoJy4vYmFzZTY0LXZscScpO1xudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcbnZhciBBcnJheVNldCA9IHJlcXVpcmUoJy4vYXJyYXktc2V0JykuQXJyYXlTZXQ7XG52YXIgTWFwcGluZ0xpc3QgPSByZXF1aXJlKCcuL21hcHBpbmctbGlzdCcpLk1hcHBpbmdMaXN0O1xuXG4vKipcbiAqIEFuIGluc3RhbmNlIG9mIHRoZSBTb3VyY2VNYXBHZW5lcmF0b3IgcmVwcmVzZW50cyBhIHNvdXJjZSBtYXAgd2hpY2ggaXNcbiAqIGJlaW5nIGJ1aWx0IGluY3JlbWVudGFsbHkuIFlvdSBtYXkgcGFzcyBhbiBvYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nXG4gKiBwcm9wZXJ0aWVzOlxuICpcbiAqICAgLSBmaWxlOiBUaGUgZmlsZW5hbWUgb2YgdGhlIGdlbmVyYXRlZCBzb3VyY2UuXG4gKiAgIC0gc291cmNlUm9vdDogQSByb290IGZvciBhbGwgcmVsYXRpdmUgVVJMcyBpbiB0aGlzIHNvdXJjZSBtYXAuXG4gKi9cbmZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcihhQXJncykge1xuICBpZiAoIWFBcmdzKSB7XG4gICAgYUFyZ3MgPSB7fTtcbiAgfVxuICB0aGlzLl9maWxlID0gdXRpbC5nZXRBcmcoYUFyZ3MsICdmaWxlJywgbnVsbCk7XG4gIHRoaXMuX3NvdXJjZVJvb3QgPSB1dGlsLmdldEFyZyhhQXJncywgJ3NvdXJjZVJvb3QnLCBudWxsKTtcbiAgdGhpcy5fc2tpcFZhbGlkYXRpb24gPSB1dGlsLmdldEFyZyhhQXJncywgJ3NraXBWYWxpZGF0aW9uJywgZmFsc2UpO1xuICB0aGlzLl9zb3VyY2VzID0gbmV3IEFycmF5U2V0KCk7XG4gIHRoaXMuX25hbWVzID0gbmV3IEFycmF5U2V0KCk7XG4gIHRoaXMuX21hcHBpbmdzID0gbmV3IE1hcHBpbmdMaXN0KCk7XG4gIHRoaXMuX3NvdXJjZXNDb250ZW50cyA9IG51bGw7XG59XG5cblNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuX3ZlcnNpb24gPSAzO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgU291cmNlTWFwR2VuZXJhdG9yIGJhc2VkIG9uIGEgU291cmNlTWFwQ29uc3VtZXJcbiAqXG4gKiBAcGFyYW0gYVNvdXJjZU1hcENvbnN1bWVyIFRoZSBTb3VyY2VNYXAuXG4gKi9cblNvdXJjZU1hcEdlbmVyYXRvci5mcm9tU291cmNlTWFwID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX2Zyb21Tb3VyY2VNYXAoYVNvdXJjZU1hcENvbnN1bWVyKSB7XG4gICAgdmFyIHNvdXJjZVJvb3QgPSBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlUm9vdDtcbiAgICB2YXIgZ2VuZXJhdG9yID0gbmV3IFNvdXJjZU1hcEdlbmVyYXRvcih7XG4gICAgICBmaWxlOiBhU291cmNlTWFwQ29uc3VtZXIuZmlsZSxcbiAgICAgIHNvdXJjZVJvb3Q6IHNvdXJjZVJvb3RcbiAgICB9KTtcbiAgICBhU291cmNlTWFwQ29uc3VtZXIuZWFjaE1hcHBpbmcoZnVuY3Rpb24gKG1hcHBpbmcpIHtcbiAgICAgIHZhciBuZXdNYXBwaW5nID0ge1xuICAgICAgICBnZW5lcmF0ZWQ6IHtcbiAgICAgICAgICBsaW5lOiBtYXBwaW5nLmdlbmVyYXRlZExpbmUsXG4gICAgICAgICAgY29sdW1uOiBtYXBwaW5nLmdlbmVyYXRlZENvbHVtblxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBpZiAobWFwcGluZy5zb3VyY2UgIT0gbnVsbCkge1xuICAgICAgICBuZXdNYXBwaW5nLnNvdXJjZSA9IG1hcHBpbmcuc291cmNlO1xuICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICAgICAgbmV3TWFwcGluZy5zb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIG5ld01hcHBpbmcuc291cmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5ld01hcHBpbmcub3JpZ2luYWwgPSB7XG4gICAgICAgICAgbGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsXG4gICAgICAgICAgY29sdW1uOiBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKG1hcHBpbmcubmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgbmV3TWFwcGluZy5uYW1lID0gbWFwcGluZy5uYW1lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGdlbmVyYXRvci5hZGRNYXBwaW5nKG5ld01hcHBpbmcpO1xuICAgIH0pO1xuICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24gKHNvdXJjZUZpbGUpIHtcbiAgICAgIHZhciBzb3VyY2VSZWxhdGl2ZSA9IHNvdXJjZUZpbGU7XG4gICAgICBpZiAoc291cmNlUm9vdCAhPT0gbnVsbCkge1xuICAgICAgICBzb3VyY2VSZWxhdGl2ZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlRmlsZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghZ2VuZXJhdG9yLl9zb3VyY2VzLmhhcyhzb3VyY2VSZWxhdGl2ZSkpIHtcbiAgICAgICAgZ2VuZXJhdG9yLl9zb3VyY2VzLmFkZChzb3VyY2VSZWxhdGl2ZSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBjb250ZW50ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3Ioc291cmNlRmlsZSk7XG4gICAgICBpZiAoY29udGVudCAhPSBudWxsKSB7XG4gICAgICAgIGdlbmVyYXRvci5zZXRTb3VyY2VDb250ZW50KHNvdXJjZUZpbGUsIGNvbnRlbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBnZW5lcmF0b3I7XG4gIH07XG5cbi8qKlxuICogQWRkIGEgc2luZ2xlIG1hcHBpbmcgZnJvbSBvcmlnaW5hbCBzb3VyY2UgbGluZSBhbmQgY29sdW1uIHRvIHRoZSBnZW5lcmF0ZWRcbiAqIHNvdXJjZSdzIGxpbmUgYW5kIGNvbHVtbiBmb3IgdGhpcyBzb3VyY2UgbWFwIGJlaW5nIGNyZWF0ZWQuIFRoZSBtYXBwaW5nXG4gKiBvYmplY3Qgc2hvdWxkIGhhdmUgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuICpcbiAqICAgLSBnZW5lcmF0ZWQ6IEFuIG9iamVjdCB3aXRoIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy5cbiAqICAgLSBvcmlnaW5hbDogQW4gb2JqZWN0IHdpdGggdGhlIG9yaWdpbmFsIGxpbmUgYW5kIGNvbHVtbiBwb3NpdGlvbnMuXG4gKiAgIC0gc291cmNlOiBUaGUgb3JpZ2luYWwgc291cmNlIGZpbGUgKHJlbGF0aXZlIHRvIHRoZSBzb3VyY2VSb290KS5cbiAqICAgLSBuYW1lOiBBbiBvcHRpb25hbCBvcmlnaW5hbCB0b2tlbiBuYW1lIGZvciB0aGlzIG1hcHBpbmcuXG4gKi9cblNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuYWRkTWFwcGluZyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9hZGRNYXBwaW5nKGFBcmdzKSB7XG4gICAgdmFyIGdlbmVyYXRlZCA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnZ2VuZXJhdGVkJyk7XG4gICAgdmFyIG9yaWdpbmFsID0gdXRpbC5nZXRBcmcoYUFyZ3MsICdvcmlnaW5hbCcsIG51bGwpO1xuICAgIHZhciBzb3VyY2UgPSB1dGlsLmdldEFyZyhhQXJncywgJ3NvdXJjZScsIG51bGwpO1xuICAgIHZhciBuYW1lID0gdXRpbC5nZXRBcmcoYUFyZ3MsICduYW1lJywgbnVsbCk7XG5cbiAgICBpZiAoIXRoaXMuX3NraXBWYWxpZGF0aW9uKSB7XG4gICAgICB0aGlzLl92YWxpZGF0ZU1hcHBpbmcoZ2VuZXJhdGVkLCBvcmlnaW5hbCwgc291cmNlLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlICE9IG51bGwpIHtcbiAgICAgIHNvdXJjZSA9IFN0cmluZyhzb3VyY2UpO1xuICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzLmhhcyhzb3VyY2UpKSB7XG4gICAgICAgIHRoaXMuX3NvdXJjZXMuYWRkKHNvdXJjZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5hbWUgIT0gbnVsbCkge1xuICAgICAgbmFtZSA9IFN0cmluZyhuYW1lKTtcbiAgICAgIGlmICghdGhpcy5fbmFtZXMuaGFzKG5hbWUpKSB7XG4gICAgICAgIHRoaXMuX25hbWVzLmFkZChuYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9tYXBwaW5ncy5hZGQoe1xuICAgICAgZ2VuZXJhdGVkTGluZTogZ2VuZXJhdGVkLmxpbmUsXG4gICAgICBnZW5lcmF0ZWRDb2x1bW46IGdlbmVyYXRlZC5jb2x1bW4sXG4gICAgICBvcmlnaW5hbExpbmU6IG9yaWdpbmFsICE9IG51bGwgJiYgb3JpZ2luYWwubGluZSxcbiAgICAgIG9yaWdpbmFsQ29sdW1uOiBvcmlnaW5hbCAhPSBudWxsICYmIG9yaWdpbmFsLmNvbHVtbixcbiAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgbmFtZTogbmFtZVxuICAgIH0pO1xuICB9O1xuXG4vKipcbiAqIFNldCB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGEgc291cmNlIGZpbGUuXG4gKi9cblNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuc2V0U291cmNlQ29udGVudCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9zZXRTb3VyY2VDb250ZW50KGFTb3VyY2VGaWxlLCBhU291cmNlQ29udGVudCkge1xuICAgIHZhciBzb3VyY2UgPSBhU291cmNlRmlsZTtcbiAgICBpZiAodGhpcy5fc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICBzb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHRoaXMuX3NvdXJjZVJvb3QsIHNvdXJjZSk7XG4gICAgfVxuXG4gICAgaWYgKGFTb3VyY2VDb250ZW50ICE9IG51bGwpIHtcbiAgICAgIC8vIEFkZCB0aGUgc291cmNlIGNvbnRlbnQgdG8gdGhlIF9zb3VyY2VzQ29udGVudHMgbWFwLlxuICAgICAgLy8gQ3JlYXRlIGEgbmV3IF9zb3VyY2VzQ29udGVudHMgbWFwIGlmIHRoZSBwcm9wZXJ0eSBpcyBudWxsLlxuICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzQ29udGVudHMpIHtcbiAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3NvdXJjZXNDb250ZW50c1t1dGlsLnRvU2V0U3RyaW5nKHNvdXJjZSldID0gYVNvdXJjZUNvbnRlbnQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9zb3VyY2VzQ29udGVudHMpIHtcbiAgICAgIC8vIFJlbW92ZSB0aGUgc291cmNlIGZpbGUgZnJvbSB0aGUgX3NvdXJjZXNDb250ZW50cyBtYXAuXG4gICAgICAvLyBJZiB0aGUgX3NvdXJjZXNDb250ZW50cyBtYXAgaXMgZW1wdHksIHNldCB0aGUgcHJvcGVydHkgdG8gbnVsbC5cbiAgICAgIGRlbGV0ZSB0aGlzLl9zb3VyY2VzQ29udGVudHNbdXRpbC50b1NldFN0cmluZyhzb3VyY2UpXTtcbiAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLl9zb3VyY2VzQ29udGVudHMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLl9zb3VyY2VzQ29udGVudHMgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuLyoqXG4gKiBBcHBsaWVzIHRoZSBtYXBwaW5ncyBvZiBhIHN1Yi1zb3VyY2UtbWFwIGZvciBhIHNwZWNpZmljIHNvdXJjZSBmaWxlIHRvIHRoZVxuICogc291cmNlIG1hcCBiZWluZyBnZW5lcmF0ZWQuIEVhY2ggbWFwcGluZyB0byB0aGUgc3VwcGxpZWQgc291cmNlIGZpbGUgaXNcbiAqIHJld3JpdHRlbiB1c2luZyB0aGUgc3VwcGxpZWQgc291cmNlIG1hcC4gTm90ZTogVGhlIHJlc29sdXRpb24gZm9yIHRoZVxuICogcmVzdWx0aW5nIG1hcHBpbmdzIGlzIHRoZSBtaW5pbWl1bSBvZiB0aGlzIG1hcCBhbmQgdGhlIHN1cHBsaWVkIG1hcC5cbiAqXG4gKiBAcGFyYW0gYVNvdXJjZU1hcENvbnN1bWVyIFRoZSBzb3VyY2UgbWFwIHRvIGJlIGFwcGxpZWQuXG4gKiBAcGFyYW0gYVNvdXJjZUZpbGUgT3B0aW9uYWwuIFRoZSBmaWxlbmFtZSBvZiB0aGUgc291cmNlIGZpbGUuXG4gKiAgICAgICAgSWYgb21pdHRlZCwgU291cmNlTWFwQ29uc3VtZXIncyBmaWxlIHByb3BlcnR5IHdpbGwgYmUgdXNlZC5cbiAqIEBwYXJhbSBhU291cmNlTWFwUGF0aCBPcHRpb25hbC4gVGhlIGRpcm5hbWUgb2YgdGhlIHBhdGggdG8gdGhlIHNvdXJjZSBtYXBcbiAqICAgICAgICB0byBiZSBhcHBsaWVkLiBJZiByZWxhdGl2ZSwgaXQgaXMgcmVsYXRpdmUgdG8gdGhlIFNvdXJjZU1hcENvbnN1bWVyLlxuICogICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIG5lZWRlZCB3aGVuIHRoZSB0d28gc291cmNlIG1hcHMgYXJlbid0IGluIHRoZSBzYW1lXG4gKiAgICAgICAgZGlyZWN0b3J5LCBhbmQgdGhlIHNvdXJjZSBtYXAgdG8gYmUgYXBwbGllZCBjb250YWlucyByZWxhdGl2ZSBzb3VyY2VcbiAqICAgICAgICBwYXRocy4gSWYgc28sIHRob3NlIHJlbGF0aXZlIHNvdXJjZSBwYXRocyBuZWVkIHRvIGJlIHJld3JpdHRlblxuICogICAgICAgIHJlbGF0aXZlIHRvIHRoZSBTb3VyY2VNYXBHZW5lcmF0b3IuXG4gKi9cblNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuYXBwbHlTb3VyY2VNYXAgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3JfYXBwbHlTb3VyY2VNYXAoYVNvdXJjZU1hcENvbnN1bWVyLCBhU291cmNlRmlsZSwgYVNvdXJjZU1hcFBhdGgpIHtcbiAgICB2YXIgc291cmNlRmlsZSA9IGFTb3VyY2VGaWxlO1xuICAgIC8vIElmIGFTb3VyY2VGaWxlIGlzIG9taXR0ZWQsIHdlIHdpbGwgdXNlIHRoZSBmaWxlIHByb3BlcnR5IG9mIHRoZSBTb3VyY2VNYXBcbiAgICBpZiAoYVNvdXJjZUZpbGUgPT0gbnVsbCkge1xuICAgICAgaWYgKGFTb3VyY2VNYXBDb25zdW1lci5maWxlID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdTb3VyY2VNYXBHZW5lcmF0b3IucHJvdG90eXBlLmFwcGx5U291cmNlTWFwIHJlcXVpcmVzIGVpdGhlciBhbiBleHBsaWNpdCBzb3VyY2UgZmlsZSwgJyArXG4gICAgICAgICAgJ29yIHRoZSBzb3VyY2UgbWFwXFwncyBcImZpbGVcIiBwcm9wZXJ0eS4gQm90aCB3ZXJlIG9taXR0ZWQuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgc291cmNlRmlsZSA9IGFTb3VyY2VNYXBDb25zdW1lci5maWxlO1xuICAgIH1cbiAgICB2YXIgc291cmNlUm9vdCA9IHRoaXMuX3NvdXJjZVJvb3Q7XG4gICAgLy8gTWFrZSBcInNvdXJjZUZpbGVcIiByZWxhdGl2ZSBpZiBhbiBhYnNvbHV0ZSBVcmwgaXMgcGFzc2VkLlxuICAgIGlmIChzb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgIHNvdXJjZUZpbGUgPSB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIHNvdXJjZUZpbGUpO1xuICAgIH1cbiAgICAvLyBBcHBseWluZyB0aGUgU291cmNlTWFwIGNhbiBhZGQgYW5kIHJlbW92ZSBpdGVtcyBmcm9tIHRoZSBzb3VyY2VzIGFuZFxuICAgIC8vIHRoZSBuYW1lcyBhcnJheS5cbiAgICB2YXIgbmV3U291cmNlcyA9IG5ldyBBcnJheVNldCgpO1xuICAgIHZhciBuZXdOYW1lcyA9IG5ldyBBcnJheVNldCgpO1xuXG4gICAgLy8gRmluZCBtYXBwaW5ncyBmb3IgdGhlIFwic291cmNlRmlsZVwiXG4gICAgdGhpcy5fbWFwcGluZ3MudW5zb3J0ZWRGb3JFYWNoKGZ1bmN0aW9uIChtYXBwaW5nKSB7XG4gICAgICBpZiAobWFwcGluZy5zb3VyY2UgPT09IHNvdXJjZUZpbGUgJiYgbWFwcGluZy5vcmlnaW5hbExpbmUgIT0gbnVsbCkge1xuICAgICAgICAvLyBDaGVjayBpZiBpdCBjYW4gYmUgbWFwcGVkIGJ5IHRoZSBzb3VyY2UgbWFwLCB0aGVuIHVwZGF0ZSB0aGUgbWFwcGluZy5cbiAgICAgICAgdmFyIG9yaWdpbmFsID0gYVNvdXJjZU1hcENvbnN1bWVyLm9yaWdpbmFsUG9zaXRpb25Gb3Ioe1xuICAgICAgICAgIGxpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLFxuICAgICAgICAgIGNvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtblxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKG9yaWdpbmFsLnNvdXJjZSAhPSBudWxsKSB7XG4gICAgICAgICAgLy8gQ29weSBtYXBwaW5nXG4gICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSBvcmlnaW5hbC5zb3VyY2U7XG4gICAgICAgICAgaWYgKGFTb3VyY2VNYXBQYXRoICE9IG51bGwpIHtcbiAgICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gdXRpbC5qb2luKGFTb3VyY2VNYXBQYXRoLCBtYXBwaW5nLnNvdXJjZSlcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIG1hcHBpbmcuc291cmNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUgPSBvcmlnaW5hbC5saW5lO1xuICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxDb2x1bW4gPSBvcmlnaW5hbC5jb2x1bW47XG4gICAgICAgICAgaWYgKG9yaWdpbmFsLm5hbWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgbWFwcGluZy5uYW1lID0gb3JpZ2luYWwubmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIHNvdXJjZSA9IG1hcHBpbmcuc291cmNlO1xuICAgICAgaWYgKHNvdXJjZSAhPSBudWxsICYmICFuZXdTb3VyY2VzLmhhcyhzb3VyY2UpKSB7XG4gICAgICAgIG5ld1NvdXJjZXMuYWRkKHNvdXJjZSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBuYW1lID0gbWFwcGluZy5uYW1lO1xuICAgICAgaWYgKG5hbWUgIT0gbnVsbCAmJiAhbmV3TmFtZXMuaGFzKG5hbWUpKSB7XG4gICAgICAgIG5ld05hbWVzLmFkZChuYW1lKTtcbiAgICAgIH1cblxuICAgIH0sIHRoaXMpO1xuICAgIHRoaXMuX3NvdXJjZXMgPSBuZXdTb3VyY2VzO1xuICAgIHRoaXMuX25hbWVzID0gbmV3TmFtZXM7XG5cbiAgICAvLyBDb3B5IHNvdXJjZXNDb250ZW50cyBvZiBhcHBsaWVkIG1hcC5cbiAgICBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlcy5mb3JFYWNoKGZ1bmN0aW9uIChzb3VyY2VGaWxlKSB7XG4gICAgICB2YXIgY29udGVudCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VDb250ZW50Rm9yKHNvdXJjZUZpbGUpO1xuICAgICAgaWYgKGNvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgICBpZiAoYVNvdXJjZU1hcFBhdGggIT0gbnVsbCkge1xuICAgICAgICAgIHNvdXJjZUZpbGUgPSB1dGlsLmpvaW4oYVNvdXJjZU1hcFBhdGgsIHNvdXJjZUZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgICAgICBzb3VyY2VGaWxlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBzb3VyY2VGaWxlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7XG4gICAgICB9XG4gICAgfSwgdGhpcyk7XG4gIH07XG5cbi8qKlxuICogQSBtYXBwaW5nIGNhbiBoYXZlIG9uZSBvZiB0aGUgdGhyZWUgbGV2ZWxzIG9mIGRhdGE6XG4gKlxuICogICAxLiBKdXN0IHRoZSBnZW5lcmF0ZWQgcG9zaXRpb24uXG4gKiAgIDIuIFRoZSBHZW5lcmF0ZWQgcG9zaXRpb24sIG9yaWdpbmFsIHBvc2l0aW9uLCBhbmQgb3JpZ2luYWwgc291cmNlLlxuICogICAzLiBHZW5lcmF0ZWQgYW5kIG9yaWdpbmFsIHBvc2l0aW9uLCBvcmlnaW5hbCBzb3VyY2UsIGFzIHdlbGwgYXMgYSBuYW1lXG4gKiAgICAgIHRva2VuLlxuICpcbiAqIFRvIG1haW50YWluIGNvbnNpc3RlbmN5LCB3ZSB2YWxpZGF0ZSB0aGF0IGFueSBuZXcgbWFwcGluZyBiZWluZyBhZGRlZCBmYWxsc1xuICogaW4gdG8gb25lIG9mIHRoZXNlIGNhdGVnb3JpZXMuXG4gKi9cblNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuX3ZhbGlkYXRlTWFwcGluZyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl92YWxpZGF0ZU1hcHBpbmcoYUdlbmVyYXRlZCwgYU9yaWdpbmFsLCBhU291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFOYW1lKSB7XG4gICAgLy8gV2hlbiBhT3JpZ2luYWwgaXMgdHJ1dGh5IGJ1dCBoYXMgZW1wdHkgdmFsdWVzIGZvciAubGluZSBhbmQgLmNvbHVtbixcbiAgICAvLyBpdCBpcyBtb3N0IGxpa2VseSBhIHByb2dyYW1tZXIgZXJyb3IuIEluIHRoaXMgY2FzZSB3ZSB0aHJvdyBhIHZlcnlcbiAgICAvLyBzcGVjaWZpYyBlcnJvciBtZXNzYWdlIHRvIHRyeSB0byBndWlkZSB0aGVtIHRoZSByaWdodCB3YXkuXG4gICAgLy8gRm9yIGV4YW1wbGU6IGh0dHBzOi8vZ2l0aHViLmNvbS9Qb2x5bWVyL3BvbHltZXItYnVuZGxlci9wdWxsLzUxOVxuICAgIGlmIChhT3JpZ2luYWwgJiYgdHlwZW9mIGFPcmlnaW5hbC5saW5lICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgYU9yaWdpbmFsLmNvbHVtbiAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ29yaWdpbmFsLmxpbmUgYW5kIG9yaWdpbmFsLmNvbHVtbiBhcmUgbm90IG51bWJlcnMgLS0geW91IHByb2JhYmx5IG1lYW50IHRvIG9taXQgJyArXG4gICAgICAgICAgICAndGhlIG9yaWdpbmFsIG1hcHBpbmcgZW50aXJlbHkgYW5kIG9ubHkgbWFwIHRoZSBnZW5lcmF0ZWQgcG9zaXRpb24uIElmIHNvLCBwYXNzICcgK1xuICAgICAgICAgICAgJ251bGwgZm9yIHRoZSBvcmlnaW5hbCBtYXBwaW5nIGluc3RlYWQgb2YgYW4gb2JqZWN0IHdpdGggZW1wdHkgb3IgbnVsbCB2YWx1ZXMuJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChhR2VuZXJhdGVkICYmICdsaW5lJyBpbiBhR2VuZXJhdGVkICYmICdjb2x1bW4nIGluIGFHZW5lcmF0ZWRcbiAgICAgICAgJiYgYUdlbmVyYXRlZC5saW5lID4gMCAmJiBhR2VuZXJhdGVkLmNvbHVtbiA+PSAwXG4gICAgICAgICYmICFhT3JpZ2luYWwgJiYgIWFTb3VyY2UgJiYgIWFOYW1lKSB7XG4gICAgICAvLyBDYXNlIDEuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsc2UgaWYgKGFHZW5lcmF0ZWQgJiYgJ2xpbmUnIGluIGFHZW5lcmF0ZWQgJiYgJ2NvbHVtbicgaW4gYUdlbmVyYXRlZFxuICAgICAgICAgICAgICYmIGFPcmlnaW5hbCAmJiAnbGluZScgaW4gYU9yaWdpbmFsICYmICdjb2x1bW4nIGluIGFPcmlnaW5hbFxuICAgICAgICAgICAgICYmIGFHZW5lcmF0ZWQubGluZSA+IDAgJiYgYUdlbmVyYXRlZC5jb2x1bW4gPj0gMFxuICAgICAgICAgICAgICYmIGFPcmlnaW5hbC5saW5lID4gMCAmJiBhT3JpZ2luYWwuY29sdW1uID49IDBcbiAgICAgICAgICAgICAmJiBhU291cmNlKSB7XG4gICAgICAvLyBDYXNlcyAyIGFuZCAzLlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBtYXBwaW5nOiAnICsgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBnZW5lcmF0ZWQ6IGFHZW5lcmF0ZWQsXG4gICAgICAgIHNvdXJjZTogYVNvdXJjZSxcbiAgICAgICAgb3JpZ2luYWw6IGFPcmlnaW5hbCxcbiAgICAgICAgbmFtZTogYU5hbWVcbiAgICAgIH0pKTtcbiAgICB9XG4gIH07XG5cbi8qKlxuICogU2VyaWFsaXplIHRoZSBhY2N1bXVsYXRlZCBtYXBwaW5ncyBpbiB0byB0aGUgc3RyZWFtIG9mIGJhc2UgNjQgVkxRc1xuICogc3BlY2lmaWVkIGJ5IHRoZSBzb3VyY2UgbWFwIGZvcm1hdC5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fc2VyaWFsaXplTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3Jfc2VyaWFsaXplTWFwcGluZ3MoKSB7XG4gICAgdmFyIHByZXZpb3VzR2VuZXJhdGVkQ29sdW1uID0gMDtcbiAgICB2YXIgcHJldmlvdXNHZW5lcmF0ZWRMaW5lID0gMTtcbiAgICB2YXIgcHJldmlvdXNPcmlnaW5hbENvbHVtbiA9IDA7XG4gICAgdmFyIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gMDtcbiAgICB2YXIgcHJldmlvdXNOYW1lID0gMDtcbiAgICB2YXIgcHJldmlvdXNTb3VyY2UgPSAwO1xuICAgIHZhciByZXN1bHQgPSAnJztcbiAgICB2YXIgbmV4dDtcbiAgICB2YXIgbWFwcGluZztcbiAgICB2YXIgbmFtZUlkeDtcbiAgICB2YXIgc291cmNlSWR4O1xuXG4gICAgdmFyIG1hcHBpbmdzID0gdGhpcy5fbWFwcGluZ3MudG9BcnJheSgpO1xuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBtYXBwaW5ncy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgbWFwcGluZyA9IG1hcHBpbmdzW2ldO1xuICAgICAgbmV4dCA9ICcnXG5cbiAgICAgIGlmIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgIT09IHByZXZpb3VzR2VuZXJhdGVkTGluZSkge1xuICAgICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7XG4gICAgICAgIHdoaWxlIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgIT09IHByZXZpb3VzR2VuZXJhdGVkTGluZSkge1xuICAgICAgICAgIG5leHQgKz0gJzsnO1xuICAgICAgICAgIHByZXZpb3VzR2VuZXJhdGVkTGluZSsrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgaWYgKCF1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkKG1hcHBpbmcsIG1hcHBpbmdzW2kgLSAxXSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuZXh0ICs9ICcsJztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobWFwcGluZy5nZW5lcmF0ZWRDb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4pO1xuICAgICAgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbjtcblxuICAgICAgaWYgKG1hcHBpbmcuc291cmNlICE9IG51bGwpIHtcbiAgICAgICAgc291cmNlSWR4ID0gdGhpcy5fc291cmNlcy5pbmRleE9mKG1hcHBpbmcuc291cmNlKTtcbiAgICAgICAgbmV4dCArPSBiYXNlNjRWTFEuZW5jb2RlKHNvdXJjZUlkeCAtIHByZXZpb3VzU291cmNlKTtcbiAgICAgICAgcHJldmlvdXNTb3VyY2UgPSBzb3VyY2VJZHg7XG5cbiAgICAgICAgLy8gbGluZXMgYXJlIHN0b3JlZCAwLWJhc2VkIGluIFNvdXJjZU1hcCBzcGVjIHZlcnNpb24gM1xuICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobWFwcGluZy5vcmlnaW5hbExpbmUgLSAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gcHJldmlvdXNPcmlnaW5hbExpbmUpO1xuICAgICAgICBwcmV2aW91c09yaWdpbmFsTGluZSA9IG1hcHBpbmcub3JpZ2luYWxMaW5lIC0gMTtcblxuICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobWFwcGluZy5vcmlnaW5hbENvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHByZXZpb3VzT3JpZ2luYWxDb2x1bW4pO1xuICAgICAgICBwcmV2aW91c09yaWdpbmFsQ29sdW1uID0gbWFwcGluZy5vcmlnaW5hbENvbHVtbjtcblxuICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9IG51bGwpIHtcbiAgICAgICAgICBuYW1lSWR4ID0gdGhpcy5fbmFtZXMuaW5kZXhPZihtYXBwaW5nLm5hbWUpO1xuICAgICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShuYW1lSWR4IC0gcHJldmlvdXNOYW1lKTtcbiAgICAgICAgICBwcmV2aW91c05hbWUgPSBuYW1lSWR4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJlc3VsdCArPSBuZXh0O1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cblNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuX2dlbmVyYXRlU291cmNlc0NvbnRlbnQgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3JfZ2VuZXJhdGVTb3VyY2VzQ29udGVudChhU291cmNlcywgYVNvdXJjZVJvb3QpIHtcbiAgICByZXR1cm4gYVNvdXJjZXMubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIGlmICghdGhpcy5fc291cmNlc0NvbnRlbnRzKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKGFTb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgICAgc291cmNlID0gdXRpbC5yZWxhdGl2ZShhU291cmNlUm9vdCwgc291cmNlKTtcbiAgICAgIH1cbiAgICAgIHZhciBrZXkgPSB1dGlsLnRvU2V0U3RyaW5nKHNvdXJjZSk7XG4gICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuX3NvdXJjZXNDb250ZW50cywga2V5KVxuICAgICAgICA/IHRoaXMuX3NvdXJjZXNDb250ZW50c1trZXldXG4gICAgICAgIDogbnVsbDtcbiAgICB9LCB0aGlzKTtcbiAgfTtcblxuLyoqXG4gKiBFeHRlcm5hbGl6ZSB0aGUgc291cmNlIG1hcC5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS50b0pTT04gPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3JfdG9KU09OKCkge1xuICAgIHZhciBtYXAgPSB7XG4gICAgICB2ZXJzaW9uOiB0aGlzLl92ZXJzaW9uLFxuICAgICAgc291cmNlczogdGhpcy5fc291cmNlcy50b0FycmF5KCksXG4gICAgICBuYW1lczogdGhpcy5fbmFtZXMudG9BcnJheSgpLFxuICAgICAgbWFwcGluZ3M6IHRoaXMuX3NlcmlhbGl6ZU1hcHBpbmdzKClcbiAgICB9O1xuICAgIGlmICh0aGlzLl9maWxlICE9IG51bGwpIHtcbiAgICAgIG1hcC5maWxlID0gdGhpcy5fZmlsZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3NvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgbWFwLnNvdXJjZVJvb3QgPSB0aGlzLl9zb3VyY2VSb290O1xuICAgIH1cbiAgICBpZiAodGhpcy5fc291cmNlc0NvbnRlbnRzKSB7XG4gICAgICBtYXAuc291cmNlc0NvbnRlbnQgPSB0aGlzLl9nZW5lcmF0ZVNvdXJjZXNDb250ZW50KG1hcC5zb3VyY2VzLCBtYXAuc291cmNlUm9vdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcDtcbiAgfTtcblxuLyoqXG4gKiBSZW5kZXIgdGhlIHNvdXJjZSBtYXAgYmVpbmcgZ2VuZXJhdGVkIHRvIGEgc3RyaW5nLlxuICovXG5Tb3VyY2VNYXBHZW5lcmF0b3IucHJvdG90eXBlLnRvU3RyaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX3RvU3RyaW5nKCkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnRvSlNPTigpKTtcbiAgfTtcblxuZXhwb3J0cy5Tb3VyY2VNYXBHZW5lcmF0b3IgPSBTb3VyY2VNYXBHZW5lcmF0b3I7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICpcbiAqIEJhc2VkIG9uIHRoZSBCYXNlIDY0IFZMUSBpbXBsZW1lbnRhdGlvbiBpbiBDbG9zdXJlIENvbXBpbGVyOlxuICogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jbG9zdXJlLWNvbXBpbGVyL3NvdXJjZS9icm93c2UvdHJ1bmsvc3JjL2NvbS9nb29nbGUvZGVidWdnaW5nL3NvdXJjZW1hcC9CYXNlNjRWTFEuamF2YVxuICpcbiAqIENvcHlyaWdodCAyMDExIFRoZSBDbG9zdXJlIENvbXBpbGVyIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXRcbiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmVcbiAqIG1ldDpcbiAqXG4gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodFxuICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZVxuICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmdcbiAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZFxuICogICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuICogICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0c1xuICogICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkXG4gKiAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uXG4gKlxuICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SU1xuICogXCJBUyBJU1wiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVFxuICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SXG4gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVFxuICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsXG4gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UXG4gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSxcbiAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWVxuICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFXG4gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICovXG5cbnZhciBiYXNlNjQgPSByZXF1aXJlKCcuL2Jhc2U2NCcpO1xuXG4vLyBBIHNpbmdsZSBiYXNlIDY0IGRpZ2l0IGNhbiBjb250YWluIDYgYml0cyBvZiBkYXRhLiBGb3IgdGhlIGJhc2UgNjQgdmFyaWFibGVcbi8vIGxlbmd0aCBxdWFudGl0aWVzIHdlIHVzZSBpbiB0aGUgc291cmNlIG1hcCBzcGVjLCB0aGUgZmlyc3QgYml0IGlzIHRoZSBzaWduLFxuLy8gdGhlIG5leHQgZm91ciBiaXRzIGFyZSB0aGUgYWN0dWFsIHZhbHVlLCBhbmQgdGhlIDZ0aCBiaXQgaXMgdGhlXG4vLyBjb250aW51YXRpb24gYml0LiBUaGUgY29udGludWF0aW9uIGJpdCB0ZWxscyB1cyB3aGV0aGVyIHRoZXJlIGFyZSBtb3JlXG4vLyBkaWdpdHMgaW4gdGhpcyB2YWx1ZSBmb2xsb3dpbmcgdGhpcyBkaWdpdC5cbi8vXG4vLyAgIENvbnRpbnVhdGlvblxuLy8gICB8ICAgIFNpZ25cbi8vICAgfCAgICB8XG4vLyAgIFYgICAgVlxuLy8gICAxMDEwMTFcblxudmFyIFZMUV9CQVNFX1NISUZUID0gNTtcblxuLy8gYmluYXJ5OiAxMDAwMDBcbnZhciBWTFFfQkFTRSA9IDEgPDwgVkxRX0JBU0VfU0hJRlQ7XG5cbi8vIGJpbmFyeTogMDExMTExXG52YXIgVkxRX0JBU0VfTUFTSyA9IFZMUV9CQVNFIC0gMTtcblxuLy8gYmluYXJ5OiAxMDAwMDBcbnZhciBWTFFfQ09OVElOVUFUSU9OX0JJVCA9IFZMUV9CQVNFO1xuXG4vKipcbiAqIENvbnZlcnRzIGZyb20gYSB0d28tY29tcGxlbWVudCB2YWx1ZSB0byBhIHZhbHVlIHdoZXJlIHRoZSBzaWduIGJpdCBpc1xuICogcGxhY2VkIGluIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQuICBGb3IgZXhhbXBsZSwgYXMgZGVjaW1hbHM6XG4gKiAgIDEgYmVjb21lcyAyICgxMCBiaW5hcnkpLCAtMSBiZWNvbWVzIDMgKDExIGJpbmFyeSlcbiAqICAgMiBiZWNvbWVzIDQgKDEwMCBiaW5hcnkpLCAtMiBiZWNvbWVzIDUgKDEwMSBiaW5hcnkpXG4gKi9cbmZ1bmN0aW9uIHRvVkxRU2lnbmVkKGFWYWx1ZSkge1xuICByZXR1cm4gYVZhbHVlIDwgMFxuICAgID8gKCgtYVZhbHVlKSA8PCAxKSArIDFcbiAgICA6IChhVmFsdWUgPDwgMSkgKyAwO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHRvIGEgdHdvLWNvbXBsZW1lbnQgdmFsdWUgZnJvbSBhIHZhbHVlIHdoZXJlIHRoZSBzaWduIGJpdCBpc1xuICogcGxhY2VkIGluIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQuICBGb3IgZXhhbXBsZSwgYXMgZGVjaW1hbHM6XG4gKiAgIDIgKDEwIGJpbmFyeSkgYmVjb21lcyAxLCAzICgxMSBiaW5hcnkpIGJlY29tZXMgLTFcbiAqICAgNCAoMTAwIGJpbmFyeSkgYmVjb21lcyAyLCA1ICgxMDEgYmluYXJ5KSBiZWNvbWVzIC0yXG4gKi9cbmZ1bmN0aW9uIGZyb21WTFFTaWduZWQoYVZhbHVlKSB7XG4gIHZhciBpc05lZ2F0aXZlID0gKGFWYWx1ZSAmIDEpID09PSAxO1xuICB2YXIgc2hpZnRlZCA9IGFWYWx1ZSA+PiAxO1xuICByZXR1cm4gaXNOZWdhdGl2ZVxuICAgID8gLXNoaWZ0ZWRcbiAgICA6IHNoaWZ0ZWQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYmFzZSA2NCBWTFEgZW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0cy5lbmNvZGUgPSBmdW5jdGlvbiBiYXNlNjRWTFFfZW5jb2RlKGFWYWx1ZSkge1xuICB2YXIgZW5jb2RlZCA9IFwiXCI7XG4gIHZhciBkaWdpdDtcblxuICB2YXIgdmxxID0gdG9WTFFTaWduZWQoYVZhbHVlKTtcblxuICBkbyB7XG4gICAgZGlnaXQgPSB2bHEgJiBWTFFfQkFTRV9NQVNLO1xuICAgIHZscSA+Pj49IFZMUV9CQVNFX1NISUZUO1xuICAgIGlmICh2bHEgPiAwKSB7XG4gICAgICAvLyBUaGVyZSBhcmUgc3RpbGwgbW9yZSBkaWdpdHMgaW4gdGhpcyB2YWx1ZSwgc28gd2UgbXVzdCBtYWtlIHN1cmUgdGhlXG4gICAgICAvLyBjb250aW51YXRpb24gYml0IGlzIG1hcmtlZC5cbiAgICAgIGRpZ2l0IHw9IFZMUV9DT05USU5VQVRJT05fQklUO1xuICAgIH1cbiAgICBlbmNvZGVkICs9IGJhc2U2NC5lbmNvZGUoZGlnaXQpO1xuICB9IHdoaWxlICh2bHEgPiAwKTtcblxuICByZXR1cm4gZW5jb2RlZDtcbn07XG5cbi8qKlxuICogRGVjb2RlcyB0aGUgbmV4dCBiYXNlIDY0IFZMUSB2YWx1ZSBmcm9tIHRoZSBnaXZlbiBzdHJpbmcgYW5kIHJldHVybnMgdGhlXG4gKiB2YWx1ZSBhbmQgdGhlIHJlc3Qgb2YgdGhlIHN0cmluZyB2aWEgdGhlIG91dCBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydHMuZGVjb2RlID0gZnVuY3Rpb24gYmFzZTY0VkxRX2RlY29kZShhU3RyLCBhSW5kZXgsIGFPdXRQYXJhbSkge1xuICB2YXIgc3RyTGVuID0gYVN0ci5sZW5ndGg7XG4gIHZhciByZXN1bHQgPSAwO1xuICB2YXIgc2hpZnQgPSAwO1xuICB2YXIgY29udGludWF0aW9uLCBkaWdpdDtcblxuICBkbyB7XG4gICAgaWYgKGFJbmRleCA+PSBzdHJMZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIG1vcmUgZGlnaXRzIGluIGJhc2UgNjQgVkxRIHZhbHVlLlwiKTtcbiAgICB9XG5cbiAgICBkaWdpdCA9IGJhc2U2NC5kZWNvZGUoYVN0ci5jaGFyQ29kZUF0KGFJbmRleCsrKSk7XG4gICAgaWYgKGRpZ2l0ID09PSAtMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBiYXNlNjQgZGlnaXQ6IFwiICsgYVN0ci5jaGFyQXQoYUluZGV4IC0gMSkpO1xuICAgIH1cblxuICAgIGNvbnRpbnVhdGlvbiA9ICEhKGRpZ2l0ICYgVkxRX0NPTlRJTlVBVElPTl9CSVQpO1xuICAgIGRpZ2l0ICY9IFZMUV9CQVNFX01BU0s7XG4gICAgcmVzdWx0ID0gcmVzdWx0ICsgKGRpZ2l0IDw8IHNoaWZ0KTtcbiAgICBzaGlmdCArPSBWTFFfQkFTRV9TSElGVDtcbiAgfSB3aGlsZSAoY29udGludWF0aW9uKTtcblxuICBhT3V0UGFyYW0udmFsdWUgPSBmcm9tVkxRU2lnbmVkKHJlc3VsdCk7XG4gIGFPdXRQYXJhbS5yZXN0ID0gYUluZGV4O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL2Jhc2U2NC12bHEuanNcbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgaW50VG9DaGFyTWFwID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nLnNwbGl0KCcnKTtcblxuLyoqXG4gKiBFbmNvZGUgYW4gaW50ZWdlciBpbiB0aGUgcmFuZ2Ugb2YgMCB0byA2MyB0byBhIHNpbmdsZSBiYXNlIDY0IGRpZ2l0LlxuICovXG5leHBvcnRzLmVuY29kZSA9IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgaWYgKDAgPD0gbnVtYmVyICYmIG51bWJlciA8IGludFRvQ2hhck1hcC5sZW5ndGgpIHtcbiAgICByZXR1cm4gaW50VG9DaGFyTWFwW251bWJlcl07XG4gIH1cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk11c3QgYmUgYmV0d2VlbiAwIGFuZCA2MzogXCIgKyBudW1iZXIpO1xufTtcblxuLyoqXG4gKiBEZWNvZGUgYSBzaW5nbGUgYmFzZSA2NCBjaGFyYWN0ZXIgY29kZSBkaWdpdCB0byBhbiBpbnRlZ2VyLiBSZXR1cm5zIC0xIG9uXG4gKiBmYWlsdXJlLlxuICovXG5leHBvcnRzLmRlY29kZSA9IGZ1bmN0aW9uIChjaGFyQ29kZSkge1xuICB2YXIgYmlnQSA9IDY1OyAgICAgLy8gJ0EnXG4gIHZhciBiaWdaID0gOTA7ICAgICAvLyAnWidcblxuICB2YXIgbGl0dGxlQSA9IDk3OyAgLy8gJ2EnXG4gIHZhciBsaXR0bGVaID0gMTIyOyAvLyAneidcblxuICB2YXIgemVybyA9IDQ4OyAgICAgLy8gJzAnXG4gIHZhciBuaW5lID0gNTc7ICAgICAvLyAnOSdcblxuICB2YXIgcGx1cyA9IDQzOyAgICAgLy8gJysnXG4gIHZhciBzbGFzaCA9IDQ3OyAgICAvLyAnLydcblxuICB2YXIgbGl0dGxlT2Zmc2V0ID0gMjY7XG4gIHZhciBudW1iZXJPZmZzZXQgPSA1MjtcblxuICAvLyAwIC0gMjU6IEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaXG4gIGlmIChiaWdBIDw9IGNoYXJDb2RlICYmIGNoYXJDb2RlIDw9IGJpZ1opIHtcbiAgICByZXR1cm4gKGNoYXJDb2RlIC0gYmlnQSk7XG4gIH1cblxuICAvLyAyNiAtIDUxOiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5elxuICBpZiAobGl0dGxlQSA8PSBjaGFyQ29kZSAmJiBjaGFyQ29kZSA8PSBsaXR0bGVaKSB7XG4gICAgcmV0dXJuIChjaGFyQ29kZSAtIGxpdHRsZUEgKyBsaXR0bGVPZmZzZXQpO1xuICB9XG5cbiAgLy8gNTIgLSA2MTogMDEyMzQ1Njc4OVxuICBpZiAoemVybyA8PSBjaGFyQ29kZSAmJiBjaGFyQ29kZSA8PSBuaW5lKSB7XG4gICAgcmV0dXJuIChjaGFyQ29kZSAtIHplcm8gKyBudW1iZXJPZmZzZXQpO1xuICB9XG5cbiAgLy8gNjI6ICtcbiAgaWYgKGNoYXJDb2RlID09IHBsdXMpIHtcbiAgICByZXR1cm4gNjI7XG4gIH1cblxuICAvLyA2MzogL1xuICBpZiAoY2hhckNvZGUgPT0gc2xhc2gpIHtcbiAgICByZXR1cm4gNjM7XG4gIH1cblxuICAvLyBJbnZhbGlkIGJhc2U2NCBkaWdpdC5cbiAgcmV0dXJuIC0xO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL2Jhc2U2NC5qc1xuLy8gbW9kdWxlIGlkID0gM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbi8qKlxuICogVGhpcyBpcyBhIGhlbHBlciBmdW5jdGlvbiBmb3IgZ2V0dGluZyB2YWx1ZXMgZnJvbSBwYXJhbWV0ZXIvb3B0aW9uc1xuICogb2JqZWN0cy5cbiAqXG4gKiBAcGFyYW0gYXJncyBUaGUgb2JqZWN0IHdlIGFyZSBleHRyYWN0aW5nIHZhbHVlcyBmcm9tXG4gKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgd2UgYXJlIGdldHRpbmcuXG4gKiBAcGFyYW0gZGVmYXVsdFZhbHVlIEFuIG9wdGlvbmFsIHZhbHVlIHRvIHJldHVybiBpZiB0aGUgcHJvcGVydHkgaXMgbWlzc2luZ1xuICogZnJvbSB0aGUgb2JqZWN0LiBJZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYW5kIHRoZSBwcm9wZXJ0eSBpcyBtaXNzaW5nLCBhblxuICogZXJyb3Igd2lsbCBiZSB0aHJvd24uXG4gKi9cbmZ1bmN0aW9uIGdldEFyZyhhQXJncywgYU5hbWUsIGFEZWZhdWx0VmFsdWUpIHtcbiAgaWYgKGFOYW1lIGluIGFBcmdzKSB7XG4gICAgcmV0dXJuIGFBcmdzW2FOYW1lXTtcbiAgfSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAzKSB7XG4gICAgcmV0dXJuIGFEZWZhdWx0VmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdcIicgKyBhTmFtZSArICdcIiBpcyBhIHJlcXVpcmVkIGFyZ3VtZW50LicpO1xuICB9XG59XG5leHBvcnRzLmdldEFyZyA9IGdldEFyZztcblxudmFyIHVybFJlZ2V4cCA9IC9eKD86KFtcXHcrXFwtLl0rKTopP1xcL1xcLyg/OihcXHcrOlxcdyspQCk/KFtcXHcuLV0qKSg/OjooXFxkKykpPyguKikkLztcbnZhciBkYXRhVXJsUmVnZXhwID0gL15kYXRhOi4rXFwsLiskLztcblxuZnVuY3Rpb24gdXJsUGFyc2UoYVVybCkge1xuICB2YXIgbWF0Y2ggPSBhVXJsLm1hdGNoKHVybFJlZ2V4cCk7XG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHNjaGVtZTogbWF0Y2hbMV0sXG4gICAgYXV0aDogbWF0Y2hbMl0sXG4gICAgaG9zdDogbWF0Y2hbM10sXG4gICAgcG9ydDogbWF0Y2hbNF0sXG4gICAgcGF0aDogbWF0Y2hbNV1cbiAgfTtcbn1cbmV4cG9ydHMudXJsUGFyc2UgPSB1cmxQYXJzZTtcblxuZnVuY3Rpb24gdXJsR2VuZXJhdGUoYVBhcnNlZFVybCkge1xuICB2YXIgdXJsID0gJyc7XG4gIGlmIChhUGFyc2VkVXJsLnNjaGVtZSkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLnNjaGVtZSArICc6JztcbiAgfVxuICB1cmwgKz0gJy8vJztcbiAgaWYgKGFQYXJzZWRVcmwuYXV0aCkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLmF1dGggKyAnQCc7XG4gIH1cbiAgaWYgKGFQYXJzZWRVcmwuaG9zdCkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLmhvc3Q7XG4gIH1cbiAgaWYgKGFQYXJzZWRVcmwucG9ydCkge1xuICAgIHVybCArPSBcIjpcIiArIGFQYXJzZWRVcmwucG9ydFxuICB9XG4gIGlmIChhUGFyc2VkVXJsLnBhdGgpIHtcbiAgICB1cmwgKz0gYVBhcnNlZFVybC5wYXRoO1xuICB9XG4gIHJldHVybiB1cmw7XG59XG5leHBvcnRzLnVybEdlbmVyYXRlID0gdXJsR2VuZXJhdGU7XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIHBhdGgsIG9yIHRoZSBwYXRoIHBvcnRpb24gb2YgYSBVUkw6XG4gKlxuICogLSBSZXBsYWNlcyBjb25zZWN1dGl2ZSBzbGFzaGVzIHdpdGggb25lIHNsYXNoLlxuICogLSBSZW1vdmVzIHVubmVjZXNzYXJ5ICcuJyBwYXJ0cy5cbiAqIC0gUmVtb3ZlcyB1bm5lY2Vzc2FyeSAnPGRpcj4vLi4nIHBhcnRzLlxuICpcbiAqIEJhc2VkIG9uIGNvZGUgaW4gdGhlIE5vZGUuanMgJ3BhdGgnIGNvcmUgbW9kdWxlLlxuICpcbiAqIEBwYXJhbSBhUGF0aCBUaGUgcGF0aCBvciB1cmwgdG8gbm9ybWFsaXplLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemUoYVBhdGgpIHtcbiAgdmFyIHBhdGggPSBhUGF0aDtcbiAgdmFyIHVybCA9IHVybFBhcnNlKGFQYXRoKTtcbiAgaWYgKHVybCkge1xuICAgIGlmICghdXJsLnBhdGgpIHtcbiAgICAgIHJldHVybiBhUGF0aDtcbiAgICB9XG4gICAgcGF0aCA9IHVybC5wYXRoO1xuICB9XG4gIHZhciBpc0Fic29sdXRlID0gZXhwb3J0cy5pc0Fic29sdXRlKHBhdGgpO1xuXG4gIHZhciBwYXJ0cyA9IHBhdGguc3BsaXQoL1xcLysvKTtcbiAgZm9yICh2YXIgcGFydCwgdXAgPSAwLCBpID0gcGFydHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBwYXJ0ID0gcGFydHNbaV07XG4gICAgaWYgKHBhcnQgPT09ICcuJykge1xuICAgICAgcGFydHMuc3BsaWNlKGksIDEpO1xuICAgIH0gZWxzZSBpZiAocGFydCA9PT0gJy4uJykge1xuICAgICAgdXArKztcbiAgICB9IGVsc2UgaWYgKHVwID4gMCkge1xuICAgICAgaWYgKHBhcnQgPT09ICcnKSB7XG4gICAgICAgIC8vIFRoZSBmaXJzdCBwYXJ0IGlzIGJsYW5rIGlmIHRoZSBwYXRoIGlzIGFic29sdXRlLiBUcnlpbmcgdG8gZ29cbiAgICAgICAgLy8gYWJvdmUgdGhlIHJvb3QgaXMgYSBuby1vcC4gVGhlcmVmb3JlIHdlIGNhbiByZW1vdmUgYWxsICcuLicgcGFydHNcbiAgICAgICAgLy8gZGlyZWN0bHkgYWZ0ZXIgdGhlIHJvb3QuXG4gICAgICAgIHBhcnRzLnNwbGljZShpICsgMSwgdXApO1xuICAgICAgICB1cCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMik7XG4gICAgICAgIHVwLS07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHBhdGggPSBwYXJ0cy5qb2luKCcvJyk7XG5cbiAgaWYgKHBhdGggPT09ICcnKSB7XG4gICAgcGF0aCA9IGlzQWJzb2x1dGUgPyAnLycgOiAnLic7XG4gIH1cblxuICBpZiAodXJsKSB7XG4gICAgdXJsLnBhdGggPSBwYXRoO1xuICAgIHJldHVybiB1cmxHZW5lcmF0ZSh1cmwpO1xuICB9XG4gIHJldHVybiBwYXRoO1xufVxuZXhwb3J0cy5ub3JtYWxpemUgPSBub3JtYWxpemU7XG5cbi8qKlxuICogSm9pbnMgdHdvIHBhdGhzL1VSTHMuXG4gKlxuICogQHBhcmFtIGFSb290IFRoZSByb290IHBhdGggb3IgVVJMLlxuICogQHBhcmFtIGFQYXRoIFRoZSBwYXRoIG9yIFVSTCB0byBiZSBqb2luZWQgd2l0aCB0aGUgcm9vdC5cbiAqXG4gKiAtIElmIGFQYXRoIGlzIGEgVVJMIG9yIGEgZGF0YSBVUkksIGFQYXRoIGlzIHJldHVybmVkLCB1bmxlc3MgYVBhdGggaXMgYVxuICogICBzY2hlbWUtcmVsYXRpdmUgVVJMOiBUaGVuIHRoZSBzY2hlbWUgb2YgYVJvb3QsIGlmIGFueSwgaXMgcHJlcGVuZGVkXG4gKiAgIGZpcnN0LlxuICogLSBPdGhlcndpc2UgYVBhdGggaXMgYSBwYXRoLiBJZiBhUm9vdCBpcyBhIFVSTCwgdGhlbiBpdHMgcGF0aCBwb3J0aW9uXG4gKiAgIGlzIHVwZGF0ZWQgd2l0aCB0aGUgcmVzdWx0IGFuZCBhUm9vdCBpcyByZXR1cm5lZC4gT3RoZXJ3aXNlIHRoZSByZXN1bHRcbiAqICAgaXMgcmV0dXJuZWQuXG4gKiAgIC0gSWYgYVBhdGggaXMgYWJzb2x1dGUsIHRoZSByZXN1bHQgaXMgYVBhdGguXG4gKiAgIC0gT3RoZXJ3aXNlIHRoZSB0d28gcGF0aHMgYXJlIGpvaW5lZCB3aXRoIGEgc2xhc2guXG4gKiAtIEpvaW5pbmcgZm9yIGV4YW1wbGUgJ2h0dHA6Ly8nIGFuZCAnd3d3LmV4YW1wbGUuY29tJyBpcyBhbHNvIHN1cHBvcnRlZC5cbiAqL1xuZnVuY3Rpb24gam9pbihhUm9vdCwgYVBhdGgpIHtcbiAgaWYgKGFSb290ID09PSBcIlwiKSB7XG4gICAgYVJvb3QgPSBcIi5cIjtcbiAgfVxuICBpZiAoYVBhdGggPT09IFwiXCIpIHtcbiAgICBhUGF0aCA9IFwiLlwiO1xuICB9XG4gIHZhciBhUGF0aFVybCA9IHVybFBhcnNlKGFQYXRoKTtcbiAgdmFyIGFSb290VXJsID0gdXJsUGFyc2UoYVJvb3QpO1xuICBpZiAoYVJvb3RVcmwpIHtcbiAgICBhUm9vdCA9IGFSb290VXJsLnBhdGggfHwgJy8nO1xuICB9XG5cbiAgLy8gYGpvaW4oZm9vLCAnLy93d3cuZXhhbXBsZS5vcmcnKWBcbiAgaWYgKGFQYXRoVXJsICYmICFhUGF0aFVybC5zY2hlbWUpIHtcbiAgICBpZiAoYVJvb3RVcmwpIHtcbiAgICAgIGFQYXRoVXJsLnNjaGVtZSA9IGFSb290VXJsLnNjaGVtZTtcbiAgICB9XG4gICAgcmV0dXJuIHVybEdlbmVyYXRlKGFQYXRoVXJsKTtcbiAgfVxuXG4gIGlmIChhUGF0aFVybCB8fCBhUGF0aC5tYXRjaChkYXRhVXJsUmVnZXhwKSkge1xuICAgIHJldHVybiBhUGF0aDtcbiAgfVxuXG4gIC8vIGBqb2luKCdodHRwOi8vJywgJ3d3dy5leGFtcGxlLmNvbScpYFxuICBpZiAoYVJvb3RVcmwgJiYgIWFSb290VXJsLmhvc3QgJiYgIWFSb290VXJsLnBhdGgpIHtcbiAgICBhUm9vdFVybC5ob3N0ID0gYVBhdGg7XG4gICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTtcbiAgfVxuXG4gIHZhciBqb2luZWQgPSBhUGF0aC5jaGFyQXQoMCkgPT09ICcvJ1xuICAgID8gYVBhdGhcbiAgICA6IG5vcm1hbGl6ZShhUm9vdC5yZXBsYWNlKC9cXC8rJC8sICcnKSArICcvJyArIGFQYXRoKTtcblxuICBpZiAoYVJvb3RVcmwpIHtcbiAgICBhUm9vdFVybC5wYXRoID0gam9pbmVkO1xuICAgIHJldHVybiB1cmxHZW5lcmF0ZShhUm9vdFVybCk7XG4gIH1cbiAgcmV0dXJuIGpvaW5lZDtcbn1cbmV4cG9ydHMuam9pbiA9IGpvaW47XG5cbmV4cG9ydHMuaXNBYnNvbHV0ZSA9IGZ1bmN0aW9uIChhUGF0aCkge1xuICByZXR1cm4gYVBhdGguY2hhckF0KDApID09PSAnLycgfHwgdXJsUmVnZXhwLnRlc3QoYVBhdGgpO1xufTtcblxuLyoqXG4gKiBNYWtlIGEgcGF0aCByZWxhdGl2ZSB0byBhIFVSTCBvciBhbm90aGVyIHBhdGguXG4gKlxuICogQHBhcmFtIGFSb290IFRoZSByb290IHBhdGggb3IgVVJMLlxuICogQHBhcmFtIGFQYXRoIFRoZSBwYXRoIG9yIFVSTCB0byBiZSBtYWRlIHJlbGF0aXZlIHRvIGFSb290LlxuICovXG5mdW5jdGlvbiByZWxhdGl2ZShhUm9vdCwgYVBhdGgpIHtcbiAgaWYgKGFSb290ID09PSBcIlwiKSB7XG4gICAgYVJvb3QgPSBcIi5cIjtcbiAgfVxuXG4gIGFSb290ID0gYVJvb3QucmVwbGFjZSgvXFwvJC8sICcnKTtcblxuICAvLyBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIHBhdGggdG8gYmUgYWJvdmUgdGhlIHJvb3QuIEluIHRoaXMgY2FzZSwgc2ltcGx5XG4gIC8vIGNoZWNraW5nIHdoZXRoZXIgdGhlIHJvb3QgaXMgYSBwcmVmaXggb2YgdGhlIHBhdGggd29uJ3Qgd29yay4gSW5zdGVhZCwgd2VcbiAgLy8gbmVlZCB0byByZW1vdmUgY29tcG9uZW50cyBmcm9tIHRoZSByb290IG9uZSBieSBvbmUsIHVudGlsIGVpdGhlciB3ZSBmaW5kXG4gIC8vIGEgcHJlZml4IHRoYXQgZml0cywgb3Igd2UgcnVuIG91dCBvZiBjb21wb25lbnRzIHRvIHJlbW92ZS5cbiAgdmFyIGxldmVsID0gMDtcbiAgd2hpbGUgKGFQYXRoLmluZGV4T2YoYVJvb3QgKyAnLycpICE9PSAwKSB7XG4gICAgdmFyIGluZGV4ID0gYVJvb3QubGFzdEluZGV4T2YoXCIvXCIpO1xuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIHJldHVybiBhUGF0aDtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgb25seSBwYXJ0IG9mIHRoZSByb290IHRoYXQgaXMgbGVmdCBpcyB0aGUgc2NoZW1lIChpLmUuIGh0dHA6Ly8sXG4gICAgLy8gZmlsZTovLy8sIGV0Yy4pLCBvbmUgb3IgbW9yZSBzbGFzaGVzICgvKSwgb3Igc2ltcGx5IG5vdGhpbmcgYXQgYWxsLCB3ZVxuICAgIC8vIGhhdmUgZXhoYXVzdGVkIGFsbCBjb21wb25lbnRzLCBzbyB0aGUgcGF0aCBpcyBub3QgcmVsYXRpdmUgdG8gdGhlIHJvb3QuXG4gICAgYVJvb3QgPSBhUm9vdC5zbGljZSgwLCBpbmRleCk7XG4gICAgaWYgKGFSb290Lm1hdGNoKC9eKFteXFwvXSs6XFwvKT9cXC8qJC8pKSB7XG4gICAgICByZXR1cm4gYVBhdGg7XG4gICAgfVxuXG4gICAgKytsZXZlbDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB3ZSBhZGQgYSBcIi4uL1wiIGZvciBlYWNoIGNvbXBvbmVudCB3ZSByZW1vdmVkIGZyb20gdGhlIHJvb3QuXG4gIHJldHVybiBBcnJheShsZXZlbCArIDEpLmpvaW4oXCIuLi9cIikgKyBhUGF0aC5zdWJzdHIoYVJvb3QubGVuZ3RoICsgMSk7XG59XG5leHBvcnRzLnJlbGF0aXZlID0gcmVsYXRpdmU7XG5cbnZhciBzdXBwb3J0c051bGxQcm90byA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciBvYmogPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICByZXR1cm4gISgnX19wcm90b19fJyBpbiBvYmopO1xufSgpKTtcblxuZnVuY3Rpb24gaWRlbnRpdHkgKHMpIHtcbiAgcmV0dXJuIHM7XG59XG5cbi8qKlxuICogQmVjYXVzZSBiZWhhdmlvciBnb2VzIHdhY2t5IHdoZW4geW91IHNldCBgX19wcm90b19fYCBvbiBvYmplY3RzLCB3ZVxuICogaGF2ZSB0byBwcmVmaXggYWxsIHRoZSBzdHJpbmdzIGluIG91ciBzZXQgd2l0aCBhbiBhcmJpdHJhcnkgY2hhcmFjdGVyLlxuICpcbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL3B1bGwvMzEgYW5kXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL2lzc3Vlcy8zMFxuICpcbiAqIEBwYXJhbSBTdHJpbmcgYVN0clxuICovXG5mdW5jdGlvbiB0b1NldFN0cmluZyhhU3RyKSB7XG4gIGlmIChpc1Byb3RvU3RyaW5nKGFTdHIpKSB7XG4gICAgcmV0dXJuICckJyArIGFTdHI7XG4gIH1cblxuICByZXR1cm4gYVN0cjtcbn1cbmV4cG9ydHMudG9TZXRTdHJpbmcgPSBzdXBwb3J0c051bGxQcm90byA/IGlkZW50aXR5IDogdG9TZXRTdHJpbmc7XG5cbmZ1bmN0aW9uIGZyb21TZXRTdHJpbmcoYVN0cikge1xuICBpZiAoaXNQcm90b1N0cmluZyhhU3RyKSkge1xuICAgIHJldHVybiBhU3RyLnNsaWNlKDEpO1xuICB9XG5cbiAgcmV0dXJuIGFTdHI7XG59XG5leHBvcnRzLmZyb21TZXRTdHJpbmcgPSBzdXBwb3J0c051bGxQcm90byA/IGlkZW50aXR5IDogZnJvbVNldFN0cmluZztcblxuZnVuY3Rpb24gaXNQcm90b1N0cmluZyhzKSB7XG4gIGlmICghcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBsZW5ndGggPSBzLmxlbmd0aDtcblxuICBpZiAobGVuZ3RoIDwgOSAvKiBcIl9fcHJvdG9fX1wiLmxlbmd0aCAqLykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChzLmNoYXJDb2RlQXQobGVuZ3RoIC0gMSkgIT09IDk1ICAvKiAnXycgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSAyKSAhPT0gOTUgIC8qICdfJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDMpICE9PSAxMTEgLyogJ28nICovIHx8XG4gICAgICBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gNCkgIT09IDExNiAvKiAndCcgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSA1KSAhPT0gMTExIC8qICdvJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDYpICE9PSAxMTQgLyogJ3InICovIHx8XG4gICAgICBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gNykgIT09IDExMiAvKiAncCcgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSA4KSAhPT0gOTUgIC8qICdfJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDkpICE9PSA5NSAgLyogJ18nICovKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yICh2YXIgaSA9IGxlbmd0aCAtIDEwOyBpID49IDA7IGktLSkge1xuICAgIGlmIChzLmNoYXJDb2RlQXQoaSkgIT09IDM2IC8qICckJyAqLykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIENvbXBhcmF0b3IgYmV0d2VlbiB0d28gbWFwcGluZ3Mgd2hlcmUgdGhlIG9yaWdpbmFsIHBvc2l0aW9ucyBhcmUgY29tcGFyZWQuXG4gKlxuICogT3B0aW9uYWxseSBwYXNzIGluIGB0cnVlYCBhcyBgb25seUNvbXBhcmVHZW5lcmF0ZWRgIHRvIGNvbnNpZGVyIHR3b1xuICogbWFwcGluZ3Mgd2l0aCB0aGUgc2FtZSBvcmlnaW5hbCBzb3VyY2UvbGluZS9jb2x1bW4sIGJ1dCBkaWZmZXJlbnQgZ2VuZXJhdGVkXG4gKiBsaW5lIGFuZCBjb2x1bW4gdGhlIHNhbWUuIFVzZWZ1bCB3aGVuIHNlYXJjaGluZyBmb3IgYSBtYXBwaW5nIHdpdGggYVxuICogc3R1YmJlZCBvdXQgbWFwcGluZy5cbiAqL1xuZnVuY3Rpb24gY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMobWFwcGluZ0EsIG1hcHBpbmdCLCBvbmx5Q29tcGFyZU9yaWdpbmFsKSB7XG4gIHZhciBjbXAgPSBzdHJjbXAobWFwcGluZ0Euc291cmNlLCBtYXBwaW5nQi5zb3VyY2UpO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTtcbiAgaWYgKGNtcCAhPT0gMCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBtYXBwaW5nQS5vcmlnaW5hbENvbHVtbiAtIG1hcHBpbmdCLm9yaWdpbmFsQ29sdW1uO1xuICBpZiAoY21wICE9PSAwIHx8IG9ubHlDb21wYXJlT3JpZ2luYWwpIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkQ29sdW1uIC0gbWFwcGluZ0IuZ2VuZXJhdGVkQ29sdW1uO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIHJldHVybiBzdHJjbXAobWFwcGluZ0EubmFtZSwgbWFwcGluZ0IubmFtZSk7XG59XG5leHBvcnRzLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zID0gY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnM7XG5cbi8qKlxuICogQ29tcGFyYXRvciBiZXR3ZWVuIHR3byBtYXBwaW5ncyB3aXRoIGRlZmxhdGVkIHNvdXJjZSBhbmQgbmFtZSBpbmRpY2VzIHdoZXJlXG4gKiB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9ucyBhcmUgY29tcGFyZWQuXG4gKlxuICogT3B0aW9uYWxseSBwYXNzIGluIGB0cnVlYCBhcyBgb25seUNvbXBhcmVHZW5lcmF0ZWRgIHRvIGNvbnNpZGVyIHR3b1xuICogbWFwcGluZ3Mgd2l0aCB0aGUgc2FtZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uLCBidXQgZGlmZmVyZW50XG4gKiBzb3VyY2UvbmFtZS9vcmlnaW5hbCBsaW5lIGFuZCBjb2x1bW4gdGhlIHNhbWUuIFVzZWZ1bCB3aGVuIHNlYXJjaGluZyBmb3IgYVxuICogbWFwcGluZyB3aXRoIGEgc3R1YmJlZCBvdXQgbWFwcGluZy5cbiAqL1xuZnVuY3Rpb24gY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQobWFwcGluZ0EsIG1hcHBpbmdCLCBvbmx5Q29tcGFyZUdlbmVyYXRlZCkge1xuICB2YXIgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkTGluZSAtIG1hcHBpbmdCLmdlbmVyYXRlZExpbmU7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkQ29sdW1uIC0gbWFwcGluZ0IuZ2VuZXJhdGVkQ29sdW1uO1xuICBpZiAoY21wICE9PSAwIHx8IG9ubHlDb21wYXJlR2VuZXJhdGVkKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxMaW5lIC0gbWFwcGluZ0Iub3JpZ2luYWxMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsQ29sdW1uIC0gbWFwcGluZ0Iub3JpZ2luYWxDb2x1bW47XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTtcbn1cbmV4cG9ydHMuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQgPSBjb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNEZWZsYXRlZDtcblxuZnVuY3Rpb24gc3RyY21wKGFTdHIxLCBhU3RyMikge1xuICBpZiAoYVN0cjEgPT09IGFTdHIyKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBpZiAoYVN0cjEgPT09IG51bGwpIHtcbiAgICByZXR1cm4gMTsgLy8gYVN0cjIgIT09IG51bGxcbiAgfVxuXG4gIGlmIChhU3RyMiA9PT0gbnVsbCkge1xuICAgIHJldHVybiAtMTsgLy8gYVN0cjEgIT09IG51bGxcbiAgfVxuXG4gIGlmIChhU3RyMSA+IGFTdHIyKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICByZXR1cm4gLTE7XG59XG5cbi8qKlxuICogQ29tcGFyYXRvciBiZXR3ZWVuIHR3byBtYXBwaW5ncyB3aXRoIGluZmxhdGVkIHNvdXJjZSBhbmQgbmFtZSBzdHJpbmdzIHdoZXJlXG4gKiB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9ucyBhcmUgY29tcGFyZWQuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQikge1xuICB2YXIgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkTGluZSAtIG1hcHBpbmdCLmdlbmVyYXRlZExpbmU7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkQ29sdW1uIC0gbWFwcGluZ0IuZ2VuZXJhdGVkQ29sdW1uO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxMaW5lIC0gbWFwcGluZ0Iub3JpZ2luYWxMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsQ29sdW1uIC0gbWFwcGluZ0Iub3JpZ2luYWxDb2x1bW47XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTtcbn1cbmV4cG9ydHMuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQgPSBjb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZDtcblxuLyoqXG4gKiBTdHJpcCBhbnkgSlNPTiBYU1NJIGF2b2lkYW5jZSBwcmVmaXggZnJvbSB0aGUgc3RyaW5nIChhcyBkb2N1bWVudGVkXG4gKiBpbiB0aGUgc291cmNlIG1hcHMgc3BlY2lmaWNhdGlvbiksIGFuZCB0aGVuIHBhcnNlIHRoZSBzdHJpbmcgYXNcbiAqIEpTT04uXG4gKi9cbmZ1bmN0aW9uIHBhcnNlU291cmNlTWFwSW5wdXQoc3RyKSB7XG4gIHJldHVybiBKU09OLnBhcnNlKHN0ci5yZXBsYWNlKC9eXFwpXX0nW15cXG5dKlxcbi8sICcnKSk7XG59XG5leHBvcnRzLnBhcnNlU291cmNlTWFwSW5wdXQgPSBwYXJzZVNvdXJjZU1hcElucHV0O1xuXG4vKipcbiAqIENvbXB1dGUgdGhlIFVSTCBvZiBhIHNvdXJjZSBnaXZlbiB0aGUgdGhlIHNvdXJjZSByb290LCB0aGUgc291cmNlJ3NcbiAqIFVSTCwgYW5kIHRoZSBzb3VyY2UgbWFwJ3MgVVJMLlxuICovXG5mdW5jdGlvbiBjb21wdXRlU291cmNlVVJMKHNvdXJjZVJvb3QsIHNvdXJjZVVSTCwgc291cmNlTWFwVVJMKSB7XG4gIHNvdXJjZVVSTCA9IHNvdXJjZVVSTCB8fCAnJztcblxuICBpZiAoc291cmNlUm9vdCkge1xuICAgIC8vIFRoaXMgZm9sbG93cyB3aGF0IENocm9tZSBkb2VzLlxuICAgIGlmIChzb3VyY2VSb290W3NvdXJjZVJvb3QubGVuZ3RoIC0gMV0gIT09ICcvJyAmJiBzb3VyY2VVUkxbMF0gIT09ICcvJykge1xuICAgICAgc291cmNlUm9vdCArPSAnLyc7XG4gICAgfVxuICAgIC8vIFRoZSBzcGVjIHNheXM6XG4gICAgLy8gICBMaW5lIDQ6IEFuIG9wdGlvbmFsIHNvdXJjZSByb290LCB1c2VmdWwgZm9yIHJlbG9jYXRpbmcgc291cmNlXG4gICAgLy8gICBmaWxlcyBvbiBhIHNlcnZlciBvciByZW1vdmluZyByZXBlYXRlZCB2YWx1ZXMgaW4gdGhlXG4gICAgLy8gICDigJxzb3VyY2Vz4oCdIGVudHJ5LiAgVGhpcyB2YWx1ZSBpcyBwcmVwZW5kZWQgdG8gdGhlIGluZGl2aWR1YWxcbiAgICAvLyAgIGVudHJpZXMgaW4gdGhlIOKAnHNvdXJjZeKAnSBmaWVsZC5cbiAgICBzb3VyY2VVUkwgPSBzb3VyY2VSb290ICsgc291cmNlVVJMO1xuICB9XG5cbiAgLy8gSGlzdG9yaWNhbGx5LCBTb3VyY2VNYXBDb25zdW1lciBkaWQgbm90IHRha2UgdGhlIHNvdXJjZU1hcFVSTCBhc1xuICAvLyBhIHBhcmFtZXRlci4gIFRoaXMgbW9kZSBpcyBzdGlsbCBzb21ld2hhdCBzdXBwb3J0ZWQsIHdoaWNoIGlzIHdoeVxuICAvLyB0aGlzIGNvZGUgYmxvY2sgaXMgY29uZGl0aW9uYWwuICBIb3dldmVyLCBpdCdzIHByZWZlcmFibGUgdG8gcGFzc1xuICAvLyB0aGUgc291cmNlIG1hcCBVUkwgdG8gU291cmNlTWFwQ29uc3VtZXIsIHNvIHRoYXQgdGhpcyBmdW5jdGlvblxuICAvLyBjYW4gaW1wbGVtZW50IHRoZSBzb3VyY2UgVVJMIHJlc29sdXRpb24gYWxnb3JpdGhtIGFzIG91dGxpbmVkIGluXG4gIC8vIHRoZSBzcGVjLiAgVGhpcyBibG9jayBpcyBiYXNpY2FsbHkgdGhlIGVxdWl2YWxlbnQgb2Y6XG4gIC8vICAgIG5ldyBVUkwoc291cmNlVVJMLCBzb3VyY2VNYXBVUkwpLnRvU3RyaW5nKClcbiAgLy8gLi4uIGV4Y2VwdCBpdCBhdm9pZHMgdXNpbmcgVVJMLCB3aGljaCB3YXNuJ3QgYXZhaWxhYmxlIGluIHRoZVxuICAvLyBvbGRlciByZWxlYXNlcyBvZiBub2RlIHN0aWxsIHN1cHBvcnRlZCBieSB0aGlzIGxpYnJhcnkuXG4gIC8vXG4gIC8vIFRoZSBzcGVjIHNheXM6XG4gIC8vICAgSWYgdGhlIHNvdXJjZXMgYXJlIG5vdCBhYnNvbHV0ZSBVUkxzIGFmdGVyIHByZXBlbmRpbmcgb2YgdGhlXG4gIC8vICAg4oCcc291cmNlUm9vdOKAnSwgdGhlIHNvdXJjZXMgYXJlIHJlc29sdmVkIHJlbGF0aXZlIHRvIHRoZVxuICAvLyAgIFNvdXJjZU1hcCAobGlrZSByZXNvbHZpbmcgc2NyaXB0IHNyYyBpbiBhIGh0bWwgZG9jdW1lbnQpLlxuICBpZiAoc291cmNlTWFwVVJMKSB7XG4gICAgdmFyIHBhcnNlZCA9IHVybFBhcnNlKHNvdXJjZU1hcFVSTCk7XG4gICAgaWYgKCFwYXJzZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInNvdXJjZU1hcFVSTCBjb3VsZCBub3QgYmUgcGFyc2VkXCIpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkLnBhdGgpIHtcbiAgICAgIC8vIFN0cmlwIHRoZSBsYXN0IHBhdGggY29tcG9uZW50LCBidXQga2VlcCB0aGUgXCIvXCIuXG4gICAgICB2YXIgaW5kZXggPSBwYXJzZWQucGF0aC5sYXN0SW5kZXhPZignLycpO1xuICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgcGFyc2VkLnBhdGggPSBwYXJzZWQucGF0aC5zdWJzdHJpbmcoMCwgaW5kZXggKyAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc291cmNlVVJMID0gam9pbih1cmxHZW5lcmF0ZShwYXJzZWQpLCBzb3VyY2VVUkwpO1xuICB9XG5cbiAgcmV0dXJuIG5vcm1hbGl6ZShzb3VyY2VVUkwpO1xufVxuZXhwb3J0cy5jb21wdXRlU291cmNlVVJMID0gY29tcHV0ZVNvdXJjZVVSTDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL3V0aWwuanNcbi8vIG1vZHVsZSBpZCA9IDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIGhhcyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgaGFzTmF0aXZlTWFwID0gdHlwZW9mIE1hcCAhPT0gXCJ1bmRlZmluZWRcIjtcblxuLyoqXG4gKiBBIGRhdGEgc3RydWN0dXJlIHdoaWNoIGlzIGEgY29tYmluYXRpb24gb2YgYW4gYXJyYXkgYW5kIGEgc2V0LiBBZGRpbmcgYSBuZXdcbiAqIG1lbWJlciBpcyBPKDEpLCB0ZXN0aW5nIGZvciBtZW1iZXJzaGlwIGlzIE8oMSksIGFuZCBmaW5kaW5nIHRoZSBpbmRleCBvZiBhblxuICogZWxlbWVudCBpcyBPKDEpLiBSZW1vdmluZyBlbGVtZW50cyBmcm9tIHRoZSBzZXQgaXMgbm90IHN1cHBvcnRlZC4gT25seVxuICogc3RyaW5ncyBhcmUgc3VwcG9ydGVkIGZvciBtZW1iZXJzaGlwLlxuICovXG5mdW5jdGlvbiBBcnJheVNldCgpIHtcbiAgdGhpcy5fYXJyYXkgPSBbXTtcbiAgdGhpcy5fc2V0ID0gaGFzTmF0aXZlTWFwID8gbmV3IE1hcCgpIDogT2JqZWN0LmNyZWF0ZShudWxsKTtcbn1cblxuLyoqXG4gKiBTdGF0aWMgbWV0aG9kIGZvciBjcmVhdGluZyBBcnJheVNldCBpbnN0YW5jZXMgZnJvbSBhbiBleGlzdGluZyBhcnJheS5cbiAqL1xuQXJyYXlTZXQuZnJvbUFycmF5ID0gZnVuY3Rpb24gQXJyYXlTZXRfZnJvbUFycmF5KGFBcnJheSwgYUFsbG93RHVwbGljYXRlcykge1xuICB2YXIgc2V0ID0gbmV3IEFycmF5U2V0KCk7XG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhQXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBzZXQuYWRkKGFBcnJheVtpXSwgYUFsbG93RHVwbGljYXRlcyk7XG4gIH1cbiAgcmV0dXJuIHNldDtcbn07XG5cbi8qKlxuICogUmV0dXJuIGhvdyBtYW55IHVuaXF1ZSBpdGVtcyBhcmUgaW4gdGhpcyBBcnJheVNldC4gSWYgZHVwbGljYXRlcyBoYXZlIGJlZW5cbiAqIGFkZGVkLCB0aGFuIHRob3NlIGRvIG5vdCBjb3VudCB0b3dhcmRzIHRoZSBzaXplLlxuICpcbiAqIEByZXR1cm5zIE51bWJlclxuICovXG5BcnJheVNldC5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uIEFycmF5U2V0X3NpemUoKSB7XG4gIHJldHVybiBoYXNOYXRpdmVNYXAgPyB0aGlzLl9zZXQuc2l6ZSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMuX3NldCkubGVuZ3RoO1xufTtcblxuLyoqXG4gKiBBZGQgdGhlIGdpdmVuIHN0cmluZyB0byB0aGlzIHNldC5cbiAqXG4gKiBAcGFyYW0gU3RyaW5nIGFTdHJcbiAqL1xuQXJyYXlTZXQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIEFycmF5U2V0X2FkZChhU3RyLCBhQWxsb3dEdXBsaWNhdGVzKSB7XG4gIHZhciBzU3RyID0gaGFzTmF0aXZlTWFwID8gYVN0ciA6IHV0aWwudG9TZXRTdHJpbmcoYVN0cik7XG4gIHZhciBpc0R1cGxpY2F0ZSA9IGhhc05hdGl2ZU1hcCA/IHRoaXMuaGFzKGFTdHIpIDogaGFzLmNhbGwodGhpcy5fc2V0LCBzU3RyKTtcbiAgdmFyIGlkeCA9IHRoaXMuX2FycmF5Lmxlbmd0aDtcbiAgaWYgKCFpc0R1cGxpY2F0ZSB8fCBhQWxsb3dEdXBsaWNhdGVzKSB7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhU3RyKTtcbiAgfVxuICBpZiAoIWlzRHVwbGljYXRlKSB7XG4gICAgaWYgKGhhc05hdGl2ZU1hcCkge1xuICAgICAgdGhpcy5fc2V0LnNldChhU3RyLCBpZHgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXRbc1N0cl0gPSBpZHg7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIElzIHRoZSBnaXZlbiBzdHJpbmcgYSBtZW1iZXIgb2YgdGhpcyBzZXQ/XG4gKlxuICogQHBhcmFtIFN0cmluZyBhU3RyXG4gKi9cbkFycmF5U2V0LnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbiBBcnJheVNldF9oYXMoYVN0cikge1xuICBpZiAoaGFzTmF0aXZlTWFwKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NldC5oYXMoYVN0cik7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHNTdHIgPSB1dGlsLnRvU2V0U3RyaW5nKGFTdHIpO1xuICAgIHJldHVybiBoYXMuY2FsbCh0aGlzLl9zZXQsIHNTdHIpO1xuICB9XG59O1xuXG4vKipcbiAqIFdoYXQgaXMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGFycmF5P1xuICpcbiAqIEBwYXJhbSBTdHJpbmcgYVN0clxuICovXG5BcnJheVNldC5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIEFycmF5U2V0X2luZGV4T2YoYVN0cikge1xuICBpZiAoaGFzTmF0aXZlTWFwKSB7XG4gICAgdmFyIGlkeCA9IHRoaXMuX3NldC5nZXQoYVN0cik7XG4gICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgIHJldHVybiBpZHg7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBzU3RyID0gdXRpbC50b1NldFN0cmluZyhhU3RyKTtcbiAgICBpZiAoaGFzLmNhbGwodGhpcy5fc2V0LCBzU3RyKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3NldFtzU3RyXTtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1wiJyArIGFTdHIgKyAnXCIgaXMgbm90IGluIHRoZSBzZXQuJyk7XG59O1xuXG4vKipcbiAqIFdoYXQgaXMgdGhlIGVsZW1lbnQgYXQgdGhlIGdpdmVuIGluZGV4P1xuICpcbiAqIEBwYXJhbSBOdW1iZXIgYUlkeFxuICovXG5BcnJheVNldC5wcm90b3R5cGUuYXQgPSBmdW5jdGlvbiBBcnJheVNldF9hdChhSWR4KSB7XG4gIGlmIChhSWR4ID49IDAgJiYgYUlkeCA8IHRoaXMuX2FycmF5Lmxlbmd0aCkge1xuICAgIHJldHVybiB0aGlzLl9hcnJheVthSWR4XTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ05vIGVsZW1lbnQgaW5kZXhlZCBieSAnICsgYUlkeCk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGFycmF5IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc2V0ICh3aGljaCBoYXMgdGhlIHByb3BlciBpbmRpY2VzXG4gKiBpbmRpY2F0ZWQgYnkgaW5kZXhPZikuIE5vdGUgdGhhdCB0aGlzIGlzIGEgY29weSBvZiB0aGUgaW50ZXJuYWwgYXJyYXkgdXNlZFxuICogZm9yIHN0b3JpbmcgdGhlIG1lbWJlcnMgc28gdGhhdCBubyBvbmUgY2FuIG1lc3Mgd2l0aCBpbnRlcm5hbCBzdGF0ZS5cbiAqL1xuQXJyYXlTZXQucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiBBcnJheVNldF90b0FycmF5KCkge1xuICByZXR1cm4gdGhpcy5fYXJyYXkuc2xpY2UoKTtcbn07XG5cbmV4cG9ydHMuQXJyYXlTZXQgPSBBcnJheVNldDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL2FycmF5LXNldC5qc1xuLy8gbW9kdWxlIGlkID0gNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTQgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgbWFwcGluZ0IgaXMgYWZ0ZXIgbWFwcGluZ0Egd2l0aCByZXNwZWN0IHRvIGdlbmVyYXRlZFxuICogcG9zaXRpb24uXG4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlZFBvc2l0aW9uQWZ0ZXIobWFwcGluZ0EsIG1hcHBpbmdCKSB7XG4gIC8vIE9wdGltaXplZCBmb3IgbW9zdCBjb21tb24gY2FzZVxuICB2YXIgbGluZUEgPSBtYXBwaW5nQS5nZW5lcmF0ZWRMaW5lO1xuICB2YXIgbGluZUIgPSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lO1xuICB2YXIgY29sdW1uQSA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbjtcbiAgdmFyIGNvbHVtbkIgPSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47XG4gIHJldHVybiBsaW5lQiA+IGxpbmVBIHx8IGxpbmVCID09IGxpbmVBICYmIGNvbHVtbkIgPj0gY29sdW1uQSB8fFxuICAgICAgICAgdXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nQSwgbWFwcGluZ0IpIDw9IDA7XG59XG5cbi8qKlxuICogQSBkYXRhIHN0cnVjdHVyZSB0byBwcm92aWRlIGEgc29ydGVkIHZpZXcgb2YgYWNjdW11bGF0ZWQgbWFwcGluZ3MgaW4gYVxuICogcGVyZm9ybWFuY2UgY29uc2Npb3VzIG1hbm5lci4gSXQgdHJhZGVzIGEgbmVnbGliYWJsZSBvdmVyaGVhZCBpbiBnZW5lcmFsXG4gKiBjYXNlIGZvciBhIGxhcmdlIHNwZWVkdXAgaW4gY2FzZSBvZiBtYXBwaW5ncyBiZWluZyBhZGRlZCBpbiBvcmRlci5cbiAqL1xuZnVuY3Rpb24gTWFwcGluZ0xpc3QoKSB7XG4gIHRoaXMuX2FycmF5ID0gW107XG4gIHRoaXMuX3NvcnRlZCA9IHRydWU7XG4gIC8vIFNlcnZlcyBhcyBpbmZpbXVtXG4gIHRoaXMuX2xhc3QgPSB7Z2VuZXJhdGVkTGluZTogLTEsIGdlbmVyYXRlZENvbHVtbjogMH07XG59XG5cbi8qKlxuICogSXRlcmF0ZSB0aHJvdWdoIGludGVybmFsIGl0ZW1zLiBUaGlzIG1ldGhvZCB0YWtlcyB0aGUgc2FtZSBhcmd1bWVudHMgdGhhdFxuICogYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCB0YWtlcy5cbiAqXG4gKiBOT1RFOiBUaGUgb3JkZXIgb2YgdGhlIG1hcHBpbmdzIGlzIE5PVCBndWFyYW50ZWVkLlxuICovXG5NYXBwaW5nTGlzdC5wcm90b3R5cGUudW5zb3J0ZWRGb3JFYWNoID1cbiAgZnVuY3Rpb24gTWFwcGluZ0xpc3RfZm9yRWFjaChhQ2FsbGJhY2ssIGFUaGlzQXJnKSB7XG4gICAgdGhpcy5fYXJyYXkuZm9yRWFjaChhQ2FsbGJhY2ssIGFUaGlzQXJnKTtcbiAgfTtcblxuLyoqXG4gKiBBZGQgdGhlIGdpdmVuIHNvdXJjZSBtYXBwaW5nLlxuICpcbiAqIEBwYXJhbSBPYmplY3QgYU1hcHBpbmdcbiAqL1xuTWFwcGluZ0xpc3QucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIE1hcHBpbmdMaXN0X2FkZChhTWFwcGluZykge1xuICBpZiAoZ2VuZXJhdGVkUG9zaXRpb25BZnRlcih0aGlzLl9sYXN0LCBhTWFwcGluZykpIHtcbiAgICB0aGlzLl9sYXN0ID0gYU1hcHBpbmc7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fc29ydGVkID0gZmFsc2U7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7XG4gIH1cbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZmxhdCwgc29ydGVkIGFycmF5IG9mIG1hcHBpbmdzLiBUaGUgbWFwcGluZ3MgYXJlIHNvcnRlZCBieVxuICogZ2VuZXJhdGVkIHBvc2l0aW9uLlxuICpcbiAqIFdBUk5JTkc6IFRoaXMgbWV0aG9kIHJldHVybnMgaW50ZXJuYWwgZGF0YSB3aXRob3V0IGNvcHlpbmcsIGZvclxuICogcGVyZm9ybWFuY2UuIFRoZSByZXR1cm4gdmFsdWUgbXVzdCBOT1QgYmUgbXV0YXRlZCwgYW5kIHNob3VsZCBiZSB0cmVhdGVkIGFzXG4gKiBhbiBpbW11dGFibGUgYm9ycm93LiBJZiB5b3Ugd2FudCB0byB0YWtlIG93bmVyc2hpcCwgeW91IG11c3QgbWFrZSB5b3VyIG93blxuICogY29weS5cbiAqL1xuTWFwcGluZ0xpc3QucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiBNYXBwaW5nTGlzdF90b0FycmF5KCkge1xuICBpZiAoIXRoaXMuX3NvcnRlZCkge1xuICAgIHRoaXMuX2FycmF5LnNvcnQodXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZCk7XG4gICAgdGhpcy5fc29ydGVkID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gdGhpcy5fYXJyYXk7XG59O1xuXG5leHBvcnRzLk1hcHBpbmdMaXN0ID0gTWFwcGluZ0xpc3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2xpYi9tYXBwaW5nLWxpc3QuanNcbi8vIG1vZHVsZSBpZCA9IDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIGJpbmFyeVNlYXJjaCA9IHJlcXVpcmUoJy4vYmluYXJ5LXNlYXJjaCcpO1xudmFyIEFycmF5U2V0ID0gcmVxdWlyZSgnLi9hcnJheS1zZXQnKS5BcnJheVNldDtcbnZhciBiYXNlNjRWTFEgPSByZXF1aXJlKCcuL2Jhc2U2NC12bHEnKTtcbnZhciBxdWlja1NvcnQgPSByZXF1aXJlKCcuL3F1aWNrLXNvcnQnKS5xdWlja1NvcnQ7XG5cbmZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHtcbiAgdmFyIHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7XG4gIGlmICh0eXBlb2YgYVNvdXJjZU1hcCA9PT0gJ3N0cmluZycpIHtcbiAgICBzb3VyY2VNYXAgPSB1dGlsLnBhcnNlU291cmNlTWFwSW5wdXQoYVNvdXJjZU1hcCk7XG4gIH1cblxuICByZXR1cm4gc291cmNlTWFwLnNlY3Rpb25zICE9IG51bGxcbiAgICA/IG5ldyBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIoc291cmNlTWFwLCBhU291cmNlTWFwVVJMKVxuICAgIDogbmV3IEJhc2ljU291cmNlTWFwQ29uc3VtZXIoc291cmNlTWFwLCBhU291cmNlTWFwVVJMKTtcbn1cblxuU291cmNlTWFwQ29uc3VtZXIuZnJvbVNvdXJjZU1hcCA9IGZ1bmN0aW9uKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHtcbiAgcmV0dXJuIEJhc2ljU291cmNlTWFwQ29uc3VtZXIuZnJvbVNvdXJjZU1hcChhU291cmNlTWFwLCBhU291cmNlTWFwVVJMKTtcbn1cblxuLyoqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgc291cmNlIG1hcHBpbmcgc3BlYyB0aGF0IHdlIGFyZSBjb25zdW1pbmcuXG4gKi9cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8vIGBfX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQgYF9fb3JpZ2luYWxNYXBwaW5nc2AgYXJlIGFycmF5cyB0aGF0IGhvbGQgdGhlXG4vLyBwYXJzZWQgbWFwcGluZyBjb29yZGluYXRlcyBmcm9tIHRoZSBzb3VyY2UgbWFwJ3MgXCJtYXBwaW5nc1wiIGF0dHJpYnV0ZS4gVGhleVxuLy8gYXJlIGxhemlseSBpbnN0YW50aWF0ZWQsIGFjY2Vzc2VkIHZpYSB0aGUgYF9nZW5lcmF0ZWRNYXBwaW5nc2AgYW5kXG4vLyBgX29yaWdpbmFsTWFwcGluZ3NgIGdldHRlcnMgcmVzcGVjdGl2ZWx5LCBhbmQgd2Ugb25seSBwYXJzZSB0aGUgbWFwcGluZ3Ncbi8vIGFuZCBjcmVhdGUgdGhlc2UgYXJyYXlzIG9uY2UgcXVlcmllZCBmb3IgYSBzb3VyY2UgbG9jYXRpb24uIFdlIGp1bXAgdGhyb3VnaFxuLy8gdGhlc2UgaG9vcHMgYmVjYXVzZSB0aGVyZSBjYW4gYmUgbWFueSB0aG91c2FuZHMgb2YgbWFwcGluZ3MsIGFuZCBwYXJzaW5nXG4vLyB0aGVtIGlzIGV4cGVuc2l2ZSwgc28gd2Ugb25seSB3YW50IHRvIGRvIGl0IGlmIHdlIG11c3QuXG4vL1xuLy8gRWFjaCBvYmplY3QgaW4gdGhlIGFycmF5cyBpcyBvZiB0aGUgZm9ybTpcbi8vXG4vLyAgICAge1xuLy8gICAgICAgZ2VuZXJhdGVkTGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgY29kZSxcbi8vICAgICAgIGdlbmVyYXRlZENvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBjb2RlLFxuLy8gICAgICAgc291cmNlOiBUaGUgcGF0aCB0byB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUgdGhhdCBnZW5lcmF0ZWQgdGhpc1xuLy8gICAgICAgICAgICAgICBjaHVuayBvZiBjb2RlLFxuLy8gICAgICAgb3JpZ2luYWxMaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSB0aGF0XG4vLyAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsXG4vLyAgICAgICBvcmlnaW5hbENvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSB0aGF0XG4vLyAgICAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZHMgdG8gdGhpcyBjaHVuayBvZiBnZW5lcmF0ZWQgY29kZSxcbi8vICAgICAgIG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBvcmlnaW5hbCBzeW1ib2wgd2hpY2ggZ2VuZXJhdGVkIHRoaXMgY2h1bmsgb2Zcbi8vICAgICAgICAgICAgIGNvZGUuXG4vLyAgICAgfVxuLy9cbi8vIEFsbCBwcm9wZXJ0aWVzIGV4Y2VwdCBmb3IgYGdlbmVyYXRlZExpbmVgIGFuZCBgZ2VuZXJhdGVkQ29sdW1uYCBjYW4gYmVcbi8vIGBudWxsYC5cbi8vXG4vLyBgX2dlbmVyYXRlZE1hcHBpbmdzYCBpcyBvcmRlcmVkIGJ5IHRoZSBnZW5lcmF0ZWQgcG9zaXRpb25zLlxuLy9cbi8vIGBfb3JpZ2luYWxNYXBwaW5nc2AgaXMgb3JkZXJlZCBieSB0aGUgb3JpZ2luYWwgcG9zaXRpb25zLlxuXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IG51bGw7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLCAnX2dlbmVyYXRlZE1hcHBpbmdzJywge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIGlmICghdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzKSB7XG4gICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3M7XG4gIH1cbn0pO1xuXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX19vcmlnaW5hbE1hcHBpbmdzID0gbnVsbDtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUsICdfb3JpZ2luYWxNYXBwaW5ncycsIHtcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXRoaXMuX19vcmlnaW5hbE1hcHBpbmdzKSB7XG4gICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncztcbiAgfVxufSk7XG5cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fY2hhcklzTWFwcGluZ1NlcGFyYXRvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2NoYXJJc01hcHBpbmdTZXBhcmF0b3IoYVN0ciwgaW5kZXgpIHtcbiAgICB2YXIgYyA9IGFTdHIuY2hhckF0KGluZGV4KTtcbiAgICByZXR1cm4gYyA9PT0gXCI7XCIgfHwgYyA9PT0gXCIsXCI7XG4gIH07XG5cbi8qKlxuICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseVxuICogcXVlcnkgKHRoZSBvcmRlcmVkIGFycmF5cyBpbiB0aGUgYHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nc2AgYW5kXG4gKiBgdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NgIHByb3BlcnRpZXMpLlxuICovXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCBfcGFyc2VNYXBwaW5nc1wiKTtcbiAgfTtcblxuU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSID0gMTtcblNvdXJjZU1hcENvbnN1bWVyLk9SSUdJTkFMX09SREVSID0gMjtcblxuU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQgPSAxO1xuU291cmNlTWFwQ29uc3VtZXIuTEVBU1RfVVBQRVJfQk9VTkQgPSAyO1xuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciBlYWNoIG1hcHBpbmcgYmV0d2VlbiBhbiBvcmlnaW5hbCBzb3VyY2UvbGluZS9jb2x1bW4gYW5kIGFcbiAqIGdlbmVyYXRlZCBsaW5lL2NvbHVtbiBpbiB0aGlzIHNvdXJjZSBtYXAuXG4gKlxuICogQHBhcmFtIEZ1bmN0aW9uIGFDYWxsYmFja1xuICogICAgICAgIFRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aXRoIGVhY2ggbWFwcGluZy5cbiAqIEBwYXJhbSBPYmplY3QgYUNvbnRleHRcbiAqICAgICAgICBPcHRpb25hbC4gSWYgc3BlY2lmaWVkLCB0aGlzIG9iamVjdCB3aWxsIGJlIHRoZSB2YWx1ZSBvZiBgdGhpc2AgZXZlcnlcbiAqICAgICAgICB0aW1lIHRoYXQgYGFDYWxsYmFja2AgaXMgY2FsbGVkLlxuICogQHBhcmFtIGFPcmRlclxuICogICAgICAgIEVpdGhlciBgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSYCBvclxuICogICAgICAgIGBTb3VyY2VNYXBDb25zdW1lci5PUklHSU5BTF9PUkRFUmAuIFNwZWNpZmllcyB3aGV0aGVyIHlvdSB3YW50IHRvXG4gKiAgICAgICAgaXRlcmF0ZSBvdmVyIHRoZSBtYXBwaW5ncyBzb3J0ZWQgYnkgdGhlIGdlbmVyYXRlZCBmaWxlJ3MgbGluZS9jb2x1bW5cbiAqICAgICAgICBvcmRlciBvciB0aGUgb3JpZ2luYWwncyBzb3VyY2UvbGluZS9jb2x1bW4gb3JkZXIsIHJlc3BlY3RpdmVseS4gRGVmYXVsdHMgdG9cbiAqICAgICAgICBgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSYC5cbiAqL1xuU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmVhY2hNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfZWFjaE1hcHBpbmcoYUNhbGxiYWNrLCBhQ29udGV4dCwgYU9yZGVyKSB7XG4gICAgdmFyIGNvbnRleHQgPSBhQ29udGV4dCB8fCBudWxsO1xuICAgIHZhciBvcmRlciA9IGFPcmRlciB8fCBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVI7XG5cbiAgICB2YXIgbWFwcGluZ3M7XG4gICAgc3dpdGNoIChvcmRlcikge1xuICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOlxuICAgICAgbWFwcGluZ3MgPSB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5ncztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVI6XG4gICAgICBtYXBwaW5ncyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3M7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBvcmRlciBvZiBpdGVyYXRpb24uXCIpO1xuICAgIH1cblxuICAgIHZhciBzb3VyY2VSb290ID0gdGhpcy5zb3VyY2VSb290O1xuICAgIG1hcHBpbmdzLm1hcChmdW5jdGlvbiAobWFwcGluZykge1xuICAgICAgdmFyIHNvdXJjZSA9IG1hcHBpbmcuc291cmNlID09PSBudWxsID8gbnVsbCA6IHRoaXMuX3NvdXJjZXMuYXQobWFwcGluZy5zb3VyY2UpO1xuICAgICAgc291cmNlID0gdXRpbC5jb21wdXRlU291cmNlVVJMKHNvdXJjZVJvb3QsIHNvdXJjZSwgdGhpcy5fc291cmNlTWFwVVJMKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICBnZW5lcmF0ZWRMaW5lOiBtYXBwaW5nLmdlbmVyYXRlZExpbmUsXG4gICAgICAgIGdlbmVyYXRlZENvbHVtbjogbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4sXG4gICAgICAgIG9yaWdpbmFsTGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsXG4gICAgICAgIG9yaWdpbmFsQ29sdW1uOiBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uLFxuICAgICAgICBuYW1lOiBtYXBwaW5nLm5hbWUgPT09IG51bGwgPyBudWxsIDogdGhpcy5fbmFtZXMuYXQobWFwcGluZy5uYW1lKVxuICAgICAgfTtcbiAgICB9LCB0aGlzKS5mb3JFYWNoKGFDYWxsYmFjaywgY29udGV4dCk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJucyBhbGwgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSxcbiAqIGxpbmUsIGFuZCBjb2x1bW4gcHJvdmlkZWQuIElmIG5vIGNvbHVtbiBpcyBwcm92aWRlZCwgcmV0dXJucyBhbGwgbWFwcGluZ3NcbiAqIGNvcnJlc3BvbmRpbmcgdG8gYSBlaXRoZXIgdGhlIGxpbmUgd2UgYXJlIHNlYXJjaGluZyBmb3Igb3IgdGhlIG5leHRcbiAqIGNsb3Nlc3QgbGluZSB0aGF0IGhhcyBhbnkgbWFwcGluZ3MuIE90aGVyd2lzZSwgcmV0dXJucyBhbGwgbWFwcGluZ3NcbiAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGxpbmUgYW5kIGVpdGhlciB0aGUgY29sdW1uIHdlIGFyZSBzZWFyY2hpbmcgZm9yXG4gKiBvciB0aGUgbmV4dCBjbG9zZXN0IGNvbHVtbiB0aGF0IGhhcyBhbnkgb2Zmc2V0cy5cbiAqXG4gKiBUaGUgb25seSBhcmd1bWVudCBpcyBhbiBvYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuICBUaGUgbGluZSBudW1iZXIgaXMgMS1iYXNlZC5cbiAqICAgLSBjb2x1bW46IE9wdGlvbmFsLiB0aGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLlxuICogICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC5cbiAqXG4gKiBhbmQgYW4gYXJyYXkgb2Ygb2JqZWN0cyBpcyByZXR1cm5lZCwgZWFjaCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLiAgVGhlXG4gKiAgICBsaW5lIG51bWJlciBpcyAxLWJhc2VkLlxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuXG4gKiAgICBUaGUgY29sdW1uIG51bWJlciBpcyAwLWJhc2VkLlxuICovXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yKGFBcmdzKSB7XG4gICAgdmFyIGxpbmUgPSB1dGlsLmdldEFyZyhhQXJncywgJ2xpbmUnKTtcblxuICAgIC8vIFdoZW4gdGhlcmUgaXMgbm8gZXhhY3QgbWF0Y2gsIEJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLl9maW5kTWFwcGluZ1xuICAgIC8vIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBjbG9zZXN0IG1hcHBpbmcgbGVzcyB0aGFuIHRoZSBuZWVkbGUuIEJ5XG4gICAgLy8gc2V0dGluZyBuZWVkbGUub3JpZ2luYWxDb2x1bW4gdG8gMCwgd2UgdGh1cyBmaW5kIHRoZSBsYXN0IG1hcHBpbmcgZm9yXG4gICAgLy8gdGhlIGdpdmVuIGxpbmUsIHByb3ZpZGVkIHN1Y2ggYSBtYXBwaW5nIGV4aXN0cy5cbiAgICB2YXIgbmVlZGxlID0ge1xuICAgICAgc291cmNlOiB1dGlsLmdldEFyZyhhQXJncywgJ3NvdXJjZScpLFxuICAgICAgb3JpZ2luYWxMaW5lOiBsaW5lLFxuICAgICAgb3JpZ2luYWxDb2x1bW46IHV0aWwuZ2V0QXJnKGFBcmdzLCAnY29sdW1uJywgMClcbiAgICB9O1xuXG4gICAgbmVlZGxlLnNvdXJjZSA9IHRoaXMuX2ZpbmRTb3VyY2VJbmRleChuZWVkbGUuc291cmNlKTtcbiAgICBpZiAobmVlZGxlLnNvdXJjZSA8IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICB2YXIgbWFwcGluZ3MgPSBbXTtcblxuICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmRNYXBwaW5nKG5lZWRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3JpZ2luYWxMaW5lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvcmlnaW5hbENvbHVtblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWwuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5U2VhcmNoLkxFQVNUX1VQUEVSX0JPVU5EKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdmFyIG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzW2luZGV4XTtcblxuICAgICAgaWYgKGFBcmdzLmNvbHVtbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHZhciBvcmlnaW5hbExpbmUgPSBtYXBwaW5nLm9yaWdpbmFsTGluZTtcblxuICAgICAgICAvLyBJdGVyYXRlIHVudGlsIGVpdGhlciB3ZSBydW4gb3V0IG9mIG1hcHBpbmdzLCBvciB3ZSBydW4gaW50b1xuICAgICAgICAvLyBhIG1hcHBpbmcgZm9yIGEgZGlmZmVyZW50IGxpbmUgdGhhbiB0aGUgb25lIHdlIGZvdW5kLiBTaW5jZVxuICAgICAgICAvLyBtYXBwaW5ncyBhcmUgc29ydGVkLCB0aGlzIGlzIGd1YXJhbnRlZWQgdG8gZmluZCBhbGwgbWFwcGluZ3MgZm9yXG4gICAgICAgIC8vIHRoZSBsaW5lIHdlIGZvdW5kLlxuICAgICAgICB3aGlsZSAobWFwcGluZyAmJiBtYXBwaW5nLm9yaWdpbmFsTGluZSA9PT0gb3JpZ2luYWxMaW5lKSB7XG4gICAgICAgICAgbWFwcGluZ3MucHVzaCh7XG4gICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkTGluZScsIG51bGwpLFxuICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkQ29sdW1uJywgbnVsbCksXG4gICAgICAgICAgICBsYXN0Q29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnbGFzdEdlbmVyYXRlZENvbHVtbicsIG51bGwpXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBtYXBwaW5nID0gdGhpcy5fb3JpZ2luYWxNYXBwaW5nc1srK2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG9yaWdpbmFsQ29sdW1uID0gbWFwcGluZy5vcmlnaW5hbENvbHVtbjtcblxuICAgICAgICAvLyBJdGVyYXRlIHVudGlsIGVpdGhlciB3ZSBydW4gb3V0IG9mIG1hcHBpbmdzLCBvciB3ZSBydW4gaW50b1xuICAgICAgICAvLyBhIG1hcHBpbmcgZm9yIGEgZGlmZmVyZW50IGxpbmUgdGhhbiB0aGUgb25lIHdlIHdlcmUgc2VhcmNoaW5nIGZvci5cbiAgICAgICAgLy8gU2luY2UgbWFwcGluZ3MgYXJlIHNvcnRlZCwgdGhpcyBpcyBndWFyYW50ZWVkIHRvIGZpbmQgYWxsIG1hcHBpbmdzIGZvclxuICAgICAgICAvLyB0aGUgbGluZSB3ZSBhcmUgc2VhcmNoaW5nIGZvci5cbiAgICAgICAgd2hpbGUgKG1hcHBpbmcgJiZcbiAgICAgICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxMaW5lID09PSBsaW5lICYmXG4gICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID09IG9yaWdpbmFsQ29sdW1uKSB7XG4gICAgICAgICAgbWFwcGluZ3MucHVzaCh7XG4gICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkTGluZScsIG51bGwpLFxuICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkQ29sdW1uJywgbnVsbCksXG4gICAgICAgICAgICBsYXN0Q29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnbGFzdEdlbmVyYXRlZENvbHVtbicsIG51bGwpXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBtYXBwaW5nID0gdGhpcy5fb3JpZ2luYWxNYXBwaW5nc1srK2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXBwaW5ncztcbiAgfTtcblxuZXhwb3J0cy5Tb3VyY2VNYXBDb25zdW1lciA9IFNvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIEEgQmFzaWNTb3VyY2VNYXBDb25zdW1lciBpbnN0YW5jZSByZXByZXNlbnRzIGEgcGFyc2VkIHNvdXJjZSBtYXAgd2hpY2ggd2UgY2FuXG4gKiBxdWVyeSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG9yaWdpbmFsIGZpbGUgcG9zaXRpb25zIGJ5IGdpdmluZyBpdCBhIGZpbGVcbiAqIHBvc2l0aW9uIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLlxuICpcbiAqIFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIHJhdyBzb3VyY2UgbWFwIChlaXRoZXIgYXMgYSBKU09OIHN0cmluZywgb3JcbiAqIGFscmVhZHkgcGFyc2VkIHRvIGFuIG9iamVjdCkuIEFjY29yZGluZyB0byB0aGUgc3BlYywgc291cmNlIG1hcHMgaGF2ZSB0aGVcbiAqIGZvbGxvd2luZyBhdHRyaWJ1dGVzOlxuICpcbiAqICAgLSB2ZXJzaW9uOiBXaGljaCB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgbWFwIHNwZWMgdGhpcyBtYXAgaXMgZm9sbG93aW5nLlxuICogICAtIHNvdXJjZXM6IEFuIGFycmF5IG9mIFVSTHMgdG8gdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlcy5cbiAqICAgLSBuYW1lczogQW4gYXJyYXkgb2YgaWRlbnRpZmllcnMgd2hpY2ggY2FuIGJlIHJlZmVycmVuY2VkIGJ5IGluZGl2aWR1YWwgbWFwcGluZ3MuXG4gKiAgIC0gc291cmNlUm9vdDogT3B0aW9uYWwuIFRoZSBVUkwgcm9vdCBmcm9tIHdoaWNoIGFsbCBzb3VyY2VzIGFyZSByZWxhdGl2ZS5cbiAqICAgLSBzb3VyY2VzQ29udGVudDogT3B0aW9uYWwuIEFuIGFycmF5IG9mIGNvbnRlbnRzIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZXMuXG4gKiAgIC0gbWFwcGluZ3M6IEEgc3RyaW5nIG9mIGJhc2U2NCBWTFFzIHdoaWNoIGNvbnRhaW4gdGhlIGFjdHVhbCBtYXBwaW5ncy5cbiAqICAgLSBmaWxlOiBPcHRpb25hbC4gVGhlIGdlbmVyYXRlZCBmaWxlIHRoaXMgc291cmNlIG1hcCBpcyBhc3NvY2lhdGVkIHdpdGguXG4gKlxuICogSGVyZSBpcyBhbiBleGFtcGxlIHNvdXJjZSBtYXAsIHRha2VuIGZyb20gdGhlIHNvdXJjZSBtYXAgc3BlY1swXTpcbiAqXG4gKiAgICAge1xuICogICAgICAgdmVyc2lvbiA6IDMsXG4gKiAgICAgICBmaWxlOiBcIm91dC5qc1wiLFxuICogICAgICAgc291cmNlUm9vdCA6IFwiXCIsXG4gKiAgICAgICBzb3VyY2VzOiBbXCJmb28uanNcIiwgXCJiYXIuanNcIl0sXG4gKiAgICAgICBuYW1lczogW1wic3JjXCIsIFwibWFwc1wiLCBcImFyZVwiLCBcImZ1blwiXSxcbiAqICAgICAgIG1hcHBpbmdzOiBcIkFBLEFCOztBQkNERTtcIlxuICogICAgIH1cbiAqXG4gKiBUaGUgc2Vjb25kIHBhcmFtZXRlciwgaWYgZ2l2ZW4sIGlzIGEgc3RyaW5nIHdob3NlIHZhbHVlIGlzIHRoZSBVUkxcbiAqIGF0IHdoaWNoIHRoZSBzb3VyY2UgbWFwIHdhcyBmb3VuZC4gIFRoaXMgVVJMIGlzIHVzZWQgdG8gY29tcHV0ZSB0aGVcbiAqIHNvdXJjZXMgYXJyYXkuXG4gKlxuICogWzBdOiBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFVMVJHQWVoUXdSeXBVVG92RjFLUmxwaU9GemUwYi1fMmdjNmZBSDBLWTBrL2VkaXQ/cGxpPTEjXG4gKi9cbmZ1bmN0aW9uIEJhc2ljU291cmNlTWFwQ29uc3VtZXIoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkge1xuICB2YXIgc291cmNlTWFwID0gYVNvdXJjZU1hcDtcbiAgaWYgKHR5cGVvZiBhU291cmNlTWFwID09PSAnc3RyaW5nJykge1xuICAgIHNvdXJjZU1hcCA9IHV0aWwucGFyc2VTb3VyY2VNYXBJbnB1dChhU291cmNlTWFwKTtcbiAgfVxuXG4gIHZhciB2ZXJzaW9uID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAndmVyc2lvbicpO1xuICB2YXIgc291cmNlcyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3NvdXJjZXMnKTtcbiAgLy8gU2FzcyAzLjMgbGVhdmVzIG91dCB0aGUgJ25hbWVzJyBhcnJheSwgc28gd2UgZGV2aWF0ZSBmcm9tIHRoZSBzcGVjICh3aGljaFxuICAvLyByZXF1aXJlcyB0aGUgYXJyYXkpIHRvIHBsYXkgbmljZSBoZXJlLlxuICB2YXIgbmFtZXMgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICduYW1lcycsIFtdKTtcbiAgdmFyIHNvdXJjZVJvb3QgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICdzb3VyY2VSb290JywgbnVsbCk7XG4gIHZhciBzb3VyY2VzQ29udGVudCA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3NvdXJjZXNDb250ZW50JywgbnVsbCk7XG4gIHZhciBtYXBwaW5ncyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ21hcHBpbmdzJyk7XG4gIHZhciBmaWxlID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnZmlsZScsIG51bGwpO1xuXG4gIC8vIE9uY2UgYWdhaW4sIFNhc3MgZGV2aWF0ZXMgZnJvbSB0aGUgc3BlYyBhbmQgc3VwcGxpZXMgdGhlIHZlcnNpb24gYXMgYVxuICAvLyBzdHJpbmcgcmF0aGVyIHRoYW4gYSBudW1iZXIsIHNvIHdlIHVzZSBsb29zZSBlcXVhbGl0eSBjaGVja2luZyBoZXJlLlxuICBpZiAodmVyc2lvbiAhPSB0aGlzLl92ZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCB2ZXJzaW9uOiAnICsgdmVyc2lvbik7XG4gIH1cblxuICBpZiAoc291cmNlUm9vdCkge1xuICAgIHNvdXJjZVJvb3QgPSB1dGlsLm5vcm1hbGl6ZShzb3VyY2VSb290KTtcbiAgfVxuXG4gIHNvdXJjZXMgPSBzb3VyY2VzXG4gICAgLm1hcChTdHJpbmcpXG4gICAgLy8gU29tZSBzb3VyY2UgbWFwcyBwcm9kdWNlIHJlbGF0aXZlIHNvdXJjZSBwYXRocyBsaWtlIFwiLi9mb28uanNcIiBpbnN0ZWFkIG9mXG4gICAgLy8gXCJmb28uanNcIi4gIE5vcm1hbGl6ZSB0aGVzZSBmaXJzdCBzbyB0aGF0IGZ1dHVyZSBjb21wYXJpc29ucyB3aWxsIHN1Y2NlZWQuXG4gICAgLy8gU2VlIGJ1Z3ppbC5sYS8xMDkwNzY4LlxuICAgIC5tYXAodXRpbC5ub3JtYWxpemUpXG4gICAgLy8gQWx3YXlzIGVuc3VyZSB0aGF0IGFic29sdXRlIHNvdXJjZXMgYXJlIGludGVybmFsbHkgc3RvcmVkIHJlbGF0aXZlIHRvXG4gICAgLy8gdGhlIHNvdXJjZSByb290LCBpZiB0aGUgc291cmNlIHJvb3QgaXMgYWJzb2x1dGUuIE5vdCBkb2luZyB0aGlzIHdvdWxkXG4gICAgLy8gYmUgcGFydGljdWxhcmx5IHByb2JsZW1hdGljIHdoZW4gdGhlIHNvdXJjZSByb290IGlzIGEgcHJlZml4IG9mIHRoZVxuICAgIC8vIHNvdXJjZSAodmFsaWQsIGJ1dCB3aHk/PykuIFNlZSBnaXRodWIgaXNzdWUgIzE5OSBhbmQgYnVnemlsLmxhLzExODg5ODIuXG4gICAgLm1hcChmdW5jdGlvbiAoc291cmNlKSB7XG4gICAgICByZXR1cm4gc291cmNlUm9vdCAmJiB1dGlsLmlzQWJzb2x1dGUoc291cmNlUm9vdCkgJiYgdXRpbC5pc0Fic29sdXRlKHNvdXJjZSlcbiAgICAgICAgPyB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIHNvdXJjZSlcbiAgICAgICAgOiBzb3VyY2U7XG4gICAgfSk7XG5cbiAgLy8gUGFzcyBgdHJ1ZWAgYmVsb3cgdG8gYWxsb3cgZHVwbGljYXRlIG5hbWVzIGFuZCBzb3VyY2VzLiBXaGlsZSBzb3VyY2UgbWFwc1xuICAvLyBhcmUgaW50ZW5kZWQgdG8gYmUgY29tcHJlc3NlZCBhbmQgZGVkdXBsaWNhdGVkLCB0aGUgVHlwZVNjcmlwdCBjb21waWxlclxuICAvLyBzb21ldGltZXMgZ2VuZXJhdGVzIHNvdXJjZSBtYXBzIHdpdGggZHVwbGljYXRlcyBpbiB0aGVtLiBTZWUgR2l0aHViIGlzc3VlXG4gIC8vICM3MiBhbmQgYnVnemlsLmxhLzg4OTQ5Mi5cbiAgdGhpcy5fbmFtZXMgPSBBcnJheVNldC5mcm9tQXJyYXkobmFtZXMubWFwKFN0cmluZyksIHRydWUpO1xuICB0aGlzLl9zb3VyY2VzID0gQXJyYXlTZXQuZnJvbUFycmF5KHNvdXJjZXMsIHRydWUpO1xuXG4gIHRoaXMuX2Fic29sdXRlU291cmNlcyA9IHRoaXMuX3NvdXJjZXMudG9BcnJheSgpLm1hcChmdW5jdGlvbiAocykge1xuICAgIHJldHVybiB1dGlsLmNvbXB1dGVTb3VyY2VVUkwoc291cmNlUm9vdCwgcywgYVNvdXJjZU1hcFVSTCk7XG4gIH0pO1xuXG4gIHRoaXMuc291cmNlUm9vdCA9IHNvdXJjZVJvb3Q7XG4gIHRoaXMuc291cmNlc0NvbnRlbnQgPSBzb3VyY2VzQ29udGVudDtcbiAgdGhpcy5fbWFwcGluZ3MgPSBtYXBwaW5ncztcbiAgdGhpcy5fc291cmNlTWFwVVJMID0gYVNvdXJjZU1hcFVSTDtcbiAgdGhpcy5maWxlID0gZmlsZTtcbn1cblxuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSk7XG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5jb25zdW1lciA9IFNvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gdG8gZmluZCB0aGUgaW5kZXggb2YgYSBzb3VyY2UuICBSZXR1cm5zIC0xIGlmIG5vdFxuICogZm91bmQuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLl9maW5kU291cmNlSW5kZXggPSBmdW5jdGlvbihhU291cmNlKSB7XG4gIHZhciByZWxhdGl2ZVNvdXJjZSA9IGFTb3VyY2U7XG4gIGlmICh0aGlzLnNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgIHJlbGF0aXZlU291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLnNvdXJjZVJvb3QsIHJlbGF0aXZlU291cmNlKTtcbiAgfVxuXG4gIGlmICh0aGlzLl9zb3VyY2VzLmhhcyhyZWxhdGl2ZVNvdXJjZSkpIHtcbiAgICByZXR1cm4gdGhpcy5fc291cmNlcy5pbmRleE9mKHJlbGF0aXZlU291cmNlKTtcbiAgfVxuXG4gIC8vIE1heWJlIGFTb3VyY2UgaXMgYW4gYWJzb2x1dGUgVVJMIGFzIHJldHVybmVkIGJ5IHxzb3VyY2VzfC4gIEluXG4gIC8vIHRoaXMgY2FzZSB3ZSBjYW4ndCBzaW1wbHkgdW5kbyB0aGUgdHJhbnNmb3JtLlxuICB2YXIgaTtcbiAgZm9yIChpID0gMDsgaSA8IHRoaXMuX2Fic29sdXRlU291cmNlcy5sZW5ndGg7ICsraSkge1xuICAgIGlmICh0aGlzLl9hYnNvbHV0ZVNvdXJjZXNbaV0gPT0gYVNvdXJjZSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIC0xO1xufTtcblxuLyoqXG4gKiBDcmVhdGUgYSBCYXNpY1NvdXJjZU1hcENvbnN1bWVyIGZyb20gYSBTb3VyY2VNYXBHZW5lcmF0b3IuXG4gKlxuICogQHBhcmFtIFNvdXJjZU1hcEdlbmVyYXRvciBhU291cmNlTWFwXG4gKiAgICAgICAgVGhlIHNvdXJjZSBtYXAgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuICogQHBhcmFtIFN0cmluZyBhU291cmNlTWFwVVJMXG4gKiAgICAgICAgVGhlIFVSTCBhdCB3aGljaCB0aGUgc291cmNlIG1hcCBjYW4gYmUgZm91bmQgKG9wdGlvbmFsKVxuICogQHJldHVybnMgQmFzaWNTb3VyY2VNYXBDb25zdW1lclxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLmZyb21Tb3VyY2VNYXAgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9mcm9tU291cmNlTWFwKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHtcbiAgICB2YXIgc21jID0gT2JqZWN0LmNyZWF0ZShCYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSk7XG5cbiAgICB2YXIgbmFtZXMgPSBzbWMuX25hbWVzID0gQXJyYXlTZXQuZnJvbUFycmF5KGFTb3VyY2VNYXAuX25hbWVzLnRvQXJyYXkoKSwgdHJ1ZSk7XG4gICAgdmFyIHNvdXJjZXMgPSBzbWMuX3NvdXJjZXMgPSBBcnJheVNldC5mcm9tQXJyYXkoYVNvdXJjZU1hcC5fc291cmNlcy50b0FycmF5KCksIHRydWUpO1xuICAgIHNtYy5zb3VyY2VSb290ID0gYVNvdXJjZU1hcC5fc291cmNlUm9vdDtcbiAgICBzbWMuc291cmNlc0NvbnRlbnQgPSBhU291cmNlTWFwLl9nZW5lcmF0ZVNvdXJjZXNDb250ZW50KHNtYy5fc291cmNlcy50b0FycmF5KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbWMuc291cmNlUm9vdCk7XG4gICAgc21jLmZpbGUgPSBhU291cmNlTWFwLl9maWxlO1xuICAgIHNtYy5fc291cmNlTWFwVVJMID0gYVNvdXJjZU1hcFVSTDtcbiAgICBzbWMuX2Fic29sdXRlU291cmNlcyA9IHNtYy5fc291cmNlcy50b0FycmF5KCkubWFwKGZ1bmN0aW9uIChzKSB7XG4gICAgICByZXR1cm4gdXRpbC5jb21wdXRlU291cmNlVVJMKHNtYy5zb3VyY2VSb290LCBzLCBhU291cmNlTWFwVVJMKTtcbiAgICB9KTtcblxuICAgIC8vIEJlY2F1c2Ugd2UgYXJlIG1vZGlmeWluZyB0aGUgZW50cmllcyAoYnkgY29udmVydGluZyBzdHJpbmcgc291cmNlcyBhbmRcbiAgICAvLyBuYW1lcyB0byBpbmRpY2VzIGludG8gdGhlIHNvdXJjZXMgYW5kIG5hbWVzIEFycmF5U2V0cyksIHdlIGhhdmUgdG8gbWFrZVxuICAgIC8vIGEgY29weSBvZiB0aGUgZW50cnkgb3IgZWxzZSBiYWQgdGhpbmdzIGhhcHBlbi4gU2hhcmVkIG11dGFibGUgc3RhdGVcbiAgICAvLyBzdHJpa2VzIGFnYWluISBTZWUgZ2l0aHViIGlzc3VlICMxOTEuXG5cbiAgICB2YXIgZ2VuZXJhdGVkTWFwcGluZ3MgPSBhU291cmNlTWFwLl9tYXBwaW5ncy50b0FycmF5KCkuc2xpY2UoKTtcbiAgICB2YXIgZGVzdEdlbmVyYXRlZE1hcHBpbmdzID0gc21jLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBbXTtcbiAgICB2YXIgZGVzdE9yaWdpbmFsTWFwcGluZ3MgPSBzbWMuX19vcmlnaW5hbE1hcHBpbmdzID0gW107XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gZ2VuZXJhdGVkTWFwcGluZ3MubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzcmNNYXBwaW5nID0gZ2VuZXJhdGVkTWFwcGluZ3NbaV07XG4gICAgICB2YXIgZGVzdE1hcHBpbmcgPSBuZXcgTWFwcGluZztcbiAgICAgIGRlc3RNYXBwaW5nLmdlbmVyYXRlZExpbmUgPSBzcmNNYXBwaW5nLmdlbmVyYXRlZExpbmU7XG4gICAgICBkZXN0TWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gPSBzcmNNYXBwaW5nLmdlbmVyYXRlZENvbHVtbjtcblxuICAgICAgaWYgKHNyY01hcHBpbmcuc291cmNlKSB7XG4gICAgICAgIGRlc3RNYXBwaW5nLnNvdXJjZSA9IHNvdXJjZXMuaW5kZXhPZihzcmNNYXBwaW5nLnNvdXJjZSk7XG4gICAgICAgIGRlc3RNYXBwaW5nLm9yaWdpbmFsTGluZSA9IHNyY01hcHBpbmcub3JpZ2luYWxMaW5lO1xuICAgICAgICBkZXN0TWFwcGluZy5vcmlnaW5hbENvbHVtbiA9IHNyY01hcHBpbmcub3JpZ2luYWxDb2x1bW47XG5cbiAgICAgICAgaWYgKHNyY01hcHBpbmcubmFtZSkge1xuICAgICAgICAgIGRlc3RNYXBwaW5nLm5hbWUgPSBuYW1lcy5pbmRleE9mKHNyY01hcHBpbmcubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBkZXN0T3JpZ2luYWxNYXBwaW5ncy5wdXNoKGRlc3RNYXBwaW5nKTtcbiAgICAgIH1cblxuICAgICAgZGVzdEdlbmVyYXRlZE1hcHBpbmdzLnB1c2goZGVzdE1hcHBpbmcpO1xuICAgIH1cblxuICAgIHF1aWNrU29ydChzbWMuX19vcmlnaW5hbE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zKTtcblxuICAgIHJldHVybiBzbWM7XG4gIH07XG5cbi8qKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXBwaW5nIHNwZWMgdGhhdCB3ZSBhcmUgY29uc3VtaW5nLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2Ygb3JpZ2luYWwgc291cmNlcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLCAnc291cmNlcycsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Fic29sdXRlU291cmNlcy5zbGljZSgpO1xuICB9XG59KTtcblxuLyoqXG4gKiBQcm92aWRlIHRoZSBKSVQgd2l0aCBhIG5pY2Ugc2hhcGUgLyBoaWRkZW4gY2xhc3MuXG4gKi9cbmZ1bmN0aW9uIE1hcHBpbmcoKSB7XG4gIHRoaXMuZ2VuZXJhdGVkTGluZSA9IDA7XG4gIHRoaXMuZ2VuZXJhdGVkQ29sdW1uID0gMDtcbiAgdGhpcy5zb3VyY2UgPSBudWxsO1xuICB0aGlzLm9yaWdpbmFsTGluZSA9IG51bGw7XG4gIHRoaXMub3JpZ2luYWxDb2x1bW4gPSBudWxsO1xuICB0aGlzLm5hbWUgPSBudWxsO1xufVxuXG4vKipcbiAqIFBhcnNlIHRoZSBtYXBwaW5ncyBpbiBhIHN0cmluZyBpbiB0byBhIGRhdGEgc3RydWN0dXJlIHdoaWNoIHdlIGNhbiBlYXNpbHlcbiAqIHF1ZXJ5ICh0aGUgb3JkZXJlZCBhcnJheXMgaW4gdGhlIGB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZFxuICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS5cbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdmFyIGdlbmVyYXRlZExpbmUgPSAxO1xuICAgIHZhciBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7XG4gICAgdmFyIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gMDtcbiAgICB2YXIgcHJldmlvdXNPcmlnaW5hbENvbHVtbiA9IDA7XG4gICAgdmFyIHByZXZpb3VzU291cmNlID0gMDtcbiAgICB2YXIgcHJldmlvdXNOYW1lID0gMDtcbiAgICB2YXIgbGVuZ3RoID0gYVN0ci5sZW5ndGg7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgY2FjaGVkU2VnbWVudHMgPSB7fTtcbiAgICB2YXIgdGVtcCA9IHt9O1xuICAgIHZhciBvcmlnaW5hbE1hcHBpbmdzID0gW107XG4gICAgdmFyIGdlbmVyYXRlZE1hcHBpbmdzID0gW107XG4gICAgdmFyIG1hcHBpbmcsIHN0ciwgc2VnbWVudCwgZW5kLCB2YWx1ZTtcblxuICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGFTdHIuY2hhckF0KGluZGV4KSA9PT0gJzsnKSB7XG4gICAgICAgIGdlbmVyYXRlZExpbmUrKztcbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSAwO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoYVN0ci5jaGFyQXQoaW5kZXgpID09PSAnLCcpIHtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBtYXBwaW5nID0gbmV3IE1hcHBpbmcoKTtcbiAgICAgICAgbWFwcGluZy5nZW5lcmF0ZWRMaW5lID0gZ2VuZXJhdGVkTGluZTtcblxuICAgICAgICAvLyBCZWNhdXNlIGVhY2ggb2Zmc2V0IGlzIGVuY29kZWQgcmVsYXRpdmUgdG8gdGhlIHByZXZpb3VzIG9uZSxcbiAgICAgICAgLy8gbWFueSBzZWdtZW50cyBvZnRlbiBoYXZlIHRoZSBzYW1lIGVuY29kaW5nLiBXZSBjYW4gZXhwbG9pdCB0aGlzXG4gICAgICAgIC8vIGZhY3QgYnkgY2FjaGluZyB0aGUgcGFyc2VkIHZhcmlhYmxlIGxlbmd0aCBmaWVsZHMgb2YgZWFjaCBzZWdtZW50LFxuICAgICAgICAvLyBhbGxvd2luZyB1cyB0byBhdm9pZCBhIHNlY29uZCBwYXJzZSBpZiB3ZSBlbmNvdW50ZXIgdGhlIHNhbWVcbiAgICAgICAgLy8gc2VnbWVudCBhZ2Fpbi5cbiAgICAgICAgZm9yIChlbmQgPSBpbmRleDsgZW5kIDwgbGVuZ3RoOyBlbmQrKykge1xuICAgICAgICAgIGlmICh0aGlzLl9jaGFySXNNYXBwaW5nU2VwYXJhdG9yKGFTdHIsIGVuZCkpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdHIgPSBhU3RyLnNsaWNlKGluZGV4LCBlbmQpO1xuXG4gICAgICAgIHNlZ21lbnQgPSBjYWNoZWRTZWdtZW50c1tzdHJdO1xuICAgICAgICBpZiAoc2VnbWVudCkge1xuICAgICAgICAgIGluZGV4ICs9IHN0ci5sZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VnbWVudCA9IFtdO1xuICAgICAgICAgIHdoaWxlIChpbmRleCA8IGVuZCkge1xuICAgICAgICAgICAgYmFzZTY0VkxRLmRlY29kZShhU3RyLCBpbmRleCwgdGVtcCk7XG4gICAgICAgICAgICB2YWx1ZSA9IHRlbXAudmFsdWU7XG4gICAgICAgICAgICBpbmRleCA9IHRlbXAucmVzdDtcbiAgICAgICAgICAgIHNlZ21lbnQucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGEgc291cmNlLCBidXQgbm8gbGluZSBhbmQgY29sdW1uJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGEgc291cmNlIGFuZCBsaW5lLCBidXQgbm8gY29sdW1uJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FjaGVkU2VnbWVudHNbc3RyXSA9IHNlZ21lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZW5lcmF0ZWQgY29sdW1uLlxuICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiA9IHByZXZpb3VzR2VuZXJhdGVkQ29sdW1uICsgc2VnbWVudFswXTtcbiAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbjtcblxuICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgLy8gT3JpZ2luYWwgc291cmNlLlxuICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gcHJldmlvdXNTb3VyY2UgKyBzZWdtZW50WzFdO1xuICAgICAgICAgIHByZXZpb3VzU291cmNlICs9IHNlZ21lbnRbMV07XG5cbiAgICAgICAgICAvLyBPcmlnaW5hbCBsaW5lLlxuICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxMaW5lID0gcHJldmlvdXNPcmlnaW5hbExpbmUgKyBzZWdtZW50WzJdO1xuICAgICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmU7XG4gICAgICAgICAgLy8gTGluZXMgYXJlIHN0b3JlZCAwLWJhc2VkXG4gICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUgKz0gMTtcblxuICAgICAgICAgIC8vIE9yaWdpbmFsIGNvbHVtbi5cbiAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gcHJldmlvdXNPcmlnaW5hbENvbHVtbiArIHNlZ21lbnRbM107XG4gICAgICAgICAgcHJldmlvdXNPcmlnaW5hbENvbHVtbiA9IG1hcHBpbmcub3JpZ2luYWxDb2x1bW47XG5cbiAgICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPiA0KSB7XG4gICAgICAgICAgICAvLyBPcmlnaW5hbCBuYW1lLlxuICAgICAgICAgICAgbWFwcGluZy5uYW1lID0gcHJldmlvdXNOYW1lICsgc2VnbWVudFs0XTtcbiAgICAgICAgICAgIHByZXZpb3VzTmFtZSArPSBzZWdtZW50WzRdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGdlbmVyYXRlZE1hcHBpbmdzLnB1c2gobWFwcGluZyk7XG4gICAgICAgIGlmICh0eXBlb2YgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgb3JpZ2luYWxNYXBwaW5ncy5wdXNoKG1hcHBpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcXVpY2tTb3J0KGdlbmVyYXRlZE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKTtcbiAgICB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBnZW5lcmF0ZWRNYXBwaW5ncztcblxuICAgIHF1aWNrU29ydChvcmlnaW5hbE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zKTtcbiAgICB0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncyA9IG9yaWdpbmFsTWFwcGluZ3M7XG4gIH07XG5cbi8qKlxuICogRmluZCB0aGUgbWFwcGluZyB0aGF0IGJlc3QgbWF0Y2hlcyB0aGUgaHlwb3RoZXRpY2FsIFwibmVlZGxlXCIgbWFwcGluZyB0aGF0XG4gKiB3ZSBhcmUgc2VhcmNoaW5nIGZvciBpbiB0aGUgZ2l2ZW4gXCJoYXlzdGFja1wiIG9mIG1hcHBpbmdzLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fZmluZE1hcHBpbmcgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9maW5kTWFwcGluZyhhTmVlZGxlLCBhTWFwcGluZ3MsIGFMaW5lTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUNvbHVtbk5hbWUsIGFDb21wYXJhdG9yLCBhQmlhcykge1xuICAgIC8vIFRvIHJldHVybiB0aGUgcG9zaXRpb24gd2UgYXJlIHNlYXJjaGluZyBmb3IsIHdlIG11c3QgZmlyc3QgZmluZCB0aGVcbiAgICAvLyBtYXBwaW5nIGZvciB0aGUgZ2l2ZW4gcG9zaXRpb24gYW5kIHRoZW4gcmV0dXJuIHRoZSBvcHBvc2l0ZSBwb3NpdGlvbiBpdFxuICAgIC8vIHBvaW50cyB0by4gQmVjYXVzZSB0aGUgbWFwcGluZ3MgYXJlIHNvcnRlZCwgd2UgY2FuIHVzZSBiaW5hcnkgc2VhcmNoIHRvXG4gICAgLy8gZmluZCB0aGUgYmVzdCBtYXBwaW5nLlxuXG4gICAgaWYgKGFOZWVkbGVbYUxpbmVOYW1lXSA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdMaW5lIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEsIGdvdCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICsgYU5lZWRsZVthTGluZU5hbWVdKTtcbiAgICB9XG4gICAgaWYgKGFOZWVkbGVbYUNvbHVtbk5hbWVdIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ29sdW1uIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAsIGdvdCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICsgYU5lZWRsZVthQ29sdW1uTmFtZV0pO1xuICAgIH1cblxuICAgIHJldHVybiBiaW5hcnlTZWFyY2guc2VhcmNoKGFOZWVkbGUsIGFNYXBwaW5ncywgYUNvbXBhcmF0b3IsIGFCaWFzKTtcbiAgfTtcblxuLyoqXG4gKiBDb21wdXRlIHRoZSBsYXN0IGNvbHVtbiBmb3IgZWFjaCBnZW5lcmF0ZWQgbWFwcGluZy4gVGhlIGxhc3QgY29sdW1uIGlzXG4gKiBpbmNsdXNpdmUuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbXB1dGVDb2x1bW5TcGFucyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2NvbXB1dGVDb2x1bW5TcGFucygpIHtcbiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3MubGVuZ3RoOyArK2luZGV4KSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzW2luZGV4XTtcblxuICAgICAgLy8gTWFwcGluZ3MgZG8gbm90IGNvbnRhaW4gYSBmaWVsZCBmb3IgdGhlIGxhc3QgZ2VuZXJhdGVkIGNvbHVtbnQuIFdlXG4gICAgICAvLyBjYW4gY29tZSB1cCB3aXRoIGFuIG9wdGltaXN0aWMgZXN0aW1hdGUsIGhvd2V2ZXIsIGJ5IGFzc3VtaW5nIHRoYXRcbiAgICAgIC8vIG1hcHBpbmdzIGFyZSBjb250aWd1b3VzIChpLmUuIGdpdmVuIHR3byBjb25zZWN1dGl2ZSBtYXBwaW5ncywgdGhlXG4gICAgICAvLyBmaXJzdCBtYXBwaW5nIGVuZHMgd2hlcmUgdGhlIHNlY29uZCBvbmUgc3RhcnRzKS5cbiAgICAgIGlmIChpbmRleCArIDEgPCB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5ncy5sZW5ndGgpIHtcbiAgICAgICAgdmFyIG5leHRNYXBwaW5nID0gdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3NbaW5kZXggKyAxXTtcblxuICAgICAgICBpZiAobWFwcGluZy5nZW5lcmF0ZWRMaW5lID09PSBuZXh0TWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gbmV4dE1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC0gMTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBtYXBwaW5nIGZvciBlYWNoIGxpbmUgc3BhbnMgdGhlIGVudGlyZSBsaW5lLlxuICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gSW5maW5pdHk7XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSwgbGluZSwgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGdlbmVyYXRlZFxuICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0XG4gKiB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGxpbmUgbnVtYmVyXG4gKiAgICAgaXMgMS1iYXNlZC5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGNvbHVtblxuICogICAgIG51bWJlciBpcyAwLWJhc2VkLlxuICogICAtIGJpYXM6IEVpdGhlciAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnIG9yXG4gKiAgICAgJ1NvdXJjZU1hcENvbnN1bWVyLkxFQVNUX1VQUEVSX0JPVU5EJy4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmV0dXJuIHRoZVxuICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmVcbiAqICAgICBzZWFyY2hpbmcgZm9yLCByZXNwZWN0aXZlbHksIGlmIHRoZSBleGFjdCBlbGVtZW50IGNhbm5vdCBiZSBmb3VuZC5cbiAqICAgICBEZWZhdWx0cyB0byAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlLCBvciBudWxsLlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlXG4gKiAgICAgbGluZSBudW1iZXIgaXMgMS1iYXNlZC5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuICBUaGVcbiAqICAgICBjb2x1bW4gbnVtYmVyIGlzIDAtYmFzZWQuXG4gKiAgIC0gbmFtZTogVGhlIG9yaWdpbmFsIGlkZW50aWZpZXIsIG9yIG51bGwuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLm9yaWdpbmFsUG9zaXRpb25Gb3IgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9vcmlnaW5hbFBvc2l0aW9uRm9yKGFBcmdzKSB7XG4gICAgdmFyIG5lZWRsZSA9IHtcbiAgICAgIGdlbmVyYXRlZExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAnbGluZScpLFxuICAgICAgZ2VuZXJhdGVkQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgJ2NvbHVtbicpXG4gICAgfTtcblxuICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmRNYXBwaW5nKFxuICAgICAgbmVlZGxlLFxuICAgICAgdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3MsXG4gICAgICBcImdlbmVyYXRlZExpbmVcIixcbiAgICAgIFwiZ2VuZXJhdGVkQ29sdW1uXCIsXG4gICAgICB1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkLFxuICAgICAgdXRpbC5nZXRBcmcoYUFyZ3MsICdiaWFzJywgU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQpXG4gICAgKTtcblxuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzW2luZGV4XTtcblxuICAgICAgaWYgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSA9PT0gbmVlZGxlLmdlbmVyYXRlZExpbmUpIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdzb3VyY2UnLCBudWxsKTtcbiAgICAgICAgaWYgKHNvdXJjZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuYXQoc291cmNlKTtcbiAgICAgICAgICBzb3VyY2UgPSB1dGlsLmNvbXB1dGVTb3VyY2VVUkwodGhpcy5zb3VyY2VSb290LCBzb3VyY2UsIHRoaXMuX3NvdXJjZU1hcFVSTCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG5hbWUgPSB1dGlsLmdldEFyZyhtYXBwaW5nLCAnbmFtZScsIG51bGwpO1xuICAgICAgICBpZiAobmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5hdChuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICAgIGxpbmU6IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdvcmlnaW5hbExpbmUnLCBudWxsKSxcbiAgICAgICAgICBjb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdvcmlnaW5hbENvbHVtbicsIG51bGwpLFxuICAgICAgICAgIG5hbWU6IG5hbWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc291cmNlOiBudWxsLFxuICAgICAgbGluZTogbnVsbCxcbiAgICAgIGNvbHVtbjogbnVsbCxcbiAgICAgIG5hbWU6IG51bGxcbiAgICB9O1xuICB9O1xuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHdlIGhhdmUgdGhlIHNvdXJjZSBjb250ZW50IGZvciBldmVyeSBzb3VyY2UgaW4gdGhlIHNvdXJjZVxuICogbWFwLCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzID1cbiAgZnVuY3Rpb24gQmFzaWNTb3VyY2VNYXBDb25zdW1lcl9oYXNDb250ZW50c09mQWxsU291cmNlcygpIHtcbiAgICBpZiAoIXRoaXMuc291cmNlc0NvbnRlbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc291cmNlc0NvbnRlbnQubGVuZ3RoID49IHRoaXMuX3NvdXJjZXMuc2l6ZSgpICYmXG4gICAgICAhdGhpcy5zb3VyY2VzQ29udGVudC5zb21lKGZ1bmN0aW9uIChzYykgeyByZXR1cm4gc2MgPT0gbnVsbDsgfSk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgb3JpZ2luYWwgc291cmNlIGNvbnRlbnQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIHRoZSB1cmwgb2YgdGhlXG4gKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzXG4gKiBhdmFpbGFibGUuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLnNvdXJjZUNvbnRlbnRGb3IgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9zb3VyY2VDb250ZW50Rm9yKGFTb3VyY2UsIG51bGxPbk1pc3NpbmcpIHtcbiAgICBpZiAoIXRoaXMuc291cmNlc0NvbnRlbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmRTb3VyY2VJbmRleChhU291cmNlKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuc291cmNlc0NvbnRlbnRbaW5kZXhdO1xuICAgIH1cblxuICAgIHZhciByZWxhdGl2ZVNvdXJjZSA9IGFTb3VyY2U7XG4gICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICByZWxhdGl2ZVNvdXJjZSA9IHV0aWwucmVsYXRpdmUodGhpcy5zb3VyY2VSb290LCByZWxhdGl2ZVNvdXJjZSk7XG4gICAgfVxuXG4gICAgdmFyIHVybDtcbiAgICBpZiAodGhpcy5zb3VyY2VSb290ICE9IG51bGxcbiAgICAgICAgJiYgKHVybCA9IHV0aWwudXJsUGFyc2UodGhpcy5zb3VyY2VSb290KSkpIHtcbiAgICAgIC8vIFhYWDogZmlsZTovLyBVUklzIGFuZCBhYnNvbHV0ZSBwYXRocyBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IgZm9yXG4gICAgICAvLyBtYW55IHVzZXJzLiBXZSBjYW4gaGVscCB0aGVtIG91dCB3aGVuIHRoZXkgZXhwZWN0IGZpbGU6Ly8gVVJJcyB0b1xuICAgICAgLy8gYmVoYXZlIGxpa2UgaXQgd291bGQgaWYgdGhleSB3ZXJlIHJ1bm5pbmcgYSBsb2NhbCBIVFRQIHNlcnZlci4gU2VlXG4gICAgICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD04ODU1OTcuXG4gICAgICB2YXIgZmlsZVVyaUFic1BhdGggPSByZWxhdGl2ZVNvdXJjZS5yZXBsYWNlKC9eZmlsZTpcXC9cXC8vLCBcIlwiKTtcbiAgICAgIGlmICh1cmwuc2NoZW1lID09IFwiZmlsZVwiXG4gICAgICAgICAgJiYgdGhpcy5fc291cmNlcy5oYXMoZmlsZVVyaUFic1BhdGgpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZXNDb250ZW50W3RoaXMuX3NvdXJjZXMuaW5kZXhPZihmaWxlVXJpQWJzUGF0aCldXG4gICAgICB9XG5cbiAgICAgIGlmICgoIXVybC5wYXRoIHx8IHVybC5wYXRoID09IFwiL1wiKVxuICAgICAgICAgICYmIHRoaXMuX3NvdXJjZXMuaGFzKFwiL1wiICsgcmVsYXRpdmVTb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZXNDb250ZW50W3RoaXMuX3NvdXJjZXMuaW5kZXhPZihcIi9cIiArIHJlbGF0aXZlU291cmNlKV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHJlY3Vyc2l2ZWx5IGZyb21cbiAgICAvLyBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLnNvdXJjZUNvbnRlbnRGb3IuIEluIHRoYXQgY2FzZSwgd2VcbiAgICAvLyBkb24ndCB3YW50IHRvIHRocm93IGlmIHdlIGNhbid0IGZpbmQgdGhlIHNvdXJjZSAtIHdlIGp1c3Qgd2FudCB0b1xuICAgIC8vIHJldHVybiBudWxsLCBzbyB3ZSBwcm92aWRlIGEgZmxhZyB0byBleGl0IGdyYWNlZnVsbHkuXG4gICAgaWYgKG51bGxPbk1pc3NpbmcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignXCInICsgcmVsYXRpdmVTb3VyY2UgKyAnXCIgaXMgbm90IGluIHRoZSBTb3VyY2VNYXAuJyk7XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGdlbmVyYXRlZCBsaW5lIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBvcmlnaW5hbCBzb3VyY2UsXG4gKiBsaW5lLCBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0IHdpdGhcbiAqIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gc291cmNlOiBUaGUgZmlsZW5hbWUgb2YgdGhlIG9yaWdpbmFsIHNvdXJjZS5cbiAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlclxuICogICAgIGlzIDEtYmFzZWQuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGNvbHVtblxuICogICAgIG51bWJlciBpcyAwLWJhc2VkLlxuICogICAtIGJpYXM6IEVpdGhlciAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnIG9yXG4gKiAgICAgJ1NvdXJjZU1hcENvbnN1bWVyLkxFQVNUX1VQUEVSX0JPVU5EJy4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmV0dXJuIHRoZVxuICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmVcbiAqICAgICBzZWFyY2hpbmcgZm9yLCByZXNwZWN0aXZlbHksIGlmIHRoZSBleGFjdCBlbGVtZW50IGNhbm5vdCBiZSBmb3VuZC5cbiAqICAgICBEZWZhdWx0cyB0byAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC4gIFRoZVxuICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC5cbiAqICAgICBUaGUgY29sdW1uIG51bWJlciBpcyAwLWJhc2VkLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5nZW5lcmF0ZWRQb3NpdGlvbkZvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2dlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7XG4gICAgdmFyIHNvdXJjZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJyk7XG4gICAgc291cmNlID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KHNvdXJjZSk7XG4gICAgaWYgKHNvdXJjZSA8IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxpbmU6IG51bGwsXG4gICAgICAgIGNvbHVtbjogbnVsbCxcbiAgICAgICAgbGFzdENvbHVtbjogbnVsbFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgbmVlZGxlID0ge1xuICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICBvcmlnaW5hbExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAnbGluZScpLFxuICAgICAgb3JpZ2luYWxDb2x1bW46IHV0aWwuZ2V0QXJnKGFBcmdzLCAnY29sdW1uJylcbiAgICB9O1xuXG4gICAgdmFyIGluZGV4ID0gdGhpcy5fZmluZE1hcHBpbmcoXG4gICAgICBuZWVkbGUsXG4gICAgICB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzLFxuICAgICAgXCJvcmlnaW5hbExpbmVcIixcbiAgICAgIFwib3JpZ2luYWxDb2x1bW5cIixcbiAgICAgIHV0aWwuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMsXG4gICAgICB1dGlsLmdldEFyZyhhQXJncywgJ2JpYXMnLCBTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORClcbiAgICApO1xuXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHZhciBtYXBwaW5nID0gdGhpcy5fb3JpZ2luYWxNYXBwaW5nc1tpbmRleF07XG5cbiAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSA9PT0gbmVlZGxlLnNvdXJjZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxpbmU6IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRMaW5lJywgbnVsbCksXG4gICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkQ29sdW1uJywgbnVsbCksXG4gICAgICAgICAgbGFzdENvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgJ2xhc3RHZW5lcmF0ZWRDb2x1bW4nLCBudWxsKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBsaW5lOiBudWxsLFxuICAgICAgY29sdW1uOiBudWxsLFxuICAgICAgbGFzdENvbHVtbjogbnVsbFxuICAgIH07XG4gIH07XG5cbmV4cG9ydHMuQmFzaWNTb3VyY2VNYXBDb25zdW1lciA9IEJhc2ljU291cmNlTWFwQ29uc3VtZXI7XG5cbi8qKlxuICogQW4gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyIGluc3RhbmNlIHJlcHJlc2VudHMgYSBwYXJzZWQgc291cmNlIG1hcCB3aGljaFxuICogd2UgY2FuIHF1ZXJ5IGZvciBpbmZvcm1hdGlvbi4gSXQgZGlmZmVycyBmcm9tIEJhc2ljU291cmNlTWFwQ29uc3VtZXIgaW5cbiAqIHRoYXQgaXQgdGFrZXMgXCJpbmRleGVkXCIgc291cmNlIG1hcHMgKGkuZS4gb25lcyB3aXRoIGEgXCJzZWN0aW9uc1wiIGZpZWxkKSBhc1xuICogaW5wdXQuXG4gKlxuICogVGhlIGZpcnN0IHBhcmFtZXRlciBpcyBhIHJhdyBzb3VyY2UgbWFwIChlaXRoZXIgYXMgYSBKU09OIHN0cmluZywgb3IgYWxyZWFkeVxuICogcGFyc2VkIHRvIGFuIG9iamVjdCkuIEFjY29yZGluZyB0byB0aGUgc3BlYyBmb3IgaW5kZXhlZCBzb3VyY2UgbWFwcywgdGhleVxuICogaGF2ZSB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6XG4gKlxuICogICAtIHZlcnNpb246IFdoaWNoIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXAgc3BlYyB0aGlzIG1hcCBpcyBmb2xsb3dpbmcuXG4gKiAgIC0gZmlsZTogT3B0aW9uYWwuIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICogICAtIHNlY3Rpb25zOiBBIGxpc3Qgb2Ygc2VjdGlvbiBkZWZpbml0aW9ucy5cbiAqXG4gKiBFYWNoIHZhbHVlIHVuZGVyIHRoZSBcInNlY3Rpb25zXCIgZmllbGQgaGFzIHR3byBmaWVsZHM6XG4gKiAgIC0gb2Zmc2V0OiBUaGUgb2Zmc2V0IGludG8gdGhlIG9yaWdpbmFsIHNwZWNpZmllZCBhdCB3aGljaCB0aGlzIHNlY3Rpb25cbiAqICAgICAgIGJlZ2lucyB0byBhcHBseSwgZGVmaW5lZCBhcyBhbiBvYmplY3Qgd2l0aCBhIFwibGluZVwiIGFuZCBcImNvbHVtblwiXG4gKiAgICAgICBmaWVsZC5cbiAqICAgLSBtYXA6IEEgc291cmNlIG1hcCBkZWZpbml0aW9uLiBUaGlzIHNvdXJjZSBtYXAgY291bGQgYWxzbyBiZSBpbmRleGVkLFxuICogICAgICAgYnV0IGRvZXNuJ3QgaGF2ZSB0byBiZS5cbiAqXG4gKiBJbnN0ZWFkIG9mIHRoZSBcIm1hcFwiIGZpZWxkLCBpdCdzIGFsc28gcG9zc2libGUgdG8gaGF2ZSBhIFwidXJsXCIgZmllbGRcbiAqIHNwZWNpZnlpbmcgYSBVUkwgdG8gcmV0cmlldmUgYSBzb3VyY2UgbWFwIGZyb20sIGJ1dCB0aGF0J3MgY3VycmVudGx5XG4gKiB1bnN1cHBvcnRlZC5cbiAqXG4gKiBIZXJlJ3MgYW4gZXhhbXBsZSBzb3VyY2UgbWFwLCB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgbWFwIHNwZWNbMF0sIGJ1dFxuICogbW9kaWZpZWQgdG8gb21pdCBhIHNlY3Rpb24gd2hpY2ggdXNlcyB0aGUgXCJ1cmxcIiBmaWVsZC5cbiAqXG4gKiAge1xuICogICAgdmVyc2lvbiA6IDMsXG4gKiAgICBmaWxlOiBcImFwcC5qc1wiLFxuICogICAgc2VjdGlvbnM6IFt7XG4gKiAgICAgIG9mZnNldDoge2xpbmU6MTAwLCBjb2x1bW46MTB9LFxuICogICAgICBtYXA6IHtcbiAqICAgICAgICB2ZXJzaW9uIDogMyxcbiAqICAgICAgICBmaWxlOiBcInNlY3Rpb24uanNcIixcbiAqICAgICAgICBzb3VyY2VzOiBbXCJmb28uanNcIiwgXCJiYXIuanNcIl0sXG4gKiAgICAgICAgbmFtZXM6IFtcInNyY1wiLCBcIm1hcHNcIiwgXCJhcmVcIiwgXCJmdW5cIl0sXG4gKiAgICAgICAgbWFwcGluZ3M6IFwiQUFBQSxFOztBQkNERTtcIlxuICogICAgICB9XG4gKiAgICB9XSxcbiAqICB9XG4gKlxuICogVGhlIHNlY29uZCBwYXJhbWV0ZXIsIGlmIGdpdmVuLCBpcyBhIHN0cmluZyB3aG9zZSB2YWx1ZSBpcyB0aGUgVVJMXG4gKiBhdCB3aGljaCB0aGUgc291cmNlIG1hcCB3YXMgZm91bmQuICBUaGlzIFVSTCBpcyB1c2VkIHRvIGNvbXB1dGUgdGhlXG4gKiBzb3VyY2VzIGFycmF5LlxuICpcbiAqIFswXTogaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZG9jdW1lbnQvZC8xVTFSR0FlaFF3UnlwVVRvdkYxS1JscGlPRnplMGItXzJnYzZmQUgwS1kway9lZGl0I2hlYWRpbmc9aC41MzVlczN4ZXByZ3RcbiAqL1xuZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHtcbiAgdmFyIHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7XG4gIGlmICh0eXBlb2YgYVNvdXJjZU1hcCA9PT0gJ3N0cmluZycpIHtcbiAgICBzb3VyY2VNYXAgPSB1dGlsLnBhcnNlU291cmNlTWFwSW5wdXQoYVNvdXJjZU1hcCk7XG4gIH1cblxuICB2YXIgdmVyc2lvbiA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3ZlcnNpb24nKTtcbiAgdmFyIHNlY3Rpb25zID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnc2VjdGlvbnMnKTtcblxuICBpZiAodmVyc2lvbiAhPSB0aGlzLl92ZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCB2ZXJzaW9uOiAnICsgdmVyc2lvbik7XG4gIH1cblxuICB0aGlzLl9zb3VyY2VzID0gbmV3IEFycmF5U2V0KCk7XG4gIHRoaXMuX25hbWVzID0gbmV3IEFycmF5U2V0KCk7XG5cbiAgdmFyIGxhc3RPZmZzZXQgPSB7XG4gICAgbGluZTogLTEsXG4gICAgY29sdW1uOiAwXG4gIH07XG4gIHRoaXMuX3NlY3Rpb25zID0gc2VjdGlvbnMubWFwKGZ1bmN0aW9uIChzKSB7XG4gICAgaWYgKHMudXJsKSB7XG4gICAgICAvLyBUaGUgdXJsIGZpZWxkIHdpbGwgcmVxdWlyZSBzdXBwb3J0IGZvciBhc3luY2hyb25pY2l0eS5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL2lzc3Vlcy8xNlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdXBwb3J0IGZvciB1cmwgZmllbGQgaW4gc2VjdGlvbnMgbm90IGltcGxlbWVudGVkLicpO1xuICAgIH1cbiAgICB2YXIgb2Zmc2V0ID0gdXRpbC5nZXRBcmcocywgJ29mZnNldCcpO1xuICAgIHZhciBvZmZzZXRMaW5lID0gdXRpbC5nZXRBcmcob2Zmc2V0LCAnbGluZScpO1xuICAgIHZhciBvZmZzZXRDb2x1bW4gPSB1dGlsLmdldEFyZyhvZmZzZXQsICdjb2x1bW4nKTtcblxuICAgIGlmIChvZmZzZXRMaW5lIDwgbGFzdE9mZnNldC5saW5lIHx8XG4gICAgICAgIChvZmZzZXRMaW5lID09PSBsYXN0T2Zmc2V0LmxpbmUgJiYgb2Zmc2V0Q29sdW1uIDwgbGFzdE9mZnNldC5jb2x1bW4pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlY3Rpb24gb2Zmc2V0cyBtdXN0IGJlIG9yZGVyZWQgYW5kIG5vbi1vdmVybGFwcGluZy4nKTtcbiAgICB9XG4gICAgbGFzdE9mZnNldCA9IG9mZnNldDtcblxuICAgIHJldHVybiB7XG4gICAgICBnZW5lcmF0ZWRPZmZzZXQ6IHtcbiAgICAgICAgLy8gVGhlIG9mZnNldCBmaWVsZHMgYXJlIDAtYmFzZWQsIGJ1dCB3ZSB1c2UgMS1iYXNlZCBpbmRpY2VzIHdoZW5cbiAgICAgICAgLy8gZW5jb2RpbmcvZGVjb2RpbmcgZnJvbSBWTFEuXG4gICAgICAgIGdlbmVyYXRlZExpbmU6IG9mZnNldExpbmUgKyAxLFxuICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG9mZnNldENvbHVtbiArIDFcbiAgICAgIH0sXG4gICAgICBjb25zdW1lcjogbmV3IFNvdXJjZU1hcENvbnN1bWVyKHV0aWwuZ2V0QXJnKHMsICdtYXAnKSwgYVNvdXJjZU1hcFVSTClcbiAgICB9XG4gIH0pO1xufVxuXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUpO1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFNvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgbWFwcGluZyBzcGVjIHRoYXQgd2UgYXJlIGNvbnN1bWluZy5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2Ygb3JpZ2luYWwgc291cmNlcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUsICdzb3VyY2VzJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc291cmNlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuc291cmNlcy5sZW5ndGg7IGorKykge1xuICAgICAgICBzb3VyY2VzLnB1c2godGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuc291cmNlc1tqXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2VzO1xuICB9XG59KTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UsIGxpbmUsIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBnZW5lcmF0ZWRcbiAqIHNvdXJjZSdzIGxpbmUgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdFxuICogd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlclxuICogICAgIGlzIDEtYmFzZWQuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS4gIFRoZSBjb2x1bW5cbiAqICAgICBudW1iZXIgaXMgMC1iYXNlZC5cbiAqXG4gKiBhbmQgYW4gb2JqZWN0IGlzIHJldHVybmVkIHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuICpcbiAqICAgLSBzb3VyY2U6IFRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSwgb3IgbnVsbC5cbiAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSwgb3IgbnVsbC4gIFRoZVxuICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlXG4gKiAgICAgY29sdW1uIG51bWJlciBpcyAwLWJhc2VkLlxuICogICAtIG5hbWU6IFRoZSBvcmlnaW5hbCBpZGVudGlmaWVyLCBvciBudWxsLlxuICovXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLm9yaWdpbmFsUG9zaXRpb25Gb3IgPVxuICBmdW5jdGlvbiBJbmRleGVkU291cmNlTWFwQ29uc3VtZXJfb3JpZ2luYWxQb3NpdGlvbkZvcihhQXJncykge1xuICAgIHZhciBuZWVkbGUgPSB7XG4gICAgICBnZW5lcmF0ZWRMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgJ2xpbmUnKSxcbiAgICAgIGdlbmVyYXRlZENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICdjb2x1bW4nKVxuICAgIH07XG5cbiAgICAvLyBGaW5kIHRoZSBzZWN0aW9uIGNvbnRhaW5pbmcgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbiB3ZSdyZSB0cnlpbmcgdG8gbWFwXG4gICAgLy8gdG8gYW4gb3JpZ2luYWwgcG9zaXRpb24uXG4gICAgdmFyIHNlY3Rpb25JbmRleCA9IGJpbmFyeVNlYXJjaC5zZWFyY2gobmVlZGxlLCB0aGlzLl9zZWN0aW9ucyxcbiAgICAgIGZ1bmN0aW9uKG5lZWRsZSwgc2VjdGlvbikge1xuICAgICAgICB2YXIgY21wID0gbmVlZGxlLmdlbmVyYXRlZExpbmUgLSBzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lO1xuICAgICAgICBpZiAoY21wKSB7XG4gICAgICAgICAgcmV0dXJuIGNtcDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAobmVlZGxlLmdlbmVyYXRlZENvbHVtbiAtXG4gICAgICAgICAgICAgICAgc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uKTtcbiAgICAgIH0pO1xuICAgIHZhciBzZWN0aW9uID0gdGhpcy5fc2VjdGlvbnNbc2VjdGlvbkluZGV4XTtcblxuICAgIGlmICghc2VjdGlvbikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc291cmNlOiBudWxsLFxuICAgICAgICBsaW5lOiBudWxsLFxuICAgICAgICBjb2x1bW46IG51bGwsXG4gICAgICAgIG5hbWU6IG51bGxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlY3Rpb24uY29uc3VtZXIub3JpZ2luYWxQb3NpdGlvbkZvcih7XG4gICAgICBsaW5lOiBuZWVkbGUuZ2VuZXJhdGVkTGluZSAtXG4gICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lIC0gMSksXG4gICAgICBjb2x1bW46IG5lZWRsZS5nZW5lcmF0ZWRDb2x1bW4gLVxuICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSA9PT0gbmVlZGxlLmdlbmVyYXRlZExpbmVcbiAgICAgICAgID8gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uIC0gMVxuICAgICAgICAgOiAwKSxcbiAgICAgIGJpYXM6IGFBcmdzLmJpYXNcbiAgICB9KTtcbiAgfTtcblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB3ZSBoYXZlIHRoZSBzb3VyY2UgY29udGVudCBmb3IgZXZlcnkgc291cmNlIGluIHRoZSBzb3VyY2VcbiAqIG1hcCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzID1cbiAgZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyX2hhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWN0aW9ucy5ldmVyeShmdW5jdGlvbiAocykge1xuICAgICAgcmV0dXJuIHMuY29uc3VtZXIuaGFzQ29udGVudHNPZkFsbFNvdXJjZXMoKTtcbiAgICB9KTtcbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UgY29udGVudC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgdGhlIHVybCBvZiB0aGVcbiAqIG9yaWdpbmFsIHNvdXJjZSBmaWxlLiBSZXR1cm5zIG51bGwgaWYgbm8gb3JpZ2luYWwgc291cmNlIGNvbnRlbnQgaXNcbiAqIGF2YWlsYWJsZS5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5zb3VyY2VDb250ZW50Rm9yID1cbiAgZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyX3NvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzZWN0aW9uID0gdGhpcy5fc2VjdGlvbnNbaV07XG5cbiAgICAgIHZhciBjb250ZW50ID0gc2VjdGlvbi5jb25zdW1lci5zb3VyY2VDb250ZW50Rm9yKGFTb3VyY2UsIHRydWUpO1xuICAgICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChudWxsT25NaXNzaW5nKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1wiJyArIGFTb3VyY2UgKyAnXCIgaXMgbm90IGluIHRoZSBTb3VyY2VNYXAuJyk7XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGdlbmVyYXRlZCBsaW5lIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBvcmlnaW5hbCBzb3VyY2UsXG4gKiBsaW5lLCBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0IHdpdGhcbiAqIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gc291cmNlOiBUaGUgZmlsZW5hbWUgb2YgdGhlIG9yaWdpbmFsIHNvdXJjZS5cbiAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlclxuICogICAgIGlzIDEtYmFzZWQuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGNvbHVtblxuICogICAgIG51bWJlciBpcyAwLWJhc2VkLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC4gIFRoZVxuICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuIFxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuXG4gKiAgICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5nZW5lcmF0ZWRQb3NpdGlvbkZvciA9XG4gIGZ1bmN0aW9uIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcl9nZW5lcmF0ZWRQb3NpdGlvbkZvcihhQXJncykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzZWN0aW9uID0gdGhpcy5fc2VjdGlvbnNbaV07XG5cbiAgICAgIC8vIE9ubHkgY29uc2lkZXIgdGhpcyBzZWN0aW9uIGlmIHRoZSByZXF1ZXN0ZWQgc291cmNlIGlzIGluIHRoZSBsaXN0IG9mXG4gICAgICAvLyBzb3VyY2VzIG9mIHRoZSBjb25zdW1lci5cbiAgICAgIGlmIChzZWN0aW9uLmNvbnN1bWVyLl9maW5kU291cmNlSW5kZXgodXRpbC5nZXRBcmcoYUFyZ3MsICdzb3VyY2UnKSkgPT09IC0xKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdmFyIGdlbmVyYXRlZFBvc2l0aW9uID0gc2VjdGlvbi5jb25zdW1lci5nZW5lcmF0ZWRQb3NpdGlvbkZvcihhQXJncyk7XG4gICAgICBpZiAoZ2VuZXJhdGVkUG9zaXRpb24pIHtcbiAgICAgICAgdmFyIHJldCA9IHtcbiAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lICtcbiAgICAgICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lIC0gMSksXG4gICAgICAgICAgY29sdW1uOiBnZW5lcmF0ZWRQb3NpdGlvbi5jb2x1bW4gK1xuICAgICAgICAgICAgKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgPT09IGdlbmVyYXRlZFBvc2l0aW9uLmxpbmVcbiAgICAgICAgICAgICA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDFcbiAgICAgICAgICAgICA6IDApXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmU6IG51bGwsXG4gICAgICBjb2x1bW46IG51bGxcbiAgICB9O1xuICB9O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBtYXBwaW5ncyBpbiBhIHN0cmluZyBpbiB0byBhIGRhdGEgc3RydWN0dXJlIHdoaWNoIHdlIGNhbiBlYXNpbHlcbiAqIHF1ZXJ5ICh0aGUgb3JkZXJlZCBhcnJheXMgaW4gdGhlIGB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZFxuICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fcGFyc2VNYXBwaW5ncyA9XG4gIGZ1bmN0aW9uIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzID0gW107XG4gICAgdGhpcy5fX29yaWdpbmFsTWFwcGluZ3MgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldO1xuICAgICAgdmFyIHNlY3Rpb25NYXBwaW5ncyA9IHNlY3Rpb24uY29uc3VtZXIuX2dlbmVyYXRlZE1hcHBpbmdzO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzZWN0aW9uTWFwcGluZ3MubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgdmFyIG1hcHBpbmcgPSBzZWN0aW9uTWFwcGluZ3Nbal07XG5cbiAgICAgICAgdmFyIHNvdXJjZSA9IHNlY3Rpb24uY29uc3VtZXIuX3NvdXJjZXMuYXQobWFwcGluZy5zb3VyY2UpO1xuICAgICAgICBzb3VyY2UgPSB1dGlsLmNvbXB1dGVTb3VyY2VVUkwoc2VjdGlvbi5jb25zdW1lci5zb3VyY2VSb290LCBzb3VyY2UsIHRoaXMuX3NvdXJjZU1hcFVSTCk7XG4gICAgICAgIHRoaXMuX3NvdXJjZXMuYWRkKHNvdXJjZSk7XG4gICAgICAgIHNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuaW5kZXhPZihzb3VyY2UpO1xuXG4gICAgICAgIHZhciBuYW1lID0gbnVsbDtcbiAgICAgICAgaWYgKG1hcHBpbmcubmFtZSkge1xuICAgICAgICAgIG5hbWUgPSBzZWN0aW9uLmNvbnN1bWVyLl9uYW1lcy5hdChtYXBwaW5nLm5hbWUpO1xuICAgICAgICAgIHRoaXMuX25hbWVzLmFkZChuYW1lKTtcbiAgICAgICAgICBuYW1lID0gdGhpcy5fbmFtZXMuaW5kZXhPZihuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBtYXBwaW5ncyBjb21pbmcgZnJvbSB0aGUgY29uc3VtZXIgZm9yIHRoZSBzZWN0aW9uIGhhdmVcbiAgICAgICAgLy8gZ2VuZXJhdGVkIHBvc2l0aW9ucyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIHNlY3Rpb24sIHNvIHdlXG4gICAgICAgIC8vIG5lZWQgdG8gb2Zmc2V0IHRoZW0gdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjb25jYXRlbmF0ZWRcbiAgICAgICAgLy8gZ2VuZXJhdGVkIGZpbGUuXG4gICAgICAgIHZhciBhZGp1c3RlZE1hcHBpbmcgPSB7XG4gICAgICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICAgICAgZ2VuZXJhdGVkTGluZTogbWFwcGluZy5nZW5lcmF0ZWRMaW5lICtcbiAgICAgICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lIC0gMSksXG4gICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uOiBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiArXG4gICAgICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSA9PT0gbWFwcGluZy5nZW5lcmF0ZWRMaW5lXG4gICAgICAgICAgICA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDFcbiAgICAgICAgICAgIDogMCksXG4gICAgICAgICAgb3JpZ2luYWxMaW5lOiBtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICBvcmlnaW5hbENvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbixcbiAgICAgICAgICBuYW1lOiBuYW1lXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTtcbiAgICAgICAgaWYgKHR5cGVvZiBhZGp1c3RlZE1hcHBpbmcub3JpZ2luYWxMaW5lID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHF1aWNrU29ydCh0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MsIHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQpO1xuICAgIHF1aWNrU29ydCh0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncywgdXRpbC5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyk7XG4gIH07XG5cbmV4cG9ydHMuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyID0gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvc291cmNlLW1hcC1jb25zdW1lci5qc1xuLy8gbW9kdWxlIGlkID0gN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbmV4cG9ydHMuR1JFQVRFU1RfTE9XRVJfQk9VTkQgPSAxO1xuZXhwb3J0cy5MRUFTVF9VUFBFUl9CT1VORCA9IDI7XG5cbi8qKlxuICogUmVjdXJzaXZlIGltcGxlbWVudGF0aW9uIG9mIGJpbmFyeSBzZWFyY2guXG4gKlxuICogQHBhcmFtIGFMb3cgSW5kaWNlcyBoZXJlIGFuZCBsb3dlciBkbyBub3QgY29udGFpbiB0aGUgbmVlZGxlLlxuICogQHBhcmFtIGFIaWdoIEluZGljZXMgaGVyZSBhbmQgaGlnaGVyIGRvIG5vdCBjb250YWluIHRoZSBuZWVkbGUuXG4gKiBAcGFyYW0gYU5lZWRsZSBUaGUgZWxlbWVudCBiZWluZyBzZWFyY2hlZCBmb3IuXG4gKiBAcGFyYW0gYUhheXN0YWNrIFRoZSBub24tZW1wdHkgYXJyYXkgYmVpbmcgc2VhcmNoZWQuXG4gKiBAcGFyYW0gYUNvbXBhcmUgRnVuY3Rpb24gd2hpY2ggdGFrZXMgdHdvIGVsZW1lbnRzIGFuZCByZXR1cm5zIC0xLCAwLCBvciAxLlxuICogQHBhcmFtIGFCaWFzIEVpdGhlciAnYmluYXJ5U2VhcmNoLkdSRUFURVNUX0xPV0VSX0JPVU5EJyBvclxuICogICAgICdiaW5hcnlTZWFyY2guTEVBU1RfVVBQRVJfQk9VTkQnLiBTcGVjaWZpZXMgd2hldGhlciB0byByZXR1cm4gdGhlXG4gKiAgICAgY2xvc2VzdCBlbGVtZW50IHRoYXQgaXMgc21hbGxlciB0aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgb25lIHdlIGFyZVxuICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLlxuICovXG5mdW5jdGlvbiByZWN1cnNpdmVTZWFyY2goYUxvdywgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKSB7XG4gIC8vIFRoaXMgZnVuY3Rpb24gdGVybWluYXRlcyB3aGVuIG9uZSBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWU6XG4gIC8vXG4gIC8vICAgMS4gV2UgZmluZCB0aGUgZXhhY3QgZWxlbWVudCB3ZSBhcmUgbG9va2luZyBmb3IuXG4gIC8vXG4gIC8vICAgMi4gV2UgZGlkIG5vdCBmaW5kIHRoZSBleGFjdCBlbGVtZW50LCBidXQgd2UgY2FuIHJldHVybiB0aGUgaW5kZXggb2ZcbiAgLy8gICAgICB0aGUgbmV4dC1jbG9zZXN0IGVsZW1lbnQuXG4gIC8vXG4gIC8vICAgMy4gV2UgZGlkIG5vdCBmaW5kIHRoZSBleGFjdCBlbGVtZW50LCBhbmQgdGhlcmUgaXMgbm8gbmV4dC1jbG9zZXN0XG4gIC8vICAgICAgZWxlbWVudCB0aGFuIHRoZSBvbmUgd2UgYXJlIHNlYXJjaGluZyBmb3IsIHNvIHdlIHJldHVybiAtMS5cbiAgdmFyIG1pZCA9IE1hdGguZmxvb3IoKGFIaWdoIC0gYUxvdykgLyAyKSArIGFMb3c7XG4gIHZhciBjbXAgPSBhQ29tcGFyZShhTmVlZGxlLCBhSGF5c3RhY2tbbWlkXSwgdHJ1ZSk7XG4gIGlmIChjbXAgPT09IDApIHtcbiAgICAvLyBGb3VuZCB0aGUgZWxlbWVudCB3ZSBhcmUgbG9va2luZyBmb3IuXG4gICAgcmV0dXJuIG1pZDtcbiAgfVxuICBlbHNlIGlmIChjbXAgPiAwKSB7XG4gICAgLy8gT3VyIG5lZWRsZSBpcyBncmVhdGVyIHRoYW4gYUhheXN0YWNrW21pZF0uXG4gICAgaWYgKGFIaWdoIC0gbWlkID4gMSkge1xuICAgICAgLy8gVGhlIGVsZW1lbnQgaXMgaW4gdGhlIHVwcGVyIGhhbGYuXG4gICAgICByZXR1cm4gcmVjdXJzaXZlU2VhcmNoKG1pZCwgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgZXhhY3QgbmVlZGxlIGVsZW1lbnQgd2FzIG5vdCBmb3VuZCBpbiB0aGlzIGhheXN0YWNrLiBEZXRlcm1pbmUgaWZcbiAgICAvLyB3ZSBhcmUgaW4gdGVybWluYXRpb24gY2FzZSAoMykgb3IgKDIpIGFuZCByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHRoaW5nLlxuICAgIGlmIChhQmlhcyA9PSBleHBvcnRzLkxFQVNUX1VQUEVSX0JPVU5EKSB7XG4gICAgICByZXR1cm4gYUhpZ2ggPCBhSGF5c3RhY2subGVuZ3RoID8gYUhpZ2ggOiAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1pZDtcbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgLy8gT3VyIG5lZWRsZSBpcyBsZXNzIHRoYW4gYUhheXN0YWNrW21pZF0uXG4gICAgaWYgKG1pZCAtIGFMb3cgPiAxKSB7XG4gICAgICAvLyBUaGUgZWxlbWVudCBpcyBpbiB0aGUgbG93ZXIgaGFsZi5cbiAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2goYUxvdywgbWlkLCBhTmVlZGxlLCBhSGF5c3RhY2ssIGFDb21wYXJlLCBhQmlhcyk7XG4gICAgfVxuXG4gICAgLy8gd2UgYXJlIGluIHRlcm1pbmF0aW9uIGNhc2UgKDMpIG9yICgyKSBhbmQgcmV0dXJuIHRoZSBhcHByb3ByaWF0ZSB0aGluZy5cbiAgICBpZiAoYUJpYXMgPT0gZXhwb3J0cy5MRUFTVF9VUFBFUl9CT1VORCkge1xuICAgICAgcmV0dXJuIG1pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGFMb3cgPCAwID8gLTEgOiBhTG93O1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYmluYXJ5IHNlYXJjaCB3aGljaCB3aWxsIGFsd2F5cyB0cnkgYW5kIHJldHVyblxuICogdGhlIGluZGV4IG9mIHRoZSBjbG9zZXN0IGVsZW1lbnQgaWYgdGhlcmUgaXMgbm8gZXhhY3QgaGl0LiBUaGlzIGlzIGJlY2F1c2VcbiAqIG1hcHBpbmdzIGJldHdlZW4gb3JpZ2luYWwgYW5kIGdlbmVyYXRlZCBsaW5lL2NvbCBwYWlycyBhcmUgc2luZ2xlIHBvaW50cyxcbiAqIGFuZCB0aGVyZSBpcyBhbiBpbXBsaWNpdCByZWdpb24gYmV0d2VlbiBlYWNoIG9mIHRoZW0sIHNvIGEgbWlzcyBqdXN0IG1lYW5zXG4gKiB0aGF0IHlvdSBhcmVuJ3Qgb24gdGhlIHZlcnkgc3RhcnQgb2YgYSByZWdpb24uXG4gKlxuICogQHBhcmFtIGFOZWVkbGUgVGhlIGVsZW1lbnQgeW91IGFyZSBsb29raW5nIGZvci5cbiAqIEBwYXJhbSBhSGF5c3RhY2sgVGhlIGFycmF5IHRoYXQgaXMgYmVpbmcgc2VhcmNoZWQuXG4gKiBAcGFyYW0gYUNvbXBhcmUgQSBmdW5jdGlvbiB3aGljaCB0YWtlcyB0aGUgbmVlZGxlIGFuZCBhbiBlbGVtZW50IGluIHRoZVxuICogICAgIGFycmF5IGFuZCByZXR1cm5zIC0xLCAwLCBvciAxIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBuZWVkbGUgaXMgbGVzc1xuICogICAgIHRoYW4sIGVxdWFsIHRvLCBvciBncmVhdGVyIHRoYW4gdGhlIGVsZW1lbnQsIHJlc3BlY3RpdmVseS5cbiAqIEBwYXJhbSBhQmlhcyBFaXRoZXIgJ2JpbmFyeVNlYXJjaC5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3JcbiAqICAgICAnYmluYXJ5U2VhcmNoLkxFQVNUX1VQUEVSX0JPVU5EJy4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmV0dXJuIHRoZVxuICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmVcbiAqICAgICBzZWFyY2hpbmcgZm9yLCByZXNwZWN0aXZlbHksIGlmIHRoZSBleGFjdCBlbGVtZW50IGNhbm5vdCBiZSBmb3VuZC5cbiAqICAgICBEZWZhdWx0cyB0byAnYmluYXJ5U2VhcmNoLkdSRUFURVNUX0xPV0VSX0JPVU5EJy5cbiAqL1xuZXhwb3J0cy5zZWFyY2ggPSBmdW5jdGlvbiBzZWFyY2goYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpIHtcbiAgaWYgKGFIYXlzdGFjay5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICB2YXIgaW5kZXggPSByZWN1cnNpdmVTZWFyY2goLTEsIGFIYXlzdGFjay5sZW5ndGgsIGFOZWVkbGUsIGFIYXlzdGFjayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFDb21wYXJlLCBhQmlhcyB8fCBleHBvcnRzLkdSRUFURVNUX0xPV0VSX0JPVU5EKTtcbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8vIFdlIGhhdmUgZm91bmQgZWl0aGVyIHRoZSBleGFjdCBlbGVtZW50LCBvciB0aGUgbmV4dC1jbG9zZXN0IGVsZW1lbnQgdGhhblxuICAvLyB0aGUgb25lIHdlIGFyZSBzZWFyY2hpbmcgZm9yLiBIb3dldmVyLCB0aGVyZSBtYXkgYmUgbW9yZSB0aGFuIG9uZSBzdWNoXG4gIC8vIGVsZW1lbnQuIE1ha2Ugc3VyZSB3ZSBhbHdheXMgcmV0dXJuIHRoZSBzbWFsbGVzdCBvZiB0aGVzZS5cbiAgd2hpbGUgKGluZGV4IC0gMSA+PSAwKSB7XG4gICAgaWYgKGFDb21wYXJlKGFIYXlzdGFja1tpbmRleF0sIGFIYXlzdGFja1tpbmRleCAtIDFdLCB0cnVlKSAhPT0gMCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIC0taW5kZXg7XG4gIH1cblxuICByZXR1cm4gaW5kZXg7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvYmluYXJ5LXNlYXJjaC5qc1xuLy8gbW9kdWxlIGlkID0gOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbi8vIEl0IHR1cm5zIG91dCB0aGF0IHNvbWUgKG1vc3Q/KSBKYXZhU2NyaXB0IGVuZ2luZXMgZG9uJ3Qgc2VsZi1ob3N0XG4vLyBgQXJyYXkucHJvdG90eXBlLnNvcnRgLiBUaGlzIG1ha2VzIHNlbnNlIGJlY2F1c2UgQysrIHdpbGwgbGlrZWx5IHJlbWFpblxuLy8gZmFzdGVyIHRoYW4gSlMgd2hlbiBkb2luZyByYXcgQ1BVLWludGVuc2l2ZSBzb3J0aW5nLiBIb3dldmVyLCB3aGVuIHVzaW5nIGFcbi8vIGN1c3RvbSBjb21wYXJhdG9yIGZ1bmN0aW9uLCBjYWxsaW5nIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gdGhlIFZNJ3MgQysrIGFuZFxuLy8gSklUJ2QgSlMgaXMgcmF0aGVyIHNsb3cgKmFuZCogbG9zZXMgSklUIHR5cGUgaW5mb3JtYXRpb24sIHJlc3VsdGluZyBpblxuLy8gd29yc2UgZ2VuZXJhdGVkIGNvZGUgZm9yIHRoZSBjb21wYXJhdG9yIGZ1bmN0aW9uIHRoYW4gd291bGQgYmUgb3B0aW1hbC4gSW5cbi8vIGZhY3QsIHdoZW4gc29ydGluZyB3aXRoIGEgY29tcGFyYXRvciwgdGhlc2UgY29zdHMgb3V0d2VpZ2ggdGhlIGJlbmVmaXRzIG9mXG4vLyBzb3J0aW5nIGluIEMrKy4gQnkgdXNpbmcgb3VyIG93biBKUy1pbXBsZW1lbnRlZCBRdWljayBTb3J0IChiZWxvdyksIHdlIGdldFxuLy8gYSB+MzUwMG1zIG1lYW4gc3BlZWQtdXAgaW4gYGJlbmNoL2JlbmNoLmh0bWxgLlxuXG4vKipcbiAqIFN3YXAgdGhlIGVsZW1lbnRzIGluZGV4ZWQgYnkgYHhgIGFuZCBgeWAgaW4gdGhlIGFycmF5IGBhcnlgLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyeVxuICogICAgICAgIFRoZSBhcnJheS5cbiAqIEBwYXJhbSB7TnVtYmVyfSB4XG4gKiAgICAgICAgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBpdGVtLlxuICogQHBhcmFtIHtOdW1iZXJ9IHlcbiAqICAgICAgICBUaGUgaW5kZXggb2YgdGhlIHNlY29uZCBpdGVtLlxuICovXG5mdW5jdGlvbiBzd2FwKGFyeSwgeCwgeSkge1xuICB2YXIgdGVtcCA9IGFyeVt4XTtcbiAgYXJ5W3hdID0gYXJ5W3ldO1xuICBhcnlbeV0gPSB0ZW1wO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByYW5kb20gaW50ZWdlciB3aXRoaW4gdGhlIHJhbmdlIGBsb3cgLi4gaGlnaGAgaW5jbHVzaXZlLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBsb3dcbiAqICAgICAgICBUaGUgbG93ZXIgYm91bmQgb24gdGhlIHJhbmdlLlxuICogQHBhcmFtIHtOdW1iZXJ9IGhpZ2hcbiAqICAgICAgICBUaGUgdXBwZXIgYm91bmQgb24gdGhlIHJhbmdlLlxuICovXG5mdW5jdGlvbiByYW5kb21JbnRJblJhbmdlKGxvdywgaGlnaCkge1xuICByZXR1cm4gTWF0aC5yb3VuZChsb3cgKyAoTWF0aC5yYW5kb20oKSAqIChoaWdoIC0gbG93KSkpO1xufVxuXG4vKipcbiAqIFRoZSBRdWljayBTb3J0IGFsZ29yaXRobS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBhcnlcbiAqICAgICAgICBBbiBhcnJheSB0byBzb3J0LlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY29tcGFyYXRvclxuICogICAgICAgIEZ1bmN0aW9uIHRvIHVzZSB0byBjb21wYXJlIHR3byBpdGVtcy5cbiAqIEBwYXJhbSB7TnVtYmVyfSBwXG4gKiAgICAgICAgU3RhcnQgaW5kZXggb2YgdGhlIGFycmF5XG4gKiBAcGFyYW0ge051bWJlcn0gclxuICogICAgICAgIEVuZCBpbmRleCBvZiB0aGUgYXJyYXlcbiAqL1xuZnVuY3Rpb24gZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBwLCByKSB7XG4gIC8vIElmIG91ciBsb3dlciBib3VuZCBpcyBsZXNzIHRoYW4gb3VyIHVwcGVyIGJvdW5kLCB3ZSAoMSkgcGFydGl0aW9uIHRoZVxuICAvLyBhcnJheSBpbnRvIHR3byBwaWVjZXMgYW5kICgyKSByZWN1cnNlIG9uIGVhY2ggaGFsZi4gSWYgaXQgaXMgbm90LCB0aGlzIGlzXG4gIC8vIHRoZSBlbXB0eSBhcnJheSBhbmQgb3VyIGJhc2UgY2FzZS5cblxuICBpZiAocCA8IHIpIHtcbiAgICAvLyAoMSkgUGFydGl0aW9uaW5nLlxuICAgIC8vXG4gICAgLy8gVGhlIHBhcnRpdGlvbmluZyBjaG9vc2VzIGEgcGl2b3QgYmV0d2VlbiBgcGAgYW5kIGByYCBhbmQgbW92ZXMgYWxsXG4gICAgLy8gZWxlbWVudHMgdGhhdCBhcmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwaXZvdCB0byB0aGUgYmVmb3JlIGl0LCBhbmRcbiAgICAvLyBhbGwgdGhlIGVsZW1lbnRzIHRoYXQgYXJlIGdyZWF0ZXIgdGhhbiBpdCBhZnRlciBpdC4gVGhlIGVmZmVjdCBpcyB0aGF0XG4gICAgLy8gb25jZSBwYXJ0aXRpb24gaXMgZG9uZSwgdGhlIHBpdm90IGlzIGluIHRoZSBleGFjdCBwbGFjZSBpdCB3aWxsIGJlIHdoZW5cbiAgICAvLyB0aGUgYXJyYXkgaXMgcHV0IGluIHNvcnRlZCBvcmRlciwgYW5kIGl0IHdpbGwgbm90IG5lZWQgdG8gYmUgbW92ZWRcbiAgICAvLyBhZ2Fpbi4gVGhpcyBydW5zIGluIE8obikgdGltZS5cblxuICAgIC8vIEFsd2F5cyBjaG9vc2UgYSByYW5kb20gcGl2b3Qgc28gdGhhdCBhbiBpbnB1dCBhcnJheSB3aGljaCBpcyByZXZlcnNlXG4gICAgLy8gc29ydGVkIGRvZXMgbm90IGNhdXNlIE8obl4yKSBydW5uaW5nIHRpbWUuXG4gICAgdmFyIHBpdm90SW5kZXggPSByYW5kb21JbnRJblJhbmdlKHAsIHIpO1xuICAgIHZhciBpID0gcCAtIDE7XG5cbiAgICBzd2FwKGFyeSwgcGl2b3RJbmRleCwgcik7XG4gICAgdmFyIHBpdm90ID0gYXJ5W3JdO1xuXG4gICAgLy8gSW1tZWRpYXRlbHkgYWZ0ZXIgYGpgIGlzIGluY3JlbWVudGVkIGluIHRoaXMgbG9vcCwgdGhlIGZvbGxvd2luZyBob2xkXG4gICAgLy8gdHJ1ZTpcbiAgICAvL1xuICAgIC8vICAgKiBFdmVyeSBlbGVtZW50IGluIGBhcnlbcCAuLiBpXWAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwaXZvdC5cbiAgICAvL1xuICAgIC8vICAgKiBFdmVyeSBlbGVtZW50IGluIGBhcnlbaSsxIC4uIGotMV1gIGlzIGdyZWF0ZXIgdGhhbiB0aGUgcGl2b3QuXG4gICAgZm9yICh2YXIgaiA9IHA7IGogPCByOyBqKyspIHtcbiAgICAgIGlmIChjb21wYXJhdG9yKGFyeVtqXSwgcGl2b3QpIDw9IDApIHtcbiAgICAgICAgaSArPSAxO1xuICAgICAgICBzd2FwKGFyeSwgaSwgaik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dhcChhcnksIGkgKyAxLCBqKTtcbiAgICB2YXIgcSA9IGkgKyAxO1xuXG4gICAgLy8gKDIpIFJlY3Vyc2Ugb24gZWFjaCBoYWxmLlxuXG4gICAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBwLCBxIC0gMSk7XG4gICAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBxICsgMSwgcik7XG4gIH1cbn1cblxuLyoqXG4gKiBTb3J0IHRoZSBnaXZlbiBhcnJheSBpbi1wbGFjZSB3aXRoIHRoZSBnaXZlbiBjb21wYXJhdG9yIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyeVxuICogICAgICAgIEFuIGFycmF5IHRvIHNvcnQuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjb21wYXJhdG9yXG4gKiAgICAgICAgRnVuY3Rpb24gdG8gdXNlIHRvIGNvbXBhcmUgdHdvIGl0ZW1zLlxuICovXG5leHBvcnRzLnF1aWNrU29ydCA9IGZ1bmN0aW9uIChhcnksIGNvbXBhcmF0b3IpIHtcbiAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCAwLCBhcnkubGVuZ3RoIC0gMSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvcXVpY2stc29ydC5qc1xuLy8gbW9kdWxlIGlkID0gOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciBTb3VyY2VNYXBHZW5lcmF0b3IgPSByZXF1aXJlKCcuL3NvdXJjZS1tYXAtZ2VuZXJhdG9yJykuU291cmNlTWFwR2VuZXJhdG9yO1xudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcblxuLy8gTWF0Y2hlcyBhIFdpbmRvd3Mtc3R5bGUgYFxcclxcbmAgbmV3bGluZSBvciBhIGBcXG5gIG5ld2xpbmUgdXNlZCBieSBhbGwgb3RoZXJcbi8vIG9wZXJhdGluZyBzeXN0ZW1zIHRoZXNlIGRheXMgKGNhcHR1cmluZyB0aGUgcmVzdWx0KS5cbnZhciBSRUdFWF9ORVdMSU5FID0gLyhcXHI/XFxuKS87XG5cbi8vIE5ld2xpbmUgY2hhcmFjdGVyIGNvZGUgZm9yIGNoYXJDb2RlQXQoKSBjb21wYXJpc29uc1xudmFyIE5FV0xJTkVfQ09ERSA9IDEwO1xuXG4vLyBQcml2YXRlIHN5bWJvbCBmb3IgaWRlbnRpZnlpbmcgYFNvdXJjZU5vZGVgcyB3aGVuIG11bHRpcGxlIHZlcnNpb25zIG9mXG4vLyB0aGUgc291cmNlLW1hcCBsaWJyYXJ5IGFyZSBsb2FkZWQuIFRoaXMgTVVTVCBOT1QgQ0hBTkdFIGFjcm9zc1xuLy8gdmVyc2lvbnMhXG52YXIgaXNTb3VyY2VOb2RlID0gXCIkJCRpc1NvdXJjZU5vZGUkJCRcIjtcblxuLyoqXG4gKiBTb3VyY2VOb2RlcyBwcm92aWRlIGEgd2F5IHRvIGFic3RyYWN0IG92ZXIgaW50ZXJwb2xhdGluZy9jb25jYXRlbmF0aW5nXG4gKiBzbmlwcGV0cyBvZiBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBzb3VyY2UgY29kZSB3aGlsZSBtYWludGFpbmluZyB0aGUgbGluZSBhbmRcbiAqIGNvbHVtbiBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlLlxuICpcbiAqIEBwYXJhbSBhTGluZSBUaGUgb3JpZ2luYWwgbGluZSBudW1iZXIuXG4gKiBAcGFyYW0gYUNvbHVtbiBUaGUgb3JpZ2luYWwgY29sdW1uIG51bWJlci5cbiAqIEBwYXJhbSBhU291cmNlIFRoZSBvcmlnaW5hbCBzb3VyY2UncyBmaWxlbmFtZS5cbiAqIEBwYXJhbSBhQ2h1bmtzIE9wdGlvbmFsLiBBbiBhcnJheSBvZiBzdHJpbmdzIHdoaWNoIGFyZSBzbmlwcGV0cyBvZlxuICogICAgICAgIGdlbmVyYXRlZCBKUywgb3Igb3RoZXIgU291cmNlTm9kZXMuXG4gKiBAcGFyYW0gYU5hbWUgVGhlIG9yaWdpbmFsIGlkZW50aWZpZXIuXG4gKi9cbmZ1bmN0aW9uIFNvdXJjZU5vZGUoYUxpbmUsIGFDb2x1bW4sIGFTb3VyY2UsIGFDaHVua3MsIGFOYW1lKSB7XG4gIHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgdGhpcy5zb3VyY2VDb250ZW50cyA9IHt9O1xuICB0aGlzLmxpbmUgPSBhTGluZSA9PSBudWxsID8gbnVsbCA6IGFMaW5lO1xuICB0aGlzLmNvbHVtbiA9IGFDb2x1bW4gPT0gbnVsbCA/IG51bGwgOiBhQ29sdW1uO1xuICB0aGlzLnNvdXJjZSA9IGFTb3VyY2UgPT0gbnVsbCA/IG51bGwgOiBhU291cmNlO1xuICB0aGlzLm5hbWUgPSBhTmFtZSA9PSBudWxsID8gbnVsbCA6IGFOYW1lO1xuICB0aGlzW2lzU291cmNlTm9kZV0gPSB0cnVlO1xuICBpZiAoYUNodW5rcyAhPSBudWxsKSB0aGlzLmFkZChhQ2h1bmtzKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgU291cmNlTm9kZSBmcm9tIGdlbmVyYXRlZCBjb2RlIGFuZCBhIFNvdXJjZU1hcENvbnN1bWVyLlxuICpcbiAqIEBwYXJhbSBhR2VuZXJhdGVkQ29kZSBUaGUgZ2VuZXJhdGVkIGNvZGVcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcCBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlXG4gKiBAcGFyYW0gYVJlbGF0aXZlUGF0aCBPcHRpb25hbC4gVGhlIHBhdGggdGhhdCByZWxhdGl2ZSBzb3VyY2VzIGluIHRoZVxuICogICAgICAgIFNvdXJjZU1hcENvbnN1bWVyIHNob3VsZCBiZSByZWxhdGl2ZSB0by5cbiAqL1xuU291cmNlTm9kZS5mcm9tU3RyaW5nV2l0aFNvdXJjZU1hcCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU5vZGVfZnJvbVN0cmluZ1dpdGhTb3VyY2VNYXAoYUdlbmVyYXRlZENvZGUsIGFTb3VyY2VNYXBDb25zdW1lciwgYVJlbGF0aXZlUGF0aCkge1xuICAgIC8vIFRoZSBTb3VyY2VOb2RlIHdlIHdhbnQgdG8gZmlsbCB3aXRoIHRoZSBnZW5lcmF0ZWQgY29kZVxuICAgIC8vIGFuZCB0aGUgU291cmNlTWFwXG4gICAgdmFyIG5vZGUgPSBuZXcgU291cmNlTm9kZSgpO1xuXG4gICAgLy8gQWxsIGV2ZW4gaW5kaWNlcyBvZiB0aGlzIGFycmF5IGFyZSBvbmUgbGluZSBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUsXG4gICAgLy8gd2hpbGUgYWxsIG9kZCBpbmRpY2VzIGFyZSB0aGUgbmV3bGluZXMgYmV0d2VlbiB0d28gYWRqYWNlbnQgbGluZXNcbiAgICAvLyAoc2luY2UgYFJFR0VYX05FV0xJTkVgIGNhcHR1cmVzIGl0cyBtYXRjaCkuXG4gICAgLy8gUHJvY2Vzc2VkIGZyYWdtZW50cyBhcmUgYWNjZXNzZWQgYnkgY2FsbGluZyBgc2hpZnROZXh0TGluZWAuXG4gICAgdmFyIHJlbWFpbmluZ0xpbmVzID0gYUdlbmVyYXRlZENvZGUuc3BsaXQoUkVHRVhfTkVXTElORSk7XG4gICAgdmFyIHJlbWFpbmluZ0xpbmVzSW5kZXggPSAwO1xuICAgIHZhciBzaGlmdE5leHRMaW5lID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgbGluZUNvbnRlbnRzID0gZ2V0TmV4dExpbmUoKTtcbiAgICAgIC8vIFRoZSBsYXN0IGxpbmUgb2YgYSBmaWxlIG1pZ2h0IG5vdCBoYXZlIGEgbmV3bGluZS5cbiAgICAgIHZhciBuZXdMaW5lID0gZ2V0TmV4dExpbmUoKSB8fCBcIlwiO1xuICAgICAgcmV0dXJuIGxpbmVDb250ZW50cyArIG5ld0xpbmU7XG5cbiAgICAgIGZ1bmN0aW9uIGdldE5leHRMaW5lKCkge1xuICAgICAgICByZXR1cm4gcmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCA/XG4gICAgICAgICAgICByZW1haW5pbmdMaW5lc1tyZW1haW5pbmdMaW5lc0luZGV4KytdIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBXZSBuZWVkIHRvIHJlbWVtYmVyIHRoZSBwb3NpdGlvbiBvZiBcInJlbWFpbmluZ0xpbmVzXCJcbiAgICB2YXIgbGFzdEdlbmVyYXRlZExpbmUgPSAxLCBsYXN0R2VuZXJhdGVkQ29sdW1uID0gMDtcblxuICAgIC8vIFRoZSBnZW5lcmF0ZSBTb3VyY2VOb2RlcyB3ZSBuZWVkIGEgY29kZSByYW5nZS5cbiAgICAvLyBUbyBleHRyYWN0IGl0IGN1cnJlbnQgYW5kIGxhc3QgbWFwcGluZyBpcyB1c2VkLlxuICAgIC8vIEhlcmUgd2Ugc3RvcmUgdGhlIGxhc3QgbWFwcGluZy5cbiAgICB2YXIgbGFzdE1hcHBpbmcgPSBudWxsO1xuXG4gICAgYVNvdXJjZU1hcENvbnN1bWVyLmVhY2hNYXBwaW5nKGZ1bmN0aW9uIChtYXBwaW5nKSB7XG4gICAgICBpZiAobGFzdE1hcHBpbmcgIT09IG51bGwpIHtcbiAgICAgICAgLy8gV2UgYWRkIHRoZSBjb2RlIGZyb20gXCJsYXN0TWFwcGluZ1wiIHRvIFwibWFwcGluZ1wiOlxuICAgICAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGVyZSBpcyBhIG5ldyBsaW5lIGluIGJldHdlZW4uXG4gICAgICAgIGlmIChsYXN0R2VuZXJhdGVkTGluZSA8IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSkge1xuICAgICAgICAgIC8vIEFzc29jaWF0ZSBmaXJzdCBsaW5lIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgICAgYWRkTWFwcGluZ1dpdGhDb2RlKGxhc3RNYXBwaW5nLCBzaGlmdE5leHRMaW5lKCkpO1xuICAgICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7XG4gICAgICAgICAgbGFzdEdlbmVyYXRlZENvbHVtbiA9IDA7XG4gICAgICAgICAgLy8gVGhlIHJlbWFpbmluZyBjb2RlIGlzIGFkZGVkIHdpdGhvdXQgbWFwcGluZ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIG5ldyBsaW5lIGluIGJldHdlZW4uXG4gICAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBjb2RlIGJldHdlZW4gXCJsYXN0R2VuZXJhdGVkQ29sdW1uXCIgYW5kXG4gICAgICAgICAgLy8gXCJtYXBwaW5nLmdlbmVyYXRlZENvbHVtblwiIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgICAgdmFyIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gfHwgJyc7XG4gICAgICAgICAgdmFyIGNvZGUgPSBuZXh0TGluZS5zdWJzdHIoMCwgbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4pO1xuICAgICAgICAgIHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdID0gbmV4dExpbmUuc3Vic3RyKG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uKTtcbiAgICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uID0gbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW47XG4gICAgICAgICAgYWRkTWFwcGluZ1dpdGhDb2RlKGxhc3RNYXBwaW5nLCBjb2RlKTtcbiAgICAgICAgICAvLyBObyBtb3JlIHJlbWFpbmluZyBjb2RlLCBjb250aW51ZVxuICAgICAgICAgIGxhc3RNYXBwaW5nID0gbWFwcGluZztcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIFdlIGFkZCB0aGUgZ2VuZXJhdGVkIGNvZGUgdW50aWwgdGhlIGZpcnN0IG1hcHBpbmdcbiAgICAgIC8vIHRvIHRoZSBTb3VyY2VOb2RlIHdpdGhvdXQgYW55IG1hcHBpbmcuXG4gICAgICAvLyBFYWNoIGxpbmUgaXMgYWRkZWQgYXMgc2VwYXJhdGUgc3RyaW5nLlxuICAgICAgd2hpbGUgKGxhc3RHZW5lcmF0ZWRMaW5lIDwgbWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgIG5vZGUuYWRkKHNoaWZ0TmV4dExpbmUoKSk7XG4gICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7XG4gICAgICB9XG4gICAgICBpZiAobGFzdEdlbmVyYXRlZENvbHVtbiA8IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uKSB7XG4gICAgICAgIHZhciBuZXh0TGluZSA9IHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdIHx8ICcnO1xuICAgICAgICBub2RlLmFkZChuZXh0TGluZS5zdWJzdHIoMCwgbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4pKTtcbiAgICAgICAgcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gPSBuZXh0TGluZS5zdWJzdHIobWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4pO1xuICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uID0gbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW47XG4gICAgICB9XG4gICAgICBsYXN0TWFwcGluZyA9IG1hcHBpbmc7XG4gICAgfSwgdGhpcyk7XG4gICAgLy8gV2UgaGF2ZSBwcm9jZXNzZWQgYWxsIG1hcHBpbmdzLlxuICAgIGlmIChyZW1haW5pbmdMaW5lc0luZGV4IDwgcmVtYWluaW5nTGluZXMubGVuZ3RoKSB7XG4gICAgICBpZiAobGFzdE1hcHBpbmcpIHtcbiAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSByZW1haW5pbmcgY29kZSBpbiB0aGUgY3VycmVudCBsaW5lIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTtcbiAgICAgIH1cbiAgICAgIC8vIGFuZCBhZGQgdGhlIHJlbWFpbmluZyBsaW5lcyB3aXRob3V0IGFueSBtYXBwaW5nXG4gICAgICBub2RlLmFkZChyZW1haW5pbmdMaW5lcy5zcGxpY2UocmVtYWluaW5nTGluZXNJbmRleCkuam9pbihcIlwiKSk7XG4gICAgfVxuXG4gICAgLy8gQ29weSBzb3VyY2VzQ29udGVudCBpbnRvIFNvdXJjZU5vZGVcbiAgICBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlcy5mb3JFYWNoKGZ1bmN0aW9uIChzb3VyY2VGaWxlKSB7XG4gICAgICB2YXIgY29udGVudCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VDb250ZW50Rm9yKHNvdXJjZUZpbGUpO1xuICAgICAgaWYgKGNvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgICBpZiAoYVJlbGF0aXZlUGF0aCAhPSBudWxsKSB7XG4gICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBzb3VyY2VGaWxlKTtcbiAgICAgICAgfVxuICAgICAgICBub2RlLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbm9kZTtcblxuICAgIGZ1bmN0aW9uIGFkZE1hcHBpbmdXaXRoQ29kZShtYXBwaW5nLCBjb2RlKSB7XG4gICAgICBpZiAobWFwcGluZyA9PT0gbnVsbCB8fCBtYXBwaW5nLnNvdXJjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG5vZGUuYWRkKGNvZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFSZWxhdGl2ZVBhdGhcbiAgICAgICAgICA/IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBtYXBwaW5nLnNvdXJjZSlcbiAgICAgICAgICA6IG1hcHBpbmcuc291cmNlO1xuICAgICAgICBub2RlLmFkZChuZXcgU291cmNlTm9kZShtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbi8qKlxuICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoaXMgc291cmNlIG5vZGUuXG4gKlxuICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mXG4gKiAgICAgICAgU291cmNlTm9kZSwgb3IgYW4gYXJyYXkgd2hlcmUgZWFjaCBtZW1iZXIgaXMgb25lIG9mIHRob3NlIHRoaW5ncy5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gU291cmNlTm9kZV9hZGQoYUNodW5rKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFDaHVuaykpIHtcbiAgICBhQ2h1bmsuZm9yRWFjaChmdW5jdGlvbiAoY2h1bmspIHtcbiAgICAgIHRoaXMuYWRkKGNodW5rKTtcbiAgICB9LCB0aGlzKTtcbiAgfVxuICBlbHNlIGlmIChhQ2h1bmtbaXNTb3VyY2VOb2RlXSB8fCB0eXBlb2YgYUNodW5rID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKGFDaHVuaykge1xuICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGFDaHVuayk7XG4gICAgfVxuICB9XG4gIGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICBcIkV4cGVjdGVkIGEgU291cmNlTm9kZSwgc3RyaW5nLCBvciBhbiBhcnJheSBvZiBTb3VyY2VOb2RlcyBhbmQgc3RyaW5ncy4gR290IFwiICsgYUNodW5rXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBzb3VyY2Ugbm9kZS5cbiAqXG4gKiBAcGFyYW0gYUNodW5rIEEgc3RyaW5nIHNuaXBwZXQgb2YgZ2VuZXJhdGVkIEpTIGNvZGUsIGFub3RoZXIgaW5zdGFuY2Ugb2ZcbiAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLlxuICovXG5Tb3VyY2VOb2RlLnByb3RvdHlwZS5wcmVwZW5kID0gZnVuY3Rpb24gU291cmNlTm9kZV9wcmVwZW5kKGFDaHVuaykge1xuICBpZiAoQXJyYXkuaXNBcnJheShhQ2h1bmspKSB7XG4gICAgZm9yICh2YXIgaSA9IGFDaHVuay5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHRoaXMucHJlcGVuZChhQ2h1bmtbaV0pO1xuICAgIH1cbiAgfVxuICBlbHNlIGlmIChhQ2h1bmtbaXNTb3VyY2VOb2RlXSB8fCB0eXBlb2YgYUNodW5rID09PSBcInN0cmluZ1wiKSB7XG4gICAgdGhpcy5jaGlsZHJlbi51bnNoaWZ0KGFDaHVuayk7XG4gIH1cbiAgZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgIFwiRXhwZWN0ZWQgYSBTb3VyY2VOb2RlLCBzdHJpbmcsIG9yIGFuIGFycmF5IG9mIFNvdXJjZU5vZGVzIGFuZCBzdHJpbmdzLiBHb3QgXCIgKyBhQ2h1bmtcbiAgICApO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBXYWxrIG92ZXIgdGhlIHRyZWUgb2YgSlMgc25pcHBldHMgaW4gdGhpcyBub2RlIGFuZCBpdHMgY2hpbGRyZW4uIFRoZVxuICogd2Fsa2luZyBmdW5jdGlvbiBpcyBjYWxsZWQgb25jZSBmb3IgZWFjaCBzbmlwcGV0IG9mIEpTIGFuZCBpcyBwYXNzZWQgdGhhdFxuICogc25pcHBldCBhbmQgdGhlIGl0cyBvcmlnaW5hbCBhc3NvY2lhdGVkIHNvdXJjZSdzIGxpbmUvY29sdW1uIGxvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBhRm4gVGhlIHRyYXZlcnNhbCBmdW5jdGlvbi5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUud2FsayA9IGZ1bmN0aW9uIFNvdXJjZU5vZGVfd2FsayhhRm4pIHtcbiAgdmFyIGNodW5rO1xuICBmb3IgKHZhciBpID0gMCwgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNodW5rID0gdGhpcy5jaGlsZHJlbltpXTtcbiAgICBpZiAoY2h1bmtbaXNTb3VyY2VOb2RlXSkge1xuICAgICAgY2h1bmsud2FsayhhRm4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmIChjaHVuayAhPT0gJycpIHtcbiAgICAgICAgYUZuKGNodW5rLCB7IHNvdXJjZTogdGhpcy5zb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICBsaW5lOiB0aGlzLmxpbmUsXG4gICAgICAgICAgICAgICAgICAgICBjb2x1bW46IHRoaXMuY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBMaWtlIGBTdHJpbmcucHJvdG90eXBlLmpvaW5gIGV4Y2VwdCBmb3IgU291cmNlTm9kZXMuIEluc2VydHMgYGFTdHJgIGJldHdlZW5cbiAqIGVhY2ggb2YgYHRoaXMuY2hpbGRyZW5gLlxuICpcbiAqIEBwYXJhbSBhU2VwIFRoZSBzZXBhcmF0b3IuXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLmpvaW4gPSBmdW5jdGlvbiBTb3VyY2VOb2RlX2pvaW4oYVNlcCkge1xuICB2YXIgbmV3Q2hpbGRyZW47XG4gIHZhciBpO1xuICB2YXIgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gIGlmIChsZW4gPiAwKSB7XG4gICAgbmV3Q2hpbGRyZW4gPSBbXTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuLTE7IGkrKykge1xuICAgICAgbmV3Q2hpbGRyZW4ucHVzaCh0aGlzLmNoaWxkcmVuW2ldKTtcbiAgICAgIG5ld0NoaWxkcmVuLnB1c2goYVNlcCk7XG4gICAgfVxuICAgIG5ld0NoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlbltpXSk7XG4gICAgdGhpcy5jaGlsZHJlbiA9IG5ld0NoaWxkcmVuO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBDYWxsIFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSBvbiB0aGUgdmVyeSByaWdodC1tb3N0IHNvdXJjZSBzbmlwcGV0LiBVc2VmdWxcbiAqIGZvciB0cmltbWluZyB3aGl0ZXNwYWNlIGZyb20gdGhlIGVuZCBvZiBhIHNvdXJjZSBub2RlLCBldGMuXG4gKlxuICogQHBhcmFtIGFQYXR0ZXJuIFRoZSBwYXR0ZXJuIHRvIHJlcGxhY2UuXG4gKiBAcGFyYW0gYVJlcGxhY2VtZW50IFRoZSB0aGluZyB0byByZXBsYWNlIHRoZSBwYXR0ZXJuIHdpdGguXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLnJlcGxhY2VSaWdodCA9IGZ1bmN0aW9uIFNvdXJjZU5vZGVfcmVwbGFjZVJpZ2h0KGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpIHtcbiAgdmFyIGxhc3RDaGlsZCA9IHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXTtcbiAgaWYgKGxhc3RDaGlsZFtpc1NvdXJjZU5vZGVdKSB7XG4gICAgbGFzdENoaWxkLnJlcGxhY2VSaWdodChhUGF0dGVybiwgYVJlcGxhY2VtZW50KTtcbiAgfVxuICBlbHNlIGlmICh0eXBlb2YgbGFzdENoaWxkID09PSAnc3RyaW5nJykge1xuICAgIHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXSA9IGxhc3RDaGlsZC5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpO1xuICB9XG4gIGVsc2Uge1xuICAgIHRoaXMuY2hpbGRyZW4ucHVzaCgnJy5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IHRoZSBzb3VyY2UgY29udGVudCBmb3IgYSBzb3VyY2UgZmlsZS4gVGhpcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBTb3VyY2VNYXBHZW5lcmF0b3JcbiAqIGluIHRoZSBzb3VyY2VzQ29udGVudCBmaWVsZC5cbiAqXG4gKiBAcGFyYW0gYVNvdXJjZUZpbGUgVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZVxuICogQHBhcmFtIGFTb3VyY2VDb250ZW50IFRoZSBjb250ZW50IG9mIHRoZSBzb3VyY2UgZmlsZVxuICovXG5Tb3VyY2VOb2RlLnByb3RvdHlwZS5zZXRTb3VyY2VDb250ZW50ID1cbiAgZnVuY3Rpb24gU291cmNlTm9kZV9zZXRTb3VyY2VDb250ZW50KGFTb3VyY2VGaWxlLCBhU291cmNlQ29udGVudCkge1xuICAgIHRoaXMuc291cmNlQ29udGVudHNbdXRpbC50b1NldFN0cmluZyhhU291cmNlRmlsZSldID0gYVNvdXJjZUNvbnRlbnQ7XG4gIH07XG5cbi8qKlxuICogV2FsayBvdmVyIHRoZSB0cmVlIG9mIFNvdXJjZU5vZGVzLiBUaGUgd2Fsa2luZyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGVhY2hcbiAqIHNvdXJjZSBmaWxlIGNvbnRlbnQgYW5kIGlzIHBhc3NlZCB0aGUgZmlsZW5hbWUgYW5kIHNvdXJjZSBjb250ZW50LlxuICpcbiAqIEBwYXJhbSBhRm4gVGhlIHRyYXZlcnNhbCBmdW5jdGlvbi5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUud2Fsa1NvdXJjZUNvbnRlbnRzID1cbiAgZnVuY3Rpb24gU291cmNlTm9kZV93YWxrU291cmNlQ29udGVudHMoYUZuKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNoaWxkcmVuW2ldW2lzU291cmNlTm9kZV0pIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbltpXS53YWxrU291cmNlQ29udGVudHMoYUZuKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgc291cmNlcyA9IE9iamVjdC5rZXlzKHRoaXMuc291cmNlQ29udGVudHMpO1xuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzb3VyY2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBhRm4odXRpbC5mcm9tU2V0U3RyaW5nKHNvdXJjZXNbaV0pLCB0aGlzLnNvdXJjZUNvbnRlbnRzW3NvdXJjZXNbaV1dKTtcbiAgICB9XG4gIH07XG5cbi8qKlxuICogUmV0dXJuIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzb3VyY2Ugbm9kZS4gV2Fsa3Mgb3ZlciB0aGUgdHJlZVxuICogYW5kIGNvbmNhdGVuYXRlcyBhbGwgdGhlIHZhcmlvdXMgc25pcHBldHMgdG9nZXRoZXIgdG8gb25lIHN0cmluZy5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiBTb3VyY2VOb2RlX3RvU3RyaW5nKCkge1xuICB2YXIgc3RyID0gXCJcIjtcbiAgdGhpcy53YWxrKGZ1bmN0aW9uIChjaHVuaykge1xuICAgIHN0ciArPSBjaHVuaztcbiAgfSk7XG4gIHJldHVybiBzdHI7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNvdXJjZSBub2RlIGFsb25nIHdpdGggYSBzb3VyY2VcbiAqIG1hcC5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUudG9TdHJpbmdXaXRoU291cmNlTWFwID0gZnVuY3Rpb24gU291cmNlTm9kZV90b1N0cmluZ1dpdGhTb3VyY2VNYXAoYUFyZ3MpIHtcbiAgdmFyIGdlbmVyYXRlZCA9IHtcbiAgICBjb2RlOiBcIlwiLFxuICAgIGxpbmU6IDEsXG4gICAgY29sdW1uOiAwXG4gIH07XG4gIHZhciBtYXAgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKTtcbiAgdmFyIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTtcbiAgdmFyIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7XG4gIHZhciBsYXN0T3JpZ2luYWxMaW5lID0gbnVsbDtcbiAgdmFyIGxhc3RPcmlnaW5hbENvbHVtbiA9IG51bGw7XG4gIHZhciBsYXN0T3JpZ2luYWxOYW1lID0gbnVsbDtcbiAgdGhpcy53YWxrKGZ1bmN0aW9uIChjaHVuaywgb3JpZ2luYWwpIHtcbiAgICBnZW5lcmF0ZWQuY29kZSArPSBjaHVuaztcbiAgICBpZiAob3JpZ2luYWwuc291cmNlICE9PSBudWxsXG4gICAgICAgICYmIG9yaWdpbmFsLmxpbmUgIT09IG51bGxcbiAgICAgICAgJiYgb3JpZ2luYWwuY29sdW1uICE9PSBudWxsKSB7XG4gICAgICBpZihsYXN0T3JpZ2luYWxTb3VyY2UgIT09IG9yaWdpbmFsLnNvdXJjZVxuICAgICAgICAgfHwgbGFzdE9yaWdpbmFsTGluZSAhPT0gb3JpZ2luYWwubGluZVxuICAgICAgICAgfHwgbGFzdE9yaWdpbmFsQ29sdW1uICE9PSBvcmlnaW5hbC5jb2x1bW5cbiAgICAgICAgIHx8IGxhc3RPcmlnaW5hbE5hbWUgIT09IG9yaWdpbmFsLm5hbWUpIHtcbiAgICAgICAgbWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICAgIHNvdXJjZTogb3JpZ2luYWwuc291cmNlLFxuICAgICAgICAgIG9yaWdpbmFsOiB7XG4gICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLFxuICAgICAgICAgICAgY29sdW1uOiBvcmlnaW5hbC5jb2x1bW5cbiAgICAgICAgICB9LFxuICAgICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgICAgbGluZTogZ2VuZXJhdGVkLmxpbmUsXG4gICAgICAgICAgICBjb2x1bW46IGdlbmVyYXRlZC5jb2x1bW5cbiAgICAgICAgICB9LFxuICAgICAgICAgIG5hbWU6IG9yaWdpbmFsLm5hbWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBsYXN0T3JpZ2luYWxTb3VyY2UgPSBvcmlnaW5hbC5zb3VyY2U7XG4gICAgICBsYXN0T3JpZ2luYWxMaW5lID0gb3JpZ2luYWwubGluZTtcbiAgICAgIGxhc3RPcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjtcbiAgICAgIGxhc3RPcmlnaW5hbE5hbWUgPSBvcmlnaW5hbC5uYW1lO1xuICAgICAgc291cmNlTWFwcGluZ0FjdGl2ZSA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7XG4gICAgICBtYXAuYWRkTWFwcGluZyh7XG4gICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgIGxpbmU6IGdlbmVyYXRlZC5saW5lLFxuICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtblxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7XG4gICAgICBzb3VyY2VNYXBwaW5nQWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIGZvciAodmFyIGlkeCA9IDAsIGxlbmd0aCA9IGNodW5rLmxlbmd0aDsgaWR4IDwgbGVuZ3RoOyBpZHgrKykge1xuICAgICAgaWYgKGNodW5rLmNoYXJDb2RlQXQoaWR4KSA9PT0gTkVXTElORV9DT0RFKSB7XG4gICAgICAgIGdlbmVyYXRlZC5saW5lKys7XG4gICAgICAgIGdlbmVyYXRlZC5jb2x1bW4gPSAwO1xuICAgICAgICAvLyBNYXBwaW5ncyBlbmQgYXQgZW9sXG4gICAgICAgIGlmIChpZHggKyAxID09PSBsZW5ndGgpIHtcbiAgICAgICAgICBsYXN0T3JpZ2luYWxTb3VyY2UgPSBudWxsO1xuICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7XG4gICAgICAgICAgbWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICAgICAgc291cmNlOiBvcmlnaW5hbC5zb3VyY2UsXG4gICAgICAgICAgICBvcmlnaW5hbDoge1xuICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLFxuICAgICAgICAgICAgICBjb2x1bW46IG9yaWdpbmFsLmNvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSxcbiAgICAgICAgICAgICAgY29sdW1uOiBnZW5lcmF0ZWQuY29sdW1uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZTogb3JpZ2luYWwubmFtZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnZW5lcmF0ZWQuY29sdW1uKys7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgdGhpcy53YWxrU291cmNlQ29udGVudHMoZnVuY3Rpb24gKHNvdXJjZUZpbGUsIHNvdXJjZUNvbnRlbnQpIHtcbiAgICBtYXAuc2V0U291cmNlQ29udGVudChzb3VyY2VGaWxlLCBzb3VyY2VDb250ZW50KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgY29kZTogZ2VuZXJhdGVkLmNvZGUsIG1hcDogbWFwIH07XG59O1xuXG5leHBvcnRzLlNvdXJjZU5vZGUgPSBTb3VyY2VOb2RlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvc291cmNlLW5vZGUuanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/node_modules/source-map/dist/source-map.js b/node_modules/source-map/dist/source-map.js new file mode 100644 index 0000000..b4eb087 --- /dev/null +++ b/node_modules/source-map/dist/source-map.js @@ -0,0 +1,3233 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["sourceMap"] = factory(); + else + root["sourceMap"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + /* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ + exports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator; + exports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer; + exports.SourceNode = __webpack_require__(10).SourceNode; + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var base64VLQ = __webpack_require__(2); + var util = __webpack_require__(4); + var ArraySet = __webpack_require__(5).ArraySet; + var MappingList = __webpack_require__(6).MappingList; + + /** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ + function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; + } + + SourceMapGenerator.prototype._version = 3; + + /** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ + SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator({ + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + }); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + + /** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ + SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + + /** + * Set the source content for a source file. + */ + SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + + /** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ + SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source) + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + + /** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ + SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + throw new Error( + 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + ); + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + throw new Error('Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + })); + } + }; + + /** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ + SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = '' + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + + SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + + /** + * Externalize the source map. + */ + SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + + /** + * Render the source map being generated to a string. + */ + SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + + exports.SourceMapGenerator = SourceMapGenerator; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + var base64 = __webpack_require__(3); + + // A single base 64 digit can contain 6 bits of data. For the base 64 variable + // length quantities we use in the source map spec, the first bit is the sign, + // the next four bits are the actual value, and the 6th bit is the + // continuation bit. The continuation bit tells us whether there are more + // digits in this value following this digit. + // + // Continuation + // | Sign + // | | + // V V + // 101011 + + var VLQ_BASE_SHIFT = 5; + + // binary: 100000 + var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + + // binary: 011111 + var VLQ_BASE_MASK = VLQ_BASE - 1; + + // binary: 100000 + var VLQ_CONTINUATION_BIT = VLQ_BASE; + + /** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ + function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; + } + + /** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ + function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; + } + + /** + * Returns the base 64 VLQ encoded value. + */ + exports.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; + }; + + /** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ + exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; + }; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + + /** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ + exports.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); + }; + + /** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ + exports.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; + }; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + /** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ + function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } + } + exports.getArg = getArg; + + var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; + var dataUrlRegexp = /^data:.+\,.+$/; + + function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; + } + exports.urlParse = urlParse; + + function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; + } + exports.urlGenerate = urlGenerate; + + /** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ + function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + + var parts = path.split(/\/+/); + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; + } + exports.normalize = normalize; + + /** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ + function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; + } + exports.join = join; + + exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); + }; + + /** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ + function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); + } + exports.relative = relative; + + var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); + }()); + + function identity (s) { + return s; + } + + /** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ + function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; + } + exports.toSetString = supportsNullProto ? identity : toSetString; + + function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; + } + exports.fromSetString = supportsNullProto ? identity : fromSetString; + + function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; + } + + /** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ + function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByOriginalPositions = compareByOriginalPositions; + + /** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ + function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + + function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; + } + + /** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ + function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + + /** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ + function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); + } + exports.parseSourceMapInput = parseSourceMapInput; + + /** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ + function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); + } + exports.computeSourceURL = computeSourceURL; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = __webpack_require__(4); + var has = Object.prototype.hasOwnProperty; + var hasNativeMap = typeof Map !== "undefined"; + + /** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ + function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); + } + + /** + * Static method for creating ArraySet instances from an existing array. + */ + ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; + }; + + /** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ + ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; + }; + + /** + * Add the given string to this set. + * + * @param String aStr + */ + ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } + }; + + /** + * Is the given string a member of this set? + * + * @param String aStr + */ + ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } + }; + + /** + * What is the index of the given string in the array? + * + * @param String aStr + */ + ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); + }; + + /** + * What is the element at the given index? + * + * @param Number aIdx + */ + ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); + }; + + /** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ + ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); + }; + + exports.ArraySet = ArraySet; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = __webpack_require__(4); + + /** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ + function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; + } + + /** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ + function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; + } + + /** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ + MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + + /** + * Add the given source mapping. + * + * @param Object aMapping + */ + MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } + }; + + /** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ + MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; + }; + + exports.MappingList = MappingList; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = __webpack_require__(4); + var binarySearch = __webpack_require__(8); + var ArraySet = __webpack_require__(5).ArraySet; + var base64VLQ = __webpack_require__(2); + var quickSort = __webpack_require__(9).quickSort; + + function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); + } + + SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); + } + + /** + * The version of the source mapping spec that we are consuming. + */ + SourceMapConsumer.prototype._version = 3; + + // `__generatedMappings` and `__originalMappings` are arrays that hold the + // parsed mapping coordinates from the source map's "mappings" attribute. They + // are lazily instantiated, accessed via the `_generatedMappings` and + // `_originalMappings` getters respectively, and we only parse the mappings + // and create these arrays once queried for a source location. We jump through + // these hoops because there can be many thousands of mappings, and parsing + // them is expensive, so we only want to do it if we must. + // + // Each object in the arrays is of the form: + // + // { + // generatedLine: The line number in the generated code, + // generatedColumn: The column number in the generated code, + // source: The path to the original source file that generated this + // chunk of code, + // originalLine: The line number in the original source that + // corresponds to this chunk of generated code, + // originalColumn: The column number in the original source that + // corresponds to this chunk of generated code, + // name: The name of the original symbol which generated this chunk of + // code. + // } + // + // All properties except for `generatedLine` and `generatedColumn` can be + // `null`. + // + // `_generatedMappings` is ordered by the generated positions. + // + // `_originalMappings` is ordered by the original positions. + + SourceMapConsumer.prototype.__generatedMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } + }); + + SourceMapConsumer.prototype.__originalMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } + }); + + SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + + SourceMapConsumer.GENERATED_ORDER = 1; + SourceMapConsumer.ORIGINAL_ORDER = 2; + + SourceMapConsumer.GREATEST_LOWER_BOUND = 1; + SourceMapConsumer.LEAST_UPPER_BOUND = 2; + + /** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ + SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + mappings.map(function (mapping) { + var source = mapping.source === null ? null : this._sources.at(mapping.source); + source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL); + return { + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : this._names.at(mapping.name) + }; + }, this).forEach(aCallback, context); + }; + + /** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + + exports.SourceMapConsumer = SourceMapConsumer; + + /** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ + function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; + } + + BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + + /** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ + BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; + }; + + /** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ + BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + + /** + * The version of the source mapping spec that we are consuming. + */ + BasicSourceMapConsumer.prototype._version = 3; + + /** + * The list of original sources. + */ + Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } + }); + + /** + * Provide the JIT with a nice shape / hidden class. + */ + function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; + } + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + // Because each offset is encoded relative to the previous one, + // many segments often have the same encoding. We can exploit this + // fact by caching the parsed variable length fields of each segment, + // allowing us to avoid a second parse if we encounter the same + // segment again. + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = cachedSegments[str]; + if (segment) { + index += str.length; + } else { + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + cachedSegments[str] = segment; + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + originalMappings.push(mapping); + } + } + } + + quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); + this.__generatedMappings = generatedMappings; + + quickSort(originalMappings, util.compareByOriginalPositions); + this.__originalMappings = originalMappings; + }; + + /** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ + BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + + /** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ + BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + + exports.BasicSourceMapConsumer = BasicSourceMapConsumer; + + /** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ + function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); + } + + IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + + /** + * The version of the source mapping spec that we are consuming. + */ + IndexedSourceMapConsumer.prototype._version = 3; + + /** + * The list of original sources. + */ + Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } + }); + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content) { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + + exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + exports.GREATEST_LOWER_BOUND = 1; + exports.LEAST_UPPER_BOUND = 2; + + /** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ + function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } + } + + /** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ + exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; + }; + + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + // It turns out that some (most?) JavaScript engines don't self-host + // `Array.prototype.sort`. This makes sense because C++ will likely remain + // faster than JS when doing raw CPU-intensive sorting. However, when using a + // custom comparator function, calling back and forth between the VM's C++ and + // JIT'd JS is rather slow *and* loses JIT type information, resulting in + // worse generated code for the comparator function than would be optimal. In + // fact, when sorting with a comparator, these costs outweigh the benefits of + // sorting in C++. By using our own JS-implemented Quick Sort (below), we get + // a ~3500ms mean speed-up in `bench/bench.html`. + + /** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ + function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; + } + + /** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ + function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); + } + + /** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ + function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } + } + + /** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ + exports.quickSort = function (ary, comparator) { + doQuickSort(ary, comparator, 0, ary.length - 1); + }; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + /* -*- Mode: js; js-indent-level: 2; -*- */ + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var SourceMapGenerator = __webpack_require__(1).SourceMapGenerator; + var util = __webpack_require__(4); + + // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other + // operating systems these days (capturing the result). + var REGEX_NEWLINE = /(\r?\n)/; + + // Newline character code for charCodeAt() comparisons + var NEWLINE_CODE = 10; + + // Private symbol for identifying `SourceNode`s when multiple versions of + // the source-map library are loaded. This MUST NOT CHANGE across + // versions! + var isSourceNode = "$$$isSourceNode$$$"; + + /** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ + function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); + } + + /** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ + SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + + /** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + + /** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + + /** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ + SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } + }; + + /** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ + SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; + }; + + /** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ + SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; + }; + + /** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ + SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + + /** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ + SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + + /** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ + SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; + }; + + /** + * Returns the string representation of this source node along with a source + * map. + */ + SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; + }; + + exports.SourceNode = SourceNode; + + +/***/ }) +/******/ ]) +}); +; \ No newline at end of file diff --git a/node_modules/source-map/dist/source-map.min.js b/node_modules/source-map/dist/source-map.min.js new file mode 100644 index 0000000..c7c72da --- /dev/null +++ b/node_modules/source-map/dist/source-map.min.js @@ -0,0 +1,2 @@ +!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.sourceMap=n():e.sourceMap=n()}(this,function(){return function(e){function n(t){if(r[t])return r[t].exports;var o=r[t]={exports:{},id:t,loaded:!1};return e[t].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var r={};return n.m=e,n.c=r,n.p="",n(0)}([function(e,n,r){n.SourceMapGenerator=r(1).SourceMapGenerator,n.SourceMapConsumer=r(7).SourceMapConsumer,n.SourceNode=r(10).SourceNode},function(e,n,r){function t(e){e||(e={}),this._file=i.getArg(e,"file",null),this._sourceRoot=i.getArg(e,"sourceRoot",null),this._skipValidation=i.getArg(e,"skipValidation",!1),this._sources=new s,this._names=new s,this._mappings=new a,this._sourcesContents=null}var o=r(2),i=r(4),s=r(5).ArraySet,a=r(6).MappingList;t.prototype._version=3,t.fromSourceMap=function(e){var n=e.sourceRoot,r=new t({file:e.file,sourceRoot:n});return e.eachMapping(function(e){var t={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(t.source=e.source,null!=n&&(t.source=i.relative(n,t.source)),t.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(t.name=e.name)),r.addMapping(t)}),e.sources.forEach(function(t){var o=t;null!==n&&(o=i.relative(n,t)),r._sources.has(o)||r._sources.add(o);var s=e.sourceContentFor(t);null!=s&&r.setSourceContent(t,s)}),r},t.prototype.addMapping=function(e){var n=i.getArg(e,"generated"),r=i.getArg(e,"original",null),t=i.getArg(e,"source",null),o=i.getArg(e,"name",null);this._skipValidation||this._validateMapping(n,r,t,o),null!=t&&(t=String(t),this._sources.has(t)||this._sources.add(t)),null!=o&&(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:n.line,generatedColumn:n.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:t,name:o})},t.prototype.setSourceContent=function(e,n){var r=e;null!=this._sourceRoot&&(r=i.relative(this._sourceRoot,r)),null!=n?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[i.toSetString(r)]=n):this._sourcesContents&&(delete this._sourcesContents[i.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},t.prototype.applySourceMap=function(e,n,r){var t=n;if(null==n){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');t=e.file}var o=this._sourceRoot;null!=o&&(t=i.relative(o,t));var a=new s,u=new s;this._mappings.unsortedForEach(function(n){if(n.source===t&&null!=n.originalLine){var s=e.originalPositionFor({line:n.originalLine,column:n.originalColumn});null!=s.source&&(n.source=s.source,null!=r&&(n.source=i.join(r,n.source)),null!=o&&(n.source=i.relative(o,n.source)),n.originalLine=s.line,n.originalColumn=s.column,null!=s.name&&(n.name=s.name))}var l=n.source;null==l||a.has(l)||a.add(l);var c=n.name;null==c||u.has(c)||u.add(c)},this),this._sources=a,this._names=u,e.sources.forEach(function(n){var t=e.sourceContentFor(n);null!=t&&(null!=r&&(n=i.join(r,n)),null!=o&&(n=i.relative(o,n)),this.setSourceContent(n,t))},this)},t.prototype._validateMapping=function(e,n,r,t){if(n&&"number"!=typeof n.line&&"number"!=typeof n.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||n||r||t)&&!(e&&"line"in e&&"column"in e&&n&&"line"in n&&"column"in n&&e.line>0&&e.column>=0&&n.line>0&&n.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:n,name:t}))},t.prototype._serializeMappings=function(){for(var e,n,r,t,s=0,a=1,u=0,l=0,c=0,g=0,p="",h=this._mappings.toArray(),f=0,d=h.length;f0){if(!i.compareByGeneratedPositionsInflated(n,h[f-1]))continue;e+=","}e+=o.encode(n.generatedColumn-s),s=n.generatedColumn,null!=n.source&&(t=this._sources.indexOf(n.source),e+=o.encode(t-g),g=t,e+=o.encode(n.originalLine-1-l),l=n.originalLine-1,e+=o.encode(n.originalColumn-u),u=n.originalColumn,null!=n.name&&(r=this._names.indexOf(n.name),e+=o.encode(r-c),c=r)),p+=e}return p},t.prototype._generateSourcesContent=function(e,n){return e.map(function(e){if(!this._sourcesContents)return null;null!=n&&(e=i.relative(n,e));var r=i.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null},this)},t.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},t.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=t},function(e,n,r){function t(e){return e<0?(-e<<1)+1:(e<<1)+0}function o(e){var n=1===(1&e),r=e>>1;return n?-r:r}var i=r(3),s=5,a=1<>>=s,o>0&&(n|=l),r+=i.encode(n);while(o>0);return r},n.decode=function(e,n,r){var t,a,c=e.length,g=0,p=0;do{if(n>=c)throw new Error("Expected more digits in base 64 VLQ value.");if(a=i.decode(e.charCodeAt(n++)),a===-1)throw new Error("Invalid base64 digit: "+e.charAt(n-1));t=!!(a&l),a&=u,g+=a<=0;c--)s=u[c],"."===s?u.splice(c,1):".."===s?l++:l>0&&(""===s?(u.splice(c+1,l),l=0):(u.splice(c,2),l--));return r=u.join("/"),""===r&&(r=a?"/":"."),i?(i.path=r,o(i)):r}function s(e,n){""===e&&(e="."),""===n&&(n=".");var r=t(n),s=t(e);if(s&&(e=s.path||"/"),r&&!r.scheme)return s&&(r.scheme=s.scheme),o(r);if(r||n.match(y))return n;if(s&&!s.host&&!s.path)return s.host=n,o(s);var a="/"===n.charAt(0)?n:i(e.replace(/\/+$/,"")+"/"+n);return s?(s.path=a,o(s)):a}function a(e,n){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==n.indexOf(e+"/");){var t=e.lastIndexOf("/");if(t<0)return n;if(e=e.slice(0,t),e.match(/^([^\/]+:\/)?\/*$/))return n;++r}return Array(r+1).join("../")+n.substr(e.length+1)}function u(e){return e}function l(e){return g(e)?"$"+e:e}function c(e){return g(e)?e.slice(1):e}function g(e){if(!e)return!1;var n=e.length;if(n<9)return!1;if(95!==e.charCodeAt(n-1)||95!==e.charCodeAt(n-2)||111!==e.charCodeAt(n-3)||116!==e.charCodeAt(n-4)||111!==e.charCodeAt(n-5)||114!==e.charCodeAt(n-6)||112!==e.charCodeAt(n-7)||95!==e.charCodeAt(n-8)||95!==e.charCodeAt(n-9))return!1;for(var r=n-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function p(e,n,r){var t=f(e.source,n.source);return 0!==t?t:(t=e.originalLine-n.originalLine,0!==t?t:(t=e.originalColumn-n.originalColumn,0!==t||r?t:(t=e.generatedColumn-n.generatedColumn,0!==t?t:(t=e.generatedLine-n.generatedLine,0!==t?t:f(e.name,n.name)))))}function h(e,n,r){var t=e.generatedLine-n.generatedLine;return 0!==t?t:(t=e.generatedColumn-n.generatedColumn,0!==t||r?t:(t=f(e.source,n.source),0!==t?t:(t=e.originalLine-n.originalLine,0!==t?t:(t=e.originalColumn-n.originalColumn,0!==t?t:f(e.name,n.name)))))}function f(e,n){return e===n?0:null===e?1:null===n?-1:e>n?1:-1}function d(e,n){var r=e.generatedLine-n.generatedLine;return 0!==r?r:(r=e.generatedColumn-n.generatedColumn,0!==r?r:(r=f(e.source,n.source),0!==r?r:(r=e.originalLine-n.originalLine,0!==r?r:(r=e.originalColumn-n.originalColumn,0!==r?r:f(e.name,n.name)))))}function m(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}function _(e,n,r){if(n=n||"",e&&("/"!==e[e.length-1]&&"/"!==n[0]&&(e+="/"),n=e+n),r){var a=t(r);if(!a)throw new Error("sourceMapURL could not be parsed");if(a.path){var u=a.path.lastIndexOf("/");u>=0&&(a.path=a.path.substring(0,u+1))}n=s(o(a),n)}return i(n)}n.getArg=r;var v=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,y=/^data:.+\,.+$/;n.urlParse=t,n.urlGenerate=o,n.normalize=i,n.join=s,n.isAbsolute=function(e){return"/"===e.charAt(0)||v.test(e)},n.relative=a;var C=function(){var e=Object.create(null);return!("__proto__"in e)}();n.toSetString=C?u:l,n.fromSetString=C?u:c,n.compareByOriginalPositions=p,n.compareByGeneratedPositionsDeflated=h,n.compareByGeneratedPositionsInflated=d,n.parseSourceMapInput=m,n.computeSourceURL=_},function(e,n,r){function t(){this._array=[],this._set=s?new Map:Object.create(null)}var o=r(4),i=Object.prototype.hasOwnProperty,s="undefined"!=typeof Map;t.fromArray=function(e,n){for(var r=new t,o=0,i=e.length;o=0)return n}else{var r=o.toSetString(e);if(i.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},t.prototype.at=function(e){if(e>=0&&er||t==r&&s>=o||i.compareByGeneratedPositionsInflated(e,n)<=0}function o(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var i=r(4);o.prototype.unsortedForEach=function(e,n){this._array.forEach(e,n)},o.prototype.add=function(e){t(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},o.prototype.toArray=function(){return this._sorted||(this._array.sort(i.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=o},function(e,n,r){function t(e,n){var r=e;return"string"==typeof e&&(r=a.parseSourceMapInput(e)),null!=r.sections?new s(r,n):new o(r,n)}function o(e,n){var r=e;"string"==typeof e&&(r=a.parseSourceMapInput(e));var t=a.getArg(r,"version"),o=a.getArg(r,"sources"),i=a.getArg(r,"names",[]),s=a.getArg(r,"sourceRoot",null),u=a.getArg(r,"sourcesContent",null),c=a.getArg(r,"mappings"),g=a.getArg(r,"file",null);if(t!=this._version)throw new Error("Unsupported version: "+t);s&&(s=a.normalize(s)),o=o.map(String).map(a.normalize).map(function(e){return s&&a.isAbsolute(s)&&a.isAbsolute(e)?a.relative(s,e):e}),this._names=l.fromArray(i.map(String),!0),this._sources=l.fromArray(o,!0),this._absoluteSources=this._sources.toArray().map(function(e){return a.computeSourceURL(s,e,n)}),this.sourceRoot=s,this.sourcesContent=u,this._mappings=c,this._sourceMapURL=n,this.file=g}function i(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function s(e,n){var r=e;"string"==typeof e&&(r=a.parseSourceMapInput(e));var o=a.getArg(r,"version"),i=a.getArg(r,"sections");if(o!=this._version)throw new Error("Unsupported version: "+o);this._sources=new l,this._names=new l;var s={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var r=a.getArg(e,"offset"),o=a.getArg(r,"line"),i=a.getArg(r,"column");if(o=0){var i=this._originalMappings[o];if(void 0===e.column)for(var s=i.originalLine;i&&i.originalLine===s;)t.push({line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++o];else for(var l=i.originalColumn;i&&i.originalLine===n&&i.originalColumn==l;)t.push({line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++o]}return t},n.SourceMapConsumer=t,o.prototype=Object.create(t.prototype),o.prototype.consumer=t,o.prototype._findSourceIndex=function(e){var n=e;if(null!=this.sourceRoot&&(n=a.relative(this.sourceRoot,n)),this._sources.has(n))return this._sources.indexOf(n);var r;for(r=0;r1&&(r.source=d+o[1],d+=o[1],r.originalLine=h+o[2],h=r.originalLine,r.originalLine+=1,r.originalColumn=f+o[3],f=r.originalColumn,o.length>4&&(r.name=m+o[4],m+=o[4])),A.push(r),"number"==typeof r.originalLine&&S.push(r)}g(A,a.compareByGeneratedPositionsDeflated),this.__generatedMappings=A,g(S,a.compareByOriginalPositions),this.__originalMappings=S},o.prototype._findMapping=function(e,n,r,t,o,i){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[t]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[t]);return u.search(e,n,o,i)},o.prototype.computeColumnSpans=function(){for(var e=0;e=0){var o=this._generatedMappings[r];if(o.generatedLine===n.generatedLine){var i=a.getArg(o,"source",null);null!==i&&(i=this._sources.at(i),i=a.computeSourceURL(this.sourceRoot,i,this._sourceMapURL));var s=a.getArg(o,"name",null);return null!==s&&(s=this._names.at(s)),{source:i,line:a.getArg(o,"originalLine",null),column:a.getArg(o,"originalColumn",null),name:s}}}return{source:null,line:null,column:null,name:null}},o.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},o.prototype.sourceContentFor=function(e,n){if(!this.sourcesContent)return null;var r=this._findSourceIndex(e);if(r>=0)return this.sourcesContent[r];var t=e;null!=this.sourceRoot&&(t=a.relative(this.sourceRoot,t));var o;if(null!=this.sourceRoot&&(o=a.urlParse(this.sourceRoot))){var i=t.replace(/^file:\/\//,"");if("file"==o.scheme&&this._sources.has(i))return this.sourcesContent[this._sources.indexOf(i)];if((!o.path||"/"==o.path)&&this._sources.has("/"+t))return this.sourcesContent[this._sources.indexOf("/"+t)]}if(n)return null;throw new Error('"'+t+'" is not in the SourceMap.')},o.prototype.generatedPositionFor=function(e){var n=a.getArg(e,"source");if(n=this._findSourceIndex(n),n<0)return{line:null,column:null,lastColumn:null};var r={source:n,originalLine:a.getArg(e,"line"),originalColumn:a.getArg(e,"column")},o=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,a.getArg(e,"bias",t.GREATEST_LOWER_BOUND));if(o>=0){var i=this._originalMappings[o];if(i.source===r.source)return{line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},n.BasicSourceMapConsumer=o,s.prototype=Object.create(t.prototype),s.prototype.constructor=t,s.prototype._version=3,Object.defineProperty(s.prototype,"sources",{get:function(){for(var e=[],n=0;n0?t-u>1?r(u,t,o,i,s,a):a==n.LEAST_UPPER_BOUND?t1?r(e,u,o,i,s,a):a==n.LEAST_UPPER_BOUND?u:e<0?-1:e}n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.search=function(e,t,o,i){if(0===t.length)return-1;var s=r(-1,t.length,e,t,o,i||n.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&0===o(t[s],t[s-1],!0);)--s;return s}},function(e,n){function r(e,n,r){var t=e[n];e[n]=e[r],e[r]=t}function t(e,n){return Math.round(e+Math.random()*(n-e))}function o(e,n,i,s){if(i=0;n--)this.prepend(e[n]);else{if(!e[u]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},t.prototype.walk=function(e){for(var n,r=0,t=this.children.length;r0){for(n=[],r=0;r 0 && aGenerated.column >= 0\n\t && !aOriginal && !aSource && !aName) {\n\t // Case 1.\n\t return;\n\t }\n\t else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n\t && aGenerated.line > 0 && aGenerated.column >= 0\n\t && aOriginal.line > 0 && aOriginal.column >= 0\n\t && aSource) {\n\t // Cases 2 and 3.\n\t return;\n\t }\n\t else {\n\t throw new Error('Invalid mapping: ' + JSON.stringify({\n\t generated: aGenerated,\n\t source: aSource,\n\t original: aOriginal,\n\t name: aName\n\t }));\n\t }\n\t };\n\t\n\t/**\n\t * Serialize the accumulated mappings in to the stream of base 64 VLQs\n\t * specified by the source map format.\n\t */\n\tSourceMapGenerator.prototype._serializeMappings =\n\t function SourceMapGenerator_serializeMappings() {\n\t var previousGeneratedColumn = 0;\n\t var previousGeneratedLine = 1;\n\t var previousOriginalColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousName = 0;\n\t var previousSource = 0;\n\t var result = '';\n\t var next;\n\t var mapping;\n\t var nameIdx;\n\t var sourceIdx;\n\t\n\t var mappings = this._mappings.toArray();\n\t for (var i = 0, len = mappings.length; i < len; i++) {\n\t mapping = mappings[i];\n\t next = ''\n\t\n\t if (mapping.generatedLine !== previousGeneratedLine) {\n\t previousGeneratedColumn = 0;\n\t while (mapping.generatedLine !== previousGeneratedLine) {\n\t next += ';';\n\t previousGeneratedLine++;\n\t }\n\t }\n\t else {\n\t if (i > 0) {\n\t if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n\t continue;\n\t }\n\t next += ',';\n\t }\n\t }\n\t\n\t next += base64VLQ.encode(mapping.generatedColumn\n\t - previousGeneratedColumn);\n\t previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t if (mapping.source != null) {\n\t sourceIdx = this._sources.indexOf(mapping.source);\n\t next += base64VLQ.encode(sourceIdx - previousSource);\n\t previousSource = sourceIdx;\n\t\n\t // lines are stored 0-based in SourceMap spec version 3\n\t next += base64VLQ.encode(mapping.originalLine - 1\n\t - previousOriginalLine);\n\t previousOriginalLine = mapping.originalLine - 1;\n\t\n\t next += base64VLQ.encode(mapping.originalColumn\n\t - previousOriginalColumn);\n\t previousOriginalColumn = mapping.originalColumn;\n\t\n\t if (mapping.name != null) {\n\t nameIdx = this._names.indexOf(mapping.name);\n\t next += base64VLQ.encode(nameIdx - previousName);\n\t previousName = nameIdx;\n\t }\n\t }\n\t\n\t result += next;\n\t }\n\t\n\t return result;\n\t };\n\t\n\tSourceMapGenerator.prototype._generateSourcesContent =\n\t function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n\t return aSources.map(function (source) {\n\t if (!this._sourcesContents) {\n\t return null;\n\t }\n\t if (aSourceRoot != null) {\n\t source = util.relative(aSourceRoot, source);\n\t }\n\t var key = util.toSetString(source);\n\t return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n\t ? this._sourcesContents[key]\n\t : null;\n\t }, this);\n\t };\n\t\n\t/**\n\t * Externalize the source map.\n\t */\n\tSourceMapGenerator.prototype.toJSON =\n\t function SourceMapGenerator_toJSON() {\n\t var map = {\n\t version: this._version,\n\t sources: this._sources.toArray(),\n\t names: this._names.toArray(),\n\t mappings: this._serializeMappings()\n\t };\n\t if (this._file != null) {\n\t map.file = this._file;\n\t }\n\t if (this._sourceRoot != null) {\n\t map.sourceRoot = this._sourceRoot;\n\t }\n\t if (this._sourcesContents) {\n\t map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n\t }\n\t\n\t return map;\n\t };\n\t\n\t/**\n\t * Render the source map being generated to a string.\n\t */\n\tSourceMapGenerator.prototype.toString =\n\t function SourceMapGenerator_toString() {\n\t return JSON.stringify(this.toJSON());\n\t };\n\t\n\texports.SourceMapGenerator = SourceMapGenerator;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t * * Redistributions of source code must retain the above copyright\n\t * notice, this list of conditions and the following disclaimer.\n\t * * Redistributions in binary form must reproduce the above\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\t\n\tvar base64 = __webpack_require__(3);\n\t\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\t\n\tvar VLQ_BASE_SHIFT = 5;\n\t\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\t\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\t\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\t\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\t\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\t\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\t\n\t var vlq = toVLQSigned(aValue);\n\t\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\t\n\t return encoded;\n\t};\n\t\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\t\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\t\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\t\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\t\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\t\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\t\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\t\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\t\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\t\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\t\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\t\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\t\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\t\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\t\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\t\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\t\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\t\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\t\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\t\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\t\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\t\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\t\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\t\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\t\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\t\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\t\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\t\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\t\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\t\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\t\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n\t};\n\t\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t\n\t aRoot = aRoot.replace(/\\/$/, '');\n\t\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\t\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\t\n\t ++level;\n\t }\n\t\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\t\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\t\n\tfunction identity (s) {\n\t return s;\n\t}\n\t\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\t\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\t\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\t\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\t\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\t\n\t var length = s.length;\n\t\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\t\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\t\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\t\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\t\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\t\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\t\n\t if (aStr1 === null) {\n\t return 1; // aStr2 !== null\n\t }\n\t\n\t if (aStr2 === null) {\n\t return -1; // aStr1 !== null\n\t }\n\t\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\t\n\t return -1;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\t\n\t/**\n\t * Strip any JSON XSSI avoidance prefix from the string (as documented\n\t * in the source maps specification), and then parse the string as\n\t * JSON.\n\t */\n\tfunction parseSourceMapInput(str) {\n\t return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n\t}\n\texports.parseSourceMapInput = parseSourceMapInput;\n\t\n\t/**\n\t * Compute the URL of a source given the the source root, the source's\n\t * URL, and the source map's URL.\n\t */\n\tfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n\t sourceURL = sourceURL || '';\n\t\n\t if (sourceRoot) {\n\t // This follows what Chrome does.\n\t if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n\t sourceRoot += '/';\n\t }\n\t // The spec says:\n\t // Line 4: An optional source root, useful for relocating source\n\t // files on a server or removing repeated values in the\n\t // “sources” entry. This value is prepended to the individual\n\t // entries in the “source” field.\n\t sourceURL = sourceRoot + sourceURL;\n\t }\n\t\n\t // Historically, SourceMapConsumer did not take the sourceMapURL as\n\t // a parameter. This mode is still somewhat supported, which is why\n\t // this code block is conditional. However, it's preferable to pass\n\t // the source map URL to SourceMapConsumer, so that this function\n\t // can implement the source URL resolution algorithm as outlined in\n\t // the spec. This block is basically the equivalent of:\n\t // new URL(sourceURL, sourceMapURL).toString()\n\t // ... except it avoids using URL, which wasn't available in the\n\t // older releases of node still supported by this library.\n\t //\n\t // The spec says:\n\t // If the sources are not absolute URLs after prepending of the\n\t // “sourceRoot”, the sources are resolved relative to the\n\t // SourceMap (like resolving script src in a html document).\n\t if (sourceMapURL) {\n\t var parsed = urlParse(sourceMapURL);\n\t if (!parsed) {\n\t throw new Error(\"sourceMapURL could not be parsed\");\n\t }\n\t if (parsed.path) {\n\t // Strip the last path component, but keep the \"/\".\n\t var index = parsed.path.lastIndexOf('/');\n\t if (index >= 0) {\n\t parsed.path = parsed.path.substring(0, index + 1);\n\t }\n\t }\n\t sourceURL = join(urlGenerate(parsed), sourceURL);\n\t }\n\t\n\t return normalize(sourceURL);\n\t}\n\texports.computeSourceURL = computeSourceURL;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar hasNativeMap = typeof Map !== \"undefined\";\n\t\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = hasNativeMap ? new Map() : Object.create(null);\n\t}\n\t\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\t\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n\t};\n\t\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n\t var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t if (hasNativeMap) {\n\t this._set.set(aStr, idx);\n\t } else {\n\t this._set[sStr] = idx;\n\t }\n\t }\n\t};\n\t\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t if (hasNativeMap) {\n\t return this._set.has(aStr);\n\t } else {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t }\n\t};\n\t\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t if (hasNativeMap) {\n\t var idx = this._set.get(aStr);\n\t if (idx >= 0) {\n\t return idx;\n\t }\n\t } else {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t }\n\t\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\t\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\t\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\t\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2014 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\t\n\t/**\n\t * Determine whether mappingB is after mappingA with respect to generated\n\t * position.\n\t */\n\tfunction generatedPositionAfter(mappingA, mappingB) {\n\t // Optimized for most common case\n\t var lineA = mappingA.generatedLine;\n\t var lineB = mappingB.generatedLine;\n\t var columnA = mappingA.generatedColumn;\n\t var columnB = mappingB.generatedColumn;\n\t return lineB > lineA || lineB == lineA && columnB >= columnA ||\n\t util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n\t}\n\t\n\t/**\n\t * A data structure to provide a sorted view of accumulated mappings in a\n\t * performance conscious manner. It trades a neglibable overhead in general\n\t * case for a large speedup in case of mappings being added in order.\n\t */\n\tfunction MappingList() {\n\t this._array = [];\n\t this._sorted = true;\n\t // Serves as infimum\n\t this._last = {generatedLine: -1, generatedColumn: 0};\n\t}\n\t\n\t/**\n\t * Iterate through internal items. This method takes the same arguments that\n\t * `Array.prototype.forEach` takes.\n\t *\n\t * NOTE: The order of the mappings is NOT guaranteed.\n\t */\n\tMappingList.prototype.unsortedForEach =\n\t function MappingList_forEach(aCallback, aThisArg) {\n\t this._array.forEach(aCallback, aThisArg);\n\t };\n\t\n\t/**\n\t * Add the given source mapping.\n\t *\n\t * @param Object aMapping\n\t */\n\tMappingList.prototype.add = function MappingList_add(aMapping) {\n\t if (generatedPositionAfter(this._last, aMapping)) {\n\t this._last = aMapping;\n\t this._array.push(aMapping);\n\t } else {\n\t this._sorted = false;\n\t this._array.push(aMapping);\n\t }\n\t};\n\t\n\t/**\n\t * Returns the flat, sorted array of mappings. The mappings are sorted by\n\t * generated position.\n\t *\n\t * WARNING: This method returns internal data without copying, for\n\t * performance. The return value must NOT be mutated, and should be treated as\n\t * an immutable borrow. If you want to take ownership, you must make your own\n\t * copy.\n\t */\n\tMappingList.prototype.toArray = function MappingList_toArray() {\n\t if (!this._sorted) {\n\t this._array.sort(util.compareByGeneratedPositionsInflated);\n\t this._sorted = true;\n\t }\n\t return this._array;\n\t};\n\t\n\texports.MappingList = MappingList;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar binarySearch = __webpack_require__(8);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar base64VLQ = __webpack_require__(2);\n\tvar quickSort = __webpack_require__(9).quickSort;\n\t\n\tfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = util.parseSourceMapInput(aSourceMap);\n\t }\n\t\n\t return sourceMap.sections != null\n\t ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n\t : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n\t}\n\t\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n\t return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n\t}\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\t\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t// {\n\t// generatedLine: The line number in the generated code,\n\t// generatedColumn: The column number in the generated code,\n\t// source: The path to the original source file that generated this\n\t// chunk of code,\n\t// originalLine: The line number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// originalColumn: The column number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// name: The name of the original symbol which generated this chunk of\n\t// code.\n\t// }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\t\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t configurable: true,\n\t enumerable: true,\n\t get: function () {\n\t if (!this.__generatedMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\t\n\t return this.__generatedMappings;\n\t }\n\t});\n\t\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t configurable: true,\n\t enumerable: true,\n\t get: function () {\n\t if (!this.__originalMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\t\n\t return this.__originalMappings;\n\t }\n\t});\n\t\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t var c = aStr.charAt(index);\n\t return c === \";\" || c === \",\";\n\t };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t throw new Error(\"Subclasses must implement _parseMappings\");\n\t };\n\t\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\t\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t * The function that is called with each mapping.\n\t * @param Object aContext\n\t * Optional. If specified, this object will be the value of `this` every\n\t * time that `aCallback` is called.\n\t * @param aOrder\n\t * Either `SourceMapConsumer.GENERATED_ORDER` or\n\t * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t * iterate over the mappings sorted by the generated file's line/column\n\t * order or the original's source/line/column order, respectively. Defaults to\n\t * `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t var context = aContext || null;\n\t var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\t\n\t var mappings;\n\t switch (order) {\n\t case SourceMapConsumer.GENERATED_ORDER:\n\t mappings = this._generatedMappings;\n\t break;\n\t case SourceMapConsumer.ORIGINAL_ORDER:\n\t mappings = this._originalMappings;\n\t break;\n\t default:\n\t throw new Error(\"Unknown order of iteration.\");\n\t }\n\t\n\t var sourceRoot = this.sourceRoot;\n\t mappings.map(function (mapping) {\n\t var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n\t return {\n\t source: source,\n\t generatedLine: mapping.generatedLine,\n\t generatedColumn: mapping.generatedColumn,\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: mapping.name === null ? null : this._names.at(mapping.name)\n\t };\n\t }, this).forEach(aCallback, context);\n\t };\n\t\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source. The line number is 1-based.\n\t * - column: Optional. the column number in the original source.\n\t * The column number is 0-based.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null. The\n\t * line number is 1-based.\n\t * - column: The column number in the generated source, or null.\n\t * The column number is 0-based.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t var line = util.getArg(aArgs, 'line');\n\t\n\t // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t // returns the index of the closest mapping less than the needle. By\n\t // setting needle.originalColumn to 0, we thus find the last mapping for\n\t // the given line, provided such a mapping exists.\n\t var needle = {\n\t source: util.getArg(aArgs, 'source'),\n\t originalLine: line,\n\t originalColumn: util.getArg(aArgs, 'column', 0)\n\t };\n\t\n\t needle.source = this._findSourceIndex(needle.source);\n\t if (needle.source < 0) {\n\t return [];\n\t }\n\t\n\t var mappings = [];\n\t\n\t var index = this._findMapping(needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t binarySearch.LEAST_UPPER_BOUND);\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\t\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\t\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\t\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\t\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\t\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\t\n\t return mappings;\n\t };\n\t\n\texports.SourceMapConsumer = SourceMapConsumer;\n\t\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The first parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * The second parameter, if given, is a string whose value is the URL\n\t * at which the source map was found. This URL is used to compute the\n\t * sources array.\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = util.parseSourceMapInput(aSourceMap);\n\t }\n\t\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\t\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\t\n\t if (sourceRoot) {\n\t sourceRoot = util.normalize(sourceRoot);\n\t }\n\t\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\t\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\t\n\t this._absoluteSources = this._sources.toArray().map(function (s) {\n\t return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n\t });\n\t\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this._sourceMapURL = aSourceMapURL;\n\t this.file = file;\n\t}\n\t\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\t\n\t/**\n\t * Utility function to find the index of a source. Returns -1 if not\n\t * found.\n\t */\n\tBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n\t var relativeSource = aSource;\n\t if (this.sourceRoot != null) {\n\t relativeSource = util.relative(this.sourceRoot, relativeSource);\n\t }\n\t\n\t if (this._sources.has(relativeSource)) {\n\t return this._sources.indexOf(relativeSource);\n\t }\n\t\n\t // Maybe aSource is an absolute URL as returned by |sources|. In\n\t // this case we can't simply undo the transform.\n\t var i;\n\t for (i = 0; i < this._absoluteSources.length; ++i) {\n\t if (this._absoluteSources[i] == aSource) {\n\t return i;\n\t }\n\t }\n\t\n\t return -1;\n\t};\n\t\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @param String aSourceMapURL\n\t * The URL at which the source map can be found (optional)\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\t\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\t smc._sourceMapURL = aSourceMapURL;\n\t smc._absoluteSources = smc._sources.toArray().map(function (s) {\n\t return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n\t });\n\t\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\t\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\t\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\t\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\t\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\t\n\t destOriginalMappings.push(destMapping);\n\t }\n\t\n\t destGeneratedMappings.push(destMapping);\n\t }\n\t\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\t\n\t return smc;\n\t };\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._absoluteSources.slice();\n\t }\n\t});\n\t\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\t\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\t\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\t\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\t\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\t\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\t\n\t cachedSegments[str] = segment;\n\t }\n\t\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\t\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\t\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\t\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\t\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\t\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\t\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\t\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\t\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\t\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\t\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\t\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\t\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\t\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source. The line number\n\t * is 1-based.\n\t * - column: The column number in the generated source. The column\n\t * number is 0-based.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null. The\n\t * line number is 1-based.\n\t * - column: The column number in the original source, or null. The\n\t * column number is 0-based.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\t\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\t\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\t\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\t\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\t\n\t var index = this._findSourceIndex(aSource);\n\t if (index >= 0) {\n\t return this.sourcesContent[index];\n\t }\n\t\n\t var relativeSource = aSource;\n\t if (this.sourceRoot != null) {\n\t relativeSource = util.relative(this.sourceRoot, relativeSource);\n\t }\n\t\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\t\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + relativeSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n\t }\n\t }\n\t\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source. The line number\n\t * is 1-based.\n\t * - column: The column number in the original source. The column\n\t * number is 0-based.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null. The\n\t * line number is 1-based.\n\t * - column: The column number in the generated source, or null.\n\t * The column number is 0-based.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t source = this._findSourceIndex(source);\n\t if (source < 0) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\t\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\t\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\t\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\t\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\t\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\t\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The first parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * The second parameter, if given, is a string whose value is the URL\n\t * at which the source map was found. This URL is used to compute the\n\t * sources array.\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = util.parseSourceMapInput(aSourceMap);\n\t }\n\t\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\t\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\t\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\t\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\t\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\t\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n\t }\n\t });\n\t}\n\t\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source. The line number\n\t * is 1-based.\n\t * - column: The column number in the generated source. The column\n\t * number is 0-based.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null. The\n\t * line number is 1-based.\n\t * - column: The column number in the original source, or null. The\n\t * column number is 0-based.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\t\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\t\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\t\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\t\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source. The line number\n\t * is 1-based.\n\t * - column: The column number in the original source. The column\n\t * number is 0-based.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null. The\n\t * line number is 1-based. \n\t * - column: The column number in the generated source, or null.\n\t * The column number is 0-based.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\t\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\t\n\t var source = section.consumer._sources.at(mapping.source);\n\t source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\t\n\t var name = null;\n\t if (mapping.name) {\n\t name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\t }\n\t\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\t\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\t\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\t\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\t\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\t\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\t\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\t\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\t\n\t return index;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\t\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\t\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\t\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\t\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\t\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\t\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\t\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\t\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\t\n\t // (2) Recurse on each half.\n\t\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\t\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\tvar util = __webpack_require__(4);\n\t\n\t// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n\t// operating systems these days (capturing the result).\n\tvar REGEX_NEWLINE = /(\\r?\\n)/;\n\t\n\t// Newline character code for charCodeAt() comparisons\n\tvar NEWLINE_CODE = 10;\n\t\n\t// Private symbol for identifying `SourceNode`s when multiple versions of\n\t// the source-map library are loaded. This MUST NOT CHANGE across\n\t// versions!\n\tvar isSourceNode = \"$$$isSourceNode$$$\";\n\t\n\t/**\n\t * SourceNodes provide a way to abstract over interpolating/concatenating\n\t * snippets of generated JavaScript source code while maintaining the line and\n\t * column information associated with the original source code.\n\t *\n\t * @param aLine The original line number.\n\t * @param aColumn The original column number.\n\t * @param aSource The original source's filename.\n\t * @param aChunks Optional. An array of strings which are snippets of\n\t * generated JS, or other SourceNodes.\n\t * @param aName The original identifier.\n\t */\n\tfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n\t this.children = [];\n\t this.sourceContents = {};\n\t this.line = aLine == null ? null : aLine;\n\t this.column = aColumn == null ? null : aColumn;\n\t this.source = aSource == null ? null : aSource;\n\t this.name = aName == null ? null : aName;\n\t this[isSourceNode] = true;\n\t if (aChunks != null) this.add(aChunks);\n\t}\n\t\n\t/**\n\t * Creates a SourceNode from generated code and a SourceMapConsumer.\n\t *\n\t * @param aGeneratedCode The generated code\n\t * @param aSourceMapConsumer The SourceMap for the generated code\n\t * @param aRelativePath Optional. The path that relative sources in the\n\t * SourceMapConsumer should be relative to.\n\t */\n\tSourceNode.fromStringWithSourceMap =\n\t function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n\t // The SourceNode we want to fill with the generated code\n\t // and the SourceMap\n\t var node = new SourceNode();\n\t\n\t // All even indices of this array are one line of the generated code,\n\t // while all odd indices are the newlines between two adjacent lines\n\t // (since `REGEX_NEWLINE` captures its match).\n\t // Processed fragments are accessed by calling `shiftNextLine`.\n\t var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n\t var remainingLinesIndex = 0;\n\t var shiftNextLine = function() {\n\t var lineContents = getNextLine();\n\t // The last line of a file might not have a newline.\n\t var newLine = getNextLine() || \"\";\n\t return lineContents + newLine;\n\t\n\t function getNextLine() {\n\t return remainingLinesIndex < remainingLines.length ?\n\t remainingLines[remainingLinesIndex++] : undefined;\n\t }\n\t };\n\t\n\t // We need to remember the position of \"remainingLines\"\n\t var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\t\n\t // The generate SourceNodes we need a code range.\n\t // To extract it current and last mapping is used.\n\t // Here we store the last mapping.\n\t var lastMapping = null;\n\t\n\t aSourceMapConsumer.eachMapping(function (mapping) {\n\t if (lastMapping !== null) {\n\t // We add the code from \"lastMapping\" to \"mapping\":\n\t // First check if there is a new line in between.\n\t if (lastGeneratedLine < mapping.generatedLine) {\n\t // Associate first line with \"lastMapping\"\n\t addMappingWithCode(lastMapping, shiftNextLine());\n\t lastGeneratedLine++;\n\t lastGeneratedColumn = 0;\n\t // The remaining code is added without mapping\n\t } else {\n\t // There is no new line in between.\n\t // Associate the code between \"lastGeneratedColumn\" and\n\t // \"mapping.generatedColumn\" with \"lastMapping\"\n\t var nextLine = remainingLines[remainingLinesIndex] || '';\n\t var code = nextLine.substr(0, mapping.generatedColumn -\n\t lastGeneratedColumn);\n\t remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n\t lastGeneratedColumn);\n\t lastGeneratedColumn = mapping.generatedColumn;\n\t addMappingWithCode(lastMapping, code);\n\t // No more remaining code, continue\n\t lastMapping = mapping;\n\t return;\n\t }\n\t }\n\t // We add the generated code until the first mapping\n\t // to the SourceNode without any mapping.\n\t // Each line is added as separate string.\n\t while (lastGeneratedLine < mapping.generatedLine) {\n\t node.add(shiftNextLine());\n\t lastGeneratedLine++;\n\t }\n\t if (lastGeneratedColumn < mapping.generatedColumn) {\n\t var nextLine = remainingLines[remainingLinesIndex] || '';\n\t node.add(nextLine.substr(0, mapping.generatedColumn));\n\t remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n\t lastGeneratedColumn = mapping.generatedColumn;\n\t }\n\t lastMapping = mapping;\n\t }, this);\n\t // We have processed all mappings.\n\t if (remainingLinesIndex < remainingLines.length) {\n\t if (lastMapping) {\n\t // Associate the remaining code in the current line with \"lastMapping\"\n\t addMappingWithCode(lastMapping, shiftNextLine());\n\t }\n\t // and add the remaining lines without any mapping\n\t node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n\t }\n\t\n\t // Copy sourcesContent into SourceNode\n\t aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t if (content != null) {\n\t if (aRelativePath != null) {\n\t sourceFile = util.join(aRelativePath, sourceFile);\n\t }\n\t node.setSourceContent(sourceFile, content);\n\t }\n\t });\n\t\n\t return node;\n\t\n\t function addMappingWithCode(mapping, code) {\n\t if (mapping === null || mapping.source === undefined) {\n\t node.add(code);\n\t } else {\n\t var source = aRelativePath\n\t ? util.join(aRelativePath, mapping.source)\n\t : mapping.source;\n\t node.add(new SourceNode(mapping.originalLine,\n\t mapping.originalColumn,\n\t source,\n\t code,\n\t mapping.name));\n\t }\n\t }\n\t };\n\t\n\t/**\n\t * Add a chunk of generated JS to this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t * SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.add = function SourceNode_add(aChunk) {\n\t if (Array.isArray(aChunk)) {\n\t aChunk.forEach(function (chunk) {\n\t this.add(chunk);\n\t }, this);\n\t }\n\t else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t if (aChunk) {\n\t this.children.push(aChunk);\n\t }\n\t }\n\t else {\n\t throw new TypeError(\n\t \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t );\n\t }\n\t return this;\n\t};\n\t\n\t/**\n\t * Add a chunk of generated JS to the beginning of this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t * SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n\t if (Array.isArray(aChunk)) {\n\t for (var i = aChunk.length-1; i >= 0; i--) {\n\t this.prepend(aChunk[i]);\n\t }\n\t }\n\t else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t this.children.unshift(aChunk);\n\t }\n\t else {\n\t throw new TypeError(\n\t \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t );\n\t }\n\t return this;\n\t};\n\t\n\t/**\n\t * Walk over the tree of JS snippets in this node and its children. The\n\t * walking function is called once for each snippet of JS and is passed that\n\t * snippet and the its original associated source's line/column location.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n\t var chunk;\n\t for (var i = 0, len = this.children.length; i < len; i++) {\n\t chunk = this.children[i];\n\t if (chunk[isSourceNode]) {\n\t chunk.walk(aFn);\n\t }\n\t else {\n\t if (chunk !== '') {\n\t aFn(chunk, { source: this.source,\n\t line: this.line,\n\t column: this.column,\n\t name: this.name });\n\t }\n\t }\n\t }\n\t};\n\t\n\t/**\n\t * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n\t * each of `this.children`.\n\t *\n\t * @param aSep The separator.\n\t */\n\tSourceNode.prototype.join = function SourceNode_join(aSep) {\n\t var newChildren;\n\t var i;\n\t var len = this.children.length;\n\t if (len > 0) {\n\t newChildren = [];\n\t for (i = 0; i < len-1; i++) {\n\t newChildren.push(this.children[i]);\n\t newChildren.push(aSep);\n\t }\n\t newChildren.push(this.children[i]);\n\t this.children = newChildren;\n\t }\n\t return this;\n\t};\n\t\n\t/**\n\t * Call String.prototype.replace on the very right-most source snippet. Useful\n\t * for trimming whitespace from the end of a source node, etc.\n\t *\n\t * @param aPattern The pattern to replace.\n\t * @param aReplacement The thing to replace the pattern with.\n\t */\n\tSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n\t var lastChild = this.children[this.children.length - 1];\n\t if (lastChild[isSourceNode]) {\n\t lastChild.replaceRight(aPattern, aReplacement);\n\t }\n\t else if (typeof lastChild === 'string') {\n\t this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n\t }\n\t else {\n\t this.children.push(''.replace(aPattern, aReplacement));\n\t }\n\t return this;\n\t};\n\t\n\t/**\n\t * Set the source content for a source file. This will be added to the SourceMapGenerator\n\t * in the sourcesContent field.\n\t *\n\t * @param aSourceFile The filename of the source file\n\t * @param aSourceContent The content of the source file\n\t */\n\tSourceNode.prototype.setSourceContent =\n\t function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n\t this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n\t };\n\t\n\t/**\n\t * Walk over the tree of SourceNodes. The walking function is called for each\n\t * source file content and is passed the filename and source content.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walkSourceContents =\n\t function SourceNode_walkSourceContents(aFn) {\n\t for (var i = 0, len = this.children.length; i < len; i++) {\n\t if (this.children[i][isSourceNode]) {\n\t this.children[i].walkSourceContents(aFn);\n\t }\n\t }\n\t\n\t var sources = Object.keys(this.sourceContents);\n\t for (var i = 0, len = sources.length; i < len; i++) {\n\t aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n\t }\n\t };\n\t\n\t/**\n\t * Return the string representation of this source node. Walks over the tree\n\t * and concatenates all the various snippets together to one string.\n\t */\n\tSourceNode.prototype.toString = function SourceNode_toString() {\n\t var str = \"\";\n\t this.walk(function (chunk) {\n\t str += chunk;\n\t });\n\t return str;\n\t};\n\t\n\t/**\n\t * Returns the string representation of this source node along with a source\n\t * map.\n\t */\n\tSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n\t var generated = {\n\t code: \"\",\n\t line: 1,\n\t column: 0\n\t };\n\t var map = new SourceMapGenerator(aArgs);\n\t var sourceMappingActive = false;\n\t var lastOriginalSource = null;\n\t var lastOriginalLine = null;\n\t var lastOriginalColumn = null;\n\t var lastOriginalName = null;\n\t this.walk(function (chunk, original) {\n\t generated.code += chunk;\n\t if (original.source !== null\n\t && original.line !== null\n\t && original.column !== null) {\n\t if(lastOriginalSource !== original.source\n\t || lastOriginalLine !== original.line\n\t || lastOriginalColumn !== original.column\n\t || lastOriginalName !== original.name) {\n\t map.addMapping({\n\t source: original.source,\n\t original: {\n\t line: original.line,\n\t column: original.column\n\t },\n\t generated: {\n\t line: generated.line,\n\t column: generated.column\n\t },\n\t name: original.name\n\t });\n\t }\n\t lastOriginalSource = original.source;\n\t lastOriginalLine = original.line;\n\t lastOriginalColumn = original.column;\n\t lastOriginalName = original.name;\n\t sourceMappingActive = true;\n\t } else if (sourceMappingActive) {\n\t map.addMapping({\n\t generated: {\n\t line: generated.line,\n\t column: generated.column\n\t }\n\t });\n\t lastOriginalSource = null;\n\t sourceMappingActive = false;\n\t }\n\t for (var idx = 0, length = chunk.length; idx < length; idx++) {\n\t if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n\t generated.line++;\n\t generated.column = 0;\n\t // Mappings end at eol\n\t if (idx + 1 === length) {\n\t lastOriginalSource = null;\n\t sourceMappingActive = false;\n\t } else if (sourceMappingActive) {\n\t map.addMapping({\n\t source: original.source,\n\t original: {\n\t line: original.line,\n\t column: original.column\n\t },\n\t generated: {\n\t line: generated.line,\n\t column: generated.column\n\t },\n\t name: original.name\n\t });\n\t }\n\t } else {\n\t generated.column++;\n\t }\n\t }\n\t });\n\t this.walkSourceContents(function (sourceFile, sourceContent) {\n\t map.setSourceContent(sourceFile, sourceContent);\n\t });\n\t\n\t return { code: generated.code, map: map };\n\t};\n\t\n\texports.SourceNode = SourceNode;\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// source-map.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0fd5815da764db5fb9fe","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./source-map.js\n// module id = 0\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-generator.js\n// module id = 1\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64-vlq.js\n// module id = 2\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64.js\n// module id = 3\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/util.js\n// module id = 4\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/array-set.js\n// module id = 5\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/mapping-list.js\n// module id = 6\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-consumer.js\n// module id = 7\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/binary-search.js\n// module id = 8\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/quick-sort.js\n// module id = 9\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-node.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/node_modules/source-map/lib/array-set.js b/node_modules/source-map/lib/array-set.js new file mode 100644 index 0000000..fbd5c81 --- /dev/null +++ b/node_modules/source-map/lib/array-set.js @@ -0,0 +1,121 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var has = Object.prototype.hasOwnProperty; +var hasNativeMap = typeof Map !== "undefined"; + +/** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ +function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); +} + +/** + * Static method for creating ArraySet instances from an existing array. + */ +ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; +}; + +/** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ +ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; +}; + +/** + * Add the given string to this set. + * + * @param String aStr + */ +ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } +}; + +/** + * Is the given string a member of this set? + * + * @param String aStr + */ +ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } +}; + +/** + * What is the index of the given string in the array? + * + * @param String aStr + */ +ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); +}; + +/** + * What is the element at the given index? + * + * @param Number aIdx + */ +ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); +}; + +/** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ +ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); +}; + +exports.ArraySet = ArraySet; diff --git a/node_modules/source-map/lib/base64-vlq.js b/node_modules/source-map/lib/base64-vlq.js new file mode 100644 index 0000000..612b404 --- /dev/null +++ b/node_modules/source-map/lib/base64-vlq.js @@ -0,0 +1,140 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +var base64 = require('./base64'); + +// A single base 64 digit can contain 6 bits of data. For the base 64 variable +// length quantities we use in the source map spec, the first bit is the sign, +// the next four bits are the actual value, and the 6th bit is the +// continuation bit. The continuation bit tells us whether there are more +// digits in this value following this digit. +// +// Continuation +// | Sign +// | | +// V V +// 101011 + +var VLQ_BASE_SHIFT = 5; + +// binary: 100000 +var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + +// binary: 011111 +var VLQ_BASE_MASK = VLQ_BASE - 1; + +// binary: 100000 +var VLQ_CONTINUATION_BIT = VLQ_BASE; + +/** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ +function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; +} + +/** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ +function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; +} + +/** + * Returns the base 64 VLQ encoded value. + */ +exports.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; +}; + +/** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ +exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; +}; diff --git a/node_modules/source-map/lib/base64.js b/node_modules/source-map/lib/base64.js new file mode 100644 index 0000000..8aa86b3 --- /dev/null +++ b/node_modules/source-map/lib/base64.js @@ -0,0 +1,67 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + +/** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ +exports.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); +}; + +/** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ +exports.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; +}; diff --git a/node_modules/source-map/lib/binary-search.js b/node_modules/source-map/lib/binary-search.js new file mode 100644 index 0000000..010ac94 --- /dev/null +++ b/node_modules/source-map/lib/binary-search.js @@ -0,0 +1,111 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +exports.GREATEST_LOWER_BOUND = 1; +exports.LEAST_UPPER_BOUND = 2; + +/** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ +function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } +} + +/** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ +exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; +}; diff --git a/node_modules/source-map/lib/mapping-list.js b/node_modules/source-map/lib/mapping-list.js new file mode 100644 index 0000000..06d1274 --- /dev/null +++ b/node_modules/source-map/lib/mapping-list.js @@ -0,0 +1,79 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); + +/** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ +function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; +} + +/** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ +function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; +} + +/** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ +MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + +/** + * Add the given source mapping. + * + * @param Object aMapping + */ +MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } +}; + +/** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ +MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; +}; + +exports.MappingList = MappingList; diff --git a/node_modules/source-map/lib/quick-sort.js b/node_modules/source-map/lib/quick-sort.js new file mode 100644 index 0000000..6a7caad --- /dev/null +++ b/node_modules/source-map/lib/quick-sort.js @@ -0,0 +1,114 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +// It turns out that some (most?) JavaScript engines don't self-host +// `Array.prototype.sort`. This makes sense because C++ will likely remain +// faster than JS when doing raw CPU-intensive sorting. However, when using a +// custom comparator function, calling back and forth between the VM's C++ and +// JIT'd JS is rather slow *and* loses JIT type information, resulting in +// worse generated code for the comparator function than would be optimal. In +// fact, when sorting with a comparator, these costs outweigh the benefits of +// sorting in C++. By using our own JS-implemented Quick Sort (below), we get +// a ~3500ms mean speed-up in `bench/bench.html`. + +/** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ +function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; +} + +/** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ +function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); +} + +/** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ +function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } +} + +/** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ +exports.quickSort = function (ary, comparator) { + doQuickSort(ary, comparator, 0, ary.length - 1); +}; diff --git a/node_modules/source-map/lib/source-map-consumer.js b/node_modules/source-map/lib/source-map-consumer.js new file mode 100644 index 0000000..7b99d1d --- /dev/null +++ b/node_modules/source-map/lib/source-map-consumer.js @@ -0,0 +1,1145 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var binarySearch = require('./binary-search'); +var ArraySet = require('./array-set').ArraySet; +var base64VLQ = require('./base64-vlq'); +var quickSort = require('./quick-sort').quickSort; + +function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); +} + +SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); +} + +/** + * The version of the source mapping spec that we are consuming. + */ +SourceMapConsumer.prototype._version = 3; + +// `__generatedMappings` and `__originalMappings` are arrays that hold the +// parsed mapping coordinates from the source map's "mappings" attribute. They +// are lazily instantiated, accessed via the `_generatedMappings` and +// `_originalMappings` getters respectively, and we only parse the mappings +// and create these arrays once queried for a source location. We jump through +// these hoops because there can be many thousands of mappings, and parsing +// them is expensive, so we only want to do it if we must. +// +// Each object in the arrays is of the form: +// +// { +// generatedLine: The line number in the generated code, +// generatedColumn: The column number in the generated code, +// source: The path to the original source file that generated this +// chunk of code, +// originalLine: The line number in the original source that +// corresponds to this chunk of generated code, +// originalColumn: The column number in the original source that +// corresponds to this chunk of generated code, +// name: The name of the original symbol which generated this chunk of +// code. +// } +// +// All properties except for `generatedLine` and `generatedColumn` can be +// `null`. +// +// `_generatedMappings` is ordered by the generated positions. +// +// `_originalMappings` is ordered by the original positions. + +SourceMapConsumer.prototype.__generatedMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } +}); + +SourceMapConsumer.prototype.__originalMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } +}); + +SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + +SourceMapConsumer.GENERATED_ORDER = 1; +SourceMapConsumer.ORIGINAL_ORDER = 2; + +SourceMapConsumer.GREATEST_LOWER_BOUND = 1; +SourceMapConsumer.LEAST_UPPER_BOUND = 2; + +/** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ +SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + mappings.map(function (mapping) { + var source = mapping.source === null ? null : this._sources.at(mapping.source); + source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL); + return { + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : this._names.at(mapping.name) + }; + }, this).forEach(aCallback, context); + }; + +/** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + +exports.SourceMapConsumer = SourceMapConsumer; + +/** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ +function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; +} + +BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + +/** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ +BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; +}; + +/** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ +BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + +/** + * The version of the source mapping spec that we are consuming. + */ +BasicSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } +}); + +/** + * Provide the JIT with a nice shape / hidden class. + */ +function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; +} + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + // Because each offset is encoded relative to the previous one, + // many segments often have the same encoding. We can exploit this + // fact by caching the parsed variable length fields of each segment, + // allowing us to avoid a second parse if we encounter the same + // segment again. + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = cachedSegments[str]; + if (segment) { + index += str.length; + } else { + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + cachedSegments[str] = segment; + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + originalMappings.push(mapping); + } + } + } + + quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); + this.__generatedMappings = generatedMappings; + + quickSort(originalMappings, util.compareByOriginalPositions); + this.__originalMappings = originalMappings; + }; + +/** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ +BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + +/** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ +BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + +exports.BasicSourceMapConsumer = BasicSourceMapConsumer; + +/** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ +function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); +} + +IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + +/** + * The version of the source mapping spec that we are consuming. + */ +IndexedSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } +}); + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content) { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + +exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; diff --git a/node_modules/source-map/lib/source-map-generator.js b/node_modules/source-map/lib/source-map-generator.js new file mode 100644 index 0000000..508bcfb --- /dev/null +++ b/node_modules/source-map/lib/source-map-generator.js @@ -0,0 +1,425 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var base64VLQ = require('./base64-vlq'); +var util = require('./util'); +var ArraySet = require('./array-set').ArraySet; +var MappingList = require('./mapping-list').MappingList; + +/** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ +function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; +} + +SourceMapGenerator.prototype._version = 3; + +/** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ +SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator({ + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + }); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + +/** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ +SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + +/** + * Set the source content for a source file. + */ +SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + +/** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ +SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source) + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + +/** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ +SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + throw new Error( + 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + ); + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + throw new Error('Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + })); + } + }; + +/** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ +SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = '' + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + +SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + +/** + * Externalize the source map. + */ +SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + +/** + * Render the source map being generated to a string. + */ +SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + +exports.SourceMapGenerator = SourceMapGenerator; diff --git a/node_modules/source-map/lib/source-node.js b/node_modules/source-map/lib/source-node.js new file mode 100644 index 0000000..8bcdbe3 --- /dev/null +++ b/node_modules/source-map/lib/source-node.js @@ -0,0 +1,413 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator; +var util = require('./util'); + +// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other +// operating systems these days (capturing the result). +var REGEX_NEWLINE = /(\r?\n)/; + +// Newline character code for charCodeAt() comparisons +var NEWLINE_CODE = 10; + +// Private symbol for identifying `SourceNode`s when multiple versions of +// the source-map library are loaded. This MUST NOT CHANGE across +// versions! +var isSourceNode = "$$$isSourceNode$$$"; + +/** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ +function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); +} + +/** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ +SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + +/** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } +}; + +/** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ +SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; +}; + +/** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ +SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; +}; + +/** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ +SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + +/** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + +/** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ +SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; +}; + +/** + * Returns the string representation of this source node along with a source + * map. + */ +SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; +}; + +exports.SourceNode = SourceNode; diff --git a/node_modules/source-map/lib/util.js b/node_modules/source-map/lib/util.js new file mode 100644 index 0000000..3ca92e5 --- /dev/null +++ b/node_modules/source-map/lib/util.js @@ -0,0 +1,488 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +/** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ +function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } +} +exports.getArg = getArg; + +var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; +var dataUrlRegexp = /^data:.+\,.+$/; + +function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; +} +exports.urlParse = urlParse; + +function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; +} +exports.urlGenerate = urlGenerate; + +/** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ +function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + + var parts = path.split(/\/+/); + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; +} +exports.normalize = normalize; + +/** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ +function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; +} +exports.join = join; + +exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); +}; + +/** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ +function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); +} +exports.relative = relative; + +var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); +}()); + +function identity (s) { + return s; +} + +/** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ +function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; +} +exports.toSetString = supportsNullProto ? identity : toSetString; + +function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; +} +exports.fromSetString = supportsNullProto ? identity : fromSetString; + +function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; +} + +/** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ +function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositions = compareByOriginalPositions; + +/** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ +function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + +function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; +} + +/** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ +function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + +/** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ +function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); +} +exports.parseSourceMapInput = parseSourceMapInput; + +/** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ +function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); +} +exports.computeSourceURL = computeSourceURL; diff --git a/node_modules/source-map/package.json b/node_modules/source-map/package.json new file mode 100644 index 0000000..2466341 --- /dev/null +++ b/node_modules/source-map/package.json @@ -0,0 +1,73 @@ +{ + "name": "source-map", + "description": "Generates and consumes source maps", + "version": "0.6.1", + "homepage": "https://github.com/mozilla/source-map", + "author": "Nick Fitzgerald ", + "contributors": [ + "Tobias Koppers ", + "Duncan Beevers ", + "Stephen Crane ", + "Ryan Seddon ", + "Miles Elam ", + "Mihai Bazon ", + "Michael Ficarra ", + "Todd Wolfson ", + "Alexander Solovyov ", + "Felix Gnass ", + "Conrad Irwin ", + "usrbincc ", + "David Glasser ", + "Chase Douglas ", + "Evan Wallace ", + "Heather Arthur ", + "Hugh Kennedy ", + "David Glasser ", + "Simon Lydell ", + "Jmeas Smith ", + "Michael Z Goddard ", + "azu ", + "John Gozde ", + "Adam Kirkton ", + "Chris Montgomery ", + "J. Ryan Stinnett ", + "Jack Herrington ", + "Chris Truter ", + "Daniel Espeset ", + "Jamie Wong ", + "Eddy Bruël ", + "Hawken Rives ", + "Gilad Peleg ", + "djchie ", + "Gary Ye ", + "Nicolas Lalevée " + ], + "repository": { + "type": "git", + "url": "http://github.com/mozilla/source-map.git" + }, + "main": "./source-map.js", + "files": [ + "source-map.js", + "source-map.d.ts", + "lib/", + "dist/source-map.debug.js", + "dist/source-map.js", + "dist/source-map.min.js", + "dist/source-map.min.js.map" + ], + "engines": { + "node": ">=0.10.0" + }, + "license": "BSD-3-Clause", + "scripts": { + "test": "npm run build && node test/run-tests.js", + "build": "webpack --color", + "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" + }, + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "typings": "source-map" +} diff --git a/node_modules/source-map/source-map.d.ts b/node_modules/source-map/source-map.d.ts new file mode 100644 index 0000000..8f972b0 --- /dev/null +++ b/node_modules/source-map/source-map.d.ts @@ -0,0 +1,98 @@ +export interface StartOfSourceMap { + file?: string; + sourceRoot?: string; +} + +export interface RawSourceMap extends StartOfSourceMap { + version: string; + sources: string[]; + names: string[]; + sourcesContent?: string[]; + mappings: string; +} + +export interface Position { + line: number; + column: number; +} + +export interface LineRange extends Position { + lastColumn: number; +} + +export interface FindPosition extends Position { + // SourceMapConsumer.GREATEST_LOWER_BOUND or SourceMapConsumer.LEAST_UPPER_BOUND + bias?: number; +} + +export interface SourceFindPosition extends FindPosition { + source: string; +} + +export interface MappedPosition extends Position { + source: string; + name?: string; +} + +export interface MappingItem { + source: string; + generatedLine: number; + generatedColumn: number; + originalLine: number; + originalColumn: number; + name: string; +} + +export class SourceMapConsumer { + static GENERATED_ORDER: number; + static ORIGINAL_ORDER: number; + + static GREATEST_LOWER_BOUND: number; + static LEAST_UPPER_BOUND: number; + + constructor(rawSourceMap: RawSourceMap); + computeColumnSpans(): void; + originalPositionFor(generatedPosition: FindPosition): MappedPosition; + generatedPositionFor(originalPosition: SourceFindPosition): LineRange; + allGeneratedPositionsFor(originalPosition: MappedPosition): Position[]; + hasContentsOfAllSources(): boolean; + sourceContentFor(source: string, returnNullOnMissing?: boolean): string; + eachMapping(callback: (mapping: MappingItem) => void, context?: any, order?: number): void; +} + +export interface Mapping { + generated: Position; + original: Position; + source: string; + name?: string; +} + +export class SourceMapGenerator { + constructor(startOfSourceMap?: StartOfSourceMap); + static fromSourceMap(sourceMapConsumer: SourceMapConsumer): SourceMapGenerator; + addMapping(mapping: Mapping): void; + setSourceContent(sourceFile: string, sourceContent: string): void; + applySourceMap(sourceMapConsumer: SourceMapConsumer, sourceFile?: string, sourceMapPath?: string): void; + toString(): string; +} + +export interface CodeWithSourceMap { + code: string; + map: SourceMapGenerator; +} + +export class SourceNode { + constructor(); + constructor(line: number, column: number, source: string); + constructor(line: number, column: number, source: string, chunk?: string, name?: string); + static fromStringWithSourceMap(code: string, sourceMapConsumer: SourceMapConsumer, relativePath?: string): SourceNode; + add(chunk: string): void; + prepend(chunk: string): void; + setSourceContent(sourceFile: string, sourceContent: string): void; + walk(fn: (chunk: string, mapping: MappedPosition) => void): void; + walkSourceContents(fn: (file: string, content: string) => void): void; + join(sep: string): SourceNode; + replaceRight(pattern: string, replacement: string): SourceNode; + toString(): string; + toStringWithSourceMap(startOfSourceMap?: StartOfSourceMap): CodeWithSourceMap; +} diff --git a/node_modules/source-map/source-map.js b/node_modules/source-map/source-map.js new file mode 100644 index 0000000..bc88fe8 --- /dev/null +++ b/node_modules/source-map/source-map.js @@ -0,0 +1,8 @@ +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ +exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator; +exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer; +exports.SourceNode = require('./lib/source-node').SourceNode; diff --git a/node_modules/uglify-js/LICENSE b/node_modules/uglify-js/LICENSE new file mode 100644 index 0000000..122e8fb --- /dev/null +++ b/node_modules/uglify-js/LICENSE @@ -0,0 +1,29 @@ +UglifyJS is released under the BSD license: + +Copyright 2012-2019 (c) Mihai Bazon + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. diff --git a/node_modules/uglify-js/README.md b/node_modules/uglify-js/README.md new file mode 100644 index 0000000..ba5f2a2 --- /dev/null +++ b/node_modules/uglify-js/README.md @@ -0,0 +1,1478 @@ +UglifyJS 3 +========== + +UglifyJS is a JavaScript parser, minifier, compressor and beautifier toolkit. + +#### Note: +- `uglify-js` supports JavaScript and most language features in ECMAScript. +- For more exotic parts of ECMAScript, process your source file with transpilers + like [Babel](https://babeljs.io/) before passing onto `uglify-js`. +- `uglify-js@3` has a simplified [API](#api-reference) and [CLI](#command-line-usage) + that is not backwards compatible with [`uglify-js@2`](https://github.com/mishoo/UglifyJS/tree/v2.x). + +Install +------- + +First make sure you have installed the latest version of [node.js](http://nodejs.org/) +(You may need to restart your computer after this step). + +From NPM for use as a command line app: + + npm install uglify-js -g + +From NPM for programmatic use: + + npm install uglify-js + +# Command line usage + + uglifyjs [input files] [options] + +UglifyJS can take multiple input files. It's recommended that you pass the +input files first, then pass the options. UglifyJS will parse input files +in sequence and apply any compression options. The files are parsed in the +same global scope, that is, a reference from a file to some +variable/function declared in another file will be matched properly. + +If no input file is specified, UglifyJS will read from STDIN. + +If you wish to pass your options before the input files, separate the two with +a double dash to prevent input files being used as option arguments: + + uglifyjs --compress --mangle -- input.js + +### Command line options + +``` + -h, --help Print usage information. + `--help options` for details on available options. + -V, --version Print version number. + -p, --parse Specify parser options: + `acorn` Use Acorn for parsing. + `bare_returns` Allow return outside of functions. + Useful when minifying CommonJS + modules and Userscripts that may + be anonymous function wrapped (IIFE) + by the .user.js engine `caller`. + `spidermonkey` Assume input files are SpiderMonkey + AST format (as JSON). + -c, --compress [options] Enable compressor/specify compressor options: + `pure_funcs` List of functions that can be safely + removed when their return values are + not used. + -m, --mangle [options] Mangle names/specify mangler options: + `reserved` List of names that should not be mangled. + --mangle-props [options] Mangle properties/specify mangler options: + `builtins` Mangle property names that overlaps + with standard JavaScript globals. + `debug` Add debug prefix and suffix. + `domprops` Mangle property names that overlaps + with DOM properties. + `keep_quoted` Only mangle unquoted properties. + `regex` Only mangle matched property names. + `reserved` List of names that should not be mangled. + -b, --beautify [options] Beautify output/specify output options: + `beautify` Enabled with `--beautify` by default. + `preamble` Preamble to prepend to the output. You + can use this to insert a comment, for + example for licensing information. + This will not be parsed, but the source + map will adjust for its presence. + `quote_style` Quote style: + 0 - auto + 1 - single + 2 - double + 3 - original + `wrap_iife` Wrap IIFEs in parentheses. Note: you may + want to disable `negate_iife` under + compressor options. + -O, --output-opts [options] Specify output options (`beautify` disabled by default). + -o, --output Output file path (default STDOUT). Specify `ast` or + `spidermonkey` to write UglifyJS or SpiderMonkey AST + as JSON to STDOUT respectively. + --annotations Process and preserve comment annotations. + (`/*@__PURE__*/` or `/*#__PURE__*/`) + --no-annotations Ignore and discard comment annotations. + --comments [filter] Preserve copyright comments in the output. By + default this works like Google Closure, keeping + JSDoc-style comments that contain "@license" or + "@preserve". You can optionally pass one of the + following arguments to this flag: + - "all" to keep all comments + - a valid JS RegExp like `/foo/` or `/^!/` to + keep only matching comments. + Note that currently not *all* comments can be + kept when compression is on, because of dead + code removal or cascading statements into + sequences. + --config-file Read `minify()` options from JSON file. + -d, --define [=value] Global definitions. + -e, --enclose [arg[:value]] Embed everything in a big function, with configurable + argument(s) & value(s). + --expression Parse a single expression, rather than a program + (for parsing JSON). + --ie Support non-standard Internet Explorer. + Equivalent to setting `ie: true` in `minify()` + for `compress`, `mangle` and `output` options. + By default UglifyJS will not try to be IE-proof. + --keep-fargs Do not mangle/drop function arguments. + --keep-fnames Do not mangle/drop function names. Useful for + code relying on Function.prototype.name. + --module Process input as ES module (implies --toplevel) + --name-cache File to hold mangled name mappings. + --self Build UglifyJS as a library (implies --wrap UglifyJS) + --source-map [options] Enable source map/specify source map options: + `base` Path to compute relative paths from input files. + `content` Input source map, useful if you're compressing + JS that was generated from some other original + code. Specify "inline" if the source map is + included within the sources. + `filename` Filename and/or location of the output source + (sets `file` attribute in source map). + `includeSources` Pass this flag if you want to include + the content of source files in the + source map as sourcesContent property. + `names` Include symbol names in the source map. + `root` Path to the original source to be included in + the source map. + `url` If specified, path to the source map to append in + `//# sourceMappingURL`. + --timings Display operations run time on STDERR. + --toplevel Compress and/or mangle variables in top level scope. + --v8 Support non-standard Chrome & Node.js + Equivalent to setting `v8: true` in `minify()` + for `mangle` and `output` options. + By default UglifyJS will not try to be v8-proof. + --verbose Print diagnostic messages. + --warn Print warning messages. + --webkit Support non-standard Safari/Webkit. + Equivalent to setting `webkit: true` in `minify()` + for `compress`, `mangle` and `output` options. + By default UglifyJS will not try to be Safari-proof. + --wrap Embed everything in a big function, making the + “exports” and “global” variables available. You + need to pass an argument to this option to + specify the name that your module will take + when included in, say, a browser. +``` + +Specify `--output` (`-o`) to declare the output file. Otherwise the output +goes to STDOUT. + +## CLI source map options + +UglifyJS can generate a source map file, which is highly useful for +debugging your compressed JavaScript. To get a source map, pass +`--source-map --output output.js` (source map will be written out to +`output.js.map`). + +Additional options: + +- `--source-map "filename=''"` to specify the name of the source map. The value of + `filename` is only used to set `file` attribute (see [the spec][sm-spec]) + in source map file. + +- `--source-map "root=''"` to pass the URL where the original files can be found. + +- `--source-map "names=false"` to omit symbol names if you want to reduce size + of the source map file. + +- `--source-map "url=''"` to specify the URL where the source map can be found. + Otherwise UglifyJS assumes HTTP `X-SourceMap` is being used and will omit the + `//# sourceMappingURL=` directive. + +For example: + + uglifyjs js/file1.js js/file2.js \ + -o foo.min.js -c -m \ + --source-map "root='http://foo.com/src',url='foo.min.js.map'" + +The above will compress and mangle `file1.js` and `file2.js`, will drop the +output in `foo.min.js` and the source map in `foo.min.js.map`. The source +mapping will refer to `http://foo.com/src/js/file1.js` and +`http://foo.com/src/js/file2.js` (in fact it will list `http://foo.com/src` +as the source map root, and the original files as `js/file1.js` and +`js/file2.js`). + +### Composed source map + +When you're compressing JS code that was output by a compiler such as +CoffeeScript, mapping to the JS code won't be too helpful. Instead, you'd +like to map back to the original code (i.e. CoffeeScript). UglifyJS has an +option to take an input source map. Assuming you have a mapping from +CoffeeScript → compiled JS, UglifyJS can generate a map from CoffeeScript → +compressed JS by mapping every token in the compiled JS to its original +location. + +To use this feature pass `--source-map "content='/path/to/input/source.map'"` +or `--source-map "content=inline"` if the source map is included inline with +the sources. + +## CLI compress options + +You need to pass `--compress` (`-c`) to enable the compressor. Optionally +you can pass a comma-separated list of [compress options](#compress-options). + +Options are in the form `foo=bar`, or just `foo` (the latter implies +a boolean option that you want to set `true`; it's effectively a +shortcut for `foo=true`). + +Example: + + uglifyjs file.js -c toplevel,sequences=false + +## CLI mangle options + +To enable the mangler you need to pass `--mangle` (`-m`). The following +(comma-separated) options are supported: + +- `eval` (default: `false`) — mangle names visible in scopes where `eval` or + `with` are used. + +- `reserved` (default: `[]`) — when mangling is enabled but you want to + prevent certain names from being mangled, you can declare those names with + `--mangle reserved` — pass a comma-separated list of names. For example: + + uglifyjs ... -m reserved=['$','require','exports'] + + to prevent the `require`, `exports` and `$` names from being changed. + +### CLI mangling property names (`--mangle-props`) + +**Note:** THIS WILL PROBABLY BREAK YOUR CODE. Mangling property names +is a separate step, different from variable name mangling. Pass +`--mangle-props` to enable it. It will mangle all properties in the +input code with the exception of built in DOM properties and properties +in core JavaScript classes. For example: + +```javascript +// example.js +var x = { + baz_: 0, + foo_: 1, + calc: function() { + return this.foo_ + this.baz_; + } +}; +x.bar_ = 2; +x["baz_"] = 3; +console.log(x.calc()); +``` +Mangle all properties (except for JavaScript `builtins`): +```bash +$ uglifyjs example.js -c -m --mangle-props +``` +```javascript +var x={o:0,_:1,l:function(){return this._+this.o}};x.t=2,x.o=3,console.log(x.l()); +``` +Mangle all properties except for `reserved` properties: +```bash +$ uglifyjs example.js -c -m --mangle-props reserved=[foo_,bar_] +``` +```javascript +var x={o:0,foo_:1,_:function(){return this.foo_+this.o}};x.bar_=2,x.o=3,console.log(x._()); +``` +Mangle all properties matching a `regex`: +```bash +$ uglifyjs example.js -c -m --mangle-props regex=/_$/ +``` +```javascript +var x={o:0,_:1,calc:function(){return this._+this.o}};x.l=2,x.o=3,console.log(x.calc()); +``` + +Combining mangle properties options: +```bash +$ uglifyjs example.js -c -m --mangle-props regex=/_$/,reserved=[bar_] +``` +```javascript +var x={o:0,_:1,calc:function(){return this._+this.o}};x.bar_=2,x.o=3,console.log(x.calc()); +``` + +In order for this to be of any use, we avoid mangling standard JS names by +default (`--mangle-props builtins` to override). + +A default exclusion file is provided in `tools/domprops.json` which should +cover most standard JS and DOM properties defined in various browsers. Pass +`--mangle-props domprops` to disable this feature. + +A regular expression can be used to define which property names should be +mangled. For example, `--mangle-props regex=/^_/` will only mangle property +names that start with an underscore. + +When you compress multiple files using this option, in order for them to +work together in the end we need to ensure somehow that one property gets +mangled to the same name in all of them. For this, pass `--name-cache filename.json` +and UglifyJS will maintain these mappings in a file which can then be reused. +It should be initially empty. Example: + +```bash +$ rm -f /tmp/cache.json # start fresh +$ uglifyjs file1.js file2.js --mangle-props --name-cache /tmp/cache.json -o part1.js +$ uglifyjs file3.js file4.js --mangle-props --name-cache /tmp/cache.json -o part2.js +``` + +Now, `part1.js` and `part2.js` will be consistent with each other in terms +of mangled property names. + +Using the name cache is not necessary if you compress all your files in a +single call to UglifyJS. + +### Mangling unquoted names (`--mangle-props keep_quoted`) + +Using quoted property name (`o["foo"]`) reserves the property name (`foo`) +so that it is not mangled throughout the entire script even when used in an +unquoted style (`o.foo`). Example: + +```javascript +// stuff.js +var o = { + "foo": 1, + bar: 3, +}; +o.foo += o.bar; +console.log(o.foo); +``` +```bash +$ uglifyjs stuff.js --mangle-props keep_quoted -c -m +``` +```javascript +var o={foo:1,o:3};o.foo+=o.o,console.log(o.foo); +``` + +If the minified output will be processed again by UglifyJS, consider specifying +`keep_quoted_props` so the same property names are preserved: + +```bash +$ uglifyjs stuff.js --mangle-props keep_quoted -c -m -O keep_quoted_props +``` +```javascript +var o={"foo":1,o:3};o.foo+=o.o,console.log(o.foo); +``` + +### Debugging property name mangling + +You can also pass `--mangle-props debug` in order to mangle property names +without completely obscuring them. For example the property `o.foo` +would mangle to `o._$foo$_` with this option. This allows property mangling +of a large codebase while still being able to debug the code and identify +where mangling is breaking things. + +```bash +$ uglifyjs stuff.js --mangle-props debug -c -m +``` +```javascript +var o={_$foo$_:1,_$bar$_:3};o._$foo$_+=o._$bar$_,console.log(o._$foo$_); +``` + +You can also pass a custom suffix using `--mangle-props debug=XYZ`. This would then +mangle `o.foo` to `o._$foo$XYZ_`. You can change this each time you compile a +script to identify how a property got mangled. One technique is to pass a +random number on every compile to simulate mangling changing with different +inputs (e.g. as you update the input script with new properties), and to help +identify mistakes like writing mangled keys to storage. + + +# API Reference + +Assuming installation via NPM, you can load UglifyJS in your application +like this: +```javascript +var UglifyJS = require("uglify-js"); +``` + +There is a single high level function, **`minify(code, options)`**, +which will perform all minification [phases](#minify-options) in a configurable +manner. By default `minify()` will enable the options [`compress`](#compress-options) +and [`mangle`](#mangle-options). Example: +```javascript +var code = "function add(first, second) { return first + second; }"; +var result = UglifyJS.minify(code); +console.log(result.error); // runtime error, or `undefined` if no error +console.log(result.code); // minified output: function add(n,d){return n+d} +``` + +You can `minify` more than one JavaScript file at a time by using an object +for the first argument where the keys are file names and the values are source +code: +```javascript +var code = { + "file1.js": "function add(first, second) { return first + second; }", + "file2.js": "console.log(add(1 + 2, 3 + 4));" +}; +var result = UglifyJS.minify(code); +console.log(result.code); +// function add(d,n){return d+n}console.log(add(3,7)); +``` + +The `toplevel` option: +```javascript +var code = { + "file1.js": "function add(first, second) { return first + second; }", + "file2.js": "console.log(add(1 + 2, 3 + 4));" +}; +var options = { toplevel: true }; +var result = UglifyJS.minify(code, options); +console.log(result.code); +// console.log(3+7); +``` + +The `nameCache` option: +```javascript +var options = { + mangle: { + toplevel: true, + }, + nameCache: {} +}; +var result1 = UglifyJS.minify({ + "file1.js": "function add(first, second) { return first + second; }" +}, options); +var result2 = UglifyJS.minify({ + "file2.js": "console.log(add(1 + 2, 3 + 4));" +}, options); +console.log(result1.code); +// function n(n,r){return n+r} +console.log(result2.code); +// console.log(n(3,7)); +``` + +You may persist the name cache to the file system in the following way: +```javascript +var cacheFileName = "/tmp/cache.json"; +var options = { + mangle: { + properties: true, + }, + nameCache: JSON.parse(fs.readFileSync(cacheFileName, "utf8")) +}; +fs.writeFileSync("part1.js", UglifyJS.minify({ + "file1.js": fs.readFileSync("file1.js", "utf8"), + "file2.js": fs.readFileSync("file2.js", "utf8") +}, options).code, "utf8"); +fs.writeFileSync("part2.js", UglifyJS.minify({ + "file3.js": fs.readFileSync("file3.js", "utf8"), + "file4.js": fs.readFileSync("file4.js", "utf8") +}, options).code, "utf8"); +fs.writeFileSync(cacheFileName, JSON.stringify(options.nameCache), "utf8"); +``` + +An example of a combination of `minify()` options: +```javascript +var code = { + "file1.js": "function add(first, second) { return first + second; }", + "file2.js": "console.log(add(1 + 2, 3 + 4));" +}; +var options = { + toplevel: true, + compress: { + global_defs: { + "@console.log": "alert" + }, + passes: 2 + }, + output: { + beautify: false, + preamble: "/* uglified */" + } +}; +var result = UglifyJS.minify(code, options); +console.log(result.code); +// /* uglified */ +// alert(10);" +``` + +To produce warnings: +```javascript +var code = "function f(){ var u; return 2 + 3; }"; +var options = { warnings: true }; +var result = UglifyJS.minify(code, options); +console.log(result.error); // runtime error, `undefined` in this case +console.log(result.warnings); // [ 'Dropping unused variable u [0:1,18]' ] +console.log(result.code); // function f(){return 5} +``` + +An error example: +```javascript +var result = UglifyJS.minify({"foo.js" : "if (0) else console.log(1);"}); +console.log(JSON.stringify(result.error)); +// {"message":"Unexpected token: keyword (else)","filename":"foo.js","line":1,"col":7,"pos":7} +``` +Note: unlike `uglify-js@2.x`, the `3.x` API does not throw errors. To +achieve a similar effect one could do the following: +```javascript +var result = UglifyJS.minify(code, options); +if (result.error) throw result.error; +``` + +## Minify options + +- `annotations` — pass `false` to ignore all comment annotations and elide them + from output. Useful when, for instance, external tools incorrectly applied + `/*@__PURE__*/` or `/*#__PURE__*/`. Pass `true` to both compress and retain + comment annotations in output to allow for further processing downstream. + +- `compress` (default: `{}`) — pass `false` to skip compressing entirely. + Pass an object to specify custom [compress options](#compress-options). + +- `expression` (default: `false`) — parse as a single expression, e.g. JSON. + +- `ie` (default: `false`) — enable workarounds for Internet Explorer bugs. + +- `keep_fargs` (default: `false`) — pass `true` to prevent discarding or mangling + of function arguments. + +- `keep_fnames` (default: `false`) — pass `true` to prevent discarding or mangling + of function names. Useful for code relying on `Function.prototype.name`. + +- `mangle` (default: `true`) — pass `false` to skip mangling names, or pass + an object to specify [mangle options](#mangle-options) (see below). + + - `mangle.properties` (default: `false`) — a subcategory of the mangle option. + Pass an object to specify custom [mangle property options](#mangle-properties-options). + +- `module` (default: `false`) — set to `true` if you wish to process input as + ES module, i.e. implicit `"use strict";` and support for top-level `await`, + alongside with `toplevel` enabled. + +- `nameCache` (default: `null`) — pass an empty object `{}` or a previously + used `nameCache` object if you wish to cache mangled variable and + property names across multiple invocations of `minify()`. Note: this is + a read/write property. `minify()` will read the name cache state of this + object and update it during minification so that it may be + reused or externally persisted by the user. + +- `output` (default: `null`) — pass an object if you wish to specify + additional [output options](#output-options). The defaults are optimized + for best compression. + +- `parse` (default: `{}`) — pass an object if you wish to specify some + additional [parse options](#parse-options). + +- `sourceMap` (default: `false`) — pass an object if you wish to specify + [source map options](#source-map-options). + +- `toplevel` (default: `false`) — set to `true` if you wish to enable top level + variable and function name mangling and to drop unused variables and functions. + +- `v8` (default: `false`) — enable workarounds for Chrome & Node.js bugs. + +- `warnings` (default: `false`) — pass `true` to return compressor warnings + in `result.warnings`. Use the value `"verbose"` for more detailed warnings. + +- `webkit` (default: `false`) — enable workarounds for Safari/WebKit bugs. + PhantomJS users should set this option to `true`. + +## Minify options structure + +```javascript +{ + parse: { + // parse options + }, + compress: { + // compress options + }, + mangle: { + // mangle options + + properties: { + // mangle property options + } + }, + output: { + // output options + }, + sourceMap: { + // source map options + }, + nameCache: null, // or specify a name cache object + toplevel: false, + warnings: false, +} +``` + +### Source map options + +To generate a source map: +```javascript +var result = UglifyJS.minify({"file1.js": "var a = function() {};"}, { + sourceMap: { + filename: "out.js", + url: "out.js.map" + } +}); +console.log(result.code); // minified output +console.log(result.map); // source map +``` + +Note that the source map is not saved in a file, it's just returned in +`result.map`. The value passed for `sourceMap.url` is only used to set +`//# sourceMappingURL=out.js.map` in `result.code`. The value of +`filename` is only used to set `file` attribute (see [the spec][sm-spec]) +in source map file. + +You can set option `sourceMap.url` to be `"inline"` and source map will +be appended to code. + +You can also specify sourceRoot property to be included in source map: +```javascript +var result = UglifyJS.minify({"file1.js": "var a = function() {};"}, { + sourceMap: { + root: "http://example.com/src", + url: "out.js.map" + } +}); +``` + +If you're compressing compiled JavaScript and have a source map for it, you +can use `sourceMap.content`: +```javascript +var result = UglifyJS.minify({"compiled.js": "compiled code"}, { + sourceMap: { + content: "content from compiled.js.map", + url: "minified.js.map" + } +}); +// same as before, it returns `code` and `map` +``` + +If you're using the `X-SourceMap` header instead, you can just omit `sourceMap.url`. + +If you wish to reduce file size of the source map, set option `sourceMap.names` +to be `false` and all symbol names will be omitted. + +## Parse options + +- `bare_returns` (default: `false`) — support top level `return` statements + +- `html5_comments` (default: `true`) — process HTML comment as workaround for + browsers which do not recognize `` in strings + +- `keep_quoted_props` (default: `false`) — when turned on, prevents stripping + quotes from property names in object literals. + +- `max_line_len` (default: `false`) — maximum line length (for uglified code) + +- `preamble` (default: `null`) — when passed it must be a string and + it will be prepended to the output literally. The source map will + adjust for this text. Can be used to insert a comment containing + licensing information, for example. + +- `preserve_line` (default: `false`) — pass `true` to retain line numbering on + a best effort basis. + +- `quote_keys` (default: `false`) — pass `true` to quote all keys in literal + objects + +- `quote_style` (default: `0`) — preferred quote style for strings (affects + quoted property names and directives as well): + - `0` — prefers double quotes, switches to single quotes when there are + more double quotes in the string itself. `0` is best for gzip size. + - `1` — always use single quotes + - `2` — always use double quotes + - `3` — always use the original quotes + +- `semicolons` (default: `true`) — separate statements with semicolons. If + you pass `false` then whenever possible we will use a newline instead of a + semicolon, leading to more readable output of uglified code (size before + gzip could be smaller; size after gzip insignificantly larger). + +- `shebang` (default: `true`) — preserve shebang `#!` in preamble (bash scripts) + +- `width` (default: `80`) — only takes effect when beautification is on, this + specifies an (orientative) line width that the beautifier will try to + obey. It refers to the width of the line text (excluding indentation). + It doesn't work very well currently, but it does make the code generated + by UglifyJS more readable. + +- `wrap_iife` (default: `false`) — pass `true` to wrap immediately invoked + function expressions. See + [#640](https://github.com/mishoo/UglifyJS/issues/640) for more details. + +# Miscellaneous + +### Keeping copyright notices or other comments + +You can pass `--comments` to retain certain comments in the output. By +default it will keep JSDoc-style comments that contain "@preserve", +"@license" or "@cc_on" (conditional compilation for IE). You can pass +`--comments all` to keep all the comments, or a valid JavaScript regexp to +keep only comments that match this regexp. For example `--comments /^!/` +will keep comments like `/*! Copyright Notice */`. + +Note, however, that there might be situations where comments are lost. For +example: +```javascript +function f() { + /** @preserve Foo Bar */ + function g() { + // this function is never called + } + return something(); +} +``` + +Even though it has "@preserve", the comment will be lost because the inner +function `g` (which is the AST node to which the comment is attached to) is +discarded by the compressor as not referenced. + +The safest comments where to place copyright information (or other info that +needs to be kept in the output) are comments attached to toplevel nodes. + +### The `unsafe` `compress` option + +It enables some transformations that *might* break code logic in certain +contrived cases, but should be fine for most code. You might want to try it +on your own code, it should reduce the minified size. Here's what happens +when this flag is on: + +- `new Array(1, 2, 3)` or `Array(1, 2, 3)` → `[ 1, 2, 3 ]` +- `new Object()` → `{}` +- `String(exp)` or `exp.toString()` → `"" + exp` +- `new Object/RegExp/Function/Error/Array (...)` → we discard the `new` + +### Conditional compilation + +You can use the `--define` (`-d`) switch in order to declare global +variables that UglifyJS will assume to be constants (unless defined in +scope). For example if you pass `--define DEBUG=false` then, coupled with +dead code removal UglifyJS will discard the following from the output: +```javascript +if (DEBUG) { + console.log("debug stuff"); +} +``` + +You can specify nested constants in the form of `--define env.DEBUG=false`. + +UglifyJS will warn about the condition being always false and about dropping +unreachable code; for now there is no option to turn off only this specific +warning, you can pass `warnings=false` to turn off *all* warnings. + +Another way of doing that is to declare your globals as constants in a +separate file and include it into the build. For example you can have a +`build/defines.js` file with the following: +```javascript +var DEBUG = false; +var PRODUCTION = true; +// etc. +``` + +and build your code like this: + + uglifyjs build/defines.js js/foo.js js/bar.js... -c + +UglifyJS will notice the constants and, since they cannot be altered, it +will evaluate references to them to the value itself and drop unreachable +code as usual. The build will contain the `const` declarations if you use +them. If you are targeting < ES6 environments which does not support `const`, +using `var` with `reduce_vars` (enabled by default) should suffice. + +### Conditional compilation API + +You can also use conditional compilation via the programmatic API. With the difference that the +property name is `global_defs` and is a compressor property: + +```javascript +var result = UglifyJS.minify(fs.readFileSync("input.js", "utf8"), { + compress: { + dead_code: true, + global_defs: { + DEBUG: false + } + } +}); +``` + +To replace an identifier with an arbitrary non-constant expression it is +necessary to prefix the `global_defs` key with `"@"` to instruct UglifyJS +to parse the value as an expression: +```javascript +UglifyJS.minify("alert('hello');", { + compress: { + global_defs: { + "@alert": "console.log" + } + } +}).code; +// returns: 'console.log("hello");' +``` + +Otherwise it would be replaced as string literal: +```javascript +UglifyJS.minify("alert('hello');", { + compress: { + global_defs: { + "alert": "console.log" + } + } +}).code; +// returns: '"console.log"("hello");' +``` + +### Using native Uglify AST with `minify()` +```javascript +// example: parse only, produce native Uglify AST + +var result = UglifyJS.minify(code, { + parse: {}, + compress: false, + mangle: false, + output: { + ast: true, + code: false // optional - faster if false + } +}); + +// result.ast contains native Uglify AST +``` +```javascript +// example: accept native Uglify AST input and then compress and mangle +// to produce both code and native AST. + +var result = UglifyJS.minify(ast, { + compress: {}, + mangle: {}, + output: { + ast: true, + code: true // optional - faster if false + } +}); + +// result.ast contains native Uglify AST +// result.code contains the minified code in string form. +``` + +### Working with Uglify AST + +Transversal and transformation of the native AST can be performed through +[`TreeWalker`](https://github.com/mishoo/UglifyJS/blob/master/lib/ast.js) and +[`TreeTransformer`](https://github.com/mishoo/UglifyJS/blob/master/lib/transform.js) +respectively. + +### ESTree / SpiderMonkey AST + +UglifyJS has its own abstract syntax tree format; for +[practical reasons](http://lisperator.net/blog/uglifyjs-why-not-switching-to-spidermonkey-ast/) +we can't easily change to using the SpiderMonkey AST internally. However, +UglifyJS now has a converter which can import a SpiderMonkey AST. + +For example [Acorn][acorn] is a super-fast parser that produces a +SpiderMonkey AST. It has a small CLI utility that parses one file and dumps +the AST in JSON on the standard output. To use UglifyJS to mangle and +compress that: + + acorn file.js | uglifyjs -p spidermonkey -m -c + +The `-p spidermonkey` option tells UglifyJS that all input files are not +JavaScript, but JS code described in SpiderMonkey AST in JSON. Therefore we +don't use our own parser in this case, but just transform that AST into our +internal AST. + +### Use Acorn for parsing + +More for fun, I added the `-p acorn` option which will use Acorn to do all +the parsing. If you pass this option, UglifyJS will `require("acorn")`. + +Acorn is really fast (e.g. 250ms instead of 380ms on some 650K code), but +converting the SpiderMonkey tree that Acorn produces takes another 150ms so +in total it's a bit more than just using UglifyJS's own parser. + +[acorn]: https://github.com/ternjs/acorn +[sm-spec]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k + +### Uglify Fast Minify Mode + +It's not well known, but whitespace removal and symbol mangling accounts +for 95% of the size reduction in minified code for most JavaScript - not +elaborate code transforms. One can simply disable `compress` to speed up +Uglify builds by 3 to 5 times. + +| d3.js | minify size | gzip size | minify time (seconds) | +| --- | ---: | ---: | ---: | +| original | 511,371 | 119,932 | - | +| uglify-js@3.13.0 mangle=false, compress=false | 363,988 | 95,695 | 0.56 | +| uglify-js@3.13.0 mangle=true, compress=false | 253,305 | 81,281 | 0.99 | +| uglify-js@3.13.0 mangle=true, compress=true | 244,436 | 79,854 | 5.30 | + +To enable fast minify mode from the CLI use: +``` +uglifyjs file.js -m +``` +To enable fast minify mode with the API use: +```javascript +UglifyJS.minify(code, { compress: false, mangle: true }); +``` + +### Source maps and debugging + +Various `compress` transforms that simplify, rearrange, inline and remove code +are known to have an adverse effect on debugging with source maps. This is +expected as code is optimized and mappings are often simply not possible as +some code no longer exists. For highest fidelity in source map debugging +disable the Uglify `compress` option and just use `mangle`. + +### Compiler assumptions + +To allow for better optimizations, the compiler makes various assumptions: + +- The code does not rely on preserving its runtime performance characteristics. + Typically uglified code will run faster due to less instructions and easier + inlining, but may be slower on rare occasions for a specific platform, e.g. + see [`reduce_funcs`](#compress-options). +- `.toString()` and `.valueOf()` don't have side effects, and for built-in + objects they have not been overridden. +- `undefined`, `NaN` and `Infinity` have not been externally redefined. +- `arguments.callee`, `arguments.caller` and `Function.prototype.caller` are not used. +- The code doesn't expect the contents of `Function.prototype.toString()` or + `Error.prototype.stack` to be anything in particular. +- Getting and setting properties on a plain object does not cause other side effects + (using `.watch()` or `Proxy`). +- Object properties can be added, removed and modified (not prevented with + `Object.defineProperty()`, `Object.defineProperties()`, `Object.freeze()`, + `Object.preventExtensions()` or `Object.seal()`). +- If array destructuring is present, index-like properties in `Array.prototype` + have not been overridden: + ```javascript + Object.prototype[0] = 42; + var [ a ] = []; + var { 0: b } = {}; + // 42 undefined + console.log([][0], a); + // 42 42 + console.log({}[0], b); + ``` +- Earlier versions of JavaScript will throw `SyntaxError` with the following: + ```javascript + ({ + p: 42, + get p() {}, + }); + // SyntaxError: Object literal may not have data and accessor property with + // the same name + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Iteration order of keys over an object which contains spread syntax in later + versions of Chrome and Node.js may be altered. +- When `toplevel` is enabled, UglifyJS effectively assumes input code is wrapped + within `function(){ ... }`, thus forbids aliasing of declared global variables: + ```javascript + A = "FAIL"; + var B = "FAIL"; + // can be `global`, `self`, `window` etc. + var top = function() { + return this; + }(); + // "PASS" + top.A = "PASS"; + console.log(A); + // "FAIL" after compress and/or mangle + top.B = "PASS"; + console.log(B); + ``` +- Use of `arguments` alongside destructuring as function parameters, e.g. + `function({}, arguments) {}` will result in `SyntaxError` in earlier versions + of Chrome and Node.js - UglifyJS may modify the input which in turn may + suppress those errors. +- Earlier versions of Chrome and Node.js will throw `ReferenceError` with the + following: + ```javascript + var a; + try { + throw 42; + } catch ({ + [a]: b, + // ReferenceError: a is not defined + }) { + let a; + } + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Later versions of JavaScript will throw `SyntaxError` with the following: + ```javascript + a => { + let a; + }; + // SyntaxError: Identifier 'a' has already been declared + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Later versions of JavaScript will throw `SyntaxError` with the following: + ```javascript + try { + // ... + } catch ({ message: a }) { + var a; + } + // SyntaxError: Identifier 'a' has already been declared + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Some versions of Chrome and Node.js will throw `ReferenceError` with the + following: + ```javascript + console.log(((a, b = function() { + return a; + // ReferenceError: a is not defined + }()) => b)()); + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Some arithmetic operations with `BigInt` may throw `TypeError`: + ```javascript + 1n + 1; + // TypeError: can't convert BigInt to number + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Some versions of JavaScript will throw `SyntaxError` with the + following: + ```javascript + console.log(String.raw`\uFo`); + // SyntaxError: Invalid Unicode escape sequence + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Some versions of JavaScript will throw `SyntaxError` with the + following: + ```javascript + try {} catch (e) { + for (var e of []); + } + // SyntaxError: Identifier 'e' has already been declared + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Some versions of Chrome and Node.js will give incorrect results with the + following: + ```javascript + console.log({ + ...{ + set 42(v) {}, + 42: "PASS", + }, + }); + // Expected: { '42': 'PASS' } + // Actual: { '42': undefined } + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Later versions of JavaScript will throw `SyntaxError` with the following: + ```javascript + var await; + class A { + static p = await; + } + // SyntaxError: Unexpected reserved word + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Later versions of JavaScript will throw `SyntaxError` with the following: + ```javascript + var async; + for (async of []); + // SyntaxError: The left-hand side of a for-of loop may not be 'async'. + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Some versions of Chrome and Node.js will give incorrect results with the + following: + ```javascript + console.log({ + ...console, + get 42() { + return "FAIL"; + }, + [42]: "PASS", + }[42], { + ...console, + get 42() { + return "FAIL"; + }, + 42: "PASS", + }[42]); + // Expected: "PASS PASS" + // Actual: "PASS FAIL" + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Earlier versions of JavaScript will throw `TypeError` with the following: + ```javascript + (function() { + { + const a = "foo"; + } + { + const a = "bar"; + } + })(); + // TypeError: const 'a' has already been declared + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Later versions of Chrome and Node.js will give incorrect results with the + following: + ```javascript + try { + class A { + static 42; + static get 42() {} + } + console.log("PASS"); + } catch (e) { + console.log("FAIL"); + } + // Expected: "PASS" + // Actual: "FAIL" + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Some versions of Chrome and Node.js will give incorrect results with the + following: + ```javascript + (async function(a) { + (function() { + var b = await => console.log("PASS"); + b(); + })(); + })().catch(console.error); + // Expected: "PASS" + // Actual: SyntaxError: Unexpected reserved word + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Later versions of Chrome and Node.js will give incorrect results with the + following: + ```javascript + try { + f(); + function f() { + throw 42; + } + } catch (e) { + console.log(typeof f, e); + } + // Expected: "function 42" + // Actual: "undefined 42" + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Later versions of JavaScript will throw `SyntaxError` with the following: + ```javascript + "use strict"; + console.log(function f() { + return f = "PASS"; + }()); + // Expected: "PASS" + // Actual: TypeError: invalid assignment to const 'f' + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Adobe ExtendScript will give incorrect results with the following: + ```javascript + alert(true ? "PASS" : false ? "FAIL" : null); + // Expected: "PASS" + // Actual: "FAIL" + ``` + UglifyJS may modify the input which in turn may suppress those errors. +- Adobe ExtendScript will give incorrect results with the following: + ```javascript + alert(42 ? null ? "FAIL" : "PASS" : "FAIL"); + // Expected: "PASS" + // Actual: SyntaxError: Expected: : + ``` + UglifyJS may modify the input which in turn may suppress those errors. diff --git a/node_modules/uglify-js/bin/uglifyjs b/node_modules/uglify-js/bin/uglifyjs new file mode 100755 index 0000000..49e5185 --- /dev/null +++ b/node_modules/uglify-js/bin/uglifyjs @@ -0,0 +1,605 @@ +#! /usr/bin/env node +// -*- js -*- + +"use strict"; + +require("../tools/tty"); + +var fs = require("fs"); +var info = require("../package.json"); +var path = require("path"); +var UglifyJS = require("../tools/node"); + +var skip_keys = [ "cname", "fixed", "in_arg", "inlined", "length_read", "parent_scope", "redef", "scope", "unused" ]; +var truthy_keys = [ "optional", "pure", "terminal", "uses_arguments", "uses_eval", "uses_with" ]; + +var files = {}; +var options = {}; +var short_forms = { + b: "beautify", + c: "compress", + d: "define", + e: "enclose", + h: "help", + m: "mangle", + o: "output", + O: "output-opts", + p: "parse", + v: "version", + V: "version", +}; +var args = process.argv.slice(2); +var paths = []; +var output, nameCache; +var specified = {}; +while (args.length) { + var arg = args.shift(); + if (arg[0] != "-") { + paths.push(arg); + } else if (arg == "--") { + paths = paths.concat(args); + break; + } else if (arg[1] == "-") { + process_option(arg.slice(2)); + } else [].forEach.call(arg.slice(1), function(letter, index, arg) { + if (!(letter in short_forms)) fatal("invalid option -" + letter); + process_option(short_forms[letter], index + 1 < arg.length); + }); +} + +function process_option(name, no_value) { + specified[name] = true; + switch (name) { + case "help": + switch (read_value()) { + case "ast": + print(UglifyJS.describe_ast()); + break; + case "options": + var text = []; + var toplevels = []; + var padding = ""; + var defaults = UglifyJS.default_options(); + for (var name in defaults) { + var option = defaults[name]; + if (option && typeof option == "object") { + text.push("--" + ({ + output: "beautify", + sourceMap: "source-map", + }[name] || name) + " options:"); + text.push(format_object(option)); + text.push(""); + } else { + if (padding.length < name.length) padding = Array(name.length + 1).join(" "); + toplevels.push([ { + keep_fargs: "keep-fargs", + keep_fnames: "keep-fnames", + nameCache: "name-cache", + }[name] || name, option ]); + } + } + toplevels.forEach(function(tokens) { + text.push("--" + tokens[0] + padding.slice(tokens[0].length - 2) + tokens[1]); + }); + print(text.join("\n")); + break; + default: + print([ + "Usage: uglifyjs [files...] [options]", + "", + "Options:", + " -h, --help Print usage information.", + " `--help options` for details on available options.", + " -v, -V, --version Print version number.", + " -p, --parse Specify parser options.", + " -c, --compress [options] Enable compressor/specify compressor options.", + " -m, --mangle [options] Mangle names/specify mangler options.", + " --mangle-props [options] Mangle properties/specify mangler options.", + " -b, --beautify [options] Beautify output/specify output options.", + " -O, --output-opts Output options (beautify disabled).", + " -o, --output Output file (default STDOUT).", + " --annotations Process and preserve comment annotations.", + " --no-annotations Ignore and discard comment annotations.", + " --comments [filter] Preserve copyright comments in the output.", + " --config-file Read minify() options from JSON file.", + " -d, --define [=value] Global definitions.", + " -e, --enclose [arg[,...][:value[,...]]] Embed everything in a big function, with configurable argument(s) & value(s).", + " --expression Parse a single expression, rather than a program.", + " --ie Support non-standard Internet Explorer.", + " --keep-fargs Do not mangle/drop function arguments.", + " --keep-fnames Do not mangle/drop function names. Useful for code relying on Function.prototype.name.", + " --module Process input as ES module (implies --toplevel)", + " --name-cache File to hold mangled name mappings.", + " --rename Force symbol expansion.", + " --no-rename Disable symbol expansion.", + " --self Build UglifyJS as a library (implies --wrap UglifyJS)", + " --source-map [options] Enable source map/specify source map options.", + " --timings Display operations run time on STDERR.", + " --toplevel Compress and/or mangle variables in toplevel scope.", + " --v8 Support non-standard Chrome & Node.js.", + " --validate Perform validation during AST manipulations.", + " --verbose Print diagnostic messages.", + " --warn Print warning messages.", + " --webkit Support non-standard Safari/Webkit.", + " --wrap Embed everything as a function with “exports” corresponding to “name” globally.", + "", + "(internal debug use only)", + " --in-situ Warning: replaces original source files with minified output.", + " --reduce-test Reduce a standalone test case (assumes cloned repository).", + ].join("\n")); + } + process.exit(); + case "version": + print(info.name + " " + info.version); + process.exit(); + case "config-file": + var config = JSON.parse(read_file(read_value(true))); + if (config.mangle && config.mangle.properties && config.mangle.properties.regex) { + config.mangle.properties.regex = UglifyJS.parse(config.mangle.properties.regex, { + expression: true, + }).value; + } + for (var key in config) if (!(key in options)) options[key] = config[key]; + break; + case "compress": + case "mangle": + options[name] = parse_js(read_value(), options[name]); + break; + case "source-map": + options.sourceMap = parse_js(read_value(), options.sourceMap); + break; + case "enclose": + options[name] = read_value(); + break; + case "annotations": + case "expression": + case "ie": + case "ie8": + case "module": + case "timings": + case "toplevel": + case "v8": + case "validate": + case "webkit": + options[name] = true; + break; + case "no-annotations": + options.annotations = false; + break; + case "keep-fargs": + options.keep_fargs = true; + break; + case "keep-fnames": + options.keep_fnames = true; + break; + case "wrap": + options[name] = read_value(true); + break; + case "verbose": + options.warnings = "verbose"; + break; + case "warn": + if (!options.warnings) options.warnings = true; + break; + case "beautify": + options.output = parse_js(read_value(), options.output); + if (!("beautify" in options.output)) options.output.beautify = true; + break; + case "output-opts": + options.output = parse_js(read_value(true), options.output); + break; + case "comments": + if (typeof options.output != "object") options.output = {}; + options.output.comments = read_value(); + if (options.output.comments === true) options.output.comments = "some"; + break; + case "define": + if (typeof options.compress != "object") options.compress = {}; + options.compress.global_defs = parse_js(read_value(true), options.compress.global_defs, "define"); + break; + case "mangle-props": + if (typeof options.mangle != "object") options.mangle = {}; + options.mangle.properties = parse_js(read_value(), options.mangle.properties); + break; + case "name-cache": + nameCache = read_value(true); + options.nameCache = JSON.parse(read_file(nameCache, "{}")); + break; + case "output": + output = read_value(true); + break; + case "parse": + options.parse = parse_js(read_value(true), options.parse); + break; + case "rename": + options.rename = true; + break; + case "no-rename": + options.rename = false; + break; + case "in-situ": + case "reduce-test": + case "self": + break; + default: + fatal("invalid option --" + name); + } + + function read_value(required) { + if (no_value || !args.length || args[0][0] == "-") { + if (required) fatal("missing option argument for --" + name); + return true; + } + return args.shift(); + } +} +if (!output && options.sourceMap && options.sourceMap.url != "inline") fatal("cannot write source map to STDOUT"); +if (specified["beautify"] && specified["output-opts"]) fatal("--beautify cannot be used with --output-opts"); +[ "compress", "mangle" ].forEach(function(name) { + if (!(name in options)) options[name] = false; +}); +if (/^ast|spidermonkey$/.test(output)) { + if (typeof options.output != "object") options.output = {}; + options.output.ast = true; + options.output.code = false; +} +if (options.parse && (options.parse.acorn || options.parse.spidermonkey) + && options.sourceMap && options.sourceMap.content == "inline") { + fatal("inline source map only works with built-in parser"); +} +if (options.warnings) { + UglifyJS.AST_Node.log_function(print_error, options.warnings == "verbose"); + delete options.warnings; +} +var convert_path = function(name) { + return name; +}; +if (typeof options.sourceMap == "object" && "base" in options.sourceMap) { + convert_path = function() { + var base = options.sourceMap.base; + delete options.sourceMap.base; + return function(name) { + return path.relative(base, name); + }; + }(); +} +if (specified["self"]) { + if (paths.length) UglifyJS.AST_Node.warn("Ignoring input files since --self was passed"); + if (!options.wrap) options.wrap = "UglifyJS"; + paths = UglifyJS.FILES; +} else if (paths.length) { + paths = simple_glob(paths); +} +if (specified["in-situ"]) { + if (output && output != "spidermonkey" || specified["reduce-test"] || specified["self"]) { + fatal("incompatible options specified"); + } + paths.forEach(function(name) { + print(name); + if (/^ast|spidermonkey$/.test(name)) fatal("invalid file name specified"); + files = {}; + files[convert_path(name)] = read_file(name); + output = name; + run(); + }); +} else if (paths.length) { + paths.forEach(function(name) { + files[convert_path(name)] = read_file(name); + }); + run(); +} else { + var timerId = process.stdin.isTTY && process.argv.length < 3 && setTimeout(function() { + print_error("Waiting for input... (use `--help` to print usage information)"); + }, 1500); + var chunks = []; + process.stdin.setEncoding("utf8"); + process.stdin.once("data", function() { + clearTimeout(timerId); + }).on("data", function(chunk) { + chunks.push(chunk); + }).on("end", function() { + files = { STDIN: chunks.join("") }; + run(); + }); + process.stdin.resume(); +} + +function convert_ast(fn) { + return UglifyJS.AST_Node.from_mozilla_ast(Object.keys(files).reduce(fn, null)); +} + +function run() { + var content = options.sourceMap && options.sourceMap.content; + if (content && content != "inline") { + UglifyJS.AST_Node.info("Using input source map: {content}", { + content : content, + }); + options.sourceMap.content = read_file(content, content); + } + try { + if (options.parse) { + if (options.parse.acorn) { + var annotations = Object.create(null); + files = convert_ast(function(toplevel, name) { + var content = files[name]; + var list = annotations[name] = []; + var prev = -1; + return require("acorn").parse(content, { + allowHashBang: true, + ecmaVersion: "latest", + locations: true, + onComment: function(block, text, start, end) { + var match = /[@#]__PURE__/.exec(text); + if (!match) { + if (start != prev) return; + match = [ list[prev] ]; + } + while (/\s/.test(content[end])) end++; + list[end] = match[0]; + prev = end; + }, + preserveParens: true, + program: toplevel, + sourceFile: name, + sourceType: "module", + }); + }); + files.walk(new UglifyJS.TreeWalker(function(node) { + if (!(node instanceof UglifyJS.AST_Call)) return; + var list = annotations[node.start.file]; + var pure = list[node.start.pos]; + if (!pure) { + var tokens = node.start.parens; + if (tokens) for (var i = 0; !pure && i < tokens.length; i++) { + pure = list[tokens[i].pos]; + } + } + if (pure) node.pure = pure; + })); + } else if (options.parse.spidermonkey) { + files = convert_ast(function(toplevel, name) { + var obj = JSON.parse(files[name]); + if (!toplevel) return obj; + toplevel.body = toplevel.body.concat(obj.body); + return toplevel; + }); + } + } + } catch (ex) { + fatal(ex); + } + var result; + if (specified["reduce-test"]) { + // load on demand - assumes cloned repository + var reduce_test = require("../test/reduce"); + if (Object.keys(files).length != 1) fatal("can only test on a single file"); + result = reduce_test(files[Object.keys(files)[0]], options, { + log: print_error, + verbose: true, + }); + } else { + result = UglifyJS.minify(files, options); + } + if (result.error) { + var ex = result.error; + if (ex.name == "SyntaxError") { + print_error("Parse error at " + ex.filename + ":" + ex.line + "," + ex.col); + var file = files[ex.filename]; + if (file) { + var col = ex.col; + var lines = file.split(/\r?\n/); + var line = lines[ex.line - 1]; + if (!line && !col) { + line = lines[ex.line - 2]; + col = line.length; + } + if (line) { + var limit = 70; + if (col > limit) { + line = line.slice(col - limit); + col = limit; + } + print_error(line.slice(0, 80)); + print_error(line.slice(0, col).replace(/\S/g, " ") + "^"); + } + } + } else if (ex.defs) { + print_error("Supported options:"); + print_error(format_object(ex.defs)); + } + fatal(ex); + } else if (output == "ast") { + if (!options.compress && !options.mangle) { + var toplevel = result.ast; + if (!(toplevel instanceof UglifyJS.AST_Toplevel)) { + if (!(toplevel instanceof UglifyJS.AST_Statement)) toplevel = new UglifyJS.AST_SimpleStatement({ + body: toplevel, + }); + toplevel = new UglifyJS.AST_Toplevel({ + body: [ toplevel ], + }); + } + toplevel.figure_out_scope({}); + } + print(JSON.stringify(result.ast, function(key, value) { + if (value) switch (key) { + case "enclosed": + return value.length ? value.map(symdef) : undefined; + case "functions": + case "globals": + case "variables": + return value.size() ? value.map(symdef) : undefined; + case "thedef": + return symdef(value); + } + if (skip_property(key, value)) return; + if (value instanceof UglifyJS.AST_Token) return; + if (value instanceof UglifyJS.Dictionary) return; + if (value instanceof UglifyJS.AST_Node) { + var result = { + _class: "AST_" + value.TYPE + }; + value.CTOR.PROPS.forEach(function(prop) { + result[prop] = value[prop]; + }); + return result; + } + return value; + }, 2)); + } else if (output == "spidermonkey") { + print(JSON.stringify(result.ast.to_mozilla_ast(), null, 2)); + } else if (output) { + var code; + if (result.ast) { + var opts = {}; + for (var name in options.output) { + if (!/^ast|code$/.test(name)) opts[name] = options.output[name]; + } + code = UglifyJS.AST_Node.from_mozilla_ast(result.ast.to_mozilla_ast()).print_to_string(opts); + } else { + code = result.code; + } + fs.writeFileSync(output, code); + if (result.map) fs.writeFileSync(output + ".map", result.map); + } else { + print(result.code); + } + if (nameCache) fs.writeFileSync(nameCache, JSON.stringify(options.nameCache)); + if (result.timings) for (var phase in result.timings) { + print_error("- " + phase + ": " + result.timings[phase].toFixed(3) + "s"); + } +} + +function fatal(message) { + if (message instanceof Error) { + message = message.stack.replace(/^\S*?Error:/, "ERROR:") + } else { + message = "ERROR: " + message; + } + print_error(message); + process.exit(1); +} + +// A file glob function that only supports "*" and "?" wildcards in the basename. +// Example: "foo/bar/*baz??.*.js" +// Argument `paths` must be an array of strings. +// Returns an array of strings. Garbage in, garbage out. +function simple_glob(paths) { + return paths.reduce(function(paths, glob) { + if (/\*|\?/.test(glob)) { + var dir = path.dirname(glob); + try { + var entries = fs.readdirSync(dir).filter(function(name) { + try { + return fs.statSync(path.join(dir, name)).isFile(); + } catch (ex) { + return false; + } + }); + } catch (ex) {} + if (entries) { + var pattern = "^" + path.basename(glob) + .replace(/[.+^$[\]\\(){}]/g, "\\$&") + .replace(/\*/g, "[^/\\\\]*") + .replace(/\?/g, "[^/\\\\]") + "$"; + var mod = process.platform === "win32" ? "i" : ""; + var rx = new RegExp(pattern, mod); + var results = entries.filter(function(name) { + return rx.test(name); + }).sort().map(function(name) { + return path.join(dir, name); + }); + if (results.length) { + [].push.apply(paths, results); + return paths; + } + } + } + paths.push(glob); + return paths; + }, []); +} + +function read_file(path, default_value) { + try { + return fs.readFileSync(path, "utf8"); + } catch (ex) { + if (ex.code == "ENOENT" && default_value != null) return default_value; + fatal(ex); + } +} + +function parse_js(value, options, flag) { + if (!options || typeof options != "object") options = Object.create(null); + if (typeof value == "string") try { + UglifyJS.parse(value, { + expression: true + }).walk(new UglifyJS.TreeWalker(function(node) { + if (node instanceof UglifyJS.AST_Assign) { + var name = node.left.print_to_string(); + var value = node.right; + if (flag) { + options[name] = value; + } else if (value instanceof UglifyJS.AST_Array) { + options[name] = value.elements.map(to_string); + } else { + options[name] = to_string(value); + } + return true; + } + if (node instanceof UglifyJS.AST_Symbol || node instanceof UglifyJS.AST_PropAccess) { + var name = node.print_to_string(); + options[name] = true; + return true; + } + if (!(node instanceof UglifyJS.AST_Sequence)) throw node; + + function to_string(value) { + return value instanceof UglifyJS.AST_Constant ? value.value : value.print_to_string({ + quote_keys: true + }); + } + })); + } catch (ex) { + if (flag) { + fatal("cannot parse arguments for '" + flag + "': " + value); + } else { + options[value] = null; + } + } + return options; +} + +function skip_property(key, value) { + return skip_keys.indexOf(key) >= 0 + // only skip truthy_keys if their value is falsy + || truthy_keys.indexOf(key) >= 0 && !value; +} + +function symdef(def) { + var ret = (1e6 + def.id) + " " + def.name; + if (def.mangled_name) ret += " " + def.mangled_name; + return ret; +} + +function format_object(obj) { + var lines = []; + var padding = ""; + Object.keys(obj).map(function(name) { + if (padding.length < name.length) padding = Array(name.length + 1).join(" "); + return [ name, JSON.stringify(obj[name]) ]; + }).forEach(function(tokens) { + lines.push(" " + tokens[0] + padding.slice(tokens[0].length - 2) + tokens[1]); + }); + return lines.join("\n"); +} + +function print_error(msg) { + process.stderr.write(msg); + process.stderr.write("\n"); +} + +function print(txt) { + process.stdout.write(txt); + process.stdout.write("\n"); +} diff --git a/node_modules/uglify-js/lib/ast.js b/node_modules/uglify-js/lib/ast.js new file mode 100644 index 0000000..16ea9c8 --- /dev/null +++ b/node_modules/uglify-js/lib/ast.js @@ -0,0 +1,2356 @@ +/*********************************************************************** + + A JavaScript tokenizer / parser / beautifier / compressor. + https://github.com/mishoo/UglifyJS + + -------------------------------- (C) --------------------------------- + + Author: Mihai Bazon + + http://mihai.bazon.net/blog + + Distributed under the BSD license: + + Copyright 2012 (c) Mihai Bazon + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + ***********************************************************************/ + +"use strict"; + +function DEFNODE(type, props, methods, base) { + if (typeof base === "undefined") base = AST_Node; + props = props ? props.split(/\s+/) : []; + var self_props = props; + if (base && base.PROPS) props = props.concat(base.PROPS); + var code = [ + "return function AST_", type, "(props){", + // not essential, but speeds up compress by a few percent + "this._bits=0;", + "if(props){", + ]; + props.forEach(function(prop) { + code.push("this.", prop, "=props.", prop, ";"); + }); + code.push("}"); + var proto = Object.create(base && base.prototype); + if (methods.initialize || proto.initialize) code.push("this.initialize();"); + code.push("};"); + var ctor = new Function(code.join(""))(); + ctor.prototype = proto; + ctor.prototype.CTOR = ctor; + ctor.prototype.TYPE = ctor.TYPE = type; + if (base) { + ctor.BASE = base; + base.SUBCLASSES.push(ctor); + } + ctor.DEFMETHOD = function(name, method) { + this.prototype[name] = method; + }; + ctor.PROPS = props; + ctor.SELF_PROPS = self_props; + ctor.SUBCLASSES = []; + for (var name in methods) if (HOP(methods, name)) { + if (/^\$/.test(name)) { + ctor[name.substr(1)] = methods[name]; + } else { + ctor.DEFMETHOD(name, methods[name]); + } + } + if (typeof exports !== "undefined") exports["AST_" + type] = ctor; + return ctor; +} + +var AST_Token = DEFNODE("Token", "type value line col pos endline endcol endpos nlb comments_before comments_after file raw", { +}, null); + +var AST_Node = DEFNODE("Node", "start end", { + _clone: function(deep) { + if (deep) { + var self = this.clone(); + return self.transform(new TreeTransformer(function(node) { + if (node !== self) { + return node.clone(true); + } + })); + } + return new this.CTOR(this); + }, + clone: function(deep) { + return this._clone(deep); + }, + $documentation: "Base class of all AST nodes", + $propdoc: { + start: "[AST_Token] The first token of this node", + end: "[AST_Token] The last token of this node" + }, + equals: function(node) { + return this.TYPE == node.TYPE && this._equals(node); + }, + walk: function(visitor) { + visitor.visit(this); + }, + _validate: function() { + if (this.TYPE == "Node") throw new Error("should not instantiate AST_Node"); + }, + validate: function() { + var ctor = this.CTOR; + do { + ctor.prototype._validate.call(this); + } while (ctor = ctor.BASE); + }, + validate_ast: function() { + var marker = {}; + this.walk(new TreeWalker(function(node) { + if (node.validate_visited === marker) { + throw new Error(string_template("cannot reuse AST_{TYPE} from [{start}]", node)); + } + node.validate_visited = marker; + })); + }, +}, null); + +DEF_BITPROPS(AST_Node, [ + // AST_Node + "_optimized", + "_squeezed", + // AST_Call + "call_only", + // AST_Lambda + "collapse_scanning", + // AST_SymbolRef + "defined", + "evaluating", + "falsy", + // AST_SymbolRef + "in_arg", + // AST_Return + "in_bool", + // AST_SymbolRef + "is_undefined", + // AST_LambdaExpression + // AST_LambdaDefinition + "inlined", + // AST_Lambda + "length_read", + // AST_Yield + "nested", + // AST_Lambda + "new", + // AST_Call + // AST_PropAccess + "optional", + // AST_ClassProperty + "private", + // AST_Call + "pure", + // AST_Assign + "redundant", + // AST_Node + "single_use", + // AST_ClassProperty + "static", + // AST_Call + // AST_PropAccess + "terminal", + "truthy", + // AST_Scope + "uses_eval", + // AST_Scope + "uses_with", +]); + +(AST_Node.log_function = function(fn, verbose) { + if (typeof fn != "function") { + AST_Node.info = AST_Node.warn = noop; + return; + } + var printed = Object.create(null); + AST_Node.info = verbose ? function(text, props) { + log("INFO: " + string_template(text, props)); + } : noop; + AST_Node.warn = function(text, props) { + log("WARN: " + string_template(text, props)); + }; + + function log(msg) { + if (printed[msg]) return; + printed[msg] = true; + fn(msg); + } +})(); + +var restore_transforms = []; +AST_Node.enable_validation = function() { + AST_Node.disable_validation(); + (function validate_transform(ctor) { + ctor.SUBCLASSES.forEach(validate_transform); + if (!HOP(ctor.prototype, "transform")) return; + var transform = ctor.prototype.transform; + ctor.prototype.transform = function(tw, in_list) { + var node = transform.call(this, tw, in_list); + if (node instanceof AST_Node) { + node.validate(); + } else if (!(node === null || in_list && List.is_op(node))) { + throw new Error("invalid transformed value: " + node); + } + return node; + }; + restore_transforms.push(function() { + ctor.prototype.transform = transform; + }); + })(this); +}; + +AST_Node.disable_validation = function() { + var restore; + while (restore = restore_transforms.pop()) restore(); +}; + +function all_equals(k, l) { + return k.length == l.length && all(k, function(m, i) { + return m.equals(l[i]); + }); +} + +function list_equals(s, t) { + return s.length == t.length && all(s, function(u, i) { + return u == t[i]; + }); +} + +function prop_equals(u, v) { + if (u === v) return true; + if (u == null) return v == null; + return u instanceof AST_Node && v instanceof AST_Node && u.equals(v); +} + +/* -----[ statements ]----- */ + +var AST_Statement = DEFNODE("Statement", null, { + $documentation: "Base class of all statements", + _validate: function() { + if (this.TYPE == "Statement") throw new Error("should not instantiate AST_Statement"); + }, +}); + +var AST_Debugger = DEFNODE("Debugger", null, { + $documentation: "Represents a debugger statement", + _equals: return_true, +}, AST_Statement); + +var AST_Directive = DEFNODE("Directive", "quote value", { + $documentation: "Represents a directive, like \"use strict\";", + $propdoc: { + quote: "[string?] the original quote character", + value: "[string] The value of this directive as a plain string (it's not an AST_String!)", + }, + _equals: function(node) { + return this.value == node.value; + }, + _validate: function() { + if (this.quote != null) { + if (typeof this.quote != "string") throw new Error("quote must be string"); + if (!/^["']$/.test(this.quote)) throw new Error("invalid quote: " + this.quote); + } + if (typeof this.value != "string") throw new Error("value must be string"); + }, +}, AST_Statement); + +var AST_EmptyStatement = DEFNODE("EmptyStatement", null, { + $documentation: "The empty statement (empty block or simply a semicolon)", + _equals: return_true, +}, AST_Statement); + +function is_statement(node) { + return node instanceof AST_Statement + && !(node instanceof AST_ClassExpression) + && !(node instanceof AST_LambdaExpression); +} + +function validate_expression(value, prop, multiple, allow_spread, allow_hole) { + multiple = multiple ? "contain" : "be"; + if (!(value instanceof AST_Node)) throw new Error(prop + " must " + multiple + " AST_Node"); + if (value instanceof AST_DefaultValue) throw new Error(prop + " cannot " + multiple + " AST_DefaultValue"); + if (value instanceof AST_Destructured) throw new Error(prop + " cannot " + multiple + " AST_Destructured"); + if (value instanceof AST_Hole && !allow_hole) throw new Error(prop + " cannot " + multiple + " AST_Hole"); + if (value instanceof AST_Spread && !allow_spread) throw new Error(prop + " cannot " + multiple + " AST_Spread"); + if (is_statement(value)) throw new Error(prop + " cannot " + multiple + " AST_Statement"); + if (value instanceof AST_SymbolDeclaration) { + throw new Error(prop + " cannot " + multiple + " AST_SymbolDeclaration"); + } +} + +function must_be_expression(node, prop) { + validate_expression(node[prop], prop); +} + +var AST_SimpleStatement = DEFNODE("SimpleStatement", "body", { + $documentation: "A statement consisting of an expression, i.e. a = 1 + 2", + $propdoc: { + body: "[AST_Node] an expression node (should not be instanceof AST_Statement)", + }, + _equals: function(node) { + return this.body.equals(node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.body.walk(visitor); + }); + }, + _validate: function() { + must_be_expression(this, "body"); + }, +}, AST_Statement); + +var AST_BlockScope = DEFNODE("BlockScope", "_var_names enclosed functions make_def parent_scope variables", { + $documentation: "Base class for all statements introducing a lexical scope", + $propdoc: { + enclosed: "[SymbolDef*/S] a list of all symbol definitions that are accessed from this scope or any inner scopes", + functions: "[Dictionary/S] like `variables`, but only lists function declarations", + parent_scope: "[AST_Scope?/S] link to the parent scope", + variables: "[Dictionary/S] a map of name ---> SymbolDef for all variables/functions defined in this scope", + }, + clone: function(deep) { + var node = this._clone(deep); + if (this.enclosed) node.enclosed = this.enclosed.slice(); + if (this.functions) node.functions = this.functions.clone(); + if (this.variables) node.variables = this.variables.clone(); + return node; + }, + pinned: function() { + return this.resolve().pinned(); + }, + resolve: function() { + return this.parent_scope.resolve(); + }, + _validate: function() { + if (this.TYPE == "BlockScope") throw new Error("should not instantiate AST_BlockScope"); + if (this.parent_scope == null) return; + if (!(this.parent_scope instanceof AST_BlockScope)) throw new Error("parent_scope must be AST_BlockScope"); + if (!(this.resolve() instanceof AST_Scope)) throw new Error("must be contained within AST_Scope"); + }, +}, AST_Statement); + +function walk_body(node, visitor) { + node.body.forEach(function(node) { + node.walk(visitor); + }); +} + +var AST_Block = DEFNODE("Block", "body", { + $documentation: "A body of statements (usually braced)", + $propdoc: { + body: "[AST_Statement*] an array of statements" + }, + _equals: function(node) { + return all_equals(this.body, node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + walk_body(node, visitor); + }); + }, + _validate: function() { + if (this.TYPE == "Block") throw new Error("should not instantiate AST_Block"); + this.body.forEach(function(node) { + if (!is_statement(node)) throw new Error("body must contain AST_Statement"); + }); + }, +}, AST_BlockScope); + +var AST_BlockStatement = DEFNODE("BlockStatement", null, { + $documentation: "A block statement", +}, AST_Block); + +var AST_StatementWithBody = DEFNODE("StatementWithBody", "body", { + $documentation: "Base class for all statements that contain one nested body: `For`, `ForIn`, `Do`, `While`, `With`", + $propdoc: { + body: "[AST_Statement] the body; this should always be present, even if it's an AST_EmptyStatement" + }, + _validate: function() { + if (this.TYPE == "StatementWithBody") throw new Error("should not instantiate AST_StatementWithBody"); + if (!is_statement(this.body)) throw new Error("body must be AST_Statement"); + }, +}, AST_BlockScope); + +var AST_LabeledStatement = DEFNODE("LabeledStatement", "label", { + $documentation: "Statement with a label", + $propdoc: { + label: "[AST_Label] a label definition" + }, + _equals: function(node) { + return this.label.equals(node.label) + && this.body.equals(node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.label.walk(visitor); + node.body.walk(visitor); + }); + }, + clone: function(deep) { + var node = this._clone(deep); + if (deep) { + var label = node.label; + var def = this.label; + node.walk(new TreeWalker(function(node) { + if (node instanceof AST_LoopControl) { + if (!node.label || node.label.thedef !== def) return; + node.label.thedef = label; + label.references.push(node); + return true; + } + if (node instanceof AST_Scope) return true; + })); + } + return node; + }, + _validate: function() { + if (!(this.label instanceof AST_Label)) throw new Error("label must be AST_Label"); + }, +}, AST_StatementWithBody); + +var AST_IterationStatement = DEFNODE("IterationStatement", null, { + $documentation: "Internal class. All loops inherit from it.", + _validate: function() { + if (this.TYPE == "IterationStatement") throw new Error("should not instantiate AST_IterationStatement"); + }, +}, AST_StatementWithBody); + +var AST_DWLoop = DEFNODE("DWLoop", "condition", { + $documentation: "Base class for do/while statements", + $propdoc: { + condition: "[AST_Node] the loop condition. Should not be instanceof AST_Statement" + }, + _equals: function(node) { + return this.body.equals(node.body) + && this.condition.equals(node.condition); + }, + _validate: function() { + if (this.TYPE == "DWLoop") throw new Error("should not instantiate AST_DWLoop"); + must_be_expression(this, "condition"); + }, +}, AST_IterationStatement); + +var AST_Do = DEFNODE("Do", null, { + $documentation: "A `do` statement", + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.body.walk(visitor); + node.condition.walk(visitor); + }); + }, +}, AST_DWLoop); + +var AST_While = DEFNODE("While", null, { + $documentation: "A `while` statement", + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.condition.walk(visitor); + node.body.walk(visitor); + }); + }, +}, AST_DWLoop); + +var AST_For = DEFNODE("For", "init condition step", { + $documentation: "A `for` statement", + $propdoc: { + init: "[AST_Node?] the `for` initialization code, or null if empty", + condition: "[AST_Node?] the `for` termination clause, or null if empty", + step: "[AST_Node?] the `for` update clause, or null if empty" + }, + _equals: function(node) { + return prop_equals(this.init, node.init) + && prop_equals(this.condition, node.condition) + && prop_equals(this.step, node.step) + && this.body.equals(node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.init) node.init.walk(visitor); + if (node.condition) node.condition.walk(visitor); + if (node.step) node.step.walk(visitor); + node.body.walk(visitor); + }); + }, + _validate: function() { + if (this.init != null) { + if (!(this.init instanceof AST_Node)) throw new Error("init must be AST_Node"); + if (is_statement(this.init) && !(this.init instanceof AST_Definitions)) { + throw new Error("init cannot be AST_Statement"); + } + } + if (this.condition != null) must_be_expression(this, "condition"); + if (this.step != null) must_be_expression(this, "step"); + }, +}, AST_IterationStatement); + +var AST_ForEnumeration = DEFNODE("ForEnumeration", "init object", { + $documentation: "Base class for enumeration loops, i.e. `for ... in`, `for ... of` & `for await ... of`", + $propdoc: { + init: "[AST_Node] the assignment target during iteration", + object: "[AST_Node] the object to iterate over" + }, + _equals: function(node) { + return this.init.equals(node.init) + && this.object.equals(node.object) + && this.body.equals(node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.init.walk(visitor); + node.object.walk(visitor); + node.body.walk(visitor); + }); + }, + _validate: function() { + if (this.TYPE == "ForEnumeration") throw new Error("should not instantiate AST_ForEnumeration"); + if (this.init instanceof AST_Definitions) { + if (this.init.definitions.length != 1) throw new Error("init must have single declaration"); + } else { + validate_destructured(this.init, function(node) { + if (!(node instanceof AST_PropAccess || node instanceof AST_SymbolRef)) { + throw new Error("init must be assignable: " + node.TYPE); + } + }); + } + must_be_expression(this, "object"); + }, +}, AST_IterationStatement); + +var AST_ForIn = DEFNODE("ForIn", null, { + $documentation: "A `for ... in` statement", +}, AST_ForEnumeration); + +var AST_ForOf = DEFNODE("ForOf", null, { + $documentation: "A `for ... of` statement", +}, AST_ForEnumeration); + +var AST_ForAwaitOf = DEFNODE("ForAwaitOf", null, { + $documentation: "A `for await ... of` statement", +}, AST_ForOf); + +var AST_With = DEFNODE("With", "expression", { + $documentation: "A `with` statement", + $propdoc: { + expression: "[AST_Node] the `with` expression" + }, + _equals: function(node) { + return this.expression.equals(node.expression) + && this.body.equals(node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.expression.walk(visitor); + node.body.walk(visitor); + }); + }, + _validate: function() { + must_be_expression(this, "expression"); + }, +}, AST_StatementWithBody); + +/* -----[ scope and functions ]----- */ + +var AST_Scope = DEFNODE("Scope", "fn_defs may_call_this uses_eval uses_with", { + $documentation: "Base class for all statements introducing a lambda scope", + $propdoc: { + uses_eval: "[boolean/S] tells whether this scope contains a direct call to the global `eval`", + uses_with: "[boolean/S] tells whether this scope uses the `with` statement", + }, + pinned: function() { + return this.uses_eval || this.uses_with; + }, + resolve: return_this, + _validate: function() { + if (this.TYPE == "Scope") throw new Error("should not instantiate AST_Scope"); + }, +}, AST_Block); + +var AST_Toplevel = DEFNODE("Toplevel", "globals", { + $documentation: "The toplevel scope", + $propdoc: { + globals: "[Dictionary/S] a map of name ---> SymbolDef for all undeclared names", + }, + wrap: function(name) { + var body = this.body; + return parse([ + "(function(exports){'$ORIG';})(typeof ", + name, + "=='undefined'?(", + name, + "={}):", + name, + ");" + ].join(""), { + filename: "wrap=" + JSON.stringify(name) + }).transform(new TreeTransformer(function(node) { + if (node instanceof AST_Directive && node.value == "$ORIG") { + return List.splice(body); + } + })); + }, + enclose: function(args_values) { + if (typeof args_values != "string") args_values = ""; + var index = args_values.indexOf(":"); + if (index < 0) index = args_values.length; + var body = this.body; + return parse([ + "(function(", + args_values.slice(0, index), + '){"$ORIG"})(', + args_values.slice(index + 1), + ")" + ].join(""), { + filename: "enclose=" + JSON.stringify(args_values) + }).transform(new TreeTransformer(function(node) { + if (node instanceof AST_Directive && node.value == "$ORIG") { + return List.splice(body); + } + })); + } +}, AST_Scope); + +var AST_ClassInitBlock = DEFNODE("ClassInitBlock", null, { + $documentation: "Value for `class` static initialization blocks", +}, AST_Scope); + +var AST_Lambda = DEFNODE("Lambda", "argnames length_read rest safe_ids uses_arguments", { + $documentation: "Base class for functions", + $propdoc: { + argnames: "[(AST_DefaultValue|AST_Destructured|AST_SymbolFunarg)*] array of function arguments and/or destructured literals", + length_read: "[boolean/S] whether length property of this function is accessed", + rest: "[(AST_Destructured|AST_SymbolFunarg)?] rest parameter, or null if absent", + uses_arguments: "[boolean|number/S] whether this function accesses the arguments array", + }, + each_argname: function(visit) { + var tw = new TreeWalker(function(node) { + if (node instanceof AST_DefaultValue) { + node.name.walk(tw); + return true; + } + if (node instanceof AST_DestructuredKeyVal) { + node.value.walk(tw); + return true; + } + if (node instanceof AST_SymbolFunarg) visit(node); + }); + this.argnames.forEach(function(argname) { + argname.walk(tw); + }); + if (this.rest) this.rest.walk(tw); + }, + _equals: function(node) { + return prop_equals(this.rest, node.rest) + && prop_equals(this.name, node.name) + && prop_equals(this.value, node.value) + && all_equals(this.argnames, node.argnames) + && all_equals(this.body, node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.name) node.name.walk(visitor); + node.argnames.forEach(function(argname) { + argname.walk(visitor); + }); + if (node.rest) node.rest.walk(visitor); + walk_body(node, visitor); + }); + }, + _validate: function() { + if (this.TYPE == "Lambda") throw new Error("should not instantiate AST_Lambda"); + this.argnames.forEach(function(node) { + validate_destructured(node, function(node) { + if (!(node instanceof AST_SymbolFunarg)) throw new Error("argnames must be AST_SymbolFunarg[]"); + }, true); + }); + if (this.rest != null) validate_destructured(this.rest, function(node) { + if (!(node instanceof AST_SymbolFunarg)) throw new Error("rest must be AST_SymbolFunarg"); + }); + }, +}, AST_Scope); + +var AST_Accessor = DEFNODE("Accessor", null, { + $documentation: "A getter/setter function", + _validate: function() { + if (this.name != null) throw new Error("name must be null"); + }, +}, AST_Lambda); + +var AST_LambdaExpression = DEFNODE("LambdaExpression", "inlined", { + $documentation: "Base class for function expressions", + $propdoc: { + inlined: "[boolean/S] whether this function has been inlined", + }, + _validate: function() { + if (this.TYPE == "LambdaExpression") throw new Error("should not instantiate AST_LambdaExpression"); + }, +}, AST_Lambda); + +function is_arrow(node) { + return node instanceof AST_Arrow || node instanceof AST_AsyncArrow; +} + +function is_async(node) { + return node instanceof AST_AsyncArrow + || node instanceof AST_AsyncDefun + || node instanceof AST_AsyncFunction + || node instanceof AST_AsyncGeneratorDefun + || node instanceof AST_AsyncGeneratorFunction; +} + +function is_generator(node) { + return node instanceof AST_AsyncGeneratorDefun + || node instanceof AST_AsyncGeneratorFunction + || node instanceof AST_GeneratorDefun + || node instanceof AST_GeneratorFunction; +} + +function walk_lambda(node, tw) { + if (is_arrow(node) && node.value) { + node.value.walk(tw); + } else { + walk_body(node, tw); + } +} + +var AST_Arrow = DEFNODE("Arrow", "value", { + $documentation: "An arrow function expression", + $propdoc: { + value: "[AST_Node?] simple return expression, or null if using function body.", + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.argnames.forEach(function(argname) { + argname.walk(visitor); + }); + if (node.rest) node.rest.walk(visitor); + if (node.value) { + node.value.walk(visitor); + } else { + walk_body(node, visitor); + } + }); + }, + _validate: function() { + if (this.name != null) throw new Error("name must be null"); + if (this.uses_arguments) throw new Error("uses_arguments must be false"); + if (this.value != null) { + must_be_expression(this, "value"); + if (this.body.length) throw new Error("body must be empty if value exists"); + } + }, +}, AST_LambdaExpression); + +var AST_AsyncArrow = DEFNODE("AsyncArrow", "value", { + $documentation: "An asynchronous arrow function expression", + $propdoc: { + value: "[AST_Node?] simple return expression, or null if using function body.", + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.argnames.forEach(function(argname) { + argname.walk(visitor); + }); + if (node.rest) node.rest.walk(visitor); + if (node.value) { + node.value.walk(visitor); + } else { + walk_body(node, visitor); + } + }); + }, + _validate: function() { + if (this.name != null) throw new Error("name must be null"); + if (this.uses_arguments) throw new Error("uses_arguments must be false"); + if (this.value != null) { + must_be_expression(this, "value"); + if (this.body.length) throw new Error("body must be empty if value exists"); + } + }, +}, AST_LambdaExpression); + +var AST_AsyncFunction = DEFNODE("AsyncFunction", "name", { + $documentation: "An asynchronous function expression", + $propdoc: { + name: "[AST_SymbolLambda?] the name of this function, or null if not specified", + }, + _validate: function() { + if (this.name != null) { + if (!(this.name instanceof AST_SymbolLambda)) throw new Error("name must be AST_SymbolLambda"); + } + }, +}, AST_LambdaExpression); + +var AST_AsyncGeneratorFunction = DEFNODE("AsyncGeneratorFunction", "name", { + $documentation: "An asynchronous generator function expression", + $propdoc: { + name: "[AST_SymbolLambda?] the name of this function, or null if not specified", + }, + _validate: function() { + if (this.name != null) { + if (!(this.name instanceof AST_SymbolLambda)) throw new Error("name must be AST_SymbolLambda"); + } + }, +}, AST_LambdaExpression); + +var AST_Function = DEFNODE("Function", "name", { + $documentation: "A function expression", + $propdoc: { + name: "[AST_SymbolLambda?] the name of this function, or null if not specified", + }, + _validate: function() { + if (this.name != null) { + if (!(this.name instanceof AST_SymbolLambda)) throw new Error("name must be AST_SymbolLambda"); + } + }, +}, AST_LambdaExpression); + +var AST_GeneratorFunction = DEFNODE("GeneratorFunction", "name", { + $documentation: "A generator function expression", + $propdoc: { + name: "[AST_SymbolLambda?] the name of this function, or null if not specified", + }, + _validate: function() { + if (this.name != null) { + if (!(this.name instanceof AST_SymbolLambda)) throw new Error("name must be AST_SymbolLambda"); + } + }, +}, AST_LambdaExpression); + +var AST_LambdaDefinition = DEFNODE("LambdaDefinition", "inlined name", { + $documentation: "Base class for function definitions", + $propdoc: { + inlined: "[boolean/S] whether this function has been inlined", + name: "[AST_SymbolDefun] the name of this function", + }, + _validate: function() { + if (this.TYPE == "LambdaDefinition") throw new Error("should not instantiate AST_LambdaDefinition"); + if (!(this.name instanceof AST_SymbolDefun)) throw new Error("name must be AST_SymbolDefun"); + }, +}, AST_Lambda); + +var AST_AsyncDefun = DEFNODE("AsyncDefun", null, { + $documentation: "An asynchronous function definition", +}, AST_LambdaDefinition); + +var AST_AsyncGeneratorDefun = DEFNODE("AsyncGeneratorDefun", null, { + $documentation: "An asynchronous generator function definition", +}, AST_LambdaDefinition); + +var AST_Defun = DEFNODE("Defun", null, { + $documentation: "A function definition", +}, AST_LambdaDefinition); + +var AST_GeneratorDefun = DEFNODE("GeneratorDefun", null, { + $documentation: "A generator function definition", +}, AST_LambdaDefinition); + +/* -----[ classes ]----- */ + +var AST_Class = DEFNODE("Class", "extends name properties", { + $documentation: "Base class for class literals", + $propdoc: { + extends: "[AST_Node?] the super class, or null if not specified", + properties: "[AST_ClassProperty*] array of class properties", + }, + _equals: function(node) { + return prop_equals(this.name, node.name) + && prop_equals(this.extends, node.extends) + && all_equals(this.properties, node.properties); + }, + resolve: function(def_class) { + return def_class ? this : this.parent_scope.resolve(); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.name) node.name.walk(visitor); + if (node.extends) node.extends.walk(visitor); + node.properties.forEach(function(prop) { + prop.walk(visitor); + }); + }); + }, + _validate: function() { + if (this.TYPE == "Class") throw new Error("should not instantiate AST_Class"); + if (this.extends != null) must_be_expression(this, "extends"); + this.properties.forEach(function(node) { + if (!(node instanceof AST_ClassProperty)) throw new Error("properties must contain AST_ClassProperty"); + }); + }, +}, AST_BlockScope); + +var AST_DefClass = DEFNODE("DefClass", null, { + $documentation: "A class definition", + $propdoc: { + name: "[AST_SymbolDefClass] the name of this class", + }, + _validate: function() { + if (!(this.name instanceof AST_SymbolDefClass)) throw new Error("name must be AST_SymbolDefClass"); + }, +}, AST_Class); + +var AST_ClassExpression = DEFNODE("ClassExpression", null, { + $documentation: "A class expression", + $propdoc: { + name: "[AST_SymbolClass?] the name of this class, or null if not specified", + }, + _validate: function() { + if (this.name != null) { + if (!(this.name instanceof AST_SymbolClass)) throw new Error("name must be AST_SymbolClass"); + } + }, +}, AST_Class); + +var AST_ClassProperty = DEFNODE("ClassProperty", "key private static value", { + $documentation: "Base class for `class` properties", + $propdoc: { + key: "[string|AST_Node?] property name (AST_Node for computed property, null for initialization block)", + private: "[boolean] whether this is a private property", + static: "[boolean] whether this is a static property", + value: "[AST_Node?] property value (AST_Accessor for getters/setters, AST_LambdaExpression for methods, null if not specified for fields)", + }, + _equals: function(node) { + return !this.private == !node.private + && !this.static == !node.static + && prop_equals(this.key, node.key) + && prop_equals(this.value, node.value); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.key instanceof AST_Node) node.key.walk(visitor); + if (node.value) node.value.walk(visitor); + }); + }, + _validate: function() { + if (this.TYPE == "ClassProperty") throw new Error("should not instantiate AST_ClassProperty"); + if (this instanceof AST_ClassInit) { + if (this.key != null) throw new Error("key must be null"); + } else if (typeof this.key != "string") { + if (!(this.key instanceof AST_Node)) throw new Error("key must be string or AST_Node"); + must_be_expression(this, "key"); + } + if(this.value != null) { + if (!(this.value instanceof AST_Node)) throw new Error("value must be AST_Node"); + } + }, +}); + +var AST_ClassField = DEFNODE("ClassField", null, { + $documentation: "A `class` field", + _validate: function() { + if(this.value != null) must_be_expression(this, "value"); + }, +}, AST_ClassProperty); + +var AST_ClassGetter = DEFNODE("ClassGetter", null, { + $documentation: "A `class` getter", + _validate: function() { + if (!(this.value instanceof AST_Accessor)) throw new Error("value must be AST_Accessor"); + }, +}, AST_ClassProperty); + +var AST_ClassSetter = DEFNODE("ClassSetter", null, { + $documentation: "A `class` setter", + _validate: function() { + if (!(this.value instanceof AST_Accessor)) throw new Error("value must be AST_Accessor"); + }, +}, AST_ClassProperty); + +var AST_ClassMethod = DEFNODE("ClassMethod", null, { + $documentation: "A `class` method", + _validate: function() { + if (!(this.value instanceof AST_LambdaExpression)) throw new Error("value must be AST_LambdaExpression"); + if (is_arrow(this.value)) throw new Error("value cannot be AST_Arrow or AST_AsyncArrow"); + if (this.value.name != null) throw new Error("name of class method's lambda must be null"); + }, +}, AST_ClassProperty); + +var AST_ClassInit = DEFNODE("ClassInit", null, { + $documentation: "A `class` static initialization block", + _validate: function() { + if (!this.static) throw new Error("static must be true"); + if (!(this.value instanceof AST_ClassInitBlock)) throw new Error("value must be AST_ClassInitBlock"); + }, + initialize: function() { + this.static = true; + }, +}, AST_ClassProperty); + +/* -----[ JUMPS ]----- */ + +var AST_Jump = DEFNODE("Jump", null, { + $documentation: "Base class for “jumps” (for now that's `return`, `throw`, `break` and `continue`)", + _validate: function() { + if (this.TYPE == "Jump") throw new Error("should not instantiate AST_Jump"); + }, +}, AST_Statement); + +var AST_Exit = DEFNODE("Exit", "value", { + $documentation: "Base class for “exits” (`return` and `throw`)", + $propdoc: { + value: "[AST_Node?] the value returned or thrown by this statement; could be null for AST_Return" + }, + _equals: function(node) { + return prop_equals(this.value, node.value); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.value) node.value.walk(visitor); + }); + }, + _validate: function() { + if (this.TYPE == "Exit") throw new Error("should not instantiate AST_Exit"); + }, +}, AST_Jump); + +var AST_Return = DEFNODE("Return", null, { + $documentation: "A `return` statement", + _validate: function() { + if (this.value != null) must_be_expression(this, "value"); + }, +}, AST_Exit); + +var AST_Throw = DEFNODE("Throw", null, { + $documentation: "A `throw` statement", + _validate: function() { + must_be_expression(this, "value"); + }, +}, AST_Exit); + +var AST_LoopControl = DEFNODE("LoopControl", "label", { + $documentation: "Base class for loop control statements (`break` and `continue`)", + $propdoc: { + label: "[AST_LabelRef?] the label, or null if none", + }, + _equals: function(node) { + return prop_equals(this.label, node.label); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.label) node.label.walk(visitor); + }); + }, + _validate: function() { + if (this.TYPE == "LoopControl") throw new Error("should not instantiate AST_LoopControl"); + if (this.label != null) { + if (!(this.label instanceof AST_LabelRef)) throw new Error("label must be AST_LabelRef"); + } + }, +}, AST_Jump); + +var AST_Break = DEFNODE("Break", null, { + $documentation: "A `break` statement" +}, AST_LoopControl); + +var AST_Continue = DEFNODE("Continue", null, { + $documentation: "A `continue` statement" +}, AST_LoopControl); + +/* -----[ IF ]----- */ + +var AST_If = DEFNODE("If", "condition alternative", { + $documentation: "A `if` statement", + $propdoc: { + condition: "[AST_Node] the `if` condition", + alternative: "[AST_Statement?] the `else` part, or null if not present" + }, + _equals: function(node) { + return this.body.equals(node.body) + && this.condition.equals(node.condition) + && prop_equals(this.alternative, node.alternative); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.condition.walk(visitor); + node.body.walk(visitor); + if (node.alternative) node.alternative.walk(visitor); + }); + }, + _validate: function() { + must_be_expression(this, "condition"); + if (this.alternative != null) { + if (!is_statement(this.alternative)) throw new Error("alternative must be AST_Statement"); + } + }, +}, AST_StatementWithBody); + +/* -----[ SWITCH ]----- */ + +var AST_Switch = DEFNODE("Switch", "expression", { + $documentation: "A `switch` statement", + $propdoc: { + expression: "[AST_Node] the `switch` “discriminant”" + }, + _equals: function(node) { + return this.expression.equals(node.expression) + && all_equals(this.body, node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.expression.walk(visitor); + walk_body(node, visitor); + }); + }, + _validate: function() { + must_be_expression(this, "expression"); + this.body.forEach(function(node) { + if (!(node instanceof AST_SwitchBranch)) throw new Error("body must be AST_SwitchBranch[]"); + }); + }, +}, AST_Block); + +var AST_SwitchBranch = DEFNODE("SwitchBranch", null, { + $documentation: "Base class for `switch` branches", + _validate: function() { + if (this.TYPE == "SwitchBranch") throw new Error("should not instantiate AST_SwitchBranch"); + }, +}, AST_Block); + +var AST_Default = DEFNODE("Default", null, { + $documentation: "A `default` switch branch", +}, AST_SwitchBranch); + +var AST_Case = DEFNODE("Case", "expression", { + $documentation: "A `case` switch branch", + $propdoc: { + expression: "[AST_Node] the `case` expression" + }, + _equals: function(node) { + return this.expression.equals(node.expression) + && all_equals(this.body, node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.expression.walk(visitor); + walk_body(node, visitor); + }); + }, + _validate: function() { + must_be_expression(this, "expression"); + }, +}, AST_SwitchBranch); + +/* -----[ EXCEPTIONS ]----- */ + +var AST_Try = DEFNODE("Try", "bcatch bfinally", { + $documentation: "A `try` statement", + $propdoc: { + bcatch: "[AST_Catch?] the catch block, or null if not present", + bfinally: "[AST_Finally?] the finally block, or null if not present" + }, + _equals: function(node) { + return all_equals(this.body, node.body) + && prop_equals(this.bcatch, node.bcatch) + && prop_equals(this.bfinally, node.bfinally); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + walk_body(node, visitor); + if (node.bcatch) node.bcatch.walk(visitor); + if (node.bfinally) node.bfinally.walk(visitor); + }); + }, + _validate: function() { + if (this.bcatch != null) { + if (!(this.bcatch instanceof AST_Catch)) throw new Error("bcatch must be AST_Catch"); + } + if (this.bfinally != null) { + if (!(this.bfinally instanceof AST_Finally)) throw new Error("bfinally must be AST_Finally"); + } + }, +}, AST_Block); + +var AST_Catch = DEFNODE("Catch", "argname", { + $documentation: "A `catch` node; only makes sense as part of a `try` statement", + $propdoc: { + argname: "[(AST_Destructured|AST_SymbolCatch)?] symbol for the exception, or null if not present", + }, + _equals: function(node) { + return prop_equals(this.argname, node.argname) + && all_equals(this.body, node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.argname) node.argname.walk(visitor); + walk_body(node, visitor); + }); + }, + _validate: function() { + if (this.argname != null) validate_destructured(this.argname, function(node) { + if (!(node instanceof AST_SymbolCatch)) throw new Error("argname must be AST_SymbolCatch"); + }); + }, +}, AST_Block); + +var AST_Finally = DEFNODE("Finally", null, { + $documentation: "A `finally` node; only makes sense as part of a `try` statement" +}, AST_Block); + +/* -----[ VAR ]----- */ + +var AST_Definitions = DEFNODE("Definitions", "definitions", { + $documentation: "Base class for `var` nodes (variable declarations/initializations)", + $propdoc: { + definitions: "[AST_VarDef*] array of variable definitions" + }, + _equals: function(node) { + return all_equals(this.definitions, node.definitions); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.definitions.forEach(function(defn) { + defn.walk(visitor); + }); + }); + }, + _validate: function() { + if (this.TYPE == "Definitions") throw new Error("should not instantiate AST_Definitions"); + if (this.definitions.length < 1) throw new Error("must have at least one definition"); + }, +}, AST_Statement); + +var AST_Const = DEFNODE("Const", null, { + $documentation: "A `const` statement", + _validate: function() { + this.definitions.forEach(function(node) { + if (!(node instanceof AST_VarDef)) throw new Error("definitions must be AST_VarDef[]"); + validate_destructured(node.name, function(node) { + if (!(node instanceof AST_SymbolConst)) throw new Error("name must be AST_SymbolConst"); + }); + }); + }, +}, AST_Definitions); + +var AST_Let = DEFNODE("Let", null, { + $documentation: "A `let` statement", + _validate: function() { + this.definitions.forEach(function(node) { + if (!(node instanceof AST_VarDef)) throw new Error("definitions must be AST_VarDef[]"); + validate_destructured(node.name, function(node) { + if (!(node instanceof AST_SymbolLet)) throw new Error("name must be AST_SymbolLet"); + }); + }); + }, +}, AST_Definitions); + +var AST_Var = DEFNODE("Var", null, { + $documentation: "A `var` statement", + _validate: function() { + this.definitions.forEach(function(node) { + if (!(node instanceof AST_VarDef)) throw new Error("definitions must be AST_VarDef[]"); + validate_destructured(node.name, function(node) { + if (!(node instanceof AST_SymbolVar)) throw new Error("name must be AST_SymbolVar"); + }); + }); + }, +}, AST_Definitions); + +var AST_VarDef = DEFNODE("VarDef", "name value", { + $documentation: "A variable declaration; only appears in a AST_Definitions node", + $propdoc: { + name: "[AST_Destructured|AST_SymbolVar] name of the variable", + value: "[AST_Node?] initializer, or null of there's no initializer", + }, + _equals: function(node) { + return this.name.equals(node.name) + && prop_equals(this.value, node.value); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.name.walk(visitor); + if (node.value) node.value.walk(visitor); + }); + }, + _validate: function() { + if (this.value != null) must_be_expression(this, "value"); + }, +}); + +/* -----[ OTHER ]----- */ + +var AST_ExportDeclaration = DEFNODE("ExportDeclaration", "body", { + $documentation: "An `export` statement", + $propdoc: { + body: "[AST_DefClass|AST_Definitions|AST_LambdaDefinition] the statement to export", + }, + _equals: function(node) { + return this.body.equals(node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.body.walk(visitor); + }); + }, + _validate: function() { + if (!(this.body instanceof AST_DefClass + || this.body instanceof AST_Definitions + || this.body instanceof AST_LambdaDefinition)) { + throw new Error("body must be AST_DefClass, AST_Definitions or AST_LambdaDefinition"); + } + }, +}, AST_Statement); + +var AST_ExportDefault = DEFNODE("ExportDefault", "body", { + $documentation: "An `export default` statement", + $propdoc: { + body: "[AST_Node] the default export", + }, + _equals: function(node) { + return this.body.equals(node.body); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.body.walk(visitor); + }); + }, + _validate: function() { + if (!(this.body instanceof AST_DefClass || this.body instanceof AST_LambdaDefinition)) { + must_be_expression(this, "body"); + } + }, +}, AST_Statement); + +var AST_ExportForeign = DEFNODE("ExportForeign", "aliases keys path", { + $documentation: "An `export ... from '...'` statement", + $propdoc: { + aliases: "[AST_String*] array of aliases to export", + keys: "[AST_String*] array of keys to import", + path: "[AST_String] the path to import module", + }, + _equals: function(node) { + return this.path.equals(node.path) + && all_equals(this.aliases, node.aliases) + && all_equals(this.keys, node.keys); + }, + _validate: function() { + if (this.aliases.length != this.keys.length) { + throw new Error("aliases:key length mismatch: " + this.aliases.length + " != " + this.keys.length); + } + this.aliases.forEach(function(name) { + if (!(name instanceof AST_String)) throw new Error("aliases must contain AST_String"); + }); + this.keys.forEach(function(name) { + if (!(name instanceof AST_String)) throw new Error("keys must contain AST_String"); + }); + if (!(this.path instanceof AST_String)) throw new Error("path must be AST_String"); + }, +}, AST_Statement); + +var AST_ExportReferences = DEFNODE("ExportReferences", "properties", { + $documentation: "An `export { ... }` statement", + $propdoc: { + properties: "[AST_SymbolExport*] array of aliases to export", + }, + _equals: function(node) { + return all_equals(this.properties, node.properties); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.properties.forEach(function(prop) { + prop.walk(visitor); + }); + }); + }, + _validate: function() { + this.properties.forEach(function(prop) { + if (!(prop instanceof AST_SymbolExport)) throw new Error("properties must contain AST_SymbolExport"); + }); + }, +}, AST_Statement); + +var AST_Import = DEFNODE("Import", "all default path properties", { + $documentation: "An `import` statement", + $propdoc: { + all: "[AST_SymbolImport?] the imported namespace, or null if not specified", + default: "[AST_SymbolImport?] the alias for default `export`, or null if not specified", + path: "[AST_String] the path to import module", + properties: "[(AST_SymbolImport*)?] array of aliases, or null if not specified", + }, + _equals: function(node) { + return this.path.equals(node.path) + && prop_equals(this.all, node.all) + && prop_equals(this.default, node.default) + && !this.properties == !node.properties + && (!this.properties || all_equals(this.properties, node.properties)); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.all) node.all.walk(visitor); + if (node.default) node.default.walk(visitor); + if (node.properties) node.properties.forEach(function(prop) { + prop.walk(visitor); + }); + }); + }, + _validate: function() { + if (this.all != null) { + if (!(this.all instanceof AST_SymbolImport)) throw new Error("all must be AST_SymbolImport"); + if (this.properties != null) throw new Error("cannot import both * and {} in the same statement"); + } + if (this.default != null) { + if (!(this.default instanceof AST_SymbolImport)) throw new Error("default must be AST_SymbolImport"); + if (this.default.key.value !== "") throw new Error("invalid default key: " + this.default.key.value); + } + if (!(this.path instanceof AST_String)) throw new Error("path must be AST_String"); + if (this.properties != null) this.properties.forEach(function(node) { + if (!(node instanceof AST_SymbolImport)) throw new Error("properties must contain AST_SymbolImport"); + }); + }, +}, AST_Statement); + +var AST_DefaultValue = DEFNODE("DefaultValue", "name value", { + $documentation: "A default value declaration", + $propdoc: { + name: "[AST_Destructured|AST_SymbolDeclaration] name of the variable", + value: "[AST_Node] value to assign if variable is `undefined`", + }, + _equals: function(node) { + return this.name.equals(node.name) + && this.value.equals(node.value); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.name.walk(visitor); + node.value.walk(visitor); + }); + }, + _validate: function() { + must_be_expression(this, "value"); + }, +}); + +function must_be_expressions(node, prop, allow_spread, allow_hole) { + node[prop].forEach(function(node) { + validate_expression(node, prop, true, allow_spread, allow_hole); + }); +} + +var AST_Call = DEFNODE("Call", "args expression optional pure terminal", { + $documentation: "A function call expression", + $propdoc: { + args: "[AST_Node*] array of arguments", + expression: "[AST_Node] expression to invoke as function", + optional: "[boolean] whether the expression is optional chaining", + pure: "[boolean/S] marker for side-effect-free call expression", + terminal: "[boolean] whether the chain has ended", + }, + _equals: function(node) { + return !this.optional == !node.optional + && this.expression.equals(node.expression) + && all_equals(this.args, node.args); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.expression.walk(visitor); + node.args.forEach(function(arg) { + arg.walk(visitor); + }); + }); + }, + _validate: function() { + must_be_expression(this, "expression"); + must_be_expressions(this, "args", true); + }, +}); + +var AST_New = DEFNODE("New", null, { + $documentation: "An object instantiation. Derives from a function call since it has exactly the same properties", + _validate: function() { + if (this.optional) throw new Error("optional must be false"); + if (this.terminal) throw new Error("terminal must be false"); + }, +}, AST_Call); + +var AST_Sequence = DEFNODE("Sequence", "expressions", { + $documentation: "A sequence expression (comma-separated expressions)", + $propdoc: { + expressions: "[AST_Node*] array of expressions (at least two)", + }, + _equals: function(node) { + return all_equals(this.expressions, node.expressions); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.expressions.forEach(function(expr) { + expr.walk(visitor); + }); + }); + }, + _validate: function() { + if (this.expressions.length < 2) throw new Error("expressions must contain multiple elements"); + must_be_expressions(this, "expressions"); + }, +}); + +function root_expr(prop) { + while (prop instanceof AST_PropAccess) prop = prop.expression; + return prop; +} + +var AST_PropAccess = DEFNODE("PropAccess", "expression optional property terminal", { + $documentation: "Base class for property access expressions, i.e. `a.foo` or `a[\"foo\"]`", + $propdoc: { + expression: "[AST_Node] the “container” expression", + optional: "[boolean] whether the expression is optional chaining", + property: "[AST_Node|string] the property to access. For AST_Dot this is always a plain string, while for AST_Sub it's an arbitrary AST_Node", + terminal: "[boolean] whether the chain has ended", + }, + _equals: function(node) { + return !this.optional == !node.optional + && prop_equals(this.property, node.property) + && this.expression.equals(node.expression); + }, + get_property: function() { + var p = this.property; + if (p instanceof AST_Constant) return p.value; + if (p instanceof AST_UnaryPrefix && p.operator == "void" && p.expression instanceof AST_Constant) return; + return p; + }, + _validate: function() { + if (this.TYPE == "PropAccess") throw new Error("should not instantiate AST_PropAccess"); + must_be_expression(this, "expression"); + }, +}); + +var AST_Dot = DEFNODE("Dot", "quoted", { + $documentation: "A dotted property access expression", + $propdoc: { + quoted: "[boolean] whether property is transformed from a quoted string", + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.expression.walk(visitor); + }); + }, + _validate: function() { + if (typeof this.property != "string") throw new Error("property must be string"); + }, +}, AST_PropAccess); + +var AST_Sub = DEFNODE("Sub", null, { + $documentation: "Index-style property access, i.e. `a[\"foo\"]`", + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.expression.walk(visitor); + node.property.walk(visitor); + }); + }, + _validate: function() { + must_be_expression(this, "property"); + }, +}, AST_PropAccess); + +var AST_Spread = DEFNODE("Spread", "expression", { + $documentation: "Spread expression in array/object literals or function calls", + $propdoc: { + expression: "[AST_Node] expression to be expanded", + }, + _equals: function(node) { + return this.expression.equals(node.expression); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.expression.walk(visitor); + }); + }, + _validate: function() { + must_be_expression(this, "expression"); + }, +}); + +var AST_Unary = DEFNODE("Unary", "operator expression", { + $documentation: "Base class for unary expressions", + $propdoc: { + operator: "[string] the operator", + expression: "[AST_Node] expression that this unary operator applies to", + }, + _equals: function(node) { + return this.operator == node.operator + && this.expression.equals(node.expression); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.expression.walk(visitor); + }); + }, + _validate: function() { + if (this.TYPE == "Unary") throw new Error("should not instantiate AST_Unary"); + if (typeof this.operator != "string") throw new Error("operator must be string"); + must_be_expression(this, "expression"); + }, +}); + +var AST_UnaryPrefix = DEFNODE("UnaryPrefix", null, { + $documentation: "Unary prefix expression, i.e. `typeof i` or `++i`" +}, AST_Unary); + +var AST_UnaryPostfix = DEFNODE("UnaryPostfix", null, { + $documentation: "Unary postfix expression, i.e. `i++`" +}, AST_Unary); + +var AST_Binary = DEFNODE("Binary", "operator left right", { + $documentation: "Binary expression, i.e. `a + b`", + $propdoc: { + left: "[AST_Node] left-hand side expression", + operator: "[string] the operator", + right: "[AST_Node] right-hand side expression" + }, + _equals: function(node) { + return this.operator == node.operator + && this.left.equals(node.left) + && this.right.equals(node.right); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.left.walk(visitor); + node.right.walk(visitor); + }); + }, + _validate: function() { + if (!(this instanceof AST_Assign)) must_be_expression(this, "left"); + if (typeof this.operator != "string") throw new Error("operator must be string"); + must_be_expression(this, "right"); + }, +}); + +var AST_Conditional = DEFNODE("Conditional", "condition consequent alternative", { + $documentation: "Conditional expression using the ternary operator, i.e. `a ? b : c`", + $propdoc: { + condition: "[AST_Node]", + consequent: "[AST_Node]", + alternative: "[AST_Node]" + }, + _equals: function(node) { + return this.condition.equals(node.condition) + && this.consequent.equals(node.consequent) + && this.alternative.equals(node.alternative); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.condition.walk(visitor); + node.consequent.walk(visitor); + node.alternative.walk(visitor); + }); + }, + _validate: function() { + must_be_expression(this, "condition"); + must_be_expression(this, "consequent"); + must_be_expression(this, "alternative"); + }, +}); + +var AST_Assign = DEFNODE("Assign", null, { + $documentation: "An assignment expression — `a = b + 5`", + _validate: function() { + if (this.operator.indexOf("=") < 0) throw new Error('operator must contain "="'); + if (this.left instanceof AST_Destructured) { + if (this.operator != "=") throw new Error("invalid destructuring operator: " + this.operator); + validate_destructured(this.left, function(node) { + if (!(node instanceof AST_PropAccess || node instanceof AST_SymbolRef)) { + throw new Error("left must be assignable: " + node.TYPE); + } + }); + } else if (!(this.left instanceof AST_Infinity + || this.left instanceof AST_NaN + || this.left instanceof AST_PropAccess && !this.left.optional + || this.left instanceof AST_SymbolRef + || this.left instanceof AST_Undefined)) { + throw new Error("left must be assignable"); + } + }, +}, AST_Binary); + +var AST_Await = DEFNODE("Await", "expression", { + $documentation: "An await expression", + $propdoc: { + expression: "[AST_Node] expression with Promise to resolve on", + }, + _equals: function(node) { + return this.expression.equals(node.expression); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.expression.walk(visitor); + }); + }, + _validate: function() { + must_be_expression(this, "expression"); + }, +}); + +var AST_Yield = DEFNODE("Yield", "expression nested", { + $documentation: "A yield expression", + $propdoc: { + expression: "[AST_Node?] return value for iterator, or null if undefined", + nested: "[boolean] whether to iterate over expression as generator", + }, + _equals: function(node) { + return !this.nested == !node.nested + && prop_equals(this.expression, node.expression); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.expression) node.expression.walk(visitor); + }); + }, + _validate: function() { + if (this.expression != null) { + must_be_expression(this, "expression"); + } else if (this.nested) { + throw new Error("yield* must contain expression"); + } + }, +}); + +/* -----[ LITERALS ]----- */ + +var AST_Array = DEFNODE("Array", "elements", { + $documentation: "An array literal", + $propdoc: { + elements: "[AST_Node*] array of elements" + }, + _equals: function(node) { + return all_equals(this.elements, node.elements); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.elements.forEach(function(element) { + element.walk(visitor); + }); + }); + }, + _validate: function() { + must_be_expressions(this, "elements", true, true); + }, +}); + +var AST_Destructured = DEFNODE("Destructured", "rest", { + $documentation: "Base class for destructured literal", + $propdoc: { + rest: "[(AST_Destructured|AST_SymbolDeclaration|AST_SymbolRef)?] rest parameter, or null if absent", + }, + _validate: function() { + if (this.TYPE == "Destructured") throw new Error("should not instantiate AST_Destructured"); + }, +}); + +function validate_destructured(node, check, allow_default) { + if (node instanceof AST_DefaultValue && allow_default) return validate_destructured(node.name, check); + if (node instanceof AST_Destructured) { + if (node.rest != null) validate_destructured(node.rest, check); + if (node instanceof AST_DestructuredArray) return node.elements.forEach(function(node) { + if (!(node instanceof AST_Hole)) validate_destructured(node, check, true); + }); + if (node instanceof AST_DestructuredObject) return node.properties.forEach(function(prop) { + validate_destructured(prop.value, check, true); + }); + } + check(node); +} + +var AST_DestructuredArray = DEFNODE("DestructuredArray", "elements", { + $documentation: "A destructured array literal", + $propdoc: { + elements: "[(AST_DefaultValue|AST_Destructured|AST_SymbolDeclaration|AST_SymbolRef)*] array of elements", + }, + _equals: function(node) { + return prop_equals(this.rest, node.rest) + && all_equals(this.elements, node.elements); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.elements.forEach(function(element) { + element.walk(visitor); + }); + if (node.rest) node.rest.walk(visitor); + }); + }, +}, AST_Destructured); + +var AST_DestructuredKeyVal = DEFNODE("DestructuredKeyVal", "key value", { + $documentation: "A key: value destructured property", + $propdoc: { + key: "[string|AST_Node] property name. For computed property this is an AST_Node.", + value: "[AST_DefaultValue|AST_Destructured|AST_SymbolDeclaration|AST_SymbolRef] property value", + }, + _equals: function(node) { + return prop_equals(this.key, node.key) + && this.value.equals(node.value); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.key instanceof AST_Node) node.key.walk(visitor); + node.value.walk(visitor); + }); + }, + _validate: function() { + if (typeof this.key != "string") { + if (!(this.key instanceof AST_Node)) throw new Error("key must be string or AST_Node"); + must_be_expression(this, "key"); + } + if (!(this.value instanceof AST_Node)) throw new Error("value must be AST_Node"); + }, +}); + +var AST_DestructuredObject = DEFNODE("DestructuredObject", "properties", { + $documentation: "A destructured object literal", + $propdoc: { + properties: "[AST_DestructuredKeyVal*] array of properties", + }, + _equals: function(node) { + return prop_equals(this.rest, node.rest) + && all_equals(this.properties, node.properties); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.properties.forEach(function(prop) { + prop.walk(visitor); + }); + if (node.rest) node.rest.walk(visitor); + }); + }, + _validate: function() { + this.properties.forEach(function(node) { + if (!(node instanceof AST_DestructuredKeyVal)) throw new Error("properties must be AST_DestructuredKeyVal[]"); + }); + }, +}, AST_Destructured); + +var AST_Object = DEFNODE("Object", "properties", { + $documentation: "An object literal", + $propdoc: { + properties: "[(AST_ObjectProperty|AST_Spread)*] array of properties" + }, + _equals: function(node) { + return all_equals(this.properties, node.properties); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + node.properties.forEach(function(prop) { + prop.walk(visitor); + }); + }); + }, + _validate: function() { + this.properties.forEach(function(node) { + if (!(node instanceof AST_ObjectProperty || node instanceof AST_Spread)) { + throw new Error("properties must contain AST_ObjectProperty and/or AST_Spread only"); + } + }); + }, +}); + +var AST_ObjectProperty = DEFNODE("ObjectProperty", "key value", { + $documentation: "Base class for literal object properties", + $propdoc: { + key: "[string|AST_Node] property name. For computed property this is an AST_Node.", + value: "[AST_Node] property value. For getters and setters this is an AST_Accessor.", + }, + _equals: function(node) { + return prop_equals(this.key, node.key) + && this.value.equals(node.value); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.key instanceof AST_Node) node.key.walk(visitor); + node.value.walk(visitor); + }); + }, + _validate: function() { + if (this.TYPE == "ObjectProperty") throw new Error("should not instantiate AST_ObjectProperty"); + if (typeof this.key != "string") { + if (!(this.key instanceof AST_Node)) throw new Error("key must be string or AST_Node"); + must_be_expression(this, "key"); + } + if (!(this.value instanceof AST_Node)) throw new Error("value must be AST_Node"); + }, +}); + +var AST_ObjectKeyVal = DEFNODE("ObjectKeyVal", null, { + $documentation: "A key: value object property", + _validate: function() { + must_be_expression(this, "value"); + }, +}, AST_ObjectProperty); + +var AST_ObjectMethod = DEFNODE("ObjectMethod", null, { + $documentation: "A key(){} object property", + _validate: function() { + if (!(this.value instanceof AST_LambdaExpression)) throw new Error("value must be AST_LambdaExpression"); + if (is_arrow(this.value)) throw new Error("value cannot be AST_Arrow or AST_AsyncArrow"); + if (this.value.name != null) throw new Error("name of object method's lambda must be null"); + }, +}, AST_ObjectKeyVal); + +var AST_ObjectSetter = DEFNODE("ObjectSetter", null, { + $documentation: "An object setter property", + _validate: function() { + if (!(this.value instanceof AST_Accessor)) throw new Error("value must be AST_Accessor"); + }, +}, AST_ObjectProperty); + +var AST_ObjectGetter = DEFNODE("ObjectGetter", null, { + $documentation: "An object getter property", + _validate: function() { + if (!(this.value instanceof AST_Accessor)) throw new Error("value must be AST_Accessor"); + }, +}, AST_ObjectProperty); + +var AST_Symbol = DEFNODE("Symbol", "scope name thedef", { + $documentation: "Base class for all symbols", + $propdoc: { + name: "[string] name of this symbol", + scope: "[AST_Scope/S] the current scope (not necessarily the definition scope)", + thedef: "[SymbolDef/S] the definition of this symbol" + }, + _equals: function(node) { + return this.thedef ? this.thedef === node.thedef : this.name == node.name; + }, + _validate: function() { + if (this.TYPE == "Symbol") throw new Error("should not instantiate AST_Symbol"); + if (typeof this.name != "string") throw new Error("name must be string"); + }, +}); + +var AST_SymbolDeclaration = DEFNODE("SymbolDeclaration", "init", { + $documentation: "A declaration symbol (symbol in var, function name or argument, symbol in catch)", +}, AST_Symbol); + +var AST_SymbolConst = DEFNODE("SymbolConst", null, { + $documentation: "Symbol defining a constant", +}, AST_SymbolDeclaration); + +var AST_SymbolImport = DEFNODE("SymbolImport", "key", { + $documentation: "Symbol defined by an `import` statement", + $propdoc: { + key: "[AST_String] the original `export` name", + }, + _equals: function(node) { + return this.name == node.name + && this.key.equals(node.key); + }, + _validate: function() { + if (!(this.key instanceof AST_String)) throw new Error("key must be AST_String"); + }, +}, AST_SymbolConst); + +var AST_SymbolLet = DEFNODE("SymbolLet", null, { + $documentation: "Symbol defining a lexical-scoped variable", +}, AST_SymbolDeclaration); + +var AST_SymbolVar = DEFNODE("SymbolVar", null, { + $documentation: "Symbol defining a variable", +}, AST_SymbolDeclaration); + +var AST_SymbolFunarg = DEFNODE("SymbolFunarg", "unused", { + $documentation: "Symbol naming a function argument", +}, AST_SymbolVar); + +var AST_SymbolDefun = DEFNODE("SymbolDefun", null, { + $documentation: "Symbol defining a function", +}, AST_SymbolDeclaration); + +var AST_SymbolLambda = DEFNODE("SymbolLambda", null, { + $documentation: "Symbol naming a function expression", +}, AST_SymbolDeclaration); + +var AST_SymbolDefClass = DEFNODE("SymbolDefClass", null, { + $documentation: "Symbol defining a class", +}, AST_SymbolConst); + +var AST_SymbolClass = DEFNODE("SymbolClass", null, { + $documentation: "Symbol naming a class expression", +}, AST_SymbolConst); + +var AST_SymbolCatch = DEFNODE("SymbolCatch", null, { + $documentation: "Symbol naming the exception in catch", +}, AST_SymbolDeclaration); + +var AST_Label = DEFNODE("Label", "references", { + $documentation: "Symbol naming a label (declaration)", + $propdoc: { + references: "[AST_LoopControl*] a list of nodes referring to this label" + }, + initialize: function() { + this.references = []; + this.thedef = this; + }, +}, AST_Symbol); + +var AST_SymbolRef = DEFNODE("SymbolRef", "fixed in_arg redef", { + $documentation: "Reference to some symbol (not definition/declaration)", +}, AST_Symbol); + +var AST_SymbolExport = DEFNODE("SymbolExport", "alias", { + $documentation: "Reference in an `export` statement", + $propdoc: { + alias: "[AST_String] the `export` alias", + }, + _equals: function(node) { + return this.name == node.name + && this.alias.equals(node.alias); + }, + _validate: function() { + if (!(this.alias instanceof AST_String)) throw new Error("alias must be AST_String"); + }, +}, AST_SymbolRef); + +var AST_LabelRef = DEFNODE("LabelRef", null, { + $documentation: "Reference to a label symbol", +}, AST_Symbol); + +var AST_ObjectIdentity = DEFNODE("ObjectIdentity", null, { + $documentation: "Base class for `super` & `this`", + _equals: return_true, + _validate: function() { + if (this.TYPE == "ObjectIdentity") throw new Error("should not instantiate AST_ObjectIdentity"); + }, +}, AST_Symbol); + +var AST_Super = DEFNODE("Super", null, { + $documentation: "The `super` symbol", + _validate: function() { + if (this.name !== "super") throw new Error('name must be "super"'); + }, +}, AST_ObjectIdentity); + +var AST_This = DEFNODE("This", null, { + $documentation: "The `this` symbol", + _validate: function() { + if (this.TYPE == "This" && this.name !== "this") throw new Error('name must be "this"'); + }, +}, AST_ObjectIdentity); + +var AST_NewTarget = DEFNODE("NewTarget", null, { + $documentation: "The `new.target` symbol", + initialize: function() { + this.name = "new.target"; + }, + _validate: function() { + if (this.name !== "new.target") throw new Error('name must be "new.target": ' + this.name); + }, +}, AST_This); + +var AST_Template = DEFNODE("Template", "expressions strings tag", { + $documentation: "A template literal, i.e. tag`str1${expr1}...strN${exprN}strN+1`", + $propdoc: { + expressions: "[AST_Node*] the placeholder expressions", + strings: "[string*] the raw text segments", + tag: "[AST_Node?] tag function, or null if absent", + }, + _equals: function(node) { + return prop_equals(this.tag, node.tag) + && list_equals(this.strings, node.strings) + && all_equals(this.expressions, node.expressions); + }, + walk: function(visitor) { + var node = this; + visitor.visit(node, function() { + if (node.tag) node.tag.walk(visitor); + node.expressions.forEach(function(expr) { + expr.walk(visitor); + }); + }); + }, + _validate: function() { + if (this.expressions.length + 1 != this.strings.length) { + throw new Error("malformed template with " + this.expressions.length + " placeholder(s) but " + this.strings.length + " text segment(s)"); + } + must_be_expressions(this, "expressions"); + this.strings.forEach(function(string) { + if (typeof string != "string") throw new Error("strings must contain string"); + }); + if (this.tag != null) must_be_expression(this, "tag"); + }, +}); + +var AST_Constant = DEFNODE("Constant", null, { + $documentation: "Base class for all constants", + _equals: function(node) { + return this.value === node.value; + }, + _validate: function() { + if (this.TYPE == "Constant") throw new Error("should not instantiate AST_Constant"); + }, +}); + +var AST_String = DEFNODE("String", "quote value", { + $documentation: "A string literal", + $propdoc: { + quote: "[string?] the original quote character", + value: "[string] the contents of this string", + }, + _validate: function() { + if (this.quote != null) { + if (typeof this.quote != "string") throw new Error("quote must be string"); + if (!/^["']$/.test(this.quote)) throw new Error("invalid quote: " + this.quote); + } + if (typeof this.value != "string") throw new Error("value must be string"); + }, +}, AST_Constant); + +var AST_Number = DEFNODE("Number", "value", { + $documentation: "A number literal", + $propdoc: { + value: "[number] the numeric value", + }, + _validate: function() { + if (typeof this.value != "number") throw new Error("value must be number"); + if (!isFinite(this.value)) throw new Error("value must be finite"); + if (this.value < 0) throw new Error("value cannot be negative"); + }, +}, AST_Constant); + +var AST_BigInt = DEFNODE("BigInt", "value", { + $documentation: "A BigInt literal", + $propdoc: { + value: "[string] the numeric representation", + }, + _validate: function() { + if (typeof this.value != "string") throw new Error("value must be string"); + if (this.value[0] == "-") throw new Error("value cannot be negative"); + }, +}, AST_Constant); + +var AST_RegExp = DEFNODE("RegExp", "value", { + $documentation: "A regexp literal", + $propdoc: { + value: "[RegExp] the actual regexp" + }, + _equals: function(node) { + return "" + this.value == "" + node.value; + }, + _validate: function() { + if (!(this.value instanceof RegExp)) throw new Error("value must be RegExp"); + }, +}, AST_Constant); + +var AST_Atom = DEFNODE("Atom", null, { + $documentation: "Base class for atoms", + _equals: return_true, + _validate: function() { + if (this.TYPE == "Atom") throw new Error("should not instantiate AST_Atom"); + }, +}, AST_Constant); + +var AST_Null = DEFNODE("Null", null, { + $documentation: "The `null` atom", + value: null, +}, AST_Atom); + +var AST_NaN = DEFNODE("NaN", null, { + $documentation: "The impossible value", + value: 0/0, +}, AST_Atom); + +var AST_Undefined = DEFNODE("Undefined", null, { + $documentation: "The `undefined` value", + value: function(){}(), +}, AST_Atom); + +var AST_Hole = DEFNODE("Hole", null, { + $documentation: "A hole in an array", + value: function(){}(), +}, AST_Atom); + +var AST_Infinity = DEFNODE("Infinity", null, { + $documentation: "The `Infinity` value", + value: 1/0, +}, AST_Atom); + +var AST_Boolean = DEFNODE("Boolean", null, { + $documentation: "Base class for booleans", + _validate: function() { + if (this.TYPE == "Boolean") throw new Error("should not instantiate AST_Boolean"); + }, +}, AST_Atom); + +var AST_False = DEFNODE("False", null, { + $documentation: "The `false` atom", + value: false, +}, AST_Boolean); + +var AST_True = DEFNODE("True", null, { + $documentation: "The `true` atom", + value: true, +}, AST_Boolean); + +/* -----[ TreeWalker ]----- */ + +function TreeWalker(callback) { + this.callback = callback; + this.directives = Object.create(null); + this.stack = []; +} +TreeWalker.prototype = { + visit: function(node, descend) { + this.push(node); + var done = this.callback(node, descend || noop); + if (!done && descend) descend(); + this.pop(); + }, + parent: function(n) { + return this.stack[this.stack.length - 2 - (n || 0)]; + }, + push: function(node) { + var value; + if (node instanceof AST_Class) { + this.directives = Object.create(this.directives); + value = "use strict"; + } else if (node instanceof AST_Directive) { + value = node.value; + } else if (node instanceof AST_Lambda) { + this.directives = Object.create(this.directives); + } + if (value && !this.directives[value]) this.directives[value] = node; + this.stack.push(node); + }, + pop: function() { + var node = this.stack.pop(); + if (node instanceof AST_Class || node instanceof AST_Lambda) { + this.directives = Object.getPrototypeOf(this.directives); + } + }, + self: function() { + return this.stack[this.stack.length - 1]; + }, + find_parent: function(type) { + var stack = this.stack; + for (var i = stack.length - 1; --i >= 0;) { + var x = stack[i]; + if (x instanceof type) return x; + } + }, + has_directive: function(type) { + var dir = this.directives[type]; + if (dir) return dir; + var node = this.stack[this.stack.length - 1]; + if (node instanceof AST_Scope) { + for (var i = 0; i < node.body.length; ++i) { + var st = node.body[i]; + if (!(st instanceof AST_Directive)) break; + if (st.value == type) return st; + } + } + }, + loopcontrol_target: function(node) { + var stack = this.stack; + if (node.label) for (var i = stack.length; --i >= 0;) { + var x = stack[i]; + if (x instanceof AST_LabeledStatement && x.label.name == node.label.name) + return x.body; + } else for (var i = stack.length; --i >= 0;) { + var x = stack[i]; + if (x instanceof AST_IterationStatement + || node instanceof AST_Break && x instanceof AST_Switch) + return x; + } + }, + in_boolean_context: function() { + for (var drop = true, level = 0, parent, self = this.self(); parent = this.parent(level++); self = parent) { + if (parent instanceof AST_Binary) switch (parent.operator) { + case "&&": + case "||": + if (parent.left === self) drop = false; + continue; + default: + return false; + } + if (parent instanceof AST_Conditional) { + if (parent.condition === self) return true; + continue; + } + if (parent instanceof AST_DWLoop) return parent.condition === self; + if (parent instanceof AST_For) return parent.condition === self; + if (parent instanceof AST_If) return parent.condition === self; + if (parent instanceof AST_Return) { + if (parent.in_bool) return true; + while (parent = this.parent(level++)) { + if (parent instanceof AST_Lambda) { + if (parent.name) return false; + parent = this.parent(level++); + if (parent.TYPE != "Call") return false; + break; + } + } + } + if (parent instanceof AST_Sequence) { + if (parent.tail_node() === self) continue; + return drop ? "d" : true; + } + if (parent instanceof AST_SimpleStatement) return drop ? "d" : true; + if (parent instanceof AST_UnaryPrefix) return parent.operator == "!"; + return false; + } + } +}; diff --git a/node_modules/uglify-js/lib/compress.js b/node_modules/uglify-js/lib/compress.js new file mode 100644 index 0000000..cde397c --- /dev/null +++ b/node_modules/uglify-js/lib/compress.js @@ -0,0 +1,14241 @@ +/*********************************************************************** + + A JavaScript tokenizer / parser / beautifier / compressor. + https://github.com/mishoo/UglifyJS + + -------------------------------- (C) --------------------------------- + + Author: Mihai Bazon + + http://mihai.bazon.net/blog + + Distributed under the BSD license: + + Copyright 2012 (c) Mihai Bazon + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + ***********************************************************************/ + +"use strict"; + +function Compressor(options, false_by_default) { + if (!(this instanceof Compressor)) + return new Compressor(options, false_by_default); + TreeTransformer.call(this, this.before, this.after); + this.options = defaults(options, { + annotations : !false_by_default, + arguments : !false_by_default, + arrows : !false_by_default, + assignments : !false_by_default, + awaits : !false_by_default, + booleans : !false_by_default, + collapse_vars : !false_by_default, + comparisons : !false_by_default, + conditionals : !false_by_default, + dead_code : !false_by_default, + default_values : !false_by_default, + directives : !false_by_default, + drop_console : false, + drop_debugger : !false_by_default, + evaluate : !false_by_default, + expression : false, + functions : !false_by_default, + global_defs : false, + hoist_exports : !false_by_default, + hoist_funs : false, + hoist_props : !false_by_default, + hoist_vars : false, + ie : false, + if_return : !false_by_default, + imports : !false_by_default, + inline : !false_by_default, + join_vars : !false_by_default, + keep_fargs : false_by_default, + keep_fnames : false, + keep_infinity : false, + loops : !false_by_default, + merge_vars : !false_by_default, + module : false, + negate_iife : !false_by_default, + objects : !false_by_default, + optional_chains : !false_by_default, + passes : 1, + properties : !false_by_default, + pure_funcs : null, + pure_getters : !false_by_default && "strict", + reduce_funcs : !false_by_default, + reduce_vars : !false_by_default, + rests : !false_by_default, + sequences : !false_by_default, + side_effects : !false_by_default, + spreads : !false_by_default, + strings : !false_by_default, + switches : !false_by_default, + templates : !false_by_default, + top_retain : null, + toplevel : !!(options && (options["module"] || options["top_retain"])), + typeofs : !false_by_default, + unsafe : false, + unsafe_comps : false, + unsafe_Function : false, + unsafe_math : false, + unsafe_proto : false, + unsafe_regexp : false, + unsafe_undefined: false, + unused : !false_by_default, + varify : !false_by_default, + webkit : false, + yields : !false_by_default, + }, true); + var evaluate = this.options["evaluate"]; + this.eval_threshold = /eager/.test(evaluate) ? 1 / 0 : +evaluate; + var global_defs = this.options["global_defs"]; + if (typeof global_defs == "object") for (var key in global_defs) { + if (/^@/.test(key) && HOP(global_defs, key)) { + global_defs[key.slice(1)] = parse(global_defs[key], { expression: true }); + } + } + if (this.options["inline"] === true) this.options["inline"] = 4; + this.drop_fargs = this.options["keep_fargs"] ? return_false : function(lambda, parent) { + if (lambda.length_read) return false; + var name = lambda.name; + if (!name) return parent && parent.TYPE == "Call" && parent.expression === lambda; + if (name.fixed_value() !== lambda) return false; + var def = name.definition(); + if (def.direct_access) return false; + var escaped = def.escaped; + return escaped && escaped.depth != 1; + }; + if (this.options["module"]) this.directives["use strict"] = true; + var pure_funcs = this.options["pure_funcs"]; + if (typeof pure_funcs == "function") { + this.pure_funcs = pure_funcs; + } else if (typeof pure_funcs == "string") { + this.pure_funcs = function(node) { + var expr; + if (node instanceof AST_Call) { + expr = node.expression; + } else if (node instanceof AST_Template) { + expr = node.tag; + } + return !(expr && pure_funcs === expr.print_to_string()); + }; + } else if (Array.isArray(pure_funcs)) { + this.pure_funcs = function(node) { + var expr; + if (node instanceof AST_Call) { + expr = node.expression; + } else if (node instanceof AST_Template) { + expr = node.tag; + } + return !(expr && member(expr.print_to_string(), pure_funcs)); + }; + } else { + this.pure_funcs = return_true; + } + var sequences = this.options["sequences"]; + this.sequences_limit = sequences == 1 ? 800 : sequences | 0; + var top_retain = this.options["top_retain"]; + if (top_retain instanceof RegExp) { + this.top_retain = function(def) { + return top_retain.test(def.name); + }; + } else if (typeof top_retain == "function") { + this.top_retain = top_retain; + } else if (top_retain) { + if (typeof top_retain == "string") { + top_retain = top_retain.split(/,/); + } + this.top_retain = function(def) { + return member(def.name, top_retain); + }; + } + var toplevel = this.options["toplevel"]; + this.toplevel = typeof toplevel == "string" ? { + funcs: /funcs/.test(toplevel), + vars: /vars/.test(toplevel) + } : { + funcs: toplevel, + vars: toplevel + }; +} + +Compressor.prototype = new TreeTransformer(function(node, descend, in_list) { + if (node._squeezed) return node; + var is_scope = node instanceof AST_Scope; + if (is_scope) { + if (this.option("arrows") && is_arrow(node) && node.value) { + node.body = [ node.first_statement() ]; + node.value = null; + } + node.hoist_properties(this); + node.hoist_declarations(this); + node.process_returns(this); + } + // Before https://github.com/mishoo/UglifyJS/pull/1602 AST_Node.optimize() + // would call AST_Node.transform() if a different instance of AST_Node is + // produced after OPT(). + // This corrupts TreeWalker.stack, which cause AST look-ups to malfunction. + // Migrate and defer all children's AST_Node.transform() to below, which + // will now happen after this parent AST_Node has been properly substituted + // thus gives a consistent AST snapshot. + descend(node, this); + // Existing code relies on how AST_Node.optimize() worked, and omitting the + // following replacement call would result in degraded efficiency of both + // output and performance. + descend(node, this); + var opt = node.optimize(this); + if (is_scope && opt === node && !this.has_directive("use asm") && !opt.pinned()) { + opt.drop_unused(this); + if (opt.merge_variables(this)) opt.drop_unused(this); + descend(opt, this); + } + if (opt === node) opt._squeezed = true; + return opt; +}); +Compressor.prototype.option = function(key) { + return this.options[key]; +}; +Compressor.prototype.exposed = function(def) { + if (def.exported) return true; + if (def.undeclared) return true; + if (!(def.global || def.scope.resolve() instanceof AST_Toplevel)) return false; + var toplevel = this.toplevel; + return !all(def.orig, function(sym) { + return toplevel[sym instanceof AST_SymbolDefun ? "funcs" : "vars"]; + }); +}; +Compressor.prototype.compress = function(node) { + node = node.resolve_defines(this); + node.hoist_exports(this); + if (this.option("expression")) node.process_expression(true); + var merge_vars = this.options.merge_vars; + var passes = +this.options.passes || 1; + var min_count = 1 / 0; + var stopping = false; + var mangle = { ie: this.option("ie") }; + for (var pass = 0; pass < passes; pass++) { + node.figure_out_scope(mangle); + if (pass > 0 || this.option("reduce_vars")) + node.reset_opt_flags(this); + this.options.merge_vars = merge_vars && (stopping || pass == passes - 1); + node = node.transform(this); + if (passes > 1) { + var count = 0; + node.walk(new TreeWalker(function() { + count++; + })); + AST_Node.info("pass {pass}: last_count: {min_count}, count: {count}", { + pass: pass, + min_count: min_count, + count: count, + }); + if (count < min_count) { + min_count = count; + stopping = false; + } else if (stopping) { + break; + } else { + stopping = true; + } + } + } + if (this.option("expression")) node.process_expression(false); + return node; +}; + +(function(OPT) { + OPT(AST_Node, function(self, compressor) { + return self; + }); + + AST_Toplevel.DEFMETHOD("hoist_exports", function(compressor) { + if (!compressor.option("hoist_exports")) return; + var body = this.body, props = []; + for (var i = 0; i < body.length; i++) { + var stat = body[i]; + if (stat instanceof AST_ExportDeclaration) { + body[i] = stat = stat.body; + if (stat instanceof AST_Definitions) { + stat.definitions.forEach(function(defn) { + defn.name.match_symbol(export_symbol, true); + }); + } else { + export_symbol(stat.name); + } + } else if (stat instanceof AST_ExportReferences) { + body.splice(i--, 1); + [].push.apply(props, stat.properties); + } + } + if (props.length) body.push(make_node(AST_ExportReferences, this, { properties: props })); + + function export_symbol(sym) { + if (!(sym instanceof AST_SymbolDeclaration)) return; + var node = make_node(AST_SymbolExport, sym); + node.alias = make_node(AST_String, node, { value: node.name }); + props.push(node); + } + }); + + AST_Scope.DEFMETHOD("process_expression", function(insert, transform) { + var self = this; + var tt = new TreeTransformer(function(node) { + if (insert) { + if (node instanceof AST_Directive) node = make_node(AST_SimpleStatement, node, { + body: make_node(AST_String, node), + }); + if (node instanceof AST_SimpleStatement) { + return transform ? transform(node) : make_node(AST_Return, node, { value: node.body }); + } + } else if (node instanceof AST_Return) { + if (transform) return transform(node); + var value = node.value; + if (value instanceof AST_String) return make_node(AST_Directive, value); + return make_node(AST_SimpleStatement, node, { + body: value || make_node(AST_UnaryPrefix, node, { + operator: "void", + expression: make_node(AST_Number, node, { value: 0 }), + }), + }); + } + if (node instanceof AST_Block) { + if (node instanceof AST_Lambda) { + if (node !== self) return node; + } else if (insert === "awaits" && node instanceof AST_Try) { + if (node.bfinally) return node; + } + for (var index = node.body.length; --index >= 0;) { + var stat = node.body[index]; + if (!is_declaration(stat, true)) { + node.body[index] = stat.transform(tt); + break; + } + } + } else if (node instanceof AST_If) { + node.body = node.body.transform(tt); + if (node.alternative) node.alternative = node.alternative.transform(tt); + } else if (node instanceof AST_With) { + node.body = node.body.transform(tt); + } + return node; + }); + self.transform(tt); + }); + AST_Toplevel.DEFMETHOD("unwrap_expression", function() { + var self = this; + switch (self.body.length) { + case 0: + return make_node(AST_UnaryPrefix, self, { + operator: "void", + expression: make_node(AST_Number, self, { value: 0 }), + }); + case 1: + var stat = self.body[0]; + if (stat instanceof AST_Directive) return make_node(AST_String, stat); + if (stat instanceof AST_SimpleStatement) return stat.body; + default: + return make_node(AST_Call, self, { + expression: make_node(AST_Function, self, { + argnames: [], + body: self.body, + }).init_vars(self), + args: [], + }); + } + }); + AST_Node.DEFMETHOD("wrap_expression", function() { + var self = this; + if (!is_statement(self)) self = make_node(AST_SimpleStatement, self, { body: self }); + if (!(self instanceof AST_Toplevel)) self = make_node(AST_Toplevel, self, { body: [ self ] }); + return self; + }); + + function read_property(obj, node) { + var key = node.get_property(); + if (key instanceof AST_Node) return; + var value; + if (obj instanceof AST_Array) { + var elements = obj.elements; + if (key == "length") return make_node_from_constant(elements.length, obj); + if (typeof key == "number" && key in elements) value = elements[key]; + } else if (obj instanceof AST_Lambda) { + if (key == "length") { + obj.length_read = true; + return make_node_from_constant(obj.argnames.length, obj); + } + } else if (obj instanceof AST_Object) { + key = "" + key; + var props = obj.properties; + for (var i = props.length; --i >= 0;) { + var prop = props[i]; + if (!can_hoist_property(prop)) return; + if (!value && props[i].key === key) value = props[i].value; + } + } + return value instanceof AST_SymbolRef && value.fixed_value() || value; + } + + function is_read_only_fn(value, name) { + if (value instanceof AST_Boolean) return native_fns.Boolean[name]; + if (value instanceof AST_Number) return native_fns.Number[name]; + if (value instanceof AST_String) return native_fns.String[name]; + if (name == "valueOf") return false; + if (value instanceof AST_Array) return native_fns.Array[name]; + if (value instanceof AST_Lambda) return native_fns.Function[name]; + if (value instanceof AST_Object) return native_fns.Object[name]; + if (value instanceof AST_RegExp) return native_fns.RegExp[name] && !value.value.global; + } + + function is_modified(compressor, tw, node, value, level, immutable, recursive) { + var parent = tw.parent(level); + if (compressor.option("unsafe") && parent instanceof AST_Dot && is_read_only_fn(value, parent.property)) { + return; + } + var lhs = is_lhs(node, parent); + if (lhs) return lhs; + if (level == 0 && value && value.is_constant()) return; + if (parent instanceof AST_Array) return is_modified(compressor, tw, parent, parent, level + 1); + if (parent instanceof AST_Assign) switch (parent.operator) { + case "=": + return is_modified(compressor, tw, parent, value, level + 1, immutable, recursive); + case "&&=": + case "||=": + case "??=": + return is_modified(compressor, tw, parent, parent, level + 1); + default: + return; + } + if (parent instanceof AST_Binary) { + if (!lazy_op[parent.operator]) return; + return is_modified(compressor, tw, parent, parent, level + 1); + } + if (parent instanceof AST_Call) { + return !immutable + && parent.expression === node + && !parent.is_expr_pure(compressor) + && (!(value instanceof AST_LambdaExpression) || !(parent instanceof AST_New) && value.contains_this()); + } + if (parent instanceof AST_Conditional) { + if (parent.condition === node) return; + return is_modified(compressor, tw, parent, parent, level + 1); + } + if (parent instanceof AST_ForEnumeration) return parent.init === node; + if (parent instanceof AST_ObjectKeyVal) { + if (parent.value !== node) return; + var obj = tw.parent(level + 1); + return is_modified(compressor, tw, obj, obj, level + 2); + } + if (parent instanceof AST_PropAccess) { + if (parent.expression !== node) return; + var prop = read_property(value, parent); + return (!immutable || recursive) && is_modified(compressor, tw, parent, prop, level + 1); + } + if (parent instanceof AST_Sequence) { + if (parent.tail_node() !== node) return; + return is_modified(compressor, tw, parent, value, level + 1, immutable, recursive); + } + } + + function is_lambda(node) { + return node instanceof AST_Class || node instanceof AST_Lambda; + } + + function safe_for_extends(node) { + return node instanceof AST_Class || node instanceof AST_Defun || node instanceof AST_Function; + } + + function is_arguments(def) { + return def.name == "arguments" && def.scope.uses_arguments; + } + + function cross_scope(def, sym) { + do { + if (def === sym) return false; + if (sym instanceof AST_Scope) return true; + } while (sym = sym.parent_scope); + } + + function can_drop_symbol(ref, compressor, keep_lambda) { + var def = ref.redef || ref.definition(); + if (ref.in_arg && is_funarg(def)) return false; + return all(def.orig, function(sym) { + if (sym instanceof AST_SymbolConst || sym instanceof AST_SymbolLet) { + if (sym instanceof AST_SymbolImport) return true; + return compressor && can_varify(compressor, sym); + } + return !(keep_lambda && sym instanceof AST_SymbolLambda); + }); + } + + function has_escaped(d, scope, node, parent) { + if (parent instanceof AST_Assign) return parent.operator == "=" && parent.right === node; + if (parent instanceof AST_Call) return parent.expression !== node || parent instanceof AST_New; + if (parent instanceof AST_ClassField) return parent.value === node && !parent.static; + if (parent instanceof AST_Exit) return parent.value === node && scope.resolve() !== d.scope.resolve(); + if (parent instanceof AST_VarDef) return parent.value === node; + } + + function make_ref(ref, fixed) { + var node = make_node(AST_SymbolRef, ref); + node.fixed = fixed || make_node(AST_Undefined, ref); + return node; + } + + function replace_ref(resolve, fixed) { + return function(node) { + var ref = resolve(node); + var node = make_ref(ref, fixed); + var def = ref.definition(); + def.references.push(node); + def.replaced++; + return node; + }; + } + + var RE_POSITIVE_INTEGER = /^(0|[1-9][0-9]*)$/; + (function(def) { + def(AST_Node, noop); + + function reset_def(tw, compressor, def) { + def.assignments = 0; + def.bool_return = 0; + def.drop_return = 0; + def.cross_loop = false; + def.direct_access = false; + def.escaped = []; + def.fixed = !def.const_redefs + && !def.scope.pinned() + && !compressor.exposed(def) + && !(def.init instanceof AST_LambdaExpression && def.init !== def.scope) + && def.init; + def.reassigned = 0; + def.recursive_refs = 0; + def.references = []; + def.single_use = undefined; + } + + function reset_block_variables(tw, compressor, scope) { + scope.variables.each(function(def) { + reset_def(tw, compressor, def); + }); + } + + function reset_variables(tw, compressor, scope) { + scope.fn_defs = []; + scope.variables.each(function(def) { + reset_def(tw, compressor, def); + var init = def.init; + if (init instanceof AST_LambdaDefinition) { + scope.fn_defs.push(init); + init.safe_ids = null; + } + if (def.fixed === null) { + def.safe_ids = tw.safe_ids; + mark(tw, def); + } else if (def.fixed) { + tw.loop_ids[def.id] = tw.in_loop; + mark(tw, def); + } + }); + scope.may_call_this = function() { + scope.may_call_this = scope.contains_this() ? return_true : return_false; + }; + if (scope.uses_arguments) scope.each_argname(function(node) { + node.definition().last_ref = false; + }); + if (compressor.option("ie")) scope.variables.each(function(def) { + var d = def.orig[0].definition(); + if (d !== def) d.fixed = false; + }); + } + + function safe_to_visit(tw, fn) { + var marker = fn.safe_ids; + return marker === undefined || marker === tw.safe_ids; + } + + function walk_fn_def(tw, fn) { + var was_scanning = tw.fn_scanning; + tw.fn_scanning = fn; + fn.walk(tw); + tw.fn_scanning = was_scanning; + } + + function revisit_fn_def(tw, fn) { + fn.enclosed.forEach(function(d) { + if (fn.variables.get(d.name) === d) return; + if (safe_to_read(tw, d)) return; + d.single_use = false; + var fixed = d.fixed; + if (typeof fixed == "function") fixed = fixed(); + if (fixed instanceof AST_Lambda && fixed.safe_ids !== undefined) return; + d.fixed = false; + }); + } + + function mark_fn_def(tw, def, fn) { + var marker = fn.safe_ids; + if (marker === undefined) return; + if (marker === false) return; + if (fn.parent_scope.resolve().may_call_this === return_true) { + if (member(fn, tw.fn_visited)) revisit_fn_def(tw, fn); + } else if (marker) { + var visited = member(fn, tw.fn_visited); + if (marker === tw.safe_ids) { + if (!visited) walk_fn_def(tw, fn); + } else if (visited) { + revisit_fn_def(tw, fn); + } else { + fn.safe_ids = false; + } + } else if (tw.fn_scanning && tw.fn_scanning !== def.scope.resolve()) { + fn.safe_ids = false; + } else { + fn.safe_ids = tw.safe_ids; + walk_fn_def(tw, fn); + } + } + + function pop_scope(tw, scope) { + var fn_defs = scope.fn_defs; + var tangled = scope.may_call_this === return_true ? fn_defs : fn_defs.filter(function(fn) { + if (fn.safe_ids === false) return true; + fn.safe_ids = tw.safe_ids; + walk_fn_def(tw, fn); + return false; + }); + pop(tw); + tangled.forEach(function(fn) { + fn.safe_ids = tw.safe_ids; + walk_fn_def(tw, fn); + }); + fn_defs.forEach(function(fn) { + fn.safe_ids = undefined; + }); + scope.fn_defs = undefined; + scope.may_call_this = undefined; + } + + function push(tw, sequential) { + var safe_ids = Object.create(tw.safe_ids); + if (!sequential) safe_ids.seq = {}; + tw.safe_ids = safe_ids; + } + + function pop(tw) { + tw.safe_ids = Object.getPrototypeOf(tw.safe_ids); + } + + function mark(tw, def) { + tw.safe_ids[def.id] = {}; + } + + function push_ref(def, ref) { + def.references.push(ref); + if (def.last_ref !== false) def.last_ref = ref; + } + + function safe_to_read(tw, def) { + if (def.single_use == "m") return false; + var safe = tw.safe_ids[def.id]; + if (safe) { + var in_order = HOP(tw.safe_ids, def.id); + if (!in_order) { + var seq = tw.safe_ids.seq; + if (!safe.read) { + safe.read = seq; + } else if (safe.read !== seq) { + safe.read = true; + } + } + if (def.fixed == null) { + if (is_arguments(def)) return false; + if (def.global && def.name == "arguments") return false; + tw.loop_ids[def.id] = null; + def.fixed = make_node(AST_Undefined, def.orig[0]); + if (in_order) def.safe_ids = undefined; + return true; + } + return !safe.assign || safe.assign === tw.safe_ids; + } + return def.fixed instanceof AST_LambdaDefinition; + } + + function safe_to_assign(tw, def, declare) { + if (!declare) { + if (is_funarg(def) && def.scope.uses_arguments && !tw.has_directive("use strict")) return false; + if (!all(def.orig, function(sym) { + return !(sym instanceof AST_SymbolConst); + })) return false; + } + if (def.fixed === undefined) return declare || all(def.orig, function(sym) { + return !(sym instanceof AST_SymbolLet); + }); + if (def.fixed === false || def.fixed === 0) return false; + var safe = tw.safe_ids[def.id]; + if (def.safe_ids) { + def.safe_ids[def.id] = false; + def.safe_ids = undefined; + return def.fixed === null || HOP(tw.safe_ids, def.id) && !safe.read; + } + if (!HOP(tw.safe_ids, def.id)) { + if (!safe) return false; + if (safe.read || tw.in_loop) { + var scope = tw.find_parent(AST_BlockScope); + if (scope instanceof AST_Class) return false; + if (def.scope.resolve() !== scope.resolve()) return false; + } + safe.assign = safe.assign && safe.assign !== tw.safe_ids ? true : tw.safe_ids; + } + if (def.fixed != null && safe.read) { + if (safe.read !== tw.safe_ids.seq) return false; + if (tw.loop_ids[def.id] !== tw.in_loop) return false; + } + return safe_to_read(tw, def) && all(def.orig, function(sym) { + return !(sym instanceof AST_SymbolLambda); + }); + } + + function ref_once(compressor, def) { + return compressor.option("unused") + && !def.scope.pinned() + && def.single_use !== false + && def.references.length - def.recursive_refs == 1 + && !(is_funarg(def) && def.scope.uses_arguments); + } + + function is_immutable(value) { + if (!value) return false; + if (value instanceof AST_Assign) { + var op = value.operator; + return op == "=" ? is_immutable(value.right) : !lazy_op[op.slice(0, -1)]; + } + if (value instanceof AST_Sequence) return is_immutable(value.tail_node()); + return value.is_constant() || is_lambda(value) || value instanceof AST_ObjectIdentity; + } + + function value_in_use(node, parent) { + if (parent instanceof AST_Array) return true; + if (parent instanceof AST_Binary) return lazy_op[parent.operator]; + if (parent instanceof AST_Conditional) return parent.condition !== node; + if (parent instanceof AST_Sequence) return parent.tail_node() === node; + if (parent instanceof AST_Spread) return true; + } + + function mark_escaped(tw, d, scope, node, value, level, depth) { + var parent = tw.parent(level); + if (value && value.is_constant()) return; + if (has_escaped(d, scope, node, parent)) { + d.escaped.push(parent); + if (depth > 1 && !(value && value.is_constant_expression(scope))) depth = 1; + if (!d.escaped.depth || d.escaped.depth > depth) d.escaped.depth = depth; + if (d.scope.resolve() !== scope.resolve()) d.escaped.cross_scope = true; + if (d.fixed) d.fixed.escaped = d.escaped; + return; + } else if (value_in_use(node, parent)) { + mark_escaped(tw, d, scope, parent, parent, level + 1, depth); + } else if (parent instanceof AST_ObjectKeyVal && parent.value === node) { + var obj = tw.parent(level + 1); + mark_escaped(tw, d, scope, obj, obj, level + 2, depth); + } else if (parent instanceof AST_PropAccess && parent.expression === node) { + value = read_property(value, parent); + mark_escaped(tw, d, scope, parent, value, level + 1, depth + 1); + if (value) return; + } + if (level > 0) return; + if (parent instanceof AST_Call && parent.expression === node) return; + if (parent instanceof AST_Sequence && parent.tail_node() !== node) return; + if (parent instanceof AST_SimpleStatement) return; + if (parent instanceof AST_Unary && !unary_side_effects[parent.operator]) return; + d.direct_access = true; + if (d.fixed) d.fixed.direct_access = true; + } + + function mark_assignment_to_arguments(node) { + if (!(node instanceof AST_Sub)) return; + var expr = node.expression; + if (!(expr instanceof AST_SymbolRef)) return; + var def = expr.definition(); + if (!is_arguments(def)) return; + var key = node.property; + if (key.is_constant()) key = key.value; + if (!(key instanceof AST_Node) && !RE_POSITIVE_INTEGER.test(key)) return; + def.reassigned++; + (key instanceof AST_Node ? def.scope.argnames : [ def.scope.argnames[key] ]).forEach(function(argname) { + if (argname instanceof AST_SymbolFunarg) argname.definition().fixed = false; + }); + } + + function make_fixed(save, fn) { + var prev_save, prev_value; + return function() { + var current = save(); + if (prev_save !== current) { + prev_save = current; + prev_value = fn(current); + } + return prev_value; + }; + } + + function make_fixed_default(compressor, node, save) { + var prev_save, prev_seq; + return function() { + if (prev_seq === node) return node; + var current = save(); + var ev = fuzzy_eval(compressor, current, true); + if (ev instanceof AST_Node) { + prev_seq = node; + } else if (prev_save !== current) { + prev_save = current; + prev_seq = ev === undefined ? make_sequence(node, [ current, node.value ]) : current; + } + return prev_seq; + }; + } + + function scan_declaration(tw, compressor, lhs, fixed, visit) { + var scanner = new TreeWalker(function(node) { + if (node instanceof AST_DefaultValue) { + reset_flags(node); + push(tw, true); + node.value.walk(tw); + pop(tw); + var save = fixed; + if (save) fixed = make_fixed_default(compressor, node, save); + node.name.walk(scanner); + fixed = save; + return true; + } + if (node instanceof AST_DestructuredArray) { + reset_flags(node); + var save = fixed; + node.elements.forEach(function(node, index) { + if (node instanceof AST_Hole) return reset_flags(node); + if (save) fixed = make_fixed(save, function(value) { + return make_node(AST_Sub, node, { + expression: value, + property: make_node(AST_Number, node, { value: index }), + }); + }); + node.walk(scanner); + }); + if (node.rest) { + var fixed_node; + if (save) fixed = compressor.option("rests") && make_fixed(save, function(value) { + if (!(value instanceof AST_Array)) return node; + for (var i = 0, len = node.elements.length; i < len; i++) { + if (value.elements[i] instanceof AST_Spread) return node; + } + if (!fixed_node) fixed_node = make_node(AST_Array, node, {}); + fixed_node.elements = value.elements.slice(len); + return fixed_node; + }); + node.rest.walk(scanner); + } + fixed = save; + return true; + } + if (node instanceof AST_DestructuredObject) { + reset_flags(node); + var save = fixed; + node.properties.forEach(function(node) { + reset_flags(node); + if (node.key instanceof AST_Node) { + push(tw); + node.key.walk(tw); + pop(tw); + } + if (save) fixed = make_fixed(save, function(value) { + var key = node.key; + var type = AST_Sub; + if (typeof key == "string") { + if (is_identifier_string(key)) { + type = AST_Dot; + } else { + key = make_node_from_constant(key, node); + } + } + return make_node(type, node, { + expression: value, + property: key, + }); + }); + node.value.walk(scanner); + }); + if (node.rest) { + fixed = false; + node.rest.walk(scanner); + } + fixed = save; + return true; + } + visit(node, fixed, function() { + var save_len = tw.stack.length; + for (var i = 0, len = scanner.stack.length - 1; i < len; i++) { + tw.stack.push(scanner.stack[i]); + } + node.walk(tw); + tw.stack.length = save_len; + }); + return true; + }); + lhs.walk(scanner); + } + + function reduce_iife(tw, descend, compressor) { + var fn = this; + fn.inlined = false; + var iife = tw.parent(); + var sequential = !is_async(fn) && !is_generator(fn); + var hit = !sequential; + var aborts = false; + fn.walk(new TreeWalker(function(node) { + if (hit) return aborts = true; + if (node instanceof AST_Return) return hit = true; + if (node instanceof AST_Scope && node !== fn) return true; + })); + if (aborts) push(tw, sequential); + reset_variables(tw, compressor, fn); + // Virtually turn IIFE parameters into variable definitions: + // (function(a,b) {...})(c,d) ---> (function() {var a=c,b=d; ...})() + // So existing transformation rules can work on them. + var safe = !fn.uses_arguments || tw.has_directive("use strict"); + fn.argnames.forEach(function(argname, i) { + var value = iife.args[i]; + scan_declaration(tw, compressor, argname, function() { + var j = fn.argnames.indexOf(argname); + var arg = j < 0 ? value : iife.args[j]; + if (arg instanceof AST_Sequence && arg.expressions.length < 2) arg = arg.expressions[0]; + return arg || make_node(AST_Undefined, iife); + }, visit); + }); + var rest = fn.rest, fixed_node; + if (rest) scan_declaration(tw, compressor, rest, compressor.option("rests") && function() { + if (fn.rest !== rest) return rest; + if (!fixed_node) fixed_node = make_node(AST_Array, fn, {}); + fixed_node.elements = iife.args.slice(fn.argnames.length); + return fixed_node; + }, visit); + walk_lambda(fn, tw); + var safe_ids = tw.safe_ids; + pop_scope(tw, fn); + if (!aborts) tw.safe_ids = safe_ids; + return true; + + function visit(node, fixed) { + var d = node.definition(); + if (fixed && safe && d.fixed === undefined) { + mark(tw, d); + tw.loop_ids[d.id] = tw.in_loop; + d.fixed = fixed; + d.fixed.assigns = [ node ]; + } else { + d.fixed = false; + } + } + } + + def(AST_Assign, function(tw, descend, compressor) { + var node = this; + var left = node.left; + var right = node.right; + var ld = left instanceof AST_SymbolRef && left.definition(); + var scan = ld || left instanceof AST_Destructured; + switch (node.operator) { + case "=": + if (left.equals(right) && !left.has_side_effects(compressor)) { + right.walk(tw); + walk_prop(left); + node.redundant = true; + return true; + } + if (ld && right instanceof AST_LambdaExpression) { + walk_assign(); + right.parent_scope.resolve().fn_defs.push(right); + right.safe_ids = null; + if (!ld.fixed || !node.write_only) mark_fn_def(tw, ld, right); + return true; + } + if (scan) { + right.walk(tw); + walk_assign(); + return true; + } + mark_assignment_to_arguments(left); + return; + case "&&=": + case "||=": + case "??=": + var lazy = true; + default: + if (!scan) { + mark_assignment_to_arguments(left); + return walk_lazy(); + } + ld.assignments++; + var fixed = ld.fixed; + if (is_modified(compressor, tw, node, node, 0)) { + ld.fixed = false; + return walk_lazy(); + } + var safe = safe_to_read(tw, ld); + if (lazy) push(tw, true); + right.walk(tw); + if (lazy) pop(tw); + if (safe && !left.in_arg && safe_to_assign(tw, ld)) { + push_ref(ld, left); + mark(tw, ld); + if (ld.single_use) ld.single_use = false; + left.fixed = ld.fixed = function() { + return make_node(AST_Binary, node, { + operator: node.operator.slice(0, -1), + left: make_ref(left, fixed), + right: node.right, + }); + }; + left.fixed.assigns = !fixed || !fixed.assigns ? [ ld.orig[0] ] : fixed.assigns.slice(); + left.fixed.assigns.push(node); + left.fixed.to_binary = replace_ref(function(node) { + return node.left; + }, fixed); + } else { + left.walk(tw); + ld.fixed = false; + } + return true; + } + + function walk_prop(lhs) { + reset_flags(lhs); + if (lhs instanceof AST_Dot) { + walk_prop(lhs.expression); + } else if (lhs instanceof AST_Sub) { + walk_prop(lhs.expression); + lhs.property.walk(tw); + } else if (lhs instanceof AST_SymbolRef) { + var d = lhs.definition(); + push_ref(d, lhs); + if (d.fixed) { + lhs.fixed = d.fixed; + if (lhs.fixed.assigns) { + lhs.fixed.assigns.push(node); + } else { + lhs.fixed.assigns = [ node ]; + } + } + } else { + lhs.walk(tw); + } + } + + function walk_assign() { + var recursive = ld && recursive_ref(tw, ld); + var modified = is_modified(compressor, tw, node, right, 0, is_immutable(right), recursive); + scan_declaration(tw, compressor, left, function() { + return node.right; + }, function(sym, fixed, walk) { + if (!(sym instanceof AST_SymbolRef)) { + mark_assignment_to_arguments(sym); + walk(); + return; + } + var d = sym.definition(); + d.assignments++; + if (!fixed || sym.in_arg || !safe_to_assign(tw, d)) { + walk(); + d.fixed = false; + } else { + push_ref(d, sym); + mark(tw, d); + if (left instanceof AST_Destructured + || d.orig.length == 1 && d.orig[0] instanceof AST_SymbolDefun) { + d.single_use = false; + } + tw.loop_ids[d.id] = tw.in_loop; + d.fixed = modified ? 0 : fixed; + sym.fixed = fixed; + sym.fixed.assigns = [ node ]; + mark_escaped(tw, d, sym.scope, node, right, 0, 1); + } + }); + } + + function walk_lazy() { + if (!lazy) return; + left.walk(tw); + push(tw, true); + right.walk(tw); + pop(tw); + return true; + } + }); + def(AST_Binary, function(tw) { + if (!lazy_op[this.operator]) return; + this.left.walk(tw); + push(tw, true); + this.right.walk(tw); + pop(tw); + return true; + }); + def(AST_BlockScope, function(tw, descend, compressor) { + reset_block_variables(tw, compressor, this); + }); + def(AST_Call, function(tw, descend) { + var node = this; + var exp = node.expression; + if (exp instanceof AST_LambdaExpression) { + var iife = is_iife_single(node); + node.args.forEach(function(arg) { + arg.walk(tw); + if (arg instanceof AST_Spread) iife = false; + }); + if (iife) exp.reduce_vars = reduce_iife; + exp.walk(tw); + if (iife) delete exp.reduce_vars; + return true; + } + if (node.TYPE == "Call") switch (tw.in_boolean_context()) { + case "d": + var drop = true; + case true: + mark_refs(exp, drop); + } + exp.walk(tw); + var optional = node.optional; + if (optional) push(tw, true); + node.args.forEach(function(arg) { + arg.walk(tw); + }); + if (optional) pop(tw); + var fixed = exp instanceof AST_SymbolRef && exp.fixed_value(); + if (fixed instanceof AST_Lambda) { + mark_fn_def(tw, exp.definition(), fixed); + } else { + tw.find_parent(AST_Scope).may_call_this(); + } + return true; + + function mark_refs(node, drop) { + if (node instanceof AST_Assign) { + if (node.operator != "=") return; + mark_refs(node.left, drop); + mark_refs(node.right, drop); + } else if (node instanceof AST_Binary) { + if (!lazy_op[node.operator]) return; + mark_refs(node.left, drop); + mark_refs(node.right, drop); + } else if (node instanceof AST_Conditional) { + mark_refs(node.consequent, drop); + mark_refs(node.alternative, drop); + } else if (node instanceof AST_SymbolRef) { + var def = node.definition(); + def.bool_return++; + if (drop) def.drop_return++; + } + } + }); + def(AST_Class, function(tw, descend, compressor) { + var node = this; + reset_block_variables(tw, compressor, node); + if (node.extends) node.extends.walk(tw); + var props = node.properties.filter(function(prop) { + reset_flags(prop); + if (prop.key instanceof AST_Node) { + tw.push(prop); + prop.key.walk(tw); + tw.pop(); + } + return prop.value; + }); + if (node.name) { + var d = node.name.definition(); + var parent = tw.parent(); + if (parent instanceof AST_ExportDeclaration || parent instanceof AST_ExportDefault) d.single_use = false; + if (safe_to_assign(tw, d, true)) { + mark(tw, d); + tw.loop_ids[d.id] = tw.in_loop; + d.fixed = function() { + return node; + }; + d.fixed.assigns = [ node ]; + if (!is_safe_lexical(d)) d.single_use = false; + } else { + d.fixed = false; + } + } + props.forEach(function(prop) { + tw.push(prop); + if (!prop.static || is_static_field_or_init(prop) && prop.value.contains_this()) { + push(tw); + prop.value.walk(tw); + pop(tw); + } else { + prop.value.walk(tw); + } + tw.pop(); + }); + return true; + }); + def(AST_ClassInitBlock, function(tw, descend, compressor) { + var node = this; + push(tw, true); + reset_variables(tw, compressor, node); + descend(); + pop_scope(tw, node); + return true; + }); + def(AST_Conditional, function(tw) { + this.condition.walk(tw); + push(tw, true); + this.consequent.walk(tw); + pop(tw); + push(tw, true); + this.alternative.walk(tw); + pop(tw); + return true; + }); + def(AST_DefaultValue, function(tw) { + push(tw, true); + this.value.walk(tw); + pop(tw); + this.name.walk(tw); + return true; + }); + def(AST_Do, function(tw) { + var save_loop = tw.in_loop; + tw.in_loop = this; + push(tw); + this.body.walk(tw); + if (has_loop_control(this, tw.parent())) { + pop(tw); + push(tw); + } + this.condition.walk(tw); + pop(tw); + tw.in_loop = save_loop; + return true; + }); + def(AST_For, function(tw, descend, compressor) { + var node = this; + reset_block_variables(tw, compressor, node); + if (node.init) node.init.walk(tw); + var save_loop = tw.in_loop; + tw.in_loop = node; + push(tw); + if (node.condition) node.condition.walk(tw); + node.body.walk(tw); + if (node.step) { + if (has_loop_control(node, tw.parent())) { + pop(tw); + push(tw); + } + node.step.walk(tw); + } + pop(tw); + tw.in_loop = save_loop; + return true; + }); + def(AST_ForEnumeration, function(tw, descend, compressor) { + var node = this; + reset_block_variables(tw, compressor, node); + node.object.walk(tw); + var save_loop = tw.in_loop; + tw.in_loop = node; + push(tw); + var init = node.init; + if (init instanceof AST_Definitions) { + init.definitions[0].name.mark_symbol(function(node) { + if (node instanceof AST_SymbolDeclaration) { + var def = node.definition(); + def.assignments++; + def.fixed = false; + } + }, tw); + } else if (init instanceof AST_Destructured || init instanceof AST_SymbolRef) { + init.mark_symbol(function(node) { + if (node instanceof AST_SymbolRef) { + var def = node.definition(); + push_ref(def, node); + def.assignments++; + if (!node.is_immutable()) def.fixed = false; + } + }, tw); + } else { + init.walk(tw); + } + node.body.walk(tw); + pop(tw); + tw.in_loop = save_loop; + return true; + }); + def(AST_If, function(tw) { + this.condition.walk(tw); + push(tw, true); + this.body.walk(tw); + pop(tw); + if (this.alternative) { + push(tw, true); + this.alternative.walk(tw); + pop(tw); + } + return true; + }); + def(AST_LabeledStatement, function(tw) { + push(tw, true); + this.body.walk(tw); + pop(tw); + return true; + }); + def(AST_Lambda, function(tw, descend, compressor) { + var fn = this; + if (!safe_to_visit(tw, fn)) return true; + if (!push_uniq(tw.fn_visited, fn)) return true; + fn.inlined = false; + push(tw); + reset_variables(tw, compressor, fn); + descend(); + pop_scope(tw, fn); + if (fn.name) mark_escaped(tw, fn.name.definition(), fn, fn.name, fn, 0, 1); + return true; + }); + def(AST_LambdaDefinition, function(tw, descend, compressor) { + var fn = this; + var def = fn.name.definition(); + var parent = tw.parent(); + if (parent instanceof AST_ExportDeclaration || parent instanceof AST_ExportDefault) def.single_use = false; + if (!safe_to_visit(tw, fn)) return true; + if (!push_uniq(tw.fn_visited, fn)) return true; + fn.inlined = false; + push(tw); + reset_variables(tw, compressor, fn); + descend(); + pop_scope(tw, fn); + return true; + }); + def(AST_Sub, function(tw) { + if (!this.optional) return; + this.expression.walk(tw); + push(tw, true); + this.property.walk(tw); + pop(tw); + return true; + }); + def(AST_Switch, function(tw, descend, compressor) { + var node = this; + reset_block_variables(tw, compressor, node); + node.expression.walk(tw); + var first = true; + node.body.forEach(function(branch) { + if (branch instanceof AST_Default) return; + branch.expression.walk(tw); + if (first) { + first = false; + push(tw, true); + } + }) + if (!first) pop(tw); + walk_body(node, tw); + return true; + }); + def(AST_SwitchBranch, function(tw) { + push(tw, true); + walk_body(this, tw); + pop(tw); + return true; + }); + def(AST_SymbolCatch, function() { + this.definition().fixed = false; + }); + def(AST_SymbolImport, function() { + this.definition().fixed = false; + }); + def(AST_SymbolRef, function(tw, descend, compressor) { + var ref = this; + var d = ref.definition(); + var fixed = d.fixed || d.last_ref && d.last_ref.fixed; + push_ref(d, ref); + if (d.references.length == 1 && !d.fixed && d.orig[0] instanceof AST_SymbolDefun) { + tw.loop_ids[d.id] = tw.in_loop; + } + var recursive = recursive_ref(tw, d); + if (recursive) recursive.enclosed.forEach(function(def) { + if (d === def) return; + if (def.scope.resolve() === recursive) return; + var assigns = def.fixed && def.fixed.assigns; + if (!assigns) return; + if (assigns[assigns.length - 1] instanceof AST_VarDef) return; + var safe = tw.safe_ids[def.id]; + if (!safe) return; + safe.assign = true; + }); + if (d.single_use == "m" && d.fixed) { + d.fixed = 0; + d.single_use = false; + } + switch (d.fixed) { + case 0: + if (!safe_to_read(tw, d)) d.fixed = false; + case false: + var redef = d.redefined(); + if (redef && cross_scope(d.scope, ref.scope)) redef.single_use = false; + break; + case undefined: + d.fixed = false; + break; + default: + if (!safe_to_read(tw, d)) { + d.fixed = false; + break; + } + if (ref.in_arg && d.orig[0] instanceof AST_SymbolLambda) ref.fixed = d.scope; + var value = ref.fixed_value(); + if (recursive) { + d.recursive_refs++; + } else if (value && ref_once(compressor, d)) { + d.in_loop = tw.loop_ids[d.id] !== tw.in_loop; + d.single_use = is_lambda(value) + && !value.pinned() + && (!d.in_loop || tw.parent() instanceof AST_Call) + || !d.in_loop + && d.scope === ref.scope.resolve() + && value.is_constant_expression(); + } else { + d.single_use = false; + } + if (is_modified(compressor, tw, ref, value, 0, is_immutable(value), recursive)) { + if (d.single_use) { + d.single_use = "m"; + } else { + d.fixed = 0; + } + } + if (d.fixed && tw.loop_ids[d.id] !== tw.in_loop) d.cross_loop = true; + mark_escaped(tw, d, ref.scope, ref, value, 0, 1); + break; + } + if (!ref.fixed) ref.fixed = d.fixed === 0 ? fixed : d.fixed; + var parent; + if (value instanceof AST_Lambda + && !((parent = tw.parent()) instanceof AST_Call && parent.expression === ref)) { + mark_fn_def(tw, d, value); + } + }); + def(AST_Template, function(tw, descend) { + var node = this; + var tag = node.tag; + if (!tag) return; + if (tag instanceof AST_LambdaExpression) { + node.expressions.forEach(function(exp) { + exp.walk(tw); + }); + tag.walk(tw); + return true; + } + tag.walk(tw); + node.expressions.forEach(function(exp) { + exp.walk(tw); + }); + var fixed = tag instanceof AST_SymbolRef && tag.fixed_value(); + if (fixed instanceof AST_Lambda) { + mark_fn_def(tw, tag.definition(), fixed); + } else { + tw.find_parent(AST_Scope).may_call_this(); + } + return true; + }); + def(AST_Toplevel, function(tw, descend, compressor) { + var node = this; + node.globals.each(function(def) { + reset_def(tw, compressor, def); + }); + push(tw, true); + reset_variables(tw, compressor, node); + descend(); + pop_scope(tw, node); + return true; + }); + def(AST_Try, function(tw, descend, compressor) { + var node = this; + reset_block_variables(tw, compressor, node); + push(tw, true); + walk_body(node, tw); + pop(tw); + if (node.bcatch) { + push(tw, true); + node.bcatch.walk(tw); + pop(tw); + } + if (node.bfinally) node.bfinally.walk(tw); + return true; + }); + def(AST_Unary, function(tw, descend) { + var node = this; + if (!UNARY_POSTFIX[node.operator]) return; + var exp = node.expression; + if (!(exp instanceof AST_SymbolRef)) { + mark_assignment_to_arguments(exp); + return; + } + var d = exp.definition(); + d.assignments++; + var fixed = d.fixed; + if (safe_to_read(tw, d) && !exp.in_arg && safe_to_assign(tw, d)) { + push_ref(d, exp); + mark(tw, d); + if (d.single_use) d.single_use = false; + d.fixed = function() { + return make_node(AST_Binary, node, { + operator: node.operator.slice(0, -1), + left: make_node(AST_UnaryPrefix, node, { + operator: "+", + expression: make_ref(exp, fixed), + }), + right: make_node(AST_Number, node, { value: 1 }), + }); + }; + d.fixed.assigns = fixed && fixed.assigns ? fixed.assigns.slice() : []; + d.fixed.assigns.push(node); + if (node instanceof AST_UnaryPrefix) { + exp.fixed = d.fixed; + } else { + exp.fixed = function() { + return make_node(AST_UnaryPrefix, node, { + operator: "+", + expression: make_ref(exp, fixed), + }); + }; + exp.fixed.assigns = fixed && fixed.assigns; + exp.fixed.to_prefix = replace_ref(function(node) { + return node.expression; + }, d.fixed); + } + } else { + exp.walk(tw); + d.fixed = false; + } + return true; + }); + def(AST_VarDef, function(tw, descend, compressor) { + var node = this; + var value = node.value; + if (value instanceof AST_LambdaExpression && node.name instanceof AST_SymbolDeclaration) { + walk_defn(); + value.parent_scope.resolve().fn_defs.push(value); + value.safe_ids = null; + var ld = node.name.definition(); + if (!ld.fixed) mark_fn_def(tw, ld, value); + } else if (value) { + value.walk(tw); + walk_defn(); + } else if (tw.parent() instanceof AST_Let) { + walk_defn(); + } + return true; + + function walk_defn() { + scan_declaration(tw, compressor, node.name, function() { + return node.value || make_node(AST_Undefined, node); + }, function(name, fixed) { + var d = name.definition(); + if (fixed && safe_to_assign(tw, d, true)) { + mark(tw, d); + tw.loop_ids[d.id] = tw.in_loop; + d.fixed = fixed; + d.fixed.assigns = [ node ]; + if (name instanceof AST_SymbolConst && d.redefined() + || !(can_drop_symbol(name) || is_safe_lexical(d))) { + d.single_use = false; + } + } else { + d.fixed = false; + } + }); + } + }); + def(AST_While, function(tw, descend) { + var save_loop = tw.in_loop; + tw.in_loop = this; + push(tw); + descend(); + pop(tw); + tw.in_loop = save_loop; + return true; + }); + })(function(node, func) { + node.DEFMETHOD("reduce_vars", func); + }); + + function reset_flags(node) { + node._squeezed = false; + node._optimized = false; + if (node instanceof AST_BlockScope) node._var_names = undefined; + if (node instanceof AST_SymbolRef) node.fixed = undefined; + } + + AST_Toplevel.DEFMETHOD("reset_opt_flags", function(compressor) { + var tw = new TreeWalker(compressor.option("reduce_vars") ? function(node, descend) { + reset_flags(node); + return node.reduce_vars(tw, descend, compressor); + } : reset_flags); + // Flow control for visiting lambda definitions + tw.fn_scanning = null; + tw.fn_visited = []; + // Record the loop body in which `AST_SymbolDeclaration` is first encountered + tw.in_loop = null; + tw.loop_ids = Object.create(null); + // Stack of look-up tables to keep track of whether a `SymbolDef` has been + // properly assigned before use: + // - `push()` & `pop()` when visiting conditional branches + // - backup & restore via `save_ids` when visiting out-of-order sections + tw.safe_ids = Object.create(null); + tw.safe_ids.seq = {}; + this.walk(tw); + }); + + AST_Symbol.DEFMETHOD("fixed_value", function(ref_only) { + var def = this.definition(); + var fixed = def.fixed; + if (fixed) { + if (this.fixed) fixed = this.fixed; + return (fixed instanceof AST_Node ? fixed : fixed()).tail_node(); + } + fixed = fixed === 0 && this.fixed; + if (!fixed) return fixed; + var value = (fixed instanceof AST_Node ? fixed : fixed()).tail_node(); + if (ref_only && def.escaped.depth != 1 && is_object(value, true)) return value; + if (value.is_constant()) return value; + }); + + AST_SymbolRef.DEFMETHOD("is_immutable", function() { + var def = this.redef || this.definition(); + if (!(def.orig[0] instanceof AST_SymbolLambda)) return false; + if (def.orig.length == 1) return true; + if (!this.in_arg) return false; + return !(def.orig[1] instanceof AST_SymbolFunarg); + }); + + AST_Node.DEFMETHOD("convert_symbol", noop); + function convert_destructured(type, process) { + return this.transform(new TreeTransformer(function(node, descend) { + if (node instanceof AST_DefaultValue) { + node = node.clone(); + node.name = node.name.transform(this); + return node; + } + if (node instanceof AST_Destructured) { + node = node.clone(); + descend(node, this); + return node; + } + if (node instanceof AST_DestructuredKeyVal) { + node = node.clone(); + node.value = node.value.transform(this); + return node; + } + return node.convert_symbol(type, process); + })); + } + AST_DefaultValue.DEFMETHOD("convert_symbol", convert_destructured); + AST_Destructured.DEFMETHOD("convert_symbol", convert_destructured); + function convert_symbol(type, process) { + var node = make_node(type, this); + return process(node, this) || node; + } + AST_SymbolDeclaration.DEFMETHOD("convert_symbol", convert_symbol); + AST_SymbolRef.DEFMETHOD("convert_symbol", convert_symbol); + + function process_to_assign(ref) { + var def = ref.definition(); + def.assignments++; + def.references.push(ref); + } + + function mark_destructured(process, tw) { + var marker = new TreeWalker(function(node) { + if (node instanceof AST_DefaultValue) { + node.value.walk(tw); + node.name.walk(marker); + return true; + } + if (node instanceof AST_DestructuredKeyVal) { + if (node.key instanceof AST_Node) node.key.walk(tw); + node.value.walk(marker); + return true; + } + return process(node); + }); + this.walk(marker); + } + AST_DefaultValue.DEFMETHOD("mark_symbol", mark_destructured); + AST_Destructured.DEFMETHOD("mark_symbol", mark_destructured); + function mark_symbol(process) { + return process(this); + } + AST_SymbolDeclaration.DEFMETHOD("mark_symbol", mark_symbol); + AST_SymbolRef.DEFMETHOD("mark_symbol", mark_symbol); + + AST_Node.DEFMETHOD("match_symbol", function(predicate) { + return predicate(this); + }); + function match_destructured(predicate, ignore_side_effects) { + var found = false; + var tw = new TreeWalker(function(node) { + if (found) return true; + if (node instanceof AST_DefaultValue) { + if (!ignore_side_effects) return found = true; + node.name.walk(tw); + return true; + } + if (node instanceof AST_DestructuredKeyVal) { + if (!ignore_side_effects && node.key instanceof AST_Node) return found = true; + node.value.walk(tw); + return true; + } + if (predicate(node)) return found = true; + }); + this.walk(tw); + return found; + } + AST_DefaultValue.DEFMETHOD("match_symbol", match_destructured); + AST_Destructured.DEFMETHOD("match_symbol", match_destructured); + + function in_async_generator(scope) { + return scope instanceof AST_AsyncGeneratorDefun || scope instanceof AST_AsyncGeneratorFunction; + } + + function find_scope(compressor) { + var level = 0, node = compressor.self(); + do { + if (node.variables) return node; + } while (node = compressor.parent(level++)); + } + + function find_try(compressor, level, node, scope, may_throw, sync) { + for (var parent; parent = compressor.parent(level++); node = parent) { + if (parent === scope) return false; + if (sync && parent instanceof AST_Lambda) { + if (parent.name || is_async(parent) || is_generator(parent)) return true; + } else if (parent instanceof AST_Try) { + if (parent.bfinally && parent.bfinally !== node) return true; + if (may_throw && parent.bcatch && parent.bcatch !== node) return true; + } + } + return false; + } + + var identifier_atom = makePredicate("Infinity NaN undefined"); + function is_lhs_read_only(lhs, compressor) { + if (lhs instanceof AST_Atom) return true; + if (lhs instanceof AST_ObjectIdentity) return true; + if (lhs instanceof AST_PropAccess) { + if (lhs.property === "__proto__") return true; + lhs = lhs.expression; + if (lhs instanceof AST_SymbolRef) { + if (lhs.is_immutable()) return false; + lhs = lhs.fixed_value(); + } + if (!lhs) return true; + if (lhs.tail_node().is_constant()) return true; + return is_lhs_read_only(lhs, compressor); + } + if (lhs instanceof AST_SymbolRef) { + if (lhs.is_immutable()) return true; + var def = lhs.definition(); + return compressor.exposed(def) && identifier_atom[def.name]; + } + return false; + } + + function make_node(ctor, orig, props) { + if (props) { + props.start = orig.start; + props.end = orig.end; + } else { + props = orig; + } + return new ctor(props); + } + + function make_sequence(orig, expressions) { + if (expressions.length == 1) return expressions[0]; + return make_node(AST_Sequence, orig, { expressions: expressions.reduce(merge_sequence, []) }); + } + + function make_node_from_constant(val, orig) { + switch (typeof val) { + case "string": + return make_node(AST_String, orig, { value: val }); + case "number": + if (isNaN(val)) return make_node(AST_NaN, orig); + if (isFinite(val)) { + return 1 / val < 0 ? make_node(AST_UnaryPrefix, orig, { + operator: "-", + expression: make_node(AST_Number, orig, { value: -val }), + }) : make_node(AST_Number, orig, { value: val }); + } + return val < 0 ? make_node(AST_UnaryPrefix, orig, { + operator: "-", + expression: make_node(AST_Infinity, orig), + }) : make_node(AST_Infinity, orig); + case "boolean": + return make_node(val ? AST_True : AST_False, orig); + case "undefined": + return make_node(AST_Undefined, orig); + default: + if (val === null) { + return make_node(AST_Null, orig); + } + if (val instanceof RegExp) { + return make_node(AST_RegExp, orig, { value: val }); + } + throw new Error(string_template("Can't handle constant of type: {type}", { type: typeof val })); + } + } + + function needs_unbinding(val) { + return val instanceof AST_PropAccess + || is_undeclared_ref(val) && val.name == "eval"; + } + + // we shouldn't compress (1,func)(something) to + // func(something) because that changes the meaning of + // the func (becomes lexical instead of global). + function maintain_this_binding(parent, orig, val) { + var wrap = false; + if (parent.TYPE == "Call") { + wrap = parent.expression === orig && needs_unbinding(val); + } else if (parent instanceof AST_Template) { + wrap = parent.tag === orig && needs_unbinding(val); + } else if (parent instanceof AST_UnaryPrefix) { + wrap = parent.operator == "delete" + || parent.operator == "typeof" && is_undeclared_ref(val); + } + return wrap ? make_sequence(orig, [ make_node(AST_Number, orig, { value: 0 }), val ]) : val; + } + + function merge_expression(base, target) { + var fixed_by_id = new Dictionary(); + base.walk(new TreeWalker(function(node) { + if (!(node instanceof AST_SymbolRef)) return; + var def = node.definition(); + var fixed = node.fixed; + if (!fixed || !fixed_by_id.has(def.id)) { + fixed_by_id.set(def.id, fixed); + } else if (fixed_by_id.get(def.id) !== fixed) { + fixed_by_id.set(def.id, false); + } + })); + if (fixed_by_id.size() > 0) target.walk(new TreeWalker(function(node) { + if (!(node instanceof AST_SymbolRef)) return; + var def = node.definition(); + var fixed = node.fixed; + if (!fixed || !fixed_by_id.has(def.id)) return; + if (fixed_by_id.get(def.id) !== fixed) node.fixed = false; + })); + return target; + } + + function merge_sequence(array, node) { + if (node instanceof AST_Sequence) { + [].push.apply(array, node.expressions); + } else { + array.push(node); + } + return array; + } + + function is_lexical_definition(stat) { + return stat instanceof AST_Const || stat instanceof AST_DefClass || stat instanceof AST_Let; + } + + function safe_to_trim(stat) { + if (stat instanceof AST_LambdaDefinition) { + var def = stat.name.definition(); + var scope = stat.name.scope; + return def.scope === scope || all(def.references, function(ref) { + var s = ref.scope; + do { + if (s === scope) return true; + } while (s = s.parent_scope); + }); + } + return !is_lexical_definition(stat); + } + + function as_statement_array(thing) { + if (thing === null) return []; + if (thing instanceof AST_BlockStatement) return all(thing.body, safe_to_trim) ? thing.body : [ thing ]; + if (thing instanceof AST_EmptyStatement) return []; + if (is_statement(thing)) return [ thing ]; + throw new Error("Can't convert thing to statement array"); + } + + function is_empty(thing) { + if (thing === null) return true; + if (thing instanceof AST_EmptyStatement) return true; + if (thing instanceof AST_BlockStatement) return thing.body.length == 0; + return false; + } + + function has_declarations_only(block) { + return all(block.body, function(stat) { + return is_empty(stat) + || stat instanceof AST_Defun + || stat instanceof AST_Var && declarations_only(stat); + }); + } + + function loop_body(x) { + if (x instanceof AST_IterationStatement) { + return x.body instanceof AST_BlockStatement ? x.body : x; + } + return x; + } + + function is_iife_call(node) { + if (node.TYPE != "Call") return false; + do { + node = node.expression; + } while (node instanceof AST_PropAccess); + return node instanceof AST_LambdaExpression ? !is_arrow(node) : is_iife_call(node); + } + + function is_iife_single(call) { + var exp = call.expression; + if (exp.name) return false; + if (!(call instanceof AST_New)) return true; + var found = false; + exp.walk(new TreeWalker(function(node) { + if (found) return true; + if (node instanceof AST_NewTarget) return found = true; + if (node instanceof AST_Scope && node !== exp) return true; + })); + return !found; + } + + function is_undeclared_ref(node) { + return node instanceof AST_SymbolRef && node.definition().undeclared; + } + + var global_names = makePredicate("Array Boolean clearInterval clearTimeout console Date decodeURI decodeURIComponent encodeURI encodeURIComponent Error escape eval EvalError Function isFinite isNaN JSON Map Math Number parseFloat parseInt RangeError ReferenceError RegExp Object Set setInterval setTimeout String SyntaxError TypeError unescape URIError WeakMap WeakSet"); + AST_SymbolRef.DEFMETHOD("is_declared", function(compressor) { + return this.defined + || !this.definition().undeclared + || compressor.option("unsafe") && global_names[this.name]; + }); + + function is_static_field_or_init(prop) { + return prop.static && prop.value && (prop instanceof AST_ClassField || prop instanceof AST_ClassInit); + } + + function declarations_only(node) { + return all(node.definitions, function(var_def) { + return !var_def.value; + }); + } + + function is_declaration(stat, lexical) { + if (stat instanceof AST_DefClass) return lexical && !stat.extends && all(stat.properties, function(prop) { + if (prop.key instanceof AST_Node) return false; + return !is_static_field_or_init(prop); + }); + if (stat instanceof AST_Definitions) return (lexical || stat instanceof AST_Var) && declarations_only(stat); + if (stat instanceof AST_ExportDeclaration) return is_declaration(stat.body, lexical); + if (stat instanceof AST_ExportDefault) return is_declaration(stat.body, lexical); + return stat instanceof AST_LambdaDefinition; + } + + function is_last_statement(body, stat) { + var index = body.lastIndexOf(stat); + if (index < 0) return false; + while (++index < body.length) { + if (!is_declaration(body[index], true)) return false; + } + return true; + } + + // Certain combination of unused name + side effect leads to invalid AST: + // https://github.com/mishoo/UglifyJS/issues/44 + // https://github.com/mishoo/UglifyJS/issues/1838 + // https://github.com/mishoo/UglifyJS/issues/3371 + // We fix it at this stage by moving the `var` outside the `for`. + function patch_for_init(node, in_list) { + var block; + if (node.init instanceof AST_BlockStatement) { + block = node.init; + node.init = block.body.pop(); + block.body.push(node); + } + if (node.init instanceof AST_Defun) { + if (!block) block = make_node(AST_BlockStatement, node, { body: [ node ] }); + block.body.splice(-1, 0, node.init); + node.init = null; + } else if (node.init instanceof AST_SimpleStatement) { + node.init = node.init.body; + } else if (is_empty(node.init)) { + node.init = null; + } + if (!block) return; + return in_list ? List.splice(block.body) : block; + } + + function tighten_body(statements, compressor) { + var in_lambda = last_of(compressor, function(node) { + return node instanceof AST_Lambda; + }); + var block_scope, iife_in_try, in_iife_single, in_loop, in_try, scope; + find_loop_scope_try(); + var changed, last_changed, max_iter = 10; + do { + last_changed = changed; + changed = 0; + if (eliminate_spurious_blocks(statements)) changed = 1; + if (!changed && last_changed == 1) break; + if (compressor.option("dead_code")) { + if (eliminate_dead_code(statements, compressor)) changed = 2; + if (!changed && last_changed == 2) break; + } + if (compressor.option("if_return")) { + if (handle_if_return(statements, compressor)) changed = 3; + if (!changed && last_changed == 3) break; + } + if (compressor.option("awaits") && compressor.option("side_effects")) { + if (trim_awaits(statements, compressor)) changed = 4; + if (!changed && last_changed == 4) break; + } + if (compressor.option("inline") >= 4) { + if (inline_iife(statements, compressor)) changed = 5; + if (!changed && last_changed == 5) break; + } + if (compressor.sequences_limit > 0) { + if (sequencesize(statements, compressor)) changed = 6; + if (!changed && last_changed == 6) break; + if (sequencesize_2(statements, compressor)) changed = 7; + if (!changed && last_changed == 7) break; + } + if (compressor.option("join_vars")) { + if (join_consecutive_vars(statements)) changed = 8; + if (!changed && last_changed == 8) break; + } + if (compressor.option("collapse_vars")) { + if (collapse(statements, compressor)) changed = 9; + } + } while (changed && max_iter-- > 0); + return statements; + + function last_of(compressor, predicate) { + var block = compressor.self(), level = 0, stat; + do { + if (block instanceof AST_Catch) { + block = compressor.parent(level++); + } else if (block instanceof AST_LabeledStatement) { + block = block.body; + } else if (block instanceof AST_SwitchBranch) { + var branches = compressor.parent(level); + if (branches.body[branches.body.length - 1] === block || has_break(block.body)) { + level++; + block = branches; + } + } + do { + stat = block; + if (predicate(stat)) return stat; + block = compressor.parent(level++); + } while (block instanceof AST_If); + } while (stat + && (block instanceof AST_BlockStatement + || block instanceof AST_Catch + || block instanceof AST_Scope + || block instanceof AST_SwitchBranch + || block instanceof AST_Try) + && is_last_statement(block.body, stat)); + + function has_break(stats) { + for (var i = stats.length; --i >= 0;) { + if (stats[i] instanceof AST_Break) return true; + } + return false; + } + } + + function find_loop_scope_try() { + var node = compressor.self(), level = 0; + do { + if (!block_scope && node.variables) block_scope = node; + if (node instanceof AST_Catch) { + if (compressor.parent(level).bfinally) { + if (!in_try) in_try = {}; + in_try.bfinally = true; + } + level++; + } else if (node instanceof AST_Finally) { + level++; + } else if (node instanceof AST_IterationStatement) { + in_loop = true; + } else if (node instanceof AST_Scope) { + scope = node; + break; + } else if (node instanceof AST_Try) { + if (!in_try) in_try = {}; + if (node.bcatch) in_try.bcatch = true; + if (node.bfinally) in_try.bfinally = true; + } + } while (node = compressor.parent(level++)); + } + + // Search from right to left for assignment-like expressions: + // - `var a = x;` + // - `a = x;` + // - `++a` + // For each candidate, scan from left to right for first usage, then try + // to fold assignment into the site for compression. + // Will not attempt to collapse assignments into or past code blocks + // which are not sequentially executed, e.g. loops and conditionals. + function collapse(statements, compressor) { + if (scope.pinned()) return; + var args; + var assignments = new Dictionary(); + var candidates = []; + var changed = false; + var declare_only = new Dictionary(); + var force_single; + var stat_index = statements.length; + var scanner = new TreeTransformer(function(node, descend) { + if (abort) return node; + // Skip nodes before `candidate` as quickly as possible + if (!hit) { + if (node !== hit_stack[hit_index]) return node; + hit_index++; + if (hit_index < hit_stack.length) return handle_custom_scan_order(node, scanner); + hit = true; + stop_after = (value_def ? find_stop_value : find_stop)(node, 0); + if (stop_after === node) abort = true; + return node; + } + var parent = scanner.parent(); + // Stop only if candidate is found within conditional branches + if (!stop_if_hit && in_conditional(node, parent)) { + stop_if_hit = parent; + } + // Cascade compound assignments + if (compound && scan_lhs && can_replace && !stop_if_hit + && node instanceof AST_Assign && node.operator != "=" && node.left.equals(lhs)) { + replaced++; + changed = true; + AST_Node.info("Cascading {this} [{start}]", node); + can_replace = false; + lvalues = get_lvalues(lhs); + node.right.transform(scanner); + clear_write_only(candidate); + var folded; + if (abort) { + folded = candidate; + } else { + abort = true; + folded = make_node(AST_Binary, candidate, { + operator: compound, + left: lhs.fixed && lhs.definition().fixed ? lhs.fixed.to_binary(candidate) : lhs, + right: rvalue, + }); + } + return make_node(AST_Assign, node, { + operator: "=", + left: node.left, + right: make_node(AST_Binary, node, { + operator: node.operator.slice(0, -1), + left: folded, + right: node.right, + }), + }); + } + // Stop immediately if these node types are encountered + if (should_stop(node, parent)) { + abort = true; + return node; + } + // Skip transient nodes caused by single-use variable replacement + if (node.single_use) return node; + // Replace variable with assignment when found + var hit_rhs; + if (!(node instanceof AST_SymbolDeclaration) + && (scan_lhs && lhs.equals(node) + || scan_rhs && (hit_rhs = scan_rhs(node, this)))) { + if (!can_replace || stop_if_hit && (hit_rhs || !lhs_local || !replace_all)) { + if (!hit_rhs && !value_def) abort = true; + return node; + } + if (is_lhs(node, parent)) { + if (value_def && !hit_rhs) assign_used = true; + return node; + } + if (!hit_rhs && verify_ref && node.fixed !== lhs.fixed) { + abort = true; + return node; + } + if (value_def) { + if (stop_if_hit && assign_pos == 0) assign_pos = remaining - replaced; + if (!hit_rhs) replaced++; + return node; + } + replaced++; + changed = abort = true; + AST_Node.info("Collapsing {this} [{start}]", node); + if (candidate.TYPE == "Binary") { + update_symbols(candidate, node); + return make_node(AST_Assign, candidate, { + operator: "=", + left: candidate.right.left, + right: candidate.operator == "&&" ? make_node(AST_Conditional, candidate, { + condition: candidate.left, + consequent: candidate.right.right, + alternative: node, + }) : make_node(AST_Conditional, candidate, { + condition: candidate.left, + consequent: node, + alternative: candidate.right.right, + }), + }); + } + if (candidate instanceof AST_UnaryPostfix) return make_node(AST_UnaryPrefix, candidate, { + operator: candidate.operator, + expression: lhs.fixed && lhs.definition().fixed ? lhs.fixed.to_prefix(candidate) : lhs, + }); + if (candidate instanceof AST_UnaryPrefix) { + clear_write_only(candidate); + return candidate; + } + update_symbols(rvalue, node); + if (candidate instanceof AST_VarDef) { + var def = candidate.name.definition(); + if (def.references.length - def.replaced == 1 && !compressor.exposed(def)) { + def.replaced++; + return maintain_this_binding(parent, node, rvalue); + } + return make_node(AST_Assign, candidate, { + operator: "=", + left: node, + right: rvalue, + }); + } + clear_write_only(rvalue); + var assign = candidate.clone(); + assign.right = rvalue; + return assign; + } + // Stop signals related to AST_SymbolRef + if (should_stop_ref(node, parent)) { + abort = true; + return node; + } + // These node types have child nodes that execute sequentially, + // but are otherwise not safe to scan into or beyond them. + if (is_last_node(node, parent) || may_throw(node)) { + stop_after = node; + if (node instanceof AST_Scope) abort = true; + } + // Scan but don't replace inside getter/setter + if (node instanceof AST_Accessor) { + var replace = can_replace; + can_replace = false; + descend(node, scanner); + can_replace = replace; + return signal_abort(node); + } + // Scan but don't replace inside destructuring expression + if (node instanceof AST_Destructured) { + var replace = can_replace; + can_replace = false; + descend(node, scanner); + can_replace = replace; + return signal_abort(node); + } + // Scan but don't replace inside default value + if (node instanceof AST_DefaultValue) { + node.name = node.name.transform(scanner); + var replace = can_replace; + can_replace = false; + node.value = node.value.transform(scanner); + can_replace = replace; + return signal_abort(node); + } + // Scan but don't replace inside block scope with colliding variable + if (node instanceof AST_BlockScope + && !(node instanceof AST_Scope) + && !(node.variables && node.variables.all(function(def) { + return !enclosed.has(def.name) && !lvalues.has(def.name); + }))) { + var replace = can_replace; + can_replace = false; + if (!handle_custom_scan_order(node, scanner)) descend(node, scanner); + can_replace = replace; + return signal_abort(node); + } + if (handle_custom_scan_order(node, scanner)) return signal_abort(node); + }, signal_abort); + var multi_replacer = new TreeTransformer(function(node) { + if (abort) return node; + // Skip nodes before `candidate` as quickly as possible + if (!hit) { + if (node !== hit_stack[hit_index]) return node; + hit_index++; + switch (hit_stack.length - hit_index) { + case 0: + hit = true; + if (assign_used) return node; + if (node !== candidate) return node; + if (node instanceof AST_VarDef) return node; + def.replaced++; + var parent = multi_replacer.parent(); + if (parent instanceof AST_Sequence && parent.tail_node() !== node) { + value_def.replaced++; + if (rvalue === rhs_value) return List.skip; + return make_sequence(rhs_value, rhs_value.expressions.slice(0, -1)); + } + return rvalue; + case 1: + if (!assign_used && node.body === candidate) { + hit = true; + def.replaced++; + value_def.replaced++; + return null; + } + default: + return handle_custom_scan_order(node, multi_replacer); + } + } + // Replace variable when found + if (node instanceof AST_SymbolRef && node.definition() === def) { + if (is_lhs(node, multi_replacer.parent())) return node; + if (!--replaced) abort = true; + AST_Node.info("Replacing {this} [{start}]", node); + var ref = rvalue.clone(); + ref.scope = node.scope; + ref.reference(); + if (replaced == assign_pos) { + abort = true; + return make_node(AST_Assign, candidate, { + operator: "=", + left: node, + right: ref, + }); + } + def.replaced++; + return ref; + } + // Skip (non-executed) functions and (leading) default case in switch statements + if (node instanceof AST_Default || node instanceof AST_Scope) return node; + }, function(node) { + return patch_sequence(node, multi_replacer); + }); + while (--stat_index >= 0) { + // Treat parameters as collapsible in IIFE, i.e. + // function(a, b){ ... }(x()); + // would be translated into equivalent assignments: + // var a = x(), b = undefined; + if (stat_index == 0 && compressor.option("unused")) extract_args(); + // Find collapsible assignments + var hit_stack = []; + extract_candidates(statements[stat_index]); + while (candidates.length > 0) { + hit_stack = candidates.pop(); + var hit_index = 0; + var candidate = hit_stack[hit_stack.length - 1]; + var assign_pos = -1; + var assign_used = false; + var verify_ref = false; + var remaining; + var value_def = null; + var stop_after = null; + var stop_if_hit = null; + var lhs = get_lhs(candidate); + var side_effects = lhs && lhs.has_side_effects(compressor); + var scan_lhs = lhs && (!side_effects || lhs instanceof AST_SymbolRef) + && !is_lhs_read_only(lhs, compressor); + var scan_rhs = foldable(candidate); + if (!scan_lhs && !scan_rhs) continue; + var compound = candidate instanceof AST_Assign && candidate.operator.slice(0, -1); + var funarg = candidate.name instanceof AST_SymbolFunarg; + var may_throw = return_false; + if (candidate.may_throw(compressor)) { + if (funarg && is_async(scope)) continue; + may_throw = in_try ? function(node) { + return node.has_side_effects(compressor); + } : side_effects_external; + } + var read_toplevel = false; + var modify_toplevel = false; + // Locate symbols which may execute code outside of scanning range + var enclosed = new Dictionary(); + var well_defined = true; + var lvalues = get_lvalues(candidate); + var lhs_local = is_lhs_local(lhs); + var rhs_value = get_rvalue(candidate); + var rvalue = rhs_value; + if (!side_effects) { + if (!compound && rvalue instanceof AST_Sequence) rvalue = rvalue.tail_node(); + side_effects = value_has_side_effects(); + } + var check_destructured = in_try || !lhs_local ? function(node) { + return node instanceof AST_Destructured; + } : return_false; + var replace_all = replace_all_symbols(candidate); + var hit = funarg; + var abort = false; + var replaced = 0; + var can_replace = !args || !hit; + if (!can_replace) { + for (var j = candidate.arg_index + 1; !abort && j < args.length; j++) { + if (args[j]) args[j].transform(scanner); + } + can_replace = true; + } + for (var i = stat_index; !abort && i < statements.length; i++) { + statements[i].transform(scanner); + } + if (value_def) { + if (!replaced || remaining > replaced + assign_used) { + candidates.push(hit_stack); + force_single = true; + continue; + } + if (replaced == assign_pos) assign_used = true; + var def = lhs.definition(); + abort = false; + hit_index = 0; + hit = funarg; + for (var i = stat_index; !abort && i < statements.length; i++) { + if (!statements[i].transform(multi_replacer)) statements.splice(i--, 1); + } + replaced = candidate instanceof AST_VarDef + && candidate === hit_stack[hit_stack.length - 1] + && def.references.length == def.replaced + && !compressor.exposed(def); + value_def.last_ref = false; + value_def.single_use = false; + changed = true; + } + if (replaced) remove_candidate(candidate); + } + } + return changed; + + function signal_abort(node) { + if (abort) return node; + if (stop_after === node) abort = true; + if (stop_if_hit === node) stop_if_hit = null; + return node; + } + + function handle_custom_scan_order(node, tt) { + if (!(node instanceof AST_BlockScope)) return; + // Skip (non-executed) functions + if (node instanceof AST_Scope) return node; + // Scan computed keys, static fields & initializers in class + if (node instanceof AST_Class) { + if (node.name) node.name = node.name.transform(tt); + if (!abort && node.extends) node.extends = node.extends.transform(tt); + var fields = [], stats = []; + for (var i = 0; !abort && i < node.properties.length; i++) { + var prop = node.properties[i]; + if (prop.key instanceof AST_Node) prop.key = prop.key.transform(tt); + if (!prop.static) continue; + if (prop instanceof AST_ClassField) { + if (prop.value) fields.push(prop); + } else if (prop instanceof AST_ClassInit) { + [].push.apply(stats, prop.value.body); + } + } + for (var i = 0; !abort && i < stats.length; i++) { + stats[i].transform(tt); + } + for (var i = 0; !abort && i < fields.length; i++) { + var prop = fields[i]; + prop.value = prop.value.transform(tt); + } + return node; + } + // Scan object only in a for-in/of statement + if (node instanceof AST_ForEnumeration) { + node.object = node.object.transform(tt); + abort = true; + return node; + } + // Scan first case expression only in a switch statement + if (node instanceof AST_Switch) { + node.expression = node.expression.transform(tt); + for (var i = 0; !abort && i < node.body.length; i++) { + var branch = node.body[i]; + if (branch instanceof AST_Case) { + if (!hit) { + if (branch !== hit_stack[hit_index]) continue; + hit_index++; + } + branch.expression = branch.expression.transform(tt); + if (!replace_all) break; + scan_rhs = false; + } + } + abort = true; + return node; + } + } + + function is_direct_assignment(node, parent) { + if (parent instanceof AST_Assign) return parent.operator == "=" && parent.left === node; + if (parent instanceof AST_DefaultValue) return parent.name === node; + if (parent instanceof AST_DestructuredArray) return true; + if (parent instanceof AST_DestructuredKeyVal) return parent.value === node; + } + + function should_stop(node, parent) { + if (node === rvalue) return true; + if (parent instanceof AST_For) { + if (node !== parent.init) return true; + } + if (node instanceof AST_Assign) { + return node.operator != "=" && lhs.equals(node.left); + } + if (node instanceof AST_Call) { + if (!(lhs instanceof AST_PropAccess)) return false; + if (!lhs.equals(node.expression)) return false; + return !(rvalue instanceof AST_LambdaExpression && !rvalue.contains_this()); + } + if (node instanceof AST_Class) return !compressor.has_directive("use strict"); + if (node instanceof AST_Debugger) return true; + if (node instanceof AST_Defun) return funarg && lhs.name === node.name.name; + if (node instanceof AST_DestructuredKeyVal) return node.key instanceof AST_Node; + if (node instanceof AST_DWLoop) return true; + if (node instanceof AST_LoopControl) return true; + if (node instanceof AST_Try) return true; + if (node instanceof AST_With) return true; + return false; + } + + function should_stop_ref(node, parent) { + if (!(node instanceof AST_SymbolRef)) return false; + if (node.is_declared(compressor)) { + if (node.fixed_value()) return false; + if (can_drop_symbol(node)) { + return !(parent instanceof AST_PropAccess && parent.expression === node) + && is_arguments(node.definition()); + } + } else if (is_direct_assignment(node, parent)) { + return false; + } + if (!replace_all) return true; + scan_rhs = false; + return false; + } + + function in_conditional(node, parent) { + if (parent instanceof AST_Assign) return parent.left !== node && lazy_op[parent.operator.slice(0, -1)]; + if (parent instanceof AST_Binary) return parent.left !== node && lazy_op[parent.operator]; + if (parent instanceof AST_Call) return parent.optional && parent.expression !== node; + if (parent instanceof AST_Case) return parent.expression !== node; + if (parent instanceof AST_Conditional) return parent.condition !== node; + if (parent instanceof AST_If) return parent.condition !== node; + if (parent instanceof AST_Sub) return parent.optional && parent.expression !== node; + } + + function is_last_node(node, parent) { + if (node instanceof AST_Await) return true; + if (node.TYPE == "Binary") return !can_drop_op(node.operator, node.right, compressor); + if (node instanceof AST_Call) { + var def, fn = node.expression; + if (fn instanceof AST_SymbolRef) { + def = fn.definition(); + fn = fn.fixed_value(); + } + if (!(fn instanceof AST_Lambda)) return !node.is_expr_pure(compressor); + if (def && recursive_ref(compressor, def, fn)) return true; + if (fn.collapse_scanning) return false; + fn.collapse_scanning = true; + var replace = can_replace; + can_replace = false; + var after = stop_after; + var if_hit = stop_if_hit; + for (var i = 0; !abort && i < fn.argnames.length; i++) { + if (arg_may_throw(reject, fn.argnames[i], node.args[i])) abort = true; + } + if (!abort) { + if (fn.rest && arg_may_throw(reject, fn.rest, make_node(AST_Array, node, { + elements: node.args.slice(i), + }))) { + abort = true; + } else if (is_arrow(fn) && fn.value) { + fn.value.transform(scanner); + } else for (var i = 0; !abort && i < fn.body.length; i++) { + var stat = fn.body[i]; + if (stat instanceof AST_Return) { + if (stat.value) stat.value.transform(scanner); + break; + } + stat.transform(scanner); + } + } + stop_if_hit = if_hit; + stop_after = after; + can_replace = replace; + fn.collapse_scanning = false; + if (!abort) return false; + abort = false; + return true; + } + if (node instanceof AST_Class) { + if (!in_try) return false; + var base = node.extends; + if (!base) return false; + if (base instanceof AST_SymbolRef) base = base.fixed_value(); + return !safe_for_extends(base); + } + if (node instanceof AST_Exit) { + if (in_try) { + if (in_try.bfinally) return true; + if (in_try.bcatch && node instanceof AST_Throw) return true; + } + return side_effects || lhs instanceof AST_PropAccess || may_modify(lhs); + } + if (node instanceof AST_Function) { + return compressor.option("ie") && node.name && lvalues.has(node.name.name); + } + if (node instanceof AST_ObjectIdentity) return symbol_in_lvalues(node, parent); + if (node instanceof AST_PropAccess) { + if (side_effects) return true; + var exp = node.expression; + if (exp instanceof AST_SymbolRef && is_arguments(exp.definition())) return true; + if (compressor.option("unsafe")) { + if (is_undeclared_ref(exp) && global_names[exp.name]) return false; + if (is_static_fn(exp)) return false; + } + if (!well_defined) return true; + if (value_def) return false; + if (!in_try && lhs_local) return false; + if (node.optional) return false; + return exp.may_throw_on_access(compressor); + } + if (node instanceof AST_Spread) return true; + if (node instanceof AST_SymbolRef) { + if (symbol_in_lvalues(node, parent)) return !is_direct_assignment(node, parent); + if (side_effects && may_modify(node)) return true; + var def = node.definition(); + return (in_try || def.scope.resolve() !== scope) && !can_drop_symbol(node); + } + if (node instanceof AST_Template) return !node.is_expr_pure(compressor); + if (node instanceof AST_VarDef) { + if (check_destructured(node.name)) return true; + return (node.value || parent instanceof AST_Let) && node.name.match_symbol(function(node) { + return node instanceof AST_SymbolDeclaration + && (lvalues.has(node.name) || side_effects && may_modify(node)); + }, true); + } + if (node instanceof AST_Yield) return true; + var sym = is_lhs(node.left, node); + if (!sym) return false; + if (sym instanceof AST_PropAccess) return true; + if (check_destructured(sym)) return true; + return sym.match_symbol(function(node) { + return node instanceof AST_SymbolRef + && (lvalues.has(node.name) || read_toplevel && compressor.exposed(node.definition())); + }, true); + + function reject(node) { + node.transform(scanner); + return abort; + } + } + + function arg_may_throw(reject, node, value) { + if (node instanceof AST_DefaultValue) { + return reject(node.value) + || arg_may_throw(reject, node.name, node.value) + || !is_undefined(value) && arg_may_throw(reject, node.name, value); + } + if (!value) return !(node instanceof AST_Symbol); + if (node instanceof AST_Destructured) { + if (node.rest && arg_may_throw(reject, node.rest)) return true; + if (node instanceof AST_DestructuredArray) { + if (value instanceof AST_Array) return !all(node.elements, function(element, index) { + return !arg_may_throw(reject, element, value[index]); + }); + if (!value.is_string(compressor)) return true; + return !all(node.elements, function(element) { + return !arg_may_throw(reject, element); + }); + } + if (node instanceof AST_DestructuredObject) { + if (value.may_throw_on_access(compressor)) return true; + return !all(node.properties, function(prop) { + if (prop.key instanceof AST_Node && reject(prop.key)) return false; + return !arg_may_throw(reject, prop.value); + }); + } + } + } + + function extract_args() { + if (in_iife_single === false) return; + var iife = compressor.parent(), fn = compressor.self(); + if (in_iife_single === undefined) { + if (!(fn instanceof AST_LambdaExpression) + || is_generator(fn) + || fn.uses_arguments + || fn.pinned() + || !(iife instanceof AST_Call) + || iife.expression !== fn + || !all(iife.args, function(arg) { + return !(arg instanceof AST_Spread); + })) { + in_iife_single = false; + return; + } + if (!is_iife_single(iife)) return; + in_iife_single = true; + } + var fn_strict = fn.in_strict_mode(compressor) + && !fn.parent_scope.resolve(true).in_strict_mode(compressor); + var has_await; + if (is_async(fn)) { + has_await = function(node) { + return node instanceof AST_Symbol && node.name == "await"; + }; + iife_in_try = true; + } else { + has_await = function(node) { + return node instanceof AST_Await && !tw.find_parent(AST_Scope); + }; + if (iife_in_try === undefined) iife_in_try = find_try(compressor, 1, iife, null, true, true); + } + var arg_scope = null; + var tw = new TreeWalker(function(node, descend) { + if (!arg) return true; + if (has_await(node) || node instanceof AST_Yield) { + arg = null; + return true; + } + if (node instanceof AST_ObjectIdentity) { + if (fn_strict || !arg_scope) arg = null; + return true; + } + if (node instanceof AST_SymbolRef) { + var def; + if (node.in_arg && !is_safe_lexical(node.definition()) + || (def = fn.variables.get(node.name)) && def !== node.definition()) { + arg = null; + } + return true; + } + if (node instanceof AST_Scope && !is_arrow(node)) { + var save_scope = arg_scope; + arg_scope = node; + descend(); + arg_scope = save_scope; + return true; + } + }); + args = iife.args.slice(); + var len = args.length; + var names = new Dictionary(); + for (var i = fn.argnames.length; --i >= 0;) { + var sym = fn.argnames[i]; + var arg = args[i]; + var value = null; + if (sym instanceof AST_DefaultValue) { + value = sym.value; + sym = sym.name; + args[len + i] = value; + } + if (sym instanceof AST_Destructured) { + if (iife_in_try && arg_may_throw(function(node) { + return node.has_side_effects(compressor); + }, sym, arg)) { + candidates.length = 0; + break; + } + args[len + i] = fn.argnames[i]; + continue; + } + if (names.has(sym.name)) continue; + names.set(sym.name, true); + if (value) arg = is_undefined(arg) ? value : null; + if (!arg && !value) { + arg = make_node(AST_Undefined, sym).transform(compressor); + } else if (arg instanceof AST_Lambda && arg.pinned()) { + arg = null; + } else if (arg) { + arg.walk(tw); + } + if (!arg) continue; + var candidate = make_node(AST_VarDef, sym, { + name: sym, + value: arg, + }); + candidate.name_index = i; + candidate.arg_index = value ? len + i : i; + candidates.unshift([ candidate ]); + } + if (fn.rest) args.push(fn.rest); + } + + function extract_candidates(expr, unused) { + hit_stack.push(expr); + if (expr instanceof AST_Array) { + expr.elements.forEach(function(node) { + extract_candidates(node, unused); + }); + } else if (expr instanceof AST_Assign) { + var lhs = expr.left; + if (!(lhs instanceof AST_Destructured)) candidates.push(hit_stack.slice()); + extract_candidates(lhs); + extract_candidates(expr.right); + if (lhs instanceof AST_SymbolRef && expr.operator == "=") { + assignments.set(lhs.name, (assignments.get(lhs.name) || 0) + 1); + } + } else if (expr instanceof AST_Await) { + extract_candidates(expr.expression, unused); + } else if (expr instanceof AST_Binary) { + var lazy = lazy_op[expr.operator]; + if (unused + && lazy + && expr.operator != "??" + && expr.right instanceof AST_Assign + && expr.right.operator == "=" + && !(expr.right.left instanceof AST_Destructured)) { + candidates.push(hit_stack.slice()); + } + extract_candidates(expr.left, !lazy && unused); + extract_candidates(expr.right, unused); + } else if (expr instanceof AST_Call) { + extract_candidates(expr.expression); + expr.args.forEach(extract_candidates); + } else if (expr instanceof AST_Case) { + extract_candidates(expr.expression); + } else if (expr instanceof AST_Conditional) { + extract_candidates(expr.condition); + extract_candidates(expr.consequent, unused); + extract_candidates(expr.alternative, unused); + } else if (expr instanceof AST_Definitions) { + expr.definitions.forEach(extract_candidates); + } else if (expr instanceof AST_Dot) { + extract_candidates(expr.expression); + } else if (expr instanceof AST_DWLoop) { + extract_candidates(expr.condition); + if (!(expr.body instanceof AST_Block)) { + extract_candidates(expr.body); + } + } else if (expr instanceof AST_Exit) { + if (expr.value) extract_candidates(expr.value); + } else if (expr instanceof AST_For) { + if (expr.init) extract_candidates(expr.init, true); + if (expr.condition) extract_candidates(expr.condition); + if (expr.step) extract_candidates(expr.step, true); + if (!(expr.body instanceof AST_Block)) { + extract_candidates(expr.body); + } + } else if (expr instanceof AST_ForEnumeration) { + extract_candidates(expr.object); + if (!(expr.body instanceof AST_Block)) { + extract_candidates(expr.body); + } + } else if (expr instanceof AST_If) { + extract_candidates(expr.condition); + if (!(expr.body instanceof AST_Block)) { + extract_candidates(expr.body); + } + if (expr.alternative && !(expr.alternative instanceof AST_Block)) { + extract_candidates(expr.alternative); + } + } else if (expr instanceof AST_Object) { + expr.properties.forEach(function(prop) { + hit_stack.push(prop); + if (prop.key instanceof AST_Node) extract_candidates(prop.key); + if (prop instanceof AST_ObjectKeyVal) extract_candidates(prop.value, unused); + hit_stack.pop(); + }); + } else if (expr instanceof AST_Sequence) { + var end = expr.expressions.length - (unused ? 0 : 1); + expr.expressions.forEach(function(node, index) { + extract_candidates(node, index < end); + }); + } else if (expr instanceof AST_SimpleStatement) { + extract_candidates(expr.body, true); + } else if (expr instanceof AST_Spread) { + extract_candidates(expr.expression); + } else if (expr instanceof AST_Sub) { + extract_candidates(expr.expression); + extract_candidates(expr.property); + } else if (expr instanceof AST_Switch) { + extract_candidates(expr.expression); + expr.body.forEach(extract_candidates); + } else if (expr instanceof AST_Unary) { + if (UNARY_POSTFIX[expr.operator]) { + candidates.push(hit_stack.slice()); + } else { + extract_candidates(expr.expression); + } + } else if (expr instanceof AST_VarDef) { + if (expr.name instanceof AST_SymbolVar) { + if (expr.value) { + var def = expr.name.definition(); + if (def.references.length > def.replaced) { + candidates.push(hit_stack.slice()); + } + } else { + declare_only.set(expr.name.name, (declare_only.get(expr.name.name) || 0) + 1); + } + } + if (expr.value) extract_candidates(expr.value); + } else if (expr instanceof AST_Yield) { + if (expr.expression) extract_candidates(expr.expression); + } + hit_stack.pop(); + } + + function find_stop(node, level) { + var parent = scanner.parent(level); + if (parent instanceof AST_Array) return node; + if (parent instanceof AST_Assign) return node; + if (parent instanceof AST_Await) return node; + if (parent instanceof AST_Binary) return node; + if (parent instanceof AST_Call) return node; + if (parent instanceof AST_Case) return node; + if (parent instanceof AST_Conditional) return node; + if (parent instanceof AST_Definitions) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Exit) return node; + if (parent instanceof AST_If) return node; + if (parent instanceof AST_IterationStatement) return node; + if (parent instanceof AST_ObjectProperty) return node; + if (parent instanceof AST_PropAccess) return node; + if (parent instanceof AST_Sequence) { + return (parent.tail_node() === node ? find_stop : find_stop_unused)(parent, level + 1); + } + if (parent instanceof AST_SimpleStatement) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Spread) return node; + if (parent instanceof AST_Switch) return node; + if (parent instanceof AST_Unary) return node; + if (parent instanceof AST_VarDef) return node; + if (parent instanceof AST_Yield) return node; + return null; + } + + function find_stop_logical(parent, op, level) { + var node; + do { + node = parent; + parent = scanner.parent(++level); + } while (parent instanceof AST_Assign && parent.operator.slice(0, -1) == op + || parent instanceof AST_Binary && parent.operator == op); + return node; + } + + function find_stop_expr(expr, cont, node, parent, level) { + var replace = can_replace; + can_replace = false; + var after = stop_after; + var if_hit = stop_if_hit; + var stack = scanner.stack; + scanner.stack = [ parent ]; + expr.transform(scanner); + scanner.stack = stack; + stop_if_hit = if_hit; + stop_after = after; + can_replace = replace; + if (abort) { + abort = false; + return node; + } + return cont(parent, level + 1); + } + + function find_stop_value(node, level) { + var parent = scanner.parent(level); + if (parent instanceof AST_Array) return find_stop_value(parent, level + 1); + if (parent instanceof AST_Assign) { + if (may_throw(parent)) return node; + if (parent.left.match_symbol(function(ref) { + return ref instanceof AST_SymbolRef && (lhs.name == ref.name || value_def.name == ref.name); + })) return node; + var op; + if (parent.left === node || !lazy_op[op = parent.operator.slice(0, -1)]) { + return find_stop_value(parent, level + 1); + } + return find_stop_logical(parent, op, level); + } + if (parent instanceof AST_Await) return find_stop_value(parent, level + 1); + if (parent instanceof AST_Binary) { + var op; + if (parent.left === node || !lazy_op[op = parent.operator]) { + return find_stop_value(parent, level + 1); + } + return find_stop_logical(parent, op, level); + } + if (parent instanceof AST_Call) return parent; + if (parent instanceof AST_Case) { + if (parent.expression !== node) return node; + return find_stop_value(parent, level + 1); + } + if (parent instanceof AST_Conditional) { + if (parent.condition !== node) return node; + return find_stop_value(parent, level + 1); + } + if (parent instanceof AST_Definitions) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Do) return node; + if (parent instanceof AST_Exit) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_For) { + if (parent.init !== node && parent.condition !== node) return node; + return find_stop_value(parent, level + 1); + } + if (parent instanceof AST_ForEnumeration) { + if (parent.init !== node) return node; + return find_stop_value(parent, level + 1); + } + if (parent instanceof AST_If) { + if (parent.condition !== node) return node; + return find_stop_value(parent, level + 1); + } + if (parent instanceof AST_ObjectProperty) { + var obj = scanner.parent(level + 1); + return all(obj.properties, function(prop) { + return prop instanceof AST_ObjectKeyVal; + }) ? find_stop_value(obj, level + 2) : obj; + } + if (parent instanceof AST_PropAccess) { + var exp = parent.expression; + return exp === node ? find_stop_value(parent, level + 1) : node; + } + if (parent instanceof AST_Sequence) { + return (parent.tail_node() === node ? find_stop_value : find_stop_unused)(parent, level + 1); + } + if (parent instanceof AST_SimpleStatement) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Spread) return find_stop_value(parent, level + 1); + if (parent instanceof AST_Switch) { + if (parent.expression !== node) return node; + return find_stop_value(parent, level + 1); + } + if (parent instanceof AST_Unary) { + if (parent.operator == "delete") return node; + return find_stop_value(parent, level + 1); + } + if (parent instanceof AST_VarDef) return parent.name.match_symbol(function(sym) { + return sym instanceof AST_SymbolDeclaration && (lhs.name == sym.name || value_def.name == sym.name); + }) ? node : find_stop_value(parent, level + 1); + if (parent instanceof AST_While) { + if (parent.condition !== node) return node; + return find_stop_value(parent, level + 1); + } + if (parent instanceof AST_Yield) return find_stop_value(parent, level + 1); + return null; + } + + function find_stop_unused(node, level) { + var parent = scanner.parent(level); + if (is_last_node(node, parent)) return node; + if (in_conditional(node, parent)) return node; + if (parent instanceof AST_Array) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Assign) return check_assignment(parent.left); + if (parent instanceof AST_Await) return node; + if (parent instanceof AST_Binary) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Call) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Case) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Conditional) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Definitions) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Exit) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_If) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_IterationStatement) return node; + if (parent instanceof AST_ObjectProperty) { + var obj = scanner.parent(level + 1); + return all(obj.properties, function(prop) { + return prop instanceof AST_ObjectKeyVal; + }) ? find_stop_unused(obj, level + 2) : obj; + } + if (parent instanceof AST_PropAccess) { + var exp = parent.expression; + if (exp === node) return find_stop_unused(parent, level + 1); + return find_stop_expr(exp, find_stop_unused, node, parent, level); + } + if (parent instanceof AST_Sequence) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_SimpleStatement) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Spread) return node; + if (parent instanceof AST_Switch) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_Unary) return find_stop_unused(parent, level + 1); + if (parent instanceof AST_VarDef) return check_assignment(parent.name); + if (parent instanceof AST_Yield) return node; + return null; + + function check_assignment(lhs) { + if (may_throw(parent)) return node; + if (lhs !== node && lhs instanceof AST_Destructured) { + return find_stop_expr(lhs, find_stop_unused, node, parent, level); + } + return find_stop_unused(parent, level + 1); + } + } + + function mangleable_var(rhs) { + if (force_single) { + force_single = false; + return; + } + if (remaining < 1) return; + rhs = rhs.tail_node(); + var value = rhs instanceof AST_Assign && rhs.operator == "=" ? rhs.left : rhs; + if (!(value instanceof AST_SymbolRef)) return; + var def = value.definition(); + if (def.undeclared) return; + if (is_arguments(def)) return; + if (value !== rhs) { + if (is_lhs_read_only(value, compressor)) return; + var referenced = def.references.length - def.replaced; + if (referenced < 2) return; + var expr = candidate.clone(); + expr[expr instanceof AST_Assign ? "right" : "value"] = value; + if (candidate.name_index >= 0) { + expr.name_index = candidate.name_index; + expr.arg_index = candidate.arg_index; + } + candidate = expr; + } + return value_def = def; + } + + function remaining_refs(def) { + return def.references.length - def.replaced - (assignments.get(def.name) || 0); + } + + function get_lhs(expr) { + if (expr instanceof AST_Assign) { + var lhs = expr.left; + if (!(lhs instanceof AST_SymbolRef)) return lhs; + var def = lhs.definition(); + if (scope.uses_arguments && is_funarg(def)) return lhs; + if (compressor.exposed(def)) return lhs; + remaining = remaining_refs(def); + if (def.fixed && lhs.fixed) { + var matches = def.references.filter(function(ref) { + return ref.fixed === lhs.fixed; + }).length - 1; + if (matches < remaining) { + remaining = matches; + assign_pos = 0; + verify_ref = true; + } + } + if (expr.operator == "=") mangleable_var(expr.right); + return lhs; + } + if (expr instanceof AST_Binary) return expr.right.left; + if (expr instanceof AST_Unary) return expr.expression; + if (expr instanceof AST_VarDef) { + var lhs = expr.name; + var def = lhs.definition(); + if (def.const_redefs) return; + if (!member(lhs, def.orig)) return; + if (scope.uses_arguments && is_funarg(def)) return; + var declared = def.orig.length - def.eliminated - (declare_only.get(def.name) || 0); + remaining = remaining_refs(def); + if (def.fixed) remaining = Math.min(remaining, def.references.filter(function(ref) { + if (!ref.fixed) return true; + if (!ref.fixed.assigns) return true; + var assign = ref.fixed.assigns[0]; + return assign === lhs || get_rvalue(assign) === expr.value; + }).length); + if (declared > 1 && !(lhs instanceof AST_SymbolFunarg)) { + mangleable_var(expr.value); + return make_node(AST_SymbolRef, lhs); + } + if (mangleable_var(expr.value) || remaining == 1 && !compressor.exposed(def)) { + return make_node(AST_SymbolRef, lhs); + } + return; + } + } + + function get_rvalue(expr) { + if (expr instanceof AST_Assign) return expr.right; + if (expr instanceof AST_Binary) { + var node = expr.clone(); + node.right = expr.right.right; + return node; + } + if (expr instanceof AST_VarDef) return expr.value; + } + + function invariant(expr) { + if (expr instanceof AST_Array) return false; + if (expr instanceof AST_Binary && lazy_op[expr.operator]) { + return invariant(expr.left) && invariant(expr.right); + } + if (expr instanceof AST_Call) return false; + if (expr instanceof AST_Conditional) { + return invariant(expr.consequent) && invariant(expr.alternative); + } + if (expr instanceof AST_Object) return false; + return !expr.has_side_effects(compressor); + } + + function foldable(expr) { + if (expr instanceof AST_Assign && expr.right.single_use) return; + var lhs_ids = Object.create(null); + var marker = new TreeWalker(function(node) { + if (node instanceof AST_SymbolRef) lhs_ids[node.definition().id] = true; + }); + while (expr instanceof AST_Assign && expr.operator == "=") { + expr.left.walk(marker); + expr = expr.right; + } + if (expr instanceof AST_ObjectIdentity) return rhs_exact_match; + if (expr instanceof AST_SymbolRef) { + var value = expr.evaluate(compressor); + if (value === expr) return rhs_exact_match; + return rhs_fuzzy_match(value, rhs_exact_match); + } + if (expr.is_truthy()) return rhs_fuzzy_match(true, return_false); + if (expr.is_constant()) { + var ev = expr.evaluate(compressor); + if (!(ev instanceof AST_Node)) return rhs_fuzzy_match(ev, rhs_exact_match); + } + if (!(lhs instanceof AST_SymbolRef)) return false; + if (!invariant(expr)) return false; + var circular; + expr.walk(new TreeWalker(function(node) { + if (circular) return true; + if (node instanceof AST_SymbolRef && lhs_ids[node.definition().id]) circular = true; + })); + return !circular && rhs_exact_match; + + function rhs_exact_match(node) { + return expr.equals(node); + } + } + + function rhs_fuzzy_match(value, fallback) { + return function(node, tw) { + if (tw.in_boolean_context()) { + if (value && node.is_truthy() && !node.has_side_effects(compressor)) { + return true; + } + if (node.is_constant()) { + var ev = node.evaluate(compressor); + if (!(ev instanceof AST_Node)) return !ev == !value; + } + } + return fallback(node); + }; + } + + function clear_write_only(assign) { + while (assign.write_only) { + assign.write_only = false; + if (!(assign instanceof AST_Assign)) break; + assign = assign.right; + } + } + + function update_symbols(value, node) { + var scope = node.scope || find_scope(scanner) || block_scope; + value.walk(new TreeWalker(function(node) { + if (node instanceof AST_BlockScope) return true; + if (node instanceof AST_Symbol) node.scope = scope; + })); + } + + function may_be_global(node) { + if (node instanceof AST_SymbolRef) { + node = node.fixed_value(); + if (!node) return true; + } + if (node instanceof AST_Assign) return node.operator == "=" && may_be_global(node.right); + return node instanceof AST_PropAccess || node instanceof AST_ObjectIdentity; + } + + function get_lvalues(expr) { + var lvalues = new Dictionary(); + if (expr instanceof AST_VarDef) { + if (!expr.name.definition().fixed) well_defined = false; + lvalues.add(expr.name.name, lhs); + } + var find_arguments = scope.uses_arguments && !compressor.has_directive("use strict"); + var scan_toplevel = scope instanceof AST_Toplevel; + var tw = new TreeWalker(function(node) { + var value; + if (node instanceof AST_SymbolRef) { + value = node.fixed_value(); + if (!value) { + value = node; + var def = node.definition(); + var escaped = node.fixed && node.fixed.escaped || def.escaped; + if (!def.undeclared + && (def.assignments || !escaped || escaped.cross_scope) + && (has_escaped(def, node.scope, node, tw.parent()) || !same_scope(def))) { + well_defined = false; + } + } + } else if (node instanceof AST_ObjectIdentity) { + value = node; + } + if (value) { + lvalues.add(node.name, is_modified(compressor, tw, node, value, 0)); + } else if (node instanceof AST_Lambda) { + for (var level = 0, parent, child = node; parent = tw.parent(level++); child = parent) { + if (parent instanceof AST_Assign) { + if (parent.left === child) break; + if (parent.operator == "=") continue; + if (lazy_op[parent.operator.slice(0, -1)]) continue; + break; + } + if (parent instanceof AST_Binary) { + if (lazy_op[parent.operator]) continue; + break; + } + if (parent instanceof AST_Call) return; + if (parent instanceof AST_Scope) return; + if (parent instanceof AST_Sequence) { + if (parent.tail_node() === child) continue; + break; + } + if (parent instanceof AST_Template) { + if (parent.tag) return; + break; + } + } + node.enclosed.forEach(function(def) { + if (def.scope !== node) enclosed.set(def.name, true); + }); + return true; + } else if (find_arguments && node instanceof AST_Sub) { + scope.each_argname(function(argname) { + if (!compressor.option("reduce_vars") || argname.definition().assignments) { + if (!argname.definition().fixed) well_defined = false; + lvalues.add(argname.name, true); + } + }); + find_arguments = false; + } + if (!scan_toplevel) return; + if (node.TYPE == "Call") { + if (modify_toplevel) return; + var exp = node.expression; + if (exp instanceof AST_PropAccess) return; + if (exp instanceof AST_LambdaExpression && !exp.contains_this()) return; + modify_toplevel = true; + } else if (node instanceof AST_PropAccess && may_be_global(node.expression)) { + if (node === lhs && !(expr instanceof AST_Unary)) { + modify_toplevel = true; + } else { + read_toplevel = true; + } + } + }); + expr.walk(tw); + return lvalues; + } + + function remove_candidate(expr) { + var value = rvalue === rhs_value ? null : make_sequence(rhs_value, rhs_value.expressions.slice(0, -1)); + var index = expr.name_index; + if (index >= 0) { + var args, argname = scope.argnames[index]; + if (argname instanceof AST_DefaultValue) { + scope.argnames[index] = argname = argname.clone(); + argname.value = value || make_node(AST_Number, argname, { value: 0 }); + } else if ((args = compressor.parent().args)[index]) { + scope.argnames[index] = argname.clone(); + args[index] = value || make_node(AST_Number, args[index], { value: 0 }); + } + return; + } + var end = hit_stack.length - 1; + var last = hit_stack[end]; + if (last instanceof AST_VarDef || hit_stack[end - 1].body === last) end--; + var tt = new TreeTransformer(function(node, descend, in_list) { + if (hit) return node; + if (node !== hit_stack[hit_index]) return node; + hit_index++; + if (hit_index <= end) return handle_custom_scan_order(node, tt); + hit = true; + if (node instanceof AST_Definitions) { + declare_only.set(last.name.name, (declare_only.get(last.name.name) || 0) + 1); + if (value_def) value_def.replaced++; + var defns = node.definitions; + var index = defns.indexOf(last); + var defn = last.clone(); + defn.value = null; + if (!value) { + node.definitions[index] = defn; + return node; + } + var body = [ make_node(AST_SimpleStatement, value, { body: value }) ]; + if (index > 0) { + var head = node.clone(); + head.definitions = defns.slice(0, index); + body.unshift(head); + node = node.clone(); + node.definitions = defns.slice(index); + } + body.push(node); + node.definitions[0] = defn; + return in_list ? List.splice(body) : make_node(AST_BlockStatement, node, { body: body }); + } + if (!value) return in_list ? List.skip : null; + return is_statement(node) ? make_node(AST_SimpleStatement, value, { body: value }) : value; + }, function(node, in_list) { + if (node instanceof AST_For) return patch_for_init(node, in_list); + return patch_sequence(node, tt); + }); + abort = false; + hit = false; + hit_index = 0; + if (!(statements[stat_index] = statements[stat_index].transform(tt))) statements.splice(stat_index, 1); + } + + function patch_sequence(node, tt) { + if (node instanceof AST_Sequence) switch (node.expressions.length) { + case 0: return null; + case 1: return maintain_this_binding(tt.parent(), node, node.expressions[0]); + } + } + + function is_lhs_local(lhs) { + var sym = root_expr(lhs); + if (!(sym instanceof AST_SymbolRef)) return false; + if (sym.definition().scope.resolve() !== scope) return false; + if (!in_loop) return true; + if (compound) return false; + if (candidate instanceof AST_Unary) return false; + var lvalue = lvalues.get(sym.name); + return !lvalue || lvalue[0] === lhs; + } + + function value_has_side_effects() { + if (candidate instanceof AST_Unary) return false; + return rvalue.has_side_effects(compressor); + } + + function replace_all_symbols(expr) { + if (expr instanceof AST_Unary) return false; + if (side_effects) return false; + if (value_def) return true; + if (!(lhs instanceof AST_SymbolRef)) return false; + var referenced; + if (expr instanceof AST_VarDef) { + referenced = 1; + } else if (expr.operator == "=") { + referenced = 2; + } else { + return false; + } + var def = lhs.definition(); + if (def.references.length - def.replaced == referenced) return true; + if (!def.fixed) return false; + if (!lhs.fixed) return false; + var assigns = lhs.fixed.assigns; + var matched = 0; + if (!all(def.references, function(ref, index) { + var fixed = ref.fixed; + if (!fixed) return false; + if (fixed.to_binary || fixed.to_prefix) return false; + if (fixed === lhs.fixed) { + matched++; + return true; + } + return assigns && fixed.assigns && assigns[0] !== fixed.assigns[0]; + })) return false; + if (matched != referenced) return false; + verify_ref = true; + return true; + } + + function symbol_in_lvalues(sym, parent) { + var lvalue = lvalues.get(sym.name); + if (!lvalue || all(lvalue, function(lhs) { + return !lhs; + })) return; + if (lvalue[0] !== lhs) return true; + scan_rhs = false; + } + + function may_modify(sym) { + var def = sym.definition(); + if (def.orig.length == 1 && def.orig[0] instanceof AST_SymbolDefun) return false; + if (def.scope.resolve() !== scope) return true; + if (modify_toplevel && compressor.exposed(def)) return true; + return !all(def.references, function(ref) { + return ref.scope.resolve(true) === scope; + }); + } + + function side_effects_external(node, lhs) { + if (node instanceof AST_Assign) return side_effects_external(node.left, true); + if (node instanceof AST_Unary) return side_effects_external(node.expression, true); + if (node instanceof AST_VarDef) return node.value && side_effects_external(node.value); + if (lhs) { + if (node instanceof AST_Dot) return side_effects_external(node.expression, true); + if (node instanceof AST_Sub) return side_effects_external(node.expression, true); + if (node instanceof AST_SymbolRef) return node.definition().scope.resolve() !== scope; + } + return false; + } + } + + function eliminate_spurious_blocks(statements) { + var changed = false, seen_dirs = []; + for (var i = 0; i < statements.length;) { + var stat = statements[i]; + if (stat instanceof AST_BlockStatement) { + if (all(stat.body, safe_to_trim)) { + changed = true; + eliminate_spurious_blocks(stat.body); + [].splice.apply(statements, [i, 1].concat(stat.body)); + i += stat.body.length; + continue; + } + } + if (stat instanceof AST_Directive) { + if (member(stat.value, seen_dirs)) { + changed = true; + statements.splice(i, 1); + continue; + } + seen_dirs.push(stat.value); + } + if (stat instanceof AST_EmptyStatement) { + changed = true; + statements.splice(i, 1); + continue; + } + i++; + } + return changed; + } + + function handle_if_return(statements, compressor) { + var changed = false; + var parent = compressor.parent(); + var self = compressor.self(); + var declare_only, jump, merge_jump; + var in_iife = in_lambda && parent && parent.TYPE == "Call" && parent.expression === self; + var chain_if_returns = in_lambda && compressor.option("conditionals") && compressor.option("sequences"); + var drop_return_void = !(in_try && in_try.bfinally && in_async_generator(scope)); + var multiple_if_returns = has_multiple_if_returns(statements); + for (var i = statements.length; --i >= 0;) { + var stat = statements[i]; + var j = next_index(i); + var next = statements[j]; + + if (in_lambda && declare_only && !next && stat instanceof AST_Return + && drop_return_void && !(self instanceof AST_SwitchBranch)) { + var body = stat.value; + if (!body) { + changed = true; + statements.splice(i, 1); + continue; + } + var tail = body.tail_node(); + if (is_undefined(tail)) { + changed = true; + if (body instanceof AST_UnaryPrefix) { + body = body.expression; + } else if (tail instanceof AST_UnaryPrefix) { + body = body.clone(); + body.expressions[body.expressions.length - 1] = tail.expression; + } + statements[i] = make_node(AST_SimpleStatement, stat, { body: body }); + continue; + } + } + + if (stat instanceof AST_If) { + var ab = aborts(stat.body); + // if (foo()) { bar(); return; } else baz(); moo(); ---> if (foo()) bar(); else { baz(); moo(); } + if (can_merge_flow(ab)) { + if (ab.label) remove(ab.label.thedef.references, ab); + changed = true; + stat = stat.clone(); + stat.body = make_node(AST_BlockStatement, stat, { + body: as_statement_array_with_return(stat.body, ab), + }); + stat.alternative = make_node(AST_BlockStatement, stat, { + body: as_statement_array(stat.alternative).concat(extract_functions(merge_jump, jump)), + }); + adjust_refs(ab.value, merge_jump); + statements[i] = stat; + statements[i] = stat.transform(compressor); + continue; + } + // if (foo()) { bar(); return x; } return y; ---> if (!foo()) return y; bar(); return x; + if (ab && !stat.alternative && next instanceof AST_Jump) { + var cond = stat.condition; + var preference = i + 1 == j && stat.body instanceof AST_BlockStatement; + cond = best_of_expression(cond, cond.negate(compressor), preference); + if (cond !== stat.condition) { + changed = true; + stat = stat.clone(); + stat.condition = cond; + var body = stat.body; + stat.body = make_node(AST_BlockStatement, next, { + body: extract_functions(true, null, j + 1), + }); + statements.splice(i, 1, stat, body); + // proceed further only if `TreeWalker.stack` is in a consistent state + // https://github.com/mishoo/UglifyJS/issues/5595 + // https://github.com/mishoo/UglifyJS/issues/5597 + if (!in_lambda || self instanceof AST_Block && self.body === statements) { + statements[i] = stat.transform(compressor); + } + continue; + } + } + var alt = aborts(stat.alternative); + // if (foo()) bar(); else { baz(); return; } moo(); ---> if (foo()) { bar(); moo(); } else baz(); + if (can_merge_flow(alt)) { + if (alt.label) remove(alt.label.thedef.references, alt); + changed = true; + stat = stat.clone(); + stat.body = make_node(AST_BlockStatement, stat.body, { + body: as_statement_array(stat.body).concat(extract_functions(merge_jump, jump)), + }); + stat.alternative = make_node(AST_BlockStatement, stat.alternative, { + body: as_statement_array_with_return(stat.alternative, alt), + }); + adjust_refs(alt.value, merge_jump); + statements[i] = stat; + statements[i] = stat.transform(compressor); + continue; + } + if (compressor.option("typeofs")) { + if (ab && !alt) { + var stats = make_node(AST_BlockStatement, self, { body: statements.slice(i + 1) }); + mark_locally_defined(stat.condition, null, stats); + } + if (!ab && alt) { + var stats = make_node(AST_BlockStatement, self, { body: statements.slice(i + 1) }); + mark_locally_defined(stat.condition, stats); + } + } + } + + if (stat instanceof AST_If && stat.body instanceof AST_Return) { + var value = stat.body.value; + var in_bool = stat.body.in_bool || next instanceof AST_Return && next.in_bool; + // if (foo()) return x; return y; ---> return foo() ? x : y; + if (!stat.alternative && next instanceof AST_Return + && (drop_return_void || !value == !next.value)) { + changed = true; + stat = stat.clone(); + stat.alternative = make_node(AST_BlockStatement, next, { + body: extract_functions(true, null, j + 1), + }); + statements[i] = stat; + statements[i] = stat.transform(compressor); + continue; + } + // if (foo()) return x; [ return ; ] ---> return foo() ? x : undefined; + // if (foo()) return bar() ? x : void 0; ---> return foo() && bar() ? x : void 0; + // if (foo()) return bar() ? void 0 : x; ---> return !foo() || bar() ? void 0 : x; + if (in_lambda && declare_only && !next && !stat.alternative && (in_bool + || value && multiple_if_returns + || value instanceof AST_Conditional && (is_undefined(value.consequent, compressor) + || is_undefined(value.alternative, compressor)))) { + changed = true; + stat = stat.clone(); + stat.alternative = make_node(AST_Return, stat, { value: null }); + statements[i] = stat; + statements[i] = stat.transform(compressor); + continue; + } + // if (a) return b; if (c) return d; e; ---> return a ? b : c ? d : void e; + // + // if sequences is not enabled, this can lead to an endless loop (issue #866). + // however, with sequences on this helps producing slightly better output for + // the example code. + var prev, prev_stat; + if (chain_if_returns && !stat.alternative + && (!(prev_stat = statements[prev = prev_index(i)]) && in_iife + || prev_stat instanceof AST_If && prev_stat.body instanceof AST_Return) + && (!next ? !declare_only + : next instanceof AST_SimpleStatement && next_index(j) == statements.length)) { + changed = true; + var exprs = []; + stat = stat.clone(); + exprs.push(stat.condition); + stat.condition = make_sequence(stat, exprs); + stat.alternative = make_node(AST_BlockStatement, self, { + body: extract_functions().concat(make_node(AST_Return, self, { value: null })), + }); + statements[i] = stat.transform(compressor); + i = prev + 1; + continue; + } + } + + if (stat instanceof AST_Break || stat instanceof AST_Exit) { + jump = stat; + continue; + } + + if (declare_only && jump && jump === next) eliminate_returns(stat); + } + return changed; + + function has_multiple_if_returns(statements) { + var n = 0; + for (var i = statements.length; --i >= 0;) { + var stat = statements[i]; + if (stat instanceof AST_If && stat.body instanceof AST_Return) { + if (++n > 1) return true; + } + } + return false; + } + + function match_target(target) { + return last_of(compressor, function(node) { + return node === target; + }); + } + + function match_return(ab, exact) { + if (!jump) return false; + if (jump.TYPE != ab.TYPE) return false; + var value = ab.value; + if (!value) return false; + var equals = jump.equals(ab); + if (!equals && value instanceof AST_Sequence) { + value = value.tail_node(); + if (jump.value && jump.value.equals(value)) equals = 2; + } + if (!equals && !exact && jump.value instanceof AST_Sequence) { + if (jump.value.tail_node().equals(value)) equals = 3; + } + return equals; + } + + function can_drop_abort(ab) { + if (ab instanceof AST_Exit) { + if (merge_jump = match_return(ab)) return true; + if (!in_lambda) return false; + if (!(ab instanceof AST_Return)) return false; + var value = ab.value; + if (value && !is_undefined(value.tail_node())) return false; + if (!(self instanceof AST_SwitchBranch)) return true; + if (!jump) return false; + if (jump instanceof AST_Exit && jump.value) return false; + merge_jump = 4; + return true; + } + if (!(ab instanceof AST_LoopControl)) return false; + if (self instanceof AST_SwitchBranch) { + if (jump instanceof AST_Exit) { + if (!in_lambda) return false; + if (jump.value) return false; + merge_jump = true; + } else if (jump) { + if (compressor.loopcontrol_target(jump) !== parent) return false; + merge_jump = true; + } else if (jump === false) { + return false; + } + } + var lct = compressor.loopcontrol_target(ab); + if (ab instanceof AST_Continue) return match_target(loop_body(lct)); + if (lct instanceof AST_IterationStatement) return false; + return match_target(lct); + } + + function can_merge_flow(ab) { + merge_jump = false; + if (!can_drop_abort(ab)) return false; + for (var j = statements.length; --j > i;) { + var stat = statements[j]; + if (stat instanceof AST_DefClass) { + if (stat.name.definition().preinit) return false; + } else if (stat instanceof AST_Const || stat instanceof AST_Let) { + if (!all(stat.definitions, function(defn) { + return !defn.name.match_symbol(function(node) { + return node instanceof AST_SymbolDeclaration && node.definition().preinit; + }); + })) return false; + } + } + return true; + } + + function extract_functions(mode, stop, end) { + var defuns = []; + var lexical = false; + var start = i + 1; + if (!mode) { + end = statements.length; + jump = null; + } else if (stop) { + end = statements.lastIndexOf(stop); + } else { + stop = statements[end]; + if (stop !== jump) jump = false; + } + var tail = statements.splice(start, end - start).filter(function(stat) { + if (stat instanceof AST_LambdaDefinition) { + defuns.push(stat); + return false; + } + if (is_lexical_definition(stat)) lexical = true; + return true; + }); + if (mode === 3) { + tail.push(make_node(AST_SimpleStatement, stop.value, { + body: make_sequence(stop.value, stop.value.expressions.slice(0, -1)), + })); + stop.value = stop.value.tail_node(); + } + [].push.apply(lexical ? tail : statements, defuns); + return tail; + } + + function trim_return(value, mode) { + if (value) switch (mode) { + case 4: + return value; + case 3: + if (!(value instanceof AST_Sequence)) break; + case 2: + return make_sequence(value, value.expressions.slice(0, -1)); + } + } + + function as_statement_array_with_return(node, ab) { + var body = as_statement_array(node); + var block = body, last; + while ((last = block[block.length - 1]) !== ab) { + block = last.body; + } + block.pop(); + var value = ab.value; + if (merge_jump) value = trim_return(value, merge_jump); + if (value) block.push(make_node(AST_SimpleStatement, value, { body: value })); + return body; + } + + function adjust_refs(value, mode) { + if (!mode) return; + if (!value) return; + switch (mode) { + case 4: + return; + case 3: + case 2: + value = value.tail_node(); + } + merge_expression(value, jump.value); + } + + function next_index(i) { + declare_only = true; + for (var j = i; ++j < statements.length;) { + var stat = statements[j]; + if (is_declaration(stat)) continue; + if (stat instanceof AST_Var) { + declare_only = false; + continue; + } + break; + } + return j; + } + + function prev_index(i) { + for (var j = i; --j >= 0;) { + var stat = statements[j]; + if (stat instanceof AST_Var) continue; + if (is_declaration(stat)) continue; + break; + } + return j; + } + + function eliminate_returns(stat, keep_throws, in_block) { + if (stat instanceof AST_Exit) { + var mode = !(keep_throws && stat instanceof AST_Throw) && match_return(stat, true); + if (mode) { + changed = true; + var value = trim_return(stat.value, mode); + if (value) return make_node(AST_SimpleStatement, value, { body: value }); + return in_block ? null : make_node(AST_EmptyStatement, stat); + } + } else if (stat instanceof AST_If) { + stat.body = eliminate_returns(stat.body, keep_throws); + if (stat.alternative) stat.alternative = eliminate_returns(stat.alternative, keep_throws); + } else if (stat instanceof AST_LabeledStatement) { + stat.body = eliminate_returns(stat.body, keep_throws); + } else if (stat instanceof AST_Try) { + if (!stat.bfinally || !jump.value || jump.value.is_constant()) { + if (stat.bcatch) eliminate_returns(stat.bcatch, keep_throws); + var trimmed = eliminate_returns(stat.body.pop(), true, true); + if (trimmed) stat.body.push(trimmed); + } + } else if (stat instanceof AST_Block && !(stat instanceof AST_Scope || stat instanceof AST_Switch)) { + var trimmed = eliminate_returns(stat.body.pop(), keep_throws, true); + if (trimmed) stat.body.push(trimmed); + } + return stat; + } + } + + function eliminate_dead_code(statements, compressor) { + var has_quit; + var self = compressor.self(); + if (self instanceof AST_Catch) { + self = compressor.parent(); + } else if (self instanceof AST_LabeledStatement) { + self = self.body; + } + for (var i = 0, n = 0, len = statements.length; i < len; i++) { + var stat = statements[i]; + if (stat instanceof AST_LoopControl) { + var lct = compressor.loopcontrol_target(stat); + if (loop_body(lct) !== self + || stat instanceof AST_Break && lct instanceof AST_IterationStatement) { + statements[n++] = stat; + } else if (stat.label) { + remove(stat.label.thedef.references, stat); + } + } else { + statements[n++] = stat; + } + if (aborts(stat)) { + has_quit = statements.slice(i + 1); + break; + } + } + statements.length = n; + if (has_quit) has_quit.forEach(function(stat) { + extract_declarations_from_unreachable_code(compressor, stat, statements); + }); + return statements.length != len; + } + + function trim_awaits(statements, compressor) { + if (!in_lambda || in_try && in_try.bfinally) return; + var changed = false; + for (var index = statements.length; --index >= 0;) { + var stat = statements[index]; + if (!(stat instanceof AST_SimpleStatement)) break; + var node = stat.body; + if (!(node instanceof AST_Await)) break; + var exp = node.expression; + if (!needs_enqueuing(compressor, exp)) break; + changed = true; + exp = exp.drop_side_effect_free(compressor, true); + if (exp) { + stat.body = exp; + break; + } + } + statements.length = index + 1; + return changed; + } + + function inline_iife(statements, compressor) { + var changed = false; + var index = statements.length - 1; + if (in_lambda && index >= 0) { + var no_return = in_try && in_try.bfinally && in_async_generator(scope); + var inlined = statements[index].try_inline(compressor, block_scope, no_return); + if (inlined) { + statements[index--] = inlined; + changed = true; + } + } + var loop = in_loop && in_try && in_try.bfinally ? "try" : in_loop; + for (; index >= 0; index--) { + var inlined = statements[index].try_inline(compressor, block_scope, true, loop); + if (!inlined) continue; + statements[index] = inlined; + changed = true; + } + return changed; + } + + function sequencesize(statements, compressor) { + if (statements.length < 2) return; + var seq = [], n = 0; + function push_seq() { + if (!seq.length) return; + var body = make_sequence(seq[0], seq); + statements[n++] = make_node(AST_SimpleStatement, body, { body: body }); + seq = []; + } + for (var i = 0, len = statements.length; i < len; i++) { + var stat = statements[i]; + if (stat instanceof AST_SimpleStatement) { + if (seq.length >= compressor.sequences_limit) push_seq(); + merge_sequence(seq, stat.body); + } else if (is_declaration(stat)) { + statements[n++] = stat; + } else { + push_seq(); + statements[n++] = stat; + } + } + push_seq(); + statements.length = n; + return n != len; + } + + function to_simple_statement(block, decls) { + if (!(block instanceof AST_BlockStatement)) return block; + var stat = null; + for (var i = 0; i < block.body.length; i++) { + var line = block.body[i]; + if (line instanceof AST_Var && declarations_only(line)) { + decls.push(line); + } else if (stat || is_lexical_definition(line)) { + return false; + } else { + stat = line; + } + } + return stat; + } + + function sequencesize_2(statements, compressor) { + var changed = false, n = 0, prev; + for (var i = 0; i < statements.length; i++) { + var stat = statements[i]; + if (prev) { + if (stat instanceof AST_Exit) { + if (stat.value || !in_async_generator(scope)) { + stat.value = cons_seq(stat.value || make_node(AST_Undefined, stat)).optimize(compressor); + } + } else if (stat instanceof AST_For) { + if (!(stat.init instanceof AST_Definitions)) { + var abort = false; + prev.body.walk(new TreeWalker(function(node) { + if (abort || node instanceof AST_Scope) return true; + if (node instanceof AST_Binary && node.operator == "in") { + abort = true; + return true; + } + })); + if (!abort) { + if (stat.init) stat.init = cons_seq(stat.init); + else { + stat.init = prev.body; + n--; + changed = true; + } + } + } + } else if (stat instanceof AST_ForIn) { + if (!is_lexical_definition(stat.init)) stat.object = cons_seq(stat.object); + } else if (stat instanceof AST_If) { + stat.condition = cons_seq(stat.condition); + } else if (stat instanceof AST_Switch) { + stat.expression = cons_seq(stat.expression); + } else if (stat instanceof AST_With) { + stat.expression = cons_seq(stat.expression); + } + } + if (compressor.option("conditionals") && stat instanceof AST_If) { + var decls = []; + var body = to_simple_statement(stat.body, decls); + var alt = to_simple_statement(stat.alternative, decls); + if (body !== false && alt !== false && decls.length > 0) { + var len = decls.length; + decls.push(make_node(AST_If, stat, { + condition: stat.condition, + body: body || make_node(AST_EmptyStatement, stat.body), + alternative: alt, + })); + decls.unshift(n, 1); + [].splice.apply(statements, decls); + i += len; + n += len + 1; + prev = null; + changed = true; + continue; + } + } + statements[n++] = stat; + prev = stat instanceof AST_SimpleStatement ? stat : null; + } + statements.length = n; + return changed; + + function cons_seq(right) { + n--; + changed = true; + var left = prev.body; + return make_sequence(left, [ left, right ]); + } + } + + function extract_exprs(body) { + if (body instanceof AST_Assign) return [ body ]; + if (body instanceof AST_Sequence) return body.expressions.slice(); + } + + function join_assigns(defn, body, keep) { + var exprs = extract_exprs(body); + if (!exprs) return; + keep = keep || 0; + var trimmed = false; + for (var i = exprs.length - keep; --i >= 0;) { + var expr = exprs[i]; + if (!can_trim(expr)) continue; + var tail; + if (expr.left instanceof AST_SymbolRef) { + tail = exprs.slice(i + 1); + } else if (expr.left instanceof AST_PropAccess && can_trim(expr.left.expression)) { + tail = exprs.slice(i + 1); + var flattened = expr.clone(); + expr = expr.left.expression; + flattened.left = flattened.left.clone(); + flattened.left.expression = expr.left.clone(); + tail.unshift(flattened); + } else { + continue; + } + if (tail.length == 0) continue; + if (!trim_assigns(expr.left, expr.right, tail)) continue; + trimmed = true; + exprs = exprs.slice(0, i).concat(expr, tail); + } + if (defn instanceof AST_Definitions) { + for (var i = defn.definitions.length; --i >= 0;) { + var def = defn.definitions[i]; + if (!def.value) continue; + if (trim_assigns(def.name, def.value, exprs)) trimmed = true; + if (merge_conditional_assignments(def, exprs, keep)) trimmed = true; + break; + } + if (defn instanceof AST_Var && join_var_assign(defn.definitions, exprs, keep)) trimmed = true; + } + return trimmed && exprs; + + function can_trim(node) { + return node instanceof AST_Assign && node.operator == "="; + } + } + + function merge_assigns(prev, defn) { + if (!(prev instanceof AST_SimpleStatement)) return; + if (declarations_only(defn)) return; + var exprs = extract_exprs(prev.body); + if (!exprs) return; + var definitions = []; + if (!join_var_assign(definitions, exprs.reverse(), 0)) return; + defn.definitions = definitions.reverse().concat(defn.definitions); + return exprs.reverse(); + } + + function merge_conditional_assignments(var_def, exprs, keep) { + if (!compressor.option("conditionals")) return; + if (var_def.name instanceof AST_Destructured) return; + var trimmed = false; + var def = var_def.name.definition(); + while (exprs.length > keep) { + var cond = to_conditional_assignment(compressor, def, var_def.value, exprs[0]); + if (!cond) break; + var_def.value = cond; + exprs.shift(); + trimmed = true; + } + return trimmed; + } + + function join_var_assign(definitions, exprs, keep) { + var trimmed = false; + while (exprs.length > keep) { + var expr = exprs[0]; + if (!(expr instanceof AST_Assign)) break; + if (expr.operator != "=") break; + var lhs = expr.left; + if (!(lhs instanceof AST_SymbolRef)) break; + if (is_undeclared_ref(lhs)) break; + if (lhs.scope.resolve() !== scope) break; + var def = lhs.definition(); + if (def.scope !== scope) break; + if (def.orig.length > def.eliminated + 1) break; + if (def.orig[0].TYPE != "SymbolVar") break; + var name = make_node(AST_SymbolVar, lhs); + definitions.push(make_node(AST_VarDef, expr, { + name: name, + value: expr.right, + })); + def.orig.push(name); + def.replaced++; + exprs.shift(); + trimmed = true; + } + return trimmed; + } + + function trim_assigns(name, value, exprs) { + var names = new Dictionary(); + names.set(name.name, true); + while (value instanceof AST_Assign && value.operator == "=") { + if (value.left instanceof AST_SymbolRef) names.set(value.left.name, true); + value = value.right; + } + if (!(value instanceof AST_Object)) return; + var trimmed = false; + do { + if (!try_join(exprs[0])) break; + exprs.shift(); + trimmed = true; + } while (exprs.length); + return trimmed; + + function try_join(node) { + if (!(node instanceof AST_Assign)) return; + if (node.operator != "=") return; + if (!(node.left instanceof AST_PropAccess)) return; + var sym = node.left.expression; + if (!(sym instanceof AST_SymbolRef)) return; + if (!names.has(sym.name)) return; + if (!node.right.is_constant_expression(scope)) return; + var prop = node.left.property; + if (prop instanceof AST_Node) { + if (try_join(prop)) prop = node.left.property = prop.right.clone(); + prop = prop.evaluate(compressor); + } + if (prop instanceof AST_Node) return; + prop = "" + prop; + var diff = prop == "__proto__" || compressor.has_directive("use strict") ? function(node) { + var key = node.key; + return typeof key == "string" && key != prop && key != "__proto__"; + } : function(node) { + var key = node.key; + if (node instanceof AST_ObjectGetter || node instanceof AST_ObjectSetter) { + return typeof key == "string" && key != prop; + } + return key !== "__proto__"; + }; + if (!all(value.properties, diff)) return; + value.properties.push(make_node(AST_ObjectKeyVal, node, { + key: prop, + value: node.right, + })); + return true; + } + } + + function join_consecutive_vars(statements) { + var changed = false, defs; + for (var i = 0, j = -1; i < statements.length; i++) { + var stat = statements[i]; + var prev = statements[j]; + if (stat instanceof AST_Definitions) { + if (prev && prev.TYPE == stat.TYPE) { + prev.definitions = prev.definitions.concat(stat.definitions); + changed = true; + } else if (defs && defs.TYPE == stat.TYPE && declarations_only(stat)) { + defs.definitions = defs.definitions.concat(stat.definitions); + changed = true; + } else if (stat instanceof AST_Var) { + var exprs = merge_assigns(prev, stat); + if (exprs) { + if (exprs.length) { + prev.body = make_sequence(prev, exprs); + j++; + } + changed = true; + } else { + j++; + } + statements[j] = defs = stat; + } else { + statements[++j] = stat; + } + continue; + } else if (stat instanceof AST_Exit) { + stat.value = join_assigns_expr(stat.value); + } else if (stat instanceof AST_For) { + var exprs = join_assigns(prev, stat.init); + if (exprs) { + changed = true; + stat.init = exprs.length ? make_sequence(stat.init, exprs) : null; + } else if (prev instanceof AST_Var && (!stat.init || stat.init.TYPE == prev.TYPE)) { + if (stat.init) { + prev.definitions = prev.definitions.concat(stat.init.definitions); + } + stat = stat.clone(); + defs = stat.init = prev; + statements[j] = merge_defns(stat); + changed = true; + continue; + } else if (defs && stat.init && defs.TYPE == stat.init.TYPE && declarations_only(stat.init)) { + defs.definitions = defs.definitions.concat(stat.init.definitions); + stat.init = null; + changed = true; + } else if (stat.init instanceof AST_Var) { + defs = stat.init; + exprs = merge_assigns(prev, stat.init); + if (exprs) { + changed = true; + if (exprs.length == 0) { + statements[j] = merge_defns(stat); + continue; + } + prev.body = make_sequence(prev, exprs); + } + } + } else if (stat instanceof AST_ForEnumeration) { + if (defs && defs.TYPE == stat.init.TYPE) { + var defns = defs.definitions.slice(); + stat.init = stat.init.definitions[0].name.convert_symbol(AST_SymbolRef, function(ref, name) { + defns.push(make_node(AST_VarDef, name, { + name: name, + value: null, + })); + name.definition().references.push(ref); + }); + defs.definitions = defns; + changed = true; + } + stat.object = join_assigns_expr(stat.object); + } else if (stat instanceof AST_If) { + stat.condition = join_assigns_expr(stat.condition); + } else if (stat instanceof AST_SimpleStatement) { + var exprs = join_assigns(prev, stat.body), next; + if (exprs) { + changed = true; + if (!exprs.length) continue; + stat.body = make_sequence(stat.body, exprs); + } else if (prev instanceof AST_Definitions + && (next = statements[i + 1]) + && prev.TYPE == next.TYPE + && (next = next.definitions[0]).value) { + changed = true; + next.value = make_sequence(stat, [ stat.body, next.value ]); + continue; + } + } else if (stat instanceof AST_Switch) { + stat.expression = join_assigns_expr(stat.expression); + } else if (stat instanceof AST_With) { + stat.expression = join_assigns_expr(stat.expression); + } + statements[++j] = defs ? merge_defns(stat) : stat; + } + statements.length = j + 1; + return changed; + + function join_assigns_expr(value) { + var exprs = join_assigns(prev, value, 1); + if (!exprs) return value; + changed = true; + var tail = value.tail_node(); + if (exprs[exprs.length - 1] !== tail) exprs.push(tail.left); + return make_sequence(value, exprs); + } + + function merge_defns(stat) { + return stat.transform(new TreeTransformer(function(node, descend, in_list) { + if (node instanceof AST_Definitions) { + if (defs === node) return node; + if (defs.TYPE != node.TYPE) return node; + var parent = this.parent(); + if (parent instanceof AST_ForEnumeration && parent.init === node) return node; + if (!declarations_only(node)) return node; + defs.definitions = defs.definitions.concat(node.definitions); + changed = true; + if (parent instanceof AST_For && parent.init === node) return null; + return in_list ? List.skip : make_node(AST_EmptyStatement, node); + } + if (node instanceof AST_ExportDeclaration) return node; + if (node instanceof AST_Scope) return node; + if (!is_statement(node)) return node; + })); + } + } + } + + function extract_declarations_from_unreachable_code(compressor, stat, target) { + var block; + var dropped = false; + stat.walk(new TreeWalker(function(node, descend) { + if (node instanceof AST_DefClass) { + node.extends = null; + node.properties = []; + push(node); + return true; + } + if (node instanceof AST_Definitions) { + var defns = []; + if (node.remove_initializers(compressor, defns)) { + AST_Node.warn("Dropping initialization in unreachable code [{start}]", node); + } + if (defns.length > 0) { + node.definitions = defns; + push(node); + } + return true; + } + if (node instanceof AST_LambdaDefinition) { + push(node); + return true; + } + if (node instanceof AST_Scope) return true; + if (node instanceof AST_BlockScope) { + var save = block; + block = []; + descend(); + if (block.required) { + target.push(make_node(AST_BlockStatement, stat, { body: block })); + } else if (block.length) { + [].push.apply(target, block); + } + block = save; + return true; + } + if (!(node instanceof AST_LoopControl)) dropped = true; + })); + if (dropped) AST_Node.warn("Dropping unreachable code [{start}]", stat); + + function push(node) { + if (block) { + block.push(node); + if (!safe_to_trim(node)) block.required = true; + } else { + target.push(node); + } + } + } + + function is_undefined(node, compressor) { + return node == null + || node.is_undefined + || node instanceof AST_Undefined + || node instanceof AST_UnaryPrefix + && node.operator == "void" + && !(compressor && node.expression.has_side_effects(compressor)); + } + + // in_strict_mode() + // return true if scope executes in Strict Mode + (function(def) { + def(AST_Class, return_true); + def(AST_Scope, function(compressor) { + var body = this.body; + for (var i = 0; i < body.length; i++) { + var stat = body[i]; + if (!(stat instanceof AST_Directive)) break; + if (stat.value == "use strict") return true; + } + var parent = this.parent_scope; + if (!parent) return compressor.option("module"); + return parent.resolve(true).in_strict_mode(compressor); + }); + })(function(node, func) { + node.DEFMETHOD("in_strict_mode", func); + }); + + // is_truthy() + // return true if `!!node === true` + (function(def) { + def(AST_Node, return_false); + def(AST_Array, return_true); + def(AST_Assign, function() { + return this.operator == "=" && this.right.is_truthy(); + }); + def(AST_Lambda, return_true); + def(AST_Object, return_true); + def(AST_RegExp, return_true); + def(AST_Sequence, function() { + return this.tail_node().is_truthy(); + }); + def(AST_SymbolRef, function() { + var fixed = this.fixed_value(); + if (!fixed) return false; + this.is_truthy = return_false; + var result = fixed.is_truthy(); + delete this.is_truthy; + return result; + }); + })(function(node, func) { + node.DEFMETHOD("is_truthy", func); + }); + + // is_negative_zero() + // return true if the node may represent -0 + (function(def) { + def(AST_Node, return_true); + def(AST_Array, return_false); + function binary(op, left, right) { + switch (op) { + case "-": + return left.is_negative_zero() + && (!(right instanceof AST_Constant) || right.value == 0); + case "&&": + case "||": + return left.is_negative_zero() || right.is_negative_zero(); + case "*": + case "/": + case "%": + case "**": + return true; + default: + return false; + } + } + def(AST_Assign, function() { + var op = this.operator; + if (op == "=") return this.right.is_negative_zero(); + return binary(op.slice(0, -1), this.left, this.right); + }); + def(AST_Binary, function() { + return binary(this.operator, this.left, this.right); + }); + def(AST_Constant, function() { + return this.value == 0 && 1 / this.value < 0; + }); + def(AST_Lambda, return_false); + def(AST_Object, return_false); + def(AST_RegExp, return_false); + def(AST_Sequence, function() { + return this.tail_node().is_negative_zero(); + }); + def(AST_SymbolRef, function() { + var fixed = this.fixed_value(); + if (!fixed) return true; + this.is_negative_zero = return_true; + var result = fixed.is_negative_zero(); + delete this.is_negative_zero; + return result; + }); + def(AST_UnaryPrefix, function() { + return this.operator == "+" && this.expression.is_negative_zero() + || this.operator == "-"; + }); + })(function(node, func) { + node.DEFMETHOD("is_negative_zero", func); + }); + + // may_throw_on_access() + // returns true if this node may be null, undefined or contain `AST_Accessor` + (function(def) { + AST_Node.DEFMETHOD("may_throw_on_access", function(compressor, force) { + return !compressor.option("pure_getters") || this._dot_throw(compressor, force); + }); + function is_strict(compressor, force) { + return force || /strict/.test(compressor.option("pure_getters")); + } + def(AST_Node, is_strict); + def(AST_Array, return_false); + def(AST_Assign, function(compressor) { + var op = this.operator; + var sym = this.left; + var rhs = this.right; + if (op != "=") { + return lazy_op[op.slice(0, -1)] && (sym._dot_throw(compressor) || rhs._dot_throw(compressor)); + } + if (!rhs._dot_throw(compressor)) return false; + if (!(sym instanceof AST_SymbolRef)) return true; + if (rhs instanceof AST_Binary && rhs.operator == "||" && sym.name == rhs.left.name) { + return rhs.right._dot_throw(compressor); + } + return true; + }); + def(AST_Binary, function(compressor) { + return lazy_op[this.operator] && (this.left._dot_throw(compressor) || this.right._dot_throw(compressor)); + }); + def(AST_Class, function(compressor, force) { + return is_strict(compressor, force) && !all(this.properties, function(prop) { + if (prop.private) return true; + if (!prop.static) return true; + return !(prop instanceof AST_ClassGetter || prop instanceof AST_ClassSetter); + }); + }); + def(AST_Conditional, function(compressor) { + return this.consequent._dot_throw(compressor) || this.alternative._dot_throw(compressor); + }); + def(AST_Constant, return_false); + def(AST_Dot, function(compressor, force) { + if (!is_strict(compressor, force)) return false; + var exp = this.expression; + if (exp instanceof AST_SymbolRef) exp = exp.fixed_value(); + return !(this.property == "prototype" && is_lambda(exp)); + }); + def(AST_Lambda, return_false); + def(AST_Null, return_true); + def(AST_Object, function(compressor, force) { + return is_strict(compressor, force) && !all(this.properties, function(prop) { + if (prop instanceof AST_ObjectGetter || prop instanceof AST_ObjectSetter) return false; + return !(prop.key === "__proto__" && prop.value._dot_throw(compressor, force)); + }); + }); + def(AST_ObjectIdentity, function(compressor, force) { + return is_strict(compressor, force) && !this.scope.resolve().new; + }); + def(AST_Sequence, function(compressor) { + return this.tail_node()._dot_throw(compressor); + }); + def(AST_SymbolRef, function(compressor, force) { + if (this.is_undefined) return true; + if (!is_strict(compressor, force)) return false; + if (is_undeclared_ref(this) && this.is_declared(compressor)) return false; + if (this.is_immutable()) return false; + var def = this.definition(); + if (is_arguments(def) && !def.scope.rest && all(def.scope.argnames, function(argname) { + return argname instanceof AST_SymbolFunarg; + })) return def.scope.uses_arguments > 2; + var fixed = this.fixed_value(true); + if (!fixed) return true; + this._dot_throw = return_true; + if (fixed._dot_throw(compressor)) { + delete this._dot_throw; + return true; + } + this._dot_throw = return_false; + return false; + }); + def(AST_UnaryPrefix, function() { + return this.operator == "void"; + }); + def(AST_UnaryPostfix, return_false); + def(AST_Undefined, return_true); + })(function(node, func) { + node.DEFMETHOD("_dot_throw", func); + }); + + (function(def) { + def(AST_Node, return_false); + def(AST_Array, return_true); + function is_binary_defined(compressor, op, node) { + switch (op) { + case "&&": + return node.left.is_defined(compressor) && node.right.is_defined(compressor); + case "||": + return node.left.is_truthy() || node.right.is_defined(compressor); + case "??": + return node.left.is_defined(compressor) || node.right.is_defined(compressor); + default: + return true; + } + } + def(AST_Assign, function(compressor) { + var op = this.operator; + if (op == "=") return this.right.is_defined(compressor); + return is_binary_defined(compressor, op.slice(0, -1), this); + }); + def(AST_Binary, function(compressor) { + return is_binary_defined(compressor, this.operator, this); + }); + def(AST_Conditional, function(compressor) { + return this.consequent.is_defined(compressor) && this.alternative.is_defined(compressor); + }); + def(AST_Constant, return_true); + def(AST_Hole, return_false); + def(AST_Lambda, return_true); + def(AST_Object, return_true); + def(AST_Sequence, function(compressor) { + return this.tail_node().is_defined(compressor); + }); + def(AST_SymbolRef, function(compressor) { + if (this.is_undefined) return false; + if (is_undeclared_ref(this) && this.is_declared(compressor)) return true; + if (this.is_immutable()) return true; + var fixed = this.fixed_value(); + if (!fixed) return false; + this.is_defined = return_false; + var result = fixed.is_defined(compressor); + delete this.is_defined; + return result; + }); + def(AST_UnaryPrefix, function() { + return this.operator != "void"; + }); + def(AST_UnaryPostfix, return_true); + def(AST_Undefined, return_false); + })(function(node, func) { + node.DEFMETHOD("is_defined", func); + }); + + /* -----[ boolean/negation helpers ]----- */ + + // methods to determine whether an expression has a boolean result type + (function(def) { + def(AST_Node, return_false); + def(AST_Assign, function(compressor) { + return this.operator == "=" && this.right.is_boolean(compressor); + }); + var binary = makePredicate("in instanceof == != === !== < <= >= >"); + def(AST_Binary, function(compressor) { + return binary[this.operator] || lazy_op[this.operator] + && this.left.is_boolean(compressor) + && this.right.is_boolean(compressor); + }); + def(AST_Boolean, return_true); + var fn = makePredicate("every hasOwnProperty isPrototypeOf propertyIsEnumerable some"); + def(AST_Call, function(compressor) { + if (!compressor.option("unsafe")) return false; + var exp = this.expression; + return exp instanceof AST_Dot && (fn[exp.property] + || exp.property == "test" && exp.expression instanceof AST_RegExp); + }); + def(AST_Conditional, function(compressor) { + return this.consequent.is_boolean(compressor) && this.alternative.is_boolean(compressor); + }); + def(AST_New, return_false); + def(AST_Sequence, function(compressor) { + return this.tail_node().is_boolean(compressor); + }); + def(AST_SymbolRef, function(compressor) { + var fixed = this.fixed_value(); + if (!fixed) return false; + this.is_boolean = return_false; + var result = fixed.is_boolean(compressor); + delete this.is_boolean; + return result; + }); + var unary = makePredicate("! delete"); + def(AST_UnaryPrefix, function() { + return unary[this.operator]; + }); + })(function(node, func) { + node.DEFMETHOD("is_boolean", func); + }); + + // methods to determine if an expression has a numeric result type + (function(def) { + def(AST_Node, return_false); + var binary = makePredicate("- * / % ** & | ^ << >> >>>"); + def(AST_Assign, function(compressor) { + return binary[this.operator.slice(0, -1)] + || this.operator == "=" && this.right.is_number(compressor); + }); + def(AST_Binary, function(compressor) { + if (binary[this.operator]) return true; + if (this.operator != "+") return false; + return (this.left.is_boolean(compressor) || this.left.is_number(compressor)) + && (this.right.is_boolean(compressor) || this.right.is_number(compressor)); + }); + var fn = makePredicate([ + "charCodeAt", + "getDate", + "getDay", + "getFullYear", + "getHours", + "getMilliseconds", + "getMinutes", + "getMonth", + "getSeconds", + "getTime", + "getTimezoneOffset", + "getUTCDate", + "getUTCDay", + "getUTCFullYear", + "getUTCHours", + "getUTCMilliseconds", + "getUTCMinutes", + "getUTCMonth", + "getUTCSeconds", + "getYear", + "indexOf", + "lastIndexOf", + "localeCompare", + "push", + "search", + "setDate", + "setFullYear", + "setHours", + "setMilliseconds", + "setMinutes", + "setMonth", + "setSeconds", + "setTime", + "setUTCDate", + "setUTCFullYear", + "setUTCHours", + "setUTCMilliseconds", + "setUTCMinutes", + "setUTCMonth", + "setUTCSeconds", + "setYear", + ]); + def(AST_Call, function(compressor) { + if (!compressor.option("unsafe")) return false; + var exp = this.expression; + return exp instanceof AST_Dot && (fn[exp.property] + || is_undeclared_ref(exp.expression) && exp.expression.name == "Math"); + }); + def(AST_Conditional, function(compressor) { + return this.consequent.is_number(compressor) && this.alternative.is_number(compressor); + }); + def(AST_New, return_false); + def(AST_Number, return_true); + def(AST_Sequence, function(compressor) { + return this.tail_node().is_number(compressor); + }); + def(AST_SymbolRef, function(compressor, keep_unary) { + var fixed = this.fixed_value(); + if (!fixed) return false; + if (keep_unary + && fixed instanceof AST_UnaryPrefix + && fixed.operator == "+" + && fixed.expression.equals(this)) { + return false; + } + this.is_number = return_false; + var result = fixed.is_number(compressor); + delete this.is_number; + return result; + }); + var unary = makePredicate("+ - ~ ++ --"); + def(AST_Unary, function() { + return unary[this.operator]; + }); + })(function(node, func) { + node.DEFMETHOD("is_number", func); + }); + + // methods to determine if an expression has a string result type + (function(def) { + def(AST_Node, return_false); + def(AST_Assign, function(compressor) { + switch (this.operator) { + case "+=": + if (this.left.is_string(compressor)) return true; + case "=": + return this.right.is_string(compressor); + } + }); + def(AST_Binary, function(compressor) { + return this.operator == "+" && + (this.left.is_string(compressor) || this.right.is_string(compressor)); + }); + var fn = makePredicate([ + "charAt", + "substr", + "substring", + "toExponential", + "toFixed", + "toLowerCase", + "toPrecision", + "toString", + "toUpperCase", + "trim", + ]); + def(AST_Call, function(compressor) { + if (!compressor.option("unsafe")) return false; + var exp = this.expression; + return exp instanceof AST_Dot && fn[exp.property]; + }); + def(AST_Conditional, function(compressor) { + return this.consequent.is_string(compressor) && this.alternative.is_string(compressor); + }); + def(AST_Sequence, function(compressor) { + return this.tail_node().is_string(compressor); + }); + def(AST_String, return_true); + def(AST_SymbolRef, function(compressor) { + var fixed = this.fixed_value(); + if (!fixed) return false; + this.is_string = return_false; + var result = fixed.is_string(compressor); + delete this.is_string; + return result; + }); + def(AST_Template, function(compressor) { + return !this.tag || is_raw_tag(compressor, this.tag); + }); + def(AST_UnaryPrefix, function() { + return this.operator == "typeof"; + }); + })(function(node, func) { + node.DEFMETHOD("is_string", func); + }); + + var lazy_op = makePredicate("&& || ??"); + + (function(def) { + function to_node(value, orig) { + if (value instanceof AST_Node) return value.clone(true); + if (Array.isArray(value)) return make_node(AST_Array, orig, { + elements: value.map(function(value) { + return to_node(value, orig); + }) + }); + if (value && typeof value == "object") { + var props = []; + for (var key in value) if (HOP(value, key)) { + props.push(make_node(AST_ObjectKeyVal, orig, { + key: key, + value: to_node(value[key], orig), + })); + } + return make_node(AST_Object, orig, { properties: props }); + } + return make_node_from_constant(value, orig); + } + + function warn(node) { + AST_Node.warn("global_defs {this} redefined [{start}]", node); + } + + AST_Toplevel.DEFMETHOD("resolve_defines", function(compressor) { + if (!compressor.option("global_defs")) return this; + this.figure_out_scope({ ie: compressor.option("ie") }); + return this.transform(new TreeTransformer(function(node) { + var def = node._find_defs(compressor, ""); + if (!def) return; + var level = 0, child = node, parent; + while (parent = this.parent(level++)) { + if (!(parent instanceof AST_PropAccess)) break; + if (parent.expression !== child) break; + child = parent; + } + if (is_lhs(child, parent)) { + warn(node); + return; + } + return def; + })); + }); + def(AST_Node, noop); + def(AST_Dot, function(compressor, suffix) { + return this.expression._find_defs(compressor, "." + this.property + suffix); + }); + def(AST_SymbolDeclaration, function(compressor) { + if (!this.definition().global) return; + if (HOP(compressor.option("global_defs"), this.name)) warn(this); + }); + def(AST_SymbolRef, function(compressor, suffix) { + if (!this.definition().global) return; + var defines = compressor.option("global_defs"); + var name = this.name + suffix; + if (HOP(defines, name)) return to_node(defines[name], this); + }); + })(function(node, func) { + node.DEFMETHOD("_find_defs", func); + }); + + function best_of_expression(ast1, ast2, threshold) { + var delta = ast2.print_to_string().length - ast1.print_to_string().length; + return delta < (threshold || 0) ? ast2 : ast1; + } + + function best_of_statement(ast1, ast2, threshold) { + return best_of_expression(make_node(AST_SimpleStatement, ast1, { + body: ast1, + }), make_node(AST_SimpleStatement, ast2, { + body: ast2, + }), threshold).body; + } + + function best_of(compressor, ast1, ast2, threshold) { + return (first_in_statement(compressor) ? best_of_statement : best_of_expression)(ast1, ast2, threshold); + } + + function convert_to_predicate(obj) { + var map = Object.create(null); + Object.keys(obj).forEach(function(key) { + map[key] = makePredicate(obj[key]); + }); + return map; + } + + function skip_directives(body) { + for (var i = 0; i < body.length; i++) { + var stat = body[i]; + if (!(stat instanceof AST_Directive)) return stat; + } + } + + function arrow_first_statement() { + if (this.value) return make_node(AST_Return, this.value, { value: this.value }); + return skip_directives(this.body); + } + AST_Arrow.DEFMETHOD("first_statement", arrow_first_statement); + AST_AsyncArrow.DEFMETHOD("first_statement", arrow_first_statement); + AST_Lambda.DEFMETHOD("first_statement", function() { + return skip_directives(this.body); + }); + + AST_Lambda.DEFMETHOD("length", function() { + var argnames = this.argnames; + for (var i = 0; i < argnames.length; i++) { + if (argnames[i] instanceof AST_DefaultValue) break; + } + return i; + }); + + function try_evaluate(compressor, node) { + var ev = node.evaluate(compressor); + if (ev === node) return node; + ev = make_node_from_constant(ev, node).optimize(compressor); + return best_of(compressor, node, ev, compressor.eval_threshold); + } + + var object_fns = [ + "constructor", + "toString", + "valueOf", + ]; + var native_fns = convert_to_predicate({ + Array: [ + "indexOf", + "join", + "lastIndexOf", + "slice", + ].concat(object_fns), + Boolean: object_fns, + Function: object_fns, + Number: [ + "toExponential", + "toFixed", + "toPrecision", + ].concat(object_fns), + Object: object_fns, + RegExp: [ + "exec", + "test", + ].concat(object_fns), + String: [ + "charAt", + "charCodeAt", + "concat", + "indexOf", + "italics", + "lastIndexOf", + "match", + "replace", + "search", + "slice", + "split", + "substr", + "substring", + "toLowerCase", + "toUpperCase", + "trim", + ].concat(object_fns), + }); + var static_fns = convert_to_predicate({ + Array: [ + "isArray", + ], + Math: [ + "abs", + "acos", + "asin", + "atan", + "ceil", + "cos", + "exp", + "floor", + "log", + "round", + "sin", + "sqrt", + "tan", + "atan2", + "pow", + "max", + "min", + ], + Number: [ + "isFinite", + "isNaN", + ], + Object: [ + "create", + "getOwnPropertyDescriptor", + "getOwnPropertyNames", + "getPrototypeOf", + "isExtensible", + "isFrozen", + "isSealed", + "keys", + ], + String: [ + "fromCharCode", + "raw", + ], + }); + + function is_static_fn(node) { + if (!(node instanceof AST_Dot)) return false; + var expr = node.expression; + if (!is_undeclared_ref(expr)) return false; + var static_fn = static_fns[expr.name]; + return static_fn && (static_fn[node.property] || expr.name == "Math" && node.property == "random"); + } + + // Accommodate when compress option evaluate=false + // as well as the common constant expressions !0 and -1 + (function(def) { + def(AST_Node, return_false); + def(AST_Constant, return_true); + def(AST_RegExp, return_false); + var unaryPrefix = makePredicate("! ~ - + void"); + def(AST_UnaryPrefix, function() { + return unaryPrefix[this.operator] && this.expression instanceof AST_Constant; + }); + })(function(node, func) { + node.DEFMETHOD("is_constant", func); + }); + + // methods to evaluate a constant expression + (function(def) { + // If the node has been successfully reduced to a constant, + // then its value is returned; otherwise the element itself + // is returned. + // + // They can be distinguished as constant value is never a + // descendant of AST_Node. + // + // When `ignore_side_effects` is `true`, inspect the constant value + // produced without worrying about any side effects caused by said + // expression. + AST_Node.DEFMETHOD("evaluate", function(compressor, ignore_side_effects) { + if (!compressor.option("evaluate")) return this; + var cached = []; + var val = this._eval(compressor, ignore_side_effects, cached, 1); + cached.forEach(function(node) { + delete node._eval; + }); + if (ignore_side_effects) return val; + if (!val || val instanceof RegExp) return val; + if (typeof val == "function" || typeof val == "object") return this; + return val; + }); + var scan_modified = new TreeWalker(function(node) { + if (node instanceof AST_Assign) modified(node.left); + if (node instanceof AST_ForEnumeration) modified(node.init); + if (node instanceof AST_Unary && UNARY_POSTFIX[node.operator]) modified(node.expression); + }); + function modified(node) { + if (node instanceof AST_DestructuredArray) { + node.elements.forEach(modified); + } else if (node instanceof AST_DestructuredObject) { + node.properties.forEach(function(prop) { + modified(prop.value); + }); + } else if (node instanceof AST_PropAccess) { + modified(node.expression); + } else if (node instanceof AST_SymbolRef) { + node.definition().references.forEach(function(ref) { + delete ref._eval; + }); + } + } + def(AST_Statement, function() { + throw new Error(string_template("Cannot evaluate a statement [{start}]", this)); + }); + def(AST_Accessor, return_this); + def(AST_BigInt, return_this); + def(AST_Class, return_this); + def(AST_Node, return_this); + def(AST_Constant, function() { + return this.value; + }); + def(AST_Assign, function(compressor, ignore_side_effects, cached, depth) { + var lhs = this.left; + if (!ignore_side_effects) { + if (!(lhs instanceof AST_SymbolRef)) return this; + if (!HOP(lhs, "_eval")) { + if (!lhs.fixed) return this; + var def = lhs.definition(); + if (!def.fixed) return this; + if (def.undeclared) return this; + if (def.last_ref !== lhs) return this; + if (def.single_use == "m") return this; + if (this.right.has_side_effects(compressor)) return this; + } + } + var op = this.operator; + var node; + if (!HOP(lhs, "_eval") && lhs instanceof AST_SymbolRef && lhs.fixed && lhs.definition().fixed) { + node = lhs; + } else if (op == "=") { + node = this.right; + } else { + node = make_node(AST_Binary, this, { + operator: op.slice(0, -1), + left: lhs, + right: this.right, + }); + } + lhs.walk(scan_modified); + var value = node._eval(compressor, ignore_side_effects, cached, depth); + if (typeof value == "object") return this; + modified(lhs); + return value; + }); + def(AST_Sequence, function(compressor, ignore_side_effects, cached, depth) { + if (!ignore_side_effects) return this; + var exprs = this.expressions; + for (var i = 0, last = exprs.length - 1; i < last; i++) { + exprs[i].walk(scan_modified); + } + var tail = exprs[last]; + var value = tail._eval(compressor, ignore_side_effects, cached, depth); + return value === tail ? this : value; + }); + def(AST_Lambda, function(compressor) { + if (compressor.option("unsafe")) { + var fn = function() {}; + fn.node = this; + fn.toString = function() { + return "function(){}"; + }; + return fn; + } + return this; + }); + def(AST_Array, function(compressor, ignore_side_effects, cached, depth) { + if (compressor.option("unsafe")) { + var elements = []; + for (var i = 0; i < this.elements.length; i++) { + var element = this.elements[i]; + if (element instanceof AST_Hole) return this; + var value = element._eval(compressor, ignore_side_effects, cached, depth); + if (element === value) return this; + elements.push(value); + } + return elements; + } + return this; + }); + def(AST_Object, function(compressor, ignore_side_effects, cached, depth) { + if (compressor.option("unsafe")) { + var val = {}; + for (var i = 0; i < this.properties.length; i++) { + var prop = this.properties[i]; + if (!(prop instanceof AST_ObjectKeyVal)) return this; + var key = prop.key; + if (key instanceof AST_Node) { + key = key._eval(compressor, ignore_side_effects, cached, depth); + if (key === prop.key) return this; + } + switch (key) { + case "__proto__": + case "toString": + case "valueOf": + return this; + } + val[key] = prop.value._eval(compressor, ignore_side_effects, cached, depth); + if (val[key] === prop.value) return this; + } + return val; + } + return this; + }); + var non_converting_unary = makePredicate("! typeof void"); + def(AST_UnaryPrefix, function(compressor, ignore_side_effects, cached, depth) { + var e = this.expression; + var op = this.operator; + // Function would be evaluated to an array and so typeof would + // incorrectly return "object". Hence making is a special case. + if (compressor.option("typeofs") + && op == "typeof" + && (e instanceof AST_Lambda + || e instanceof AST_SymbolRef + && e.fixed_value() instanceof AST_Lambda)) { + return typeof function(){}; + } + var def = e instanceof AST_SymbolRef && e.definition(); + if (!non_converting_unary[op] && !(def && def.fixed)) depth++; + e.walk(scan_modified); + var v = e._eval(compressor, ignore_side_effects, cached, depth); + if (v === e) { + if (ignore_side_effects && op == "void") return; + return this; + } + switch (op) { + case "!": return !v; + case "typeof": + // typeof returns "object" or "function" on different platforms + // so cannot evaluate reliably + if (v instanceof RegExp) return this; + return typeof v; + case "void": return; + case "~": return ~v; + case "-": return -v; + case "+": return +v; + case "++": + case "--": + if (!def) return this; + if (!ignore_side_effects) { + if (def.undeclared) return this; + if (def.last_ref !== e) return this; + } + if (HOP(e, "_eval")) v = +(op[0] + 1) + +v; + modified(e); + return v; + } + return this; + }); + def(AST_UnaryPostfix, function(compressor, ignore_side_effects, cached, depth) { + var e = this.expression; + if (!(e instanceof AST_SymbolRef)) { + if (!ignore_side_effects) return this; + } else if (!HOP(e, "_eval")) { + if (!e.fixed) return this; + if (!ignore_side_effects) { + var def = e.definition(); + if (!def.fixed) return this; + if (def.undeclared) return this; + if (def.last_ref !== e) return this; + } + } + if (!(e instanceof AST_SymbolRef && e.definition().fixed)) depth++; + e.walk(scan_modified); + var v = e._eval(compressor, ignore_side_effects, cached, depth); + if (v === e) return this; + modified(e); + return +v; + }); + var non_converting_binary = makePredicate("&& || === !=="); + def(AST_Binary, function(compressor, ignore_side_effects, cached, depth) { + if (!non_converting_binary[this.operator]) depth++; + var left = this.left._eval(compressor, ignore_side_effects, cached, depth); + if (left === this.left) return this; + if (this.operator == (left ? "||" : "&&")) return left; + var rhs_ignore_side_effects = ignore_side_effects && !(left && typeof left == "object"); + var right = this.right._eval(compressor, rhs_ignore_side_effects, cached, depth); + if (right === this.right) return this; + var result; + switch (this.operator) { + case "&&" : result = left && right; break; + case "||" : result = left || right; break; + case "??" : + result = left == null ? right : left; + break; + case "|" : result = left | right; break; + case "&" : result = left & right; break; + case "^" : result = left ^ right; break; + case "+" : result = left + right; break; + case "-" : result = left - right; break; + case "*" : result = left * right; break; + case "/" : result = left / right; break; + case "%" : result = left % right; break; + case "<<" : result = left << right; break; + case ">>" : result = left >> right; break; + case ">>>": result = left >>> right; break; + case "==" : result = left == right; break; + case "===": result = left === right; break; + case "!=" : result = left != right; break; + case "!==": result = left !== right; break; + case "<" : result = left < right; break; + case "<=" : result = left <= right; break; + case ">" : result = left > right; break; + case ">=" : result = left >= right; break; + case "**": + result = Math.pow(left, right); + break; + case "in": + if (right && typeof right == "object" && HOP(right, left)) { + result = true; + break; + } + default: + return this; + } + if (isNaN(result)) return compressor.find_parent(AST_With) ? this : result; + if (compressor.option("unsafe_math") + && !ignore_side_effects + && result + && typeof result == "number" + && (this.operator == "+" || this.operator == "-")) { + var digits = Math.max(0, decimals(left), decimals(right)); + // 53-bit significand ---> 15.95 decimal places + if (digits < 16) return +result.toFixed(digits); + } + return result; + + function decimals(operand) { + var match = /(\.[0-9]*)?(e[^e]+)?$/.exec(+operand); + return (match[1] || ".").length - 1 - (match[2] || "").slice(1); + } + }); + def(AST_Conditional, function(compressor, ignore_side_effects, cached, depth) { + var condition = this.condition._eval(compressor, ignore_side_effects, cached, depth); + if (condition === this.condition) return this; + var node = condition ? this.consequent : this.alternative; + var value = node._eval(compressor, ignore_side_effects, cached, depth); + return value === node ? this : value; + }); + function verify_escaped(ref, depth) { + var escaped = ref.definition().escaped; + switch (escaped.length) { + case 0: + return true; + case 1: + var found = false; + escaped[0].walk(new TreeWalker(function(node) { + if (found) return true; + if (node === ref) return found = true; + if (node instanceof AST_Scope) return true; + })); + return found; + default: + return depth <= escaped.depth; + } + } + def(AST_SymbolRef, function(compressor, ignore_side_effects, cached, depth) { + var fixed = this.fixed_value(); + if (!fixed) return this; + var value; + if (HOP(fixed, "_eval")) { + value = fixed._eval(); + } else { + this._eval = return_this; + value = fixed._eval(compressor, ignore_side_effects, cached, depth); + delete this._eval; + if (value === fixed) return this; + fixed._eval = function() { + return value; + }; + cached.push(fixed); + } + return value && typeof value == "object" && !verify_escaped(this, depth) ? this : value; + }); + var global_objs = { + Array: Array, + Math: Math, + Number: Number, + Object: Object, + String: String, + }; + var static_values = convert_to_predicate({ + Math: [ + "E", + "LN10", + "LN2", + "LOG2E", + "LOG10E", + "PI", + "SQRT1_2", + "SQRT2", + ], + Number: [ + "MAX_VALUE", + "MIN_VALUE", + "NaN", + "NEGATIVE_INFINITY", + "POSITIVE_INFINITY", + ], + }); + var regexp_props = makePredicate("global ignoreCase multiline source"); + def(AST_PropAccess, function(compressor, ignore_side_effects, cached, depth) { + if (compressor.option("unsafe")) { + var val; + var exp = this.expression; + if (!is_undeclared_ref(exp)) { + val = exp._eval(compressor, ignore_side_effects, cached, depth + 1); + if (val == null || val === exp) return this; + } + var key = this.property; + if (key instanceof AST_Node) { + key = key._eval(compressor, ignore_side_effects, cached, depth); + if (key === this.property) return this; + } + if (val === undefined) { + var static_value = static_values[exp.name]; + if (!static_value || !static_value[key]) return this; + val = global_objs[exp.name]; + } else if (val instanceof RegExp) { + if (!regexp_props[key]) return this; + } else if (typeof val == "object") { + if (!HOP(val, key)) return this; + } else if (typeof val == "function") switch (key) { + case "name": + return val.node.name ? val.node.name.name : ""; + case "length": + return val.node.length(); + default: + return this; + } + return val[key]; + } + return this; + }); + function eval_all(nodes, compressor, ignore_side_effects, cached, depth) { + var values = []; + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + var value = node._eval(compressor, ignore_side_effects, cached, depth); + if (node === value) return; + values.push(value); + } + return values; + } + def(AST_Call, function(compressor, ignore_side_effects, cached, depth) { + var exp = this.expression; + var fn = exp instanceof AST_SymbolRef ? exp.fixed_value() : exp; + if (fn instanceof AST_Arrow || fn instanceof AST_Defun || fn instanceof AST_Function) { + if (fn.evaluating) return this; + if (fn.name && fn.name.definition().recursive_refs > 0) return this; + if (this.is_expr_pure(compressor)) return this; + var args = eval_all(this.args, compressor, ignore_side_effects, cached, depth); + if (!all(fn.argnames, function(sym, index) { + if (sym instanceof AST_DefaultValue) { + if (!args) return false; + if (args[index] === undefined) { + var value = sym.value._eval(compressor, ignore_side_effects, cached, depth); + if (value === sym.value) return false; + args[index] = value; + } + sym = sym.name; + } + return !(sym instanceof AST_Destructured); + })) return this; + if (fn.rest instanceof AST_Destructured) return this; + if (!args && !ignore_side_effects) return this; + var stat = fn.first_statement(); + if (!(stat instanceof AST_Return)) { + if (ignore_side_effects) { + fn.walk(scan_modified); + var found = false; + fn.evaluating = true; + walk_body(fn, new TreeWalker(function(node) { + if (found) return true; + if (node instanceof AST_Return) { + if (node.value && node.value._eval(compressor, true, cached, depth) !== undefined) { + found = true; + } + return true; + } + if (node instanceof AST_Scope && node !== fn) return true; + })); + fn.evaluating = false; + if (!found) return; + } + return this; + } + var val = stat.value; + if (!val) return; + var cached_args = []; + if (!args || all(fn.argnames, function(sym, i) { + return assign(sym, args[i]); + }) && !(fn.rest && !assign(fn.rest, args.slice(fn.argnames.length))) || ignore_side_effects) { + if (ignore_side_effects) fn.argnames.forEach(function(sym) { + if (sym instanceof AST_DefaultValue) sym.value.walk(scan_modified); + }); + fn.evaluating = true; + val = val._eval(compressor, ignore_side_effects, cached, depth); + fn.evaluating = false; + } + cached_args.forEach(function(node) { + delete node._eval; + }); + return val === stat.value ? this : val; + } else if (compressor.option("unsafe") && exp instanceof AST_PropAccess) { + var key = exp.property; + if (key instanceof AST_Node) { + key = key._eval(compressor, ignore_side_effects, cached, depth); + if (key === exp.property) return this; + } + var val; + var e = exp.expression; + if (is_undeclared_ref(e)) { + var static_fn = static_fns[e.name]; + if (!static_fn || !static_fn[key]) return this; + val = global_objs[e.name]; + } else { + val = e._eval(compressor, ignore_side_effects, cached, depth + 1); + if (val == null || val === e) return this; + var native_fn = native_fns[val.constructor.name]; + if (!native_fn || !native_fn[key]) return this; + if (val instanceof RegExp && val.global && !(e instanceof AST_RegExp)) return this; + } + var args = eval_all(this.args, compressor, ignore_side_effects, cached, depth); + if (!args) return this; + if (key == "replace" && typeof args[1] == "function") return this; + try { + return val[key].apply(val, args); + } catch (ex) { + AST_Node.warn("Error evaluating {this} [{start}]", this); + } finally { + if (val instanceof RegExp) val.lastIndex = 0; + } + } + return this; + + function assign(sym, arg) { + if (sym instanceof AST_DefaultValue) sym = sym.name; + var def = sym.definition(); + if (def.orig[def.orig.length - 1] !== sym) return false; + var value = arg; + def.references.forEach(function(node) { + node._eval = function() { + return value; + }; + cached_args.push(node); + }); + return true; + } + }); + def(AST_New, return_this); + def(AST_Template, function(compressor, ignore_side_effects, cached, depth) { + if (!compressor.option("templates")) return this; + if (this.tag) { + if (!is_raw_tag(compressor, this.tag)) return this; + decode = function(str) { + return str; + }; + } + var exprs = eval_all(this.expressions, compressor, ignore_side_effects, cached, depth); + if (!exprs) return this; + var malformed = false; + var ret = decode(this.strings[0]); + for (var i = 0; i < exprs.length; i++) { + ret += exprs[i] + decode(this.strings[i + 1]); + } + if (!malformed) return ret; + this._eval = return_this; + return this; + + function decode(str) { + str = decode_template(str); + if (typeof str != "string") malformed = true; + return str; + } + }); + })(function(node, func) { + node.DEFMETHOD("_eval", func); + }); + + // method to negate an expression + (function(def) { + function basic_negation(exp) { + return make_node(AST_UnaryPrefix, exp, { + operator: "!", + expression: exp, + }); + } + function best(orig, alt, first_in_statement) { + var negated = basic_negation(orig); + if (first_in_statement) return best_of_expression(negated, make_node(AST_SimpleStatement, alt, { + body: alt, + })) === negated ? negated : alt; + return best_of_expression(negated, alt); + } + def(AST_Node, function() { + return basic_negation(this); + }); + def(AST_Statement, function() { + throw new Error("Cannot negate a statement"); + }); + def(AST_Binary, function(compressor, first_in_statement) { + var self = this.clone(), op = this.operator; + if (compressor.option("unsafe_comps")) { + switch (op) { + case "<=" : self.operator = ">" ; return self; + case "<" : self.operator = ">=" ; return self; + case ">=" : self.operator = "<" ; return self; + case ">" : self.operator = "<=" ; return self; + } + } + switch (op) { + case "==" : self.operator = "!="; return self; + case "!=" : self.operator = "=="; return self; + case "===": self.operator = "!=="; return self; + case "!==": self.operator = "==="; return self; + case "&&": + self.operator = "||"; + self.left = self.left.negate(compressor, first_in_statement); + self.right = self.right.negate(compressor); + return best(this, self, first_in_statement); + case "||": + self.operator = "&&"; + self.left = self.left.negate(compressor, first_in_statement); + self.right = self.right.negate(compressor); + return best(this, self, first_in_statement); + } + return basic_negation(this); + }); + def(AST_ClassExpression, function() { + return basic_negation(this); + }); + def(AST_Conditional, function(compressor, first_in_statement) { + var self = this.clone(); + self.consequent = self.consequent.negate(compressor); + self.alternative = self.alternative.negate(compressor); + return best(this, self, first_in_statement); + }); + def(AST_LambdaExpression, function() { + return basic_negation(this); + }); + def(AST_Sequence, function(compressor) { + var expressions = this.expressions.slice(); + expressions.push(expressions.pop().negate(compressor)); + return make_sequence(this, expressions); + }); + def(AST_UnaryPrefix, function() { + if (this.operator == "!") + return this.expression; + return basic_negation(this); + }); + })(function(node, func) { + node.DEFMETHOD("negate", function(compressor, first_in_statement) { + return func.call(this, compressor, first_in_statement); + }); + }); + + var global_pure_fns = makePredicate("Boolean decodeURI decodeURIComponent Date encodeURI encodeURIComponent Error escape EvalError isFinite isNaN Number Object parseFloat parseInt RangeError ReferenceError String SyntaxError TypeError unescape URIError"); + var global_pure_constructors = makePredicate("Map Set WeakMap WeakSet"); + AST_Call.DEFMETHOD("is_expr_pure", function(compressor) { + if (compressor.option("unsafe")) { + var expr = this.expression; + if (is_undeclared_ref(expr)) { + if (global_pure_fns[expr.name]) return true; + if (this instanceof AST_New && global_pure_constructors[expr.name]) return true; + } + if (is_static_fn(expr)) return true; + } + return compressor.option("annotations") && this.pure || !compressor.pure_funcs(this); + }); + AST_Template.DEFMETHOD("is_expr_pure", function(compressor) { + var tag = this.tag; + if (!tag) return true; + if (compressor.option("unsafe")) { + if (is_undeclared_ref(tag) && global_pure_fns[tag.name]) return true; + if (tag instanceof AST_Dot && is_undeclared_ref(tag.expression)) { + var static_fn = static_fns[tag.expression.name]; + return static_fn && (static_fn[tag.property] + || tag.expression.name == "Math" && tag.property == "random"); + } + } + return !compressor.pure_funcs(this); + }); + AST_Node.DEFMETHOD("is_call_pure", return_false); + AST_Call.DEFMETHOD("is_call_pure", function(compressor) { + if (!compressor.option("unsafe")) return false; + var dot = this.expression; + if (!(dot instanceof AST_Dot)) return false; + var exp = dot.expression; + var map; + var prop = dot.property; + if (exp instanceof AST_Array) { + map = native_fns.Array; + } else if (exp.is_boolean(compressor)) { + map = native_fns.Boolean; + } else if (exp.is_number(compressor)) { + map = native_fns.Number; + } else if (exp instanceof AST_RegExp) { + map = native_fns.RegExp; + } else if (exp.is_string(compressor)) { + map = native_fns.String; + if (prop == "replace") { + var arg = this.args[1]; + if (arg && !arg.is_string(compressor)) return false; + } + } else if (!dot.may_throw_on_access(compressor)) { + map = native_fns.Object; + } + return map && map[prop]; + }); + + // determine if object spread syntax may cause runtime exception + (function(def) { + def(AST_Node, return_false); + def(AST_Array, return_true); + def(AST_Assign, function() { + switch (this.operator) { + case "=": + return this.right.safe_to_spread(); + case "&&=": + case "||=": + case "??=": + return this.left.safe_to_spread() && this.right.safe_to_spread(); + } + return true; + }); + def(AST_Binary, function() { + return !lazy_op[this.operator] || this.left.safe_to_spread() && this.right.safe_to_spread(); + }); + def(AST_Constant, return_true); + def(AST_Lambda, return_true); + def(AST_Object, function() { + return all(this.properties, function(prop) { + return !(prop instanceof AST_ObjectGetter || prop instanceof AST_Spread); + }); + }); + def(AST_Sequence, function() { + return this.tail_node().safe_to_spread(); + }); + def(AST_SymbolRef, function() { + var fixed = this.fixed_value(); + return fixed && fixed.safe_to_spread(); + }); + def(AST_Unary, return_true); + })(function(node, func) { + node.DEFMETHOD("safe_to_spread", func); + }); + + // determine if expression has side effects + (function(def) { + function any(list, compressor, spread) { + return !all(list, spread ? function(node) { + return node instanceof AST_Spread ? !spread(node, compressor) : !node.has_side_effects(compressor); + } : function(node) { + return !node.has_side_effects(compressor); + }); + } + function array_spread(node, compressor) { + var exp = node.expression; + return !exp.is_string(compressor) || exp.has_side_effects(compressor); + } + def(AST_Node, return_true); + def(AST_Array, function(compressor) { + return any(this.elements, compressor, array_spread); + }); + def(AST_Assign, function(compressor) { + var lhs = this.left; + if (!(lhs instanceof AST_PropAccess)) return true; + var node = lhs.expression; + return !(node instanceof AST_ObjectIdentity) + || !node.scope.resolve().new + || lhs instanceof AST_Sub && lhs.property.has_side_effects(compressor) + || this.right.has_side_effects(compressor); + }); + def(AST_Binary, function(compressor) { + return this.left.has_side_effects(compressor) + || this.right.has_side_effects(compressor) + || !can_drop_op(this.operator, this.right, compressor); + }); + def(AST_Block, function(compressor) { + return any(this.body, compressor); + }); + def(AST_Call, function(compressor) { + if (!this.is_expr_pure(compressor) + && (!this.is_call_pure(compressor) || this.expression.has_side_effects(compressor))) { + return true; + } + return any(this.args, compressor, array_spread); + }); + def(AST_Case, function(compressor) { + return this.expression.has_side_effects(compressor) + || any(this.body, compressor); + }); + def(AST_Class, function(compressor) { + var base = this.extends; + if (base) { + if (base instanceof AST_SymbolRef) base = base.fixed_value(); + if (!safe_for_extends(base)) return true; + } + return any(this.properties, compressor); + }); + def(AST_ClassProperty, function(compressor) { + return this.key instanceof AST_Node && this.key.has_side_effects(compressor) + || this.static && this.value && this.value.has_side_effects(compressor); + }); + def(AST_Conditional, function(compressor) { + return this.condition.has_side_effects(compressor) + || this.consequent.has_side_effects(compressor) + || this.alternative.has_side_effects(compressor); + }); + def(AST_Constant, return_false); + def(AST_Definitions, function(compressor) { + return any(this.definitions, compressor); + }); + def(AST_DestructuredArray, function(compressor) { + return any(this.elements, compressor); + }); + def(AST_DestructuredKeyVal, function(compressor) { + return this.key instanceof AST_Node && this.key.has_side_effects(compressor) + || this.value.has_side_effects(compressor); + }); + def(AST_DestructuredObject, function(compressor) { + return any(this.properties, compressor); + }); + def(AST_Dot, function(compressor) { + return this.expression.may_throw_on_access(compressor) + || this.expression.has_side_effects(compressor); + }); + def(AST_EmptyStatement, return_false); + def(AST_If, function(compressor) { + return this.condition.has_side_effects(compressor) + || this.body && this.body.has_side_effects(compressor) + || this.alternative && this.alternative.has_side_effects(compressor); + }); + def(AST_LabeledStatement, function(compressor) { + return this.body.has_side_effects(compressor); + }); + def(AST_Lambda, return_false); + def(AST_Object, function(compressor) { + return any(this.properties, compressor, function(node, compressor) { + var exp = node.expression; + return !exp.safe_to_spread() || exp.has_side_effects(compressor); + }); + }); + def(AST_ObjectIdentity, return_false); + def(AST_ObjectProperty, function(compressor) { + return this.key instanceof AST_Node && this.key.has_side_effects(compressor) + || this.value.has_side_effects(compressor); + }); + def(AST_Sequence, function(compressor) { + return any(this.expressions, compressor); + }); + def(AST_SimpleStatement, function(compressor) { + return this.body.has_side_effects(compressor); + }); + def(AST_Sub, function(compressor) { + return this.expression.may_throw_on_access(compressor) + || this.expression.has_side_effects(compressor) + || this.property.has_side_effects(compressor); + }); + def(AST_Switch, function(compressor) { + return this.expression.has_side_effects(compressor) + || any(this.body, compressor); + }); + def(AST_SymbolDeclaration, return_false); + def(AST_SymbolRef, function(compressor) { + return !this.is_declared(compressor) || !can_drop_symbol(this, compressor); + }); + def(AST_Template, function(compressor) { + return !this.is_expr_pure(compressor) || any(this.expressions, compressor); + }); + def(AST_Try, function(compressor) { + return any(this.body, compressor) + || this.bcatch && this.bcatch.has_side_effects(compressor) + || this.bfinally && this.bfinally.has_side_effects(compressor); + }); + def(AST_Unary, function(compressor) { + return unary_side_effects[this.operator] + || this.expression.has_side_effects(compressor); + }); + def(AST_VarDef, function() { + return this.value; + }); + })(function(node, func) { + node.DEFMETHOD("has_side_effects", func); + }); + + // determine if expression may throw + (function(def) { + def(AST_Node, return_true); + + def(AST_Constant, return_false); + def(AST_EmptyStatement, return_false); + def(AST_Lambda, return_false); + def(AST_ObjectIdentity, return_false); + def(AST_SymbolDeclaration, return_false); + + function any(list, compressor) { + for (var i = list.length; --i >= 0;) + if (list[i].may_throw(compressor)) + return true; + return false; + } + + function call_may_throw(exp, compressor) { + if (exp.may_throw(compressor)) return true; + if (exp instanceof AST_SymbolRef) exp = exp.fixed_value(); + if (!(exp instanceof AST_Lambda)) return true; + if (any(exp.argnames, compressor)) return true; + if (any(exp.body, compressor)) return true; + return is_arrow(exp) && exp.value && exp.value.may_throw(compressor); + } + + def(AST_Array, function(compressor) { + return any(this.elements, compressor); + }); + def(AST_Assign, function(compressor) { + if (this.right.may_throw(compressor)) return true; + if (!compressor.has_directive("use strict") + && this.operator == "=" + && this.left instanceof AST_SymbolRef) { + return false; + } + return this.left.may_throw(compressor); + }); + def(AST_Await, function(compressor) { + return this.expression.may_throw(compressor); + }); + def(AST_Binary, function(compressor) { + return this.left.may_throw(compressor) + || this.right.may_throw(compressor) + || !can_drop_op(this.operator, this.right, compressor); + }); + def(AST_Block, function(compressor) { + return any(this.body, compressor); + }); + def(AST_Call, function(compressor) { + if (any(this.args, compressor)) return true; + if (this.is_expr_pure(compressor)) return false; + this.may_throw = return_true; + var ret = call_may_throw(this.expression, compressor); + delete this.may_throw; + return ret; + }); + def(AST_Case, function(compressor) { + return this.expression.may_throw(compressor) + || any(this.body, compressor); + }); + def(AST_Conditional, function(compressor) { + return this.condition.may_throw(compressor) + || this.consequent.may_throw(compressor) + || this.alternative.may_throw(compressor); + }); + def(AST_DefaultValue, function(compressor) { + return this.name.may_throw(compressor) + || this.value && this.value.may_throw(compressor); + }); + def(AST_Definitions, function(compressor) { + return any(this.definitions, compressor); + }); + def(AST_Dot, function(compressor) { + return !this.optional && this.expression.may_throw_on_access(compressor) + || this.expression.may_throw(compressor); + }); + def(AST_ForEnumeration, function(compressor) { + if (this.init.may_throw(compressor)) return true; + var obj = this.object; + if (obj.may_throw(compressor)) return true; + obj = obj.tail_node(); + if (!(obj instanceof AST_Array || obj.is_string(compressor))) return true; + return this.body.may_throw(compressor); + }); + def(AST_If, function(compressor) { + return this.condition.may_throw(compressor) + || this.body && this.body.may_throw(compressor) + || this.alternative && this.alternative.may_throw(compressor); + }); + def(AST_LabeledStatement, function(compressor) { + return this.body.may_throw(compressor); + }); + def(AST_Object, function(compressor) { + return any(this.properties, compressor); + }); + def(AST_ObjectProperty, function(compressor) { + return this.value.may_throw(compressor) + || this.key instanceof AST_Node && this.key.may_throw(compressor); + }); + def(AST_Return, function(compressor) { + return this.value && this.value.may_throw(compressor); + }); + def(AST_Sequence, function(compressor) { + return any(this.expressions, compressor); + }); + def(AST_SimpleStatement, function(compressor) { + return this.body.may_throw(compressor); + }); + def(AST_Sub, function(compressor) { + return !this.optional && this.expression.may_throw_on_access(compressor) + || this.expression.may_throw(compressor) + || this.property.may_throw(compressor); + }); + def(AST_Switch, function(compressor) { + return this.expression.may_throw(compressor) + || any(this.body, compressor); + }); + def(AST_SymbolRef, function(compressor) { + return !this.is_declared(compressor) || !can_drop_symbol(this, compressor); + }); + def(AST_Template, function(compressor) { + if (any(this.expressions, compressor)) return true; + if (this.is_expr_pure(compressor)) return false; + if (!this.tag) return false; + this.may_throw = return_true; + var ret = call_may_throw(this.tag, compressor); + delete this.may_throw; + return ret; + }); + def(AST_Try, function(compressor) { + return (this.bcatch ? this.bcatch.may_throw(compressor) : any(this.body, compressor)) + || this.bfinally && this.bfinally.may_throw(compressor); + }); + def(AST_Unary, function(compressor) { + return this.expression.may_throw(compressor) + && !(this.operator == "typeof" && this.expression instanceof AST_SymbolRef); + }); + def(AST_VarDef, function(compressor) { + return this.name.may_throw(compressor) + || this.value && this.value.may_throw(compressor); + }); + })(function(node, func) { + node.DEFMETHOD("may_throw", func); + }); + + // determine if expression is constant + (function(def) { + function all_constant(list, scope) { + for (var i = list.length; --i >= 0;) + if (!list[i].is_constant_expression(scope)) + return false; + return true; + } + def(AST_Node, return_false); + def(AST_Array, function(scope) { + return all_constant(this.elements, scope); + }); + def(AST_Binary, function(scope) { + return this.left.is_constant_expression(scope) + && this.right.is_constant_expression(scope) + && can_drop_op(this.operator, this.right); + }); + def(AST_Class, function(scope) { + var base = this.extends; + if (base && !safe_for_extends(base)) return false; + return all_constant(this.properties, scope); + }); + def(AST_ClassProperty, function(scope) { + return typeof this.key == "string" && (!this.value || this.value.is_constant_expression(scope)); + }); + def(AST_Constant, return_true); + def(AST_Lambda, function(scope) { + var self = this; + var result = true; + var scopes = []; + self.walk(new TreeWalker(function(node, descend) { + if (!result) return true; + if (node instanceof AST_BlockScope) { + if (node === self) return; + scopes.push(node); + descend(); + scopes.pop(); + return true; + } + if (node instanceof AST_SymbolRef) { + if (self.inlined || node.redef || node.in_arg) { + result = false; + return true; + } + if (self.variables.has(node.name)) return true; + var def = node.definition(); + if (member(def.scope, scopes)) return true; + if (scope && !def.redefined()) { + var scope_def = scope.find_variable(node.name); + if (scope_def ? scope_def === def : def.undeclared) { + result = "f"; + return true; + } + } + result = false; + return true; + } + if (node instanceof AST_ObjectIdentity) { + if (is_arrow(self) && all(scopes, function(s) { + return !(s instanceof AST_Scope) || is_arrow(s); + })) result = false; + return true; + } + })); + return result; + }); + def(AST_Object, function(scope) { + return all_constant(this.properties, scope); + }); + def(AST_ObjectProperty, function(scope) { + return typeof this.key == "string" && this.value.is_constant_expression(scope); + }); + def(AST_Unary, function(scope) { + return this.expression.is_constant_expression(scope); + }); + })(function(node, func) { + node.DEFMETHOD("is_constant_expression", func); + }); + + // tell me if a statement aborts + function aborts(thing) { + return thing && thing.aborts(); + } + (function(def) { + def(AST_Statement, return_null); + def(AST_Jump, return_this); + function block_aborts() { + var n = this.body.length; + return n > 0 && aborts(this.body[n - 1]); + } + def(AST_BlockStatement, block_aborts); + def(AST_SwitchBranch, block_aborts); + def(AST_If, function() { + return this.alternative && aborts(this.body) && aborts(this.alternative) && this; + }); + })(function(node, func) { + node.DEFMETHOD("aborts", func); + }); + + /* -----[ optimizers ]----- */ + + var directives = makePredicate(["use asm", "use strict"]); + OPT(AST_Directive, function(self, compressor) { + if (compressor.option("directives") + && (!directives[self.value] || compressor.has_directive(self.value) !== self)) { + return make_node(AST_EmptyStatement, self); + } + return self; + }); + + OPT(AST_Debugger, function(self, compressor) { + if (compressor.option("drop_debugger")) + return make_node(AST_EmptyStatement, self); + return self; + }); + + OPT(AST_LabeledStatement, function(self, compressor) { + if (self.body instanceof AST_If || self.body instanceof AST_Break) { + var body = tighten_body([ self.body ], compressor); + switch (body.length) { + case 0: + self.body = make_node(AST_EmptyStatement, self); + break; + case 1: + self.body = body[0]; + break; + default: + self.body = make_node(AST_BlockStatement, self, { body: body }); + break; + } + } + return compressor.option("unused") && self.label.references.length == 0 ? self.body : self; + }); + + OPT(AST_LoopControl, function(self, compressor) { + if (!compressor.option("dead_code")) return self; + var label = self.label; + if (label) { + var lct = compressor.loopcontrol_target(self); + self.label = null; + if (compressor.loopcontrol_target(self) === lct) { + remove(label.thedef.references, self); + } else { + self.label = label; + } + } + return self; + }); + + OPT(AST_Block, function(self, compressor) { + self.body = tighten_body(self.body, compressor); + return self; + }); + + function trim_block(node, parent, in_list) { + switch (node.body.length) { + case 0: + return in_list ? List.skip : make_node(AST_EmptyStatement, node); + case 1: + var stat = node.body[0]; + if (!safe_to_trim(stat)) return node; + if (parent instanceof AST_IterationStatement && stat instanceof AST_LambdaDefinition) return node; + return stat; + } + return node; + } + + OPT(AST_BlockStatement, function(self, compressor) { + self.body = tighten_body(self.body, compressor); + return trim_block(self, compressor.parent()); + }); + + function drop_rest_farg(fn, compressor) { + if (!compressor.option("rests")) return; + if (fn.uses_arguments) return; + if (!(fn.rest instanceof AST_DestructuredArray)) return; + if (!compressor.drop_fargs(fn, compressor.parent())) return; + fn.argnames = fn.argnames.concat(fn.rest.elements); + fn.rest = fn.rest.rest; + } + + OPT(AST_Lambda, function(self, compressor) { + drop_rest_farg(self, compressor); + self.body = tighten_body(self.body, compressor); + return self; + }); + + function opt_arrow(self, compressor) { + if (!compressor.option("arrows")) return self; + drop_rest_farg(self, compressor); + if (self.value) self.body = [ self.first_statement() ]; + var body = tighten_body(self.body, compressor); + switch (body.length) { + case 1: + var stat = body[0]; + if (stat instanceof AST_Return) { + self.body.length = 0; + self.value = stat.value; + break; + } + default: + self.body = body; + self.value = null; + break; + } + return self; + } + OPT(AST_Arrow, opt_arrow); + OPT(AST_AsyncArrow, opt_arrow); + + OPT(AST_Function, function(self, compressor) { + drop_rest_farg(self, compressor); + self.body = tighten_body(self.body, compressor); + var parent = compressor.parent(); + if (compressor.option("inline")) for (var i = 0; i < self.body.length; i++) { + var stat = self.body[i]; + if (stat instanceof AST_Directive) continue; + if (stat instanceof AST_Return) { + if (i != self.body.length - 1) break; + var call = stat.value; + if (!call || call.TYPE != "Call") break; + if (call.is_expr_pure(compressor)) break; + var exp = call.expression, fn; + if (!(exp instanceof AST_SymbolRef)) { + fn = exp; + } else if (self.name && self.name.definition() === exp.definition()) { + break; + } else { + fn = exp.fixed_value(); + } + if (!(fn instanceof AST_Defun || fn instanceof AST_Function)) break; + if (fn.rest) break; + if (fn.uses_arguments) break; + if (fn === exp) { + if (fn.parent_scope !== self) break; + if (!all(fn.enclosed, function(def) { + return def.scope !== self; + })) break; + } + if ((fn !== exp || fn.name) + && (parent instanceof AST_ClassMethod || parent instanceof AST_ObjectMethod) + && parent.value === compressor.self()) break; + if (fn.contains_this()) break; + var len = fn.argnames.length; + if (len > 0 && compressor.option("inline") < 2) break; + if (len > self.argnames.length) break; + if (!all(self.argnames, function(argname) { + return argname instanceof AST_SymbolFunarg; + })) break; + if (!all(call.args, function(arg) { + return !(arg instanceof AST_Spread); + })) break; + for (var j = 0; j < len; j++) { + var arg = call.args[j]; + if (!(arg instanceof AST_SymbolRef)) break; + if (arg.definition() !== self.argnames[j].definition()) break; + } + if (j < len) break; + for (; j < call.args.length; j++) { + if (call.args[j].has_side_effects(compressor)) break; + } + if (j < call.args.length) break; + if (len < self.argnames.length && !compressor.drop_fargs(self, parent)) { + if (!compressor.drop_fargs(fn, call)) break; + do { + fn.argnames.push(fn.make_var(AST_SymbolFunarg, fn, "argument_" + len)); + } while (++len < self.argnames.length); + } + return exp; + } + break; + } + return self; + }); + + var NO_MERGE = makePredicate("arguments await yield"); + AST_Scope.DEFMETHOD("merge_variables", function(compressor) { + if (!compressor.option("merge_vars")) return; + var in_arg = [], in_try, root, segment = {}, self = this; + var first = [], last = [], index = 0; + var declarations = new Dictionary(); + var references = Object.create(null); + var prev = Object.create(null); + var tw = new TreeWalker(function(node, descend) { + if (node instanceof AST_Assign) { + var lhs = node.left; + var rhs = node.right; + if (lhs instanceof AST_Destructured) { + rhs.walk(tw); + walk_destructured(AST_SymbolRef, mark, lhs); + return true; + } + if (lazy_op[node.operator.slice(0, -1)]) { + lhs.walk(tw); + push(); + rhs.walk(tw); + if (lhs instanceof AST_SymbolRef) mark(lhs); + pop(); + return true; + } + if (lhs instanceof AST_SymbolRef) { + if (node.operator != "=") mark(lhs, true); + rhs.walk(tw); + mark(lhs); + return true; + } + return; + } + if (node instanceof AST_Binary) { + if (!lazy_op[node.operator]) return; + walk_cond(node); + return true; + } + if (node instanceof AST_Break) { + var target = tw.loopcontrol_target(node); + if (!(target instanceof AST_IterationStatement)) insert(target); + return true; + } + if (node instanceof AST_Call) { + var exp = node.expression; + if (exp instanceof AST_LambdaExpression) { + node.args.forEach(function(arg) { + arg.walk(tw); + }); + exp.walk(tw); + } else { + descend(); + mark_expression(exp); + } + return true; + } + if (node instanceof AST_Class) { + if (node.name) node.name.walk(tw); + if (node.extends) node.extends.walk(tw); + node.properties.filter(function(prop) { + if (prop.key instanceof AST_Node) prop.key.walk(tw); + return prop.value; + }).forEach(function(prop) { + if (prop.static) { + prop.value.walk(tw); + } else { + push(); + segment.block = node; + prop.value.walk(tw); + pop(); + } + }); + return true; + } + if (node instanceof AST_Conditional) { + walk_cond(node.condition, node.consequent, node.alternative); + return true; + } + if (node instanceof AST_Continue) { + var target = tw.loopcontrol_target(node); + if (target instanceof AST_Do) insert(target); + return true; + } + if (node instanceof AST_Do) { + push(); + segment.block = node; + segment.loop = true; + var save = segment; + node.body.walk(tw); + if (segment.inserted === node) segment = save; + node.condition.walk(tw); + pop(); + return true; + } + if (node instanceof AST_For) { + if (node.init) node.init.walk(tw); + push(); + segment.block = node; + segment.loop = true; + if (node.condition) node.condition.walk(tw); + node.body.walk(tw); + if (node.step) node.step.walk(tw); + pop(); + return true; + } + if (node instanceof AST_ForEnumeration) { + node.object.walk(tw); + push(); + segment.block = node; + segment.loop = true; + node.init.walk(tw); + node.body.walk(tw); + pop(); + return true; + } + if (node instanceof AST_If) { + walk_cond(node.condition, node.body, node.alternative); + return true; + } + if (node instanceof AST_LabeledStatement) { + push(); + segment.block = node; + var save = segment; + node.body.walk(tw); + if (segment.inserted === node) segment = save; + pop(); + return true; + } + if (node instanceof AST_Scope) { + push(); + segment.block = node; + if (node === self) root = segment; + if (node instanceof AST_Lambda) { + if (node.name) references[node.name.definition().id] = false; + var marker = node.uses_arguments && !tw.has_directive("use strict") ? function(node) { + references[node.definition().id] = false; + } : function(node) { + mark(node); + }; + in_arg.push(node); + node.argnames.forEach(function(argname) { + walk_destructured(AST_SymbolFunarg, marker, argname); + }); + if (node.rest) walk_destructured(AST_SymbolFunarg, marker, node.rest); + in_arg.pop(); + } + walk_lambda(node, tw); + pop(); + return true; + } + if (node instanceof AST_Sub) { + var exp = node.expression; + if (node.optional) { + exp.walk(tw); + push(); + node.property.walk(tw); + pop(); + } else { + descend(); + } + mark_expression(exp); + return true; + } + if (node instanceof AST_Switch) { + node.expression.walk(tw); + var save = segment; + node.body.forEach(function(branch) { + if (branch instanceof AST_Default) return; + branch.expression.walk(tw); + if (save === segment) push(); + }); + segment = save; + node.body.forEach(function(branch) { + push(); + segment.block = node; + var save = segment; + walk_body(branch, tw); + if (segment.inserted === node) segment = save; + pop(); + }); + return true; + } + if (node instanceof AST_SymbolConst || node instanceof AST_SymbolLet) { + references[node.definition().id] = false; + return true; + } + if (node instanceof AST_SymbolRef) { + mark(node, true); + return true; + } + if (node instanceof AST_Try) { + var save_try = in_try; + in_try = node; + walk_body(node, tw); + if (node.bcatch) { + if (node.bcatch.argname) node.bcatch.argname.mark_symbol(function(node) { + if (node instanceof AST_SymbolCatch) { + var def = node.definition(); + references[def.id] = false; + if (def = def.redefined()) references[def.id] = false; + } + }, tw); + if (node.bfinally || (in_try = save_try)) { + walk_body(node.bcatch, tw); + } else { + push(); + walk_body(node.bcatch, tw); + pop(); + } + } + in_try = save_try; + if (node.bfinally) node.bfinally.walk(tw); + return true; + } + if (node instanceof AST_Unary) { + if (!UNARY_POSTFIX[node.operator]) return; + var sym = node.expression; + if (!(sym instanceof AST_SymbolRef)) return; + mark(sym, true); + return true; + } + if (node instanceof AST_VarDef) { + var assigned = node.value; + if (assigned) { + assigned.walk(tw); + } else { + assigned = segment.block instanceof AST_ForEnumeration && segment.block.init === tw.parent(); + } + walk_destructured(AST_SymbolDeclaration, assigned ? function(node) { + if (node instanceof AST_SymbolVar) { + mark(node); + } else { + node.walk(tw); + } + } : function(node) { + if (node instanceof AST_SymbolVar) { + var id = node.definition().id; + var refs = references[id]; + if (refs) { + refs.push(node); + } else if (!(id in references)) { + declarations.add(id, node); + } + } else { + node.walk(tw); + } + }, node.name); + return true; + } + if (node instanceof AST_While) { + push(); + segment.block = node; + segment.loop = true; + descend(); + pop(); + return true; + } + + function mark_expression(exp) { + if (!compressor.option("ie")) return; + var sym = root_expr(exp); + if (sym instanceof AST_SymbolRef) sym.walk(tw); + } + + function walk_cond(condition, consequent, alternative) { + var save = segment; + var segments = [ save, save ]; + if (condition instanceof AST_Binary) switch (condition.operator) { + case "&&": + segments[0] = walk_cond(condition.left, condition.right)[0]; + break; + case "||": + case "??": + segments[1] = walk_cond(condition.left, null, condition.right)[1]; + break; + default: + condition.walk(tw); + break; + } else if (condition instanceof AST_Conditional) { + walk_cond(condition.condition, condition.consequent, condition.alternative); + } else { + condition.walk(tw); + } + segment = segments[0]; + if (consequent) { + push(); + consequent.walk(tw); + } + segments[0] = segment; + segment = segments[1]; + if (alternative) { + push(); + alternative.walk(tw); + } + segments[1] = segment; + segment = save; + return segments; + } + }); + tw.directives = Object.create(compressor.directives); + self.walk(tw); + var changed = false; + var merged = Object.create(null); + while (first.length && last.length) { + var tail = last.shift(); + if (!tail) continue; + var def = tail.definition; + var tail_refs = references[def.id]; + if (!tail_refs) continue; + tail_refs = { end: tail_refs.end }; + while (def.id in merged) def = merged[def.id]; + tail_refs.start = references[def.id].start; + var skipped = []; + do { + var head = first.shift(); + if (tail.index > head.index) continue; + var prev_def = head.definition; + if (!(prev_def.id in prev)) continue; + var head_refs = references[prev_def.id]; + if (!head_refs) continue; + if (head_refs.start.block !== tail_refs.start.block + || !mergeable(head_refs, tail_refs) + || (head_refs.start.loop || !same_scope(def)) && !mergeable(tail_refs, head_refs) + || compressor.option("webkit") && is_funarg(def) !== is_funarg(prev_def) + || prev_def.const_redefs + || !all(head_refs.scopes, function(scope) { + return scope.find_variable(def.name) === def; + })) { + skipped.push(head); + continue; + } + head_refs.forEach(function(sym) { + sym.thedef = def; + sym.name = def.name; + if (sym instanceof AST_SymbolRef) { + def.references.push(sym); + prev_def.replaced++; + } else { + def.orig.push(sym); + prev_def.eliminated++; + } + }); + if (!prev_def.fixed) def.fixed = false; + merged[prev_def.id] = def; + changed = true; + break; + } while (first.length); + if (skipped.length) first = skipped.concat(first); + } + return changed; + + function push() { + segment = Object.create(segment); + } + + function pop() { + segment = Object.getPrototypeOf(segment); + } + + function walk_destructured(symbol_type, mark, lhs) { + var marker = new TreeWalker(function(node) { + if (node instanceof AST_Destructured) return; + if (node instanceof AST_DefaultValue) { + push(); + node.value.walk(tw); + pop(); + node.name.walk(marker); + } else if (node instanceof AST_DestructuredKeyVal) { + if (!(node.key instanceof AST_Node)) { + node.value.walk(marker); + } else if (node.value instanceof AST_PropAccess) { + push(); + segment.block = node; + node.key.walk(tw); + node.value.walk(marker); + pop(); + } else { + node.key.walk(tw); + node.value.walk(marker); + } + } else if (node instanceof symbol_type) { + mark(node); + } else { + node.walk(tw); + } + return true; + }); + lhs.walk(marker); + } + + function mark(sym, read) { + var def = sym.definition(), ldef; + if (read && !all(in_arg, function(fn) { + ldef = fn.variables.get(sym.name); + if (!ldef) return true; + if (!is_funarg(ldef)) return true; + return ldef !== def + && !def.undeclared + && fn.parent_scope.find_variable(sym.name) !== def; + })) return references[def.id] = references[ldef.id] = false; + var seg = segment; + if (in_try) { + push(); + seg = segment; + pop(); + } + if (def.id in references) { + var refs = references[def.id]; + if (!refs) return; + if (refs.start.block !== seg.block) return references[def.id] = false; + push_ref(sym); + refs.end = seg; + if (def.id in prev) { + last[prev[def.id]] = null; + } else if (!read) { + return; + } + } else if ((ldef = self.variables.get(def.name)) !== def) { + if (ldef && root === seg) references[ldef.id] = false; + return references[def.id] = false; + } else if (compressor.exposed(def) || NO_MERGE[sym.name]) { + return references[def.id] = false; + } else { + var refs = declarations.get(def.id) || []; + refs.scopes = []; + push_ref(sym); + references[def.id] = refs; + if (!read) { + refs.start = seg; + return first.push({ + index: index++, + definition: def, + }); + } + if (seg.block !== self) return references[def.id] = false; + refs.start = root; + } + prev[def.id] = last.length; + last.push({ + index: index++, + definition: def, + }); + + function push_ref(sym) { + refs.push(sym); + push_uniq(refs.scopes, sym.scope); + var scope = find_scope(tw); + if (scope !== sym.scope) push_uniq(refs.scopes, scope); + } + } + + function insert(target) { + var stack = []; + while (true) { + if (HOP(segment, "block")) { + var block = segment.block; + if (block instanceof AST_LabeledStatement) block = block.body; + if (block === target) break; + } + stack.push(segment); + pop(); + } + segment.inserted = segment.block; + push(); + while (stack.length) { + var seg = stack.pop(); + push(); + if (HOP(seg, "block")) segment.block = seg.block; + if (HOP(seg, "loop")) segment.loop = seg.loop; + } + } + + function must_visit(base, segment) { + return base === segment || base.isPrototypeOf(segment); + } + + function mergeable(head, tail) { + return must_visit(head.start, head.end) || must_visit(head.start, tail.start); + } + }); + + function fill_holes(orig, elements) { + for (var i = elements.length; --i >= 0;) { + if (!elements[i]) elements[i] = make_node(AST_Hole, orig); + } + } + + function to_class_expr(defcl, drop_name) { + var cl = make_node(AST_ClassExpression, defcl); + if (cl.name) cl.name = drop_name ? null : make_node(AST_SymbolClass, cl.name); + return cl; + } + + function to_func_expr(defun, drop_name) { + var ctor; + switch (defun.CTOR) { + case AST_AsyncDefun: + ctor = AST_AsyncFunction; + break; + case AST_AsyncGeneratorDefun: + ctor = AST_AsyncGeneratorFunction; + break; + case AST_Defun: + ctor = AST_Function; + break; + case AST_GeneratorDefun: + ctor = AST_GeneratorFunction; + break; + } + var fn = make_node(ctor, defun); + fn.name = drop_name ? null : make_node(AST_SymbolLambda, defun.name); + return fn; + } + + AST_Scope.DEFMETHOD("drop_unused", function(compressor) { + if (!compressor.option("unused")) return; + var self = this; + var drop_funcs = !(self instanceof AST_Toplevel) || compressor.toplevel.funcs; + var drop_vars = !(self instanceof AST_Toplevel) || compressor.toplevel.vars; + var assign_as_unused = /keep_assign/.test(compressor.option("unused")) ? return_false : function(node, props) { + var sym, nested = false; + if (node instanceof AST_Assign) { + if (node.write_only || node.operator == "=") sym = extract_reference(node.left, props); + } else if (node instanceof AST_Unary) { + if (node.write_only) sym = extract_reference(node.expression, props); + } + if (!(sym instanceof AST_SymbolRef)) return; + var def = sym.definition(); + if (export_defaults[def.id]) return; + if (compressor.exposed(def)) return; + if (!can_drop_symbol(sym, compressor, nested)) return; + return sym; + + function extract_reference(node, props) { + if (node instanceof AST_PropAccess) { + var expr = node.expression; + if (!expr.may_throw_on_access(compressor, true)) { + nested = true; + if (props && node instanceof AST_Sub) props.unshift(node.property); + return extract_reference(expr, props); + } + } else if (node instanceof AST_Assign && node.operator == "=") { + node.write_only = "p"; + var ref = extract_reference(node.right); + if (!props) return ref; + props.assign = node; + return ref instanceof AST_SymbolRef ? ref : node.left; + } + return node; + } + }; + var assign_in_use = Object.create(null); + var export_defaults = Object.create(null); + var find_variable = function(name) { + find_variable = compose(self, 0, noop); + return find_variable(name); + + function compose(child, level, find) { + var parent = compressor.parent(level); + if (!parent) return find; + var in_arg = parent instanceof AST_Lambda && member(child, parent.argnames); + return compose(parent, level + 1, in_arg ? function(name) { + var def = find(name); + if (def) return def; + def = parent.variables.get(name); + if (def) { + var sym = def.orig[0]; + if (sym instanceof AST_SymbolFunarg || sym instanceof AST_SymbolLambda) return def; + } + } : parent.variables ? function(name) { + return find(name) || parent.variables.get(name); + } : find); + } + }; + var for_ins = Object.create(null); + var in_use = []; + var in_use_ids = Object.create(null); // avoid expensive linear scans of in_use + var lambda_ids = Object.create(null); + var value_read = Object.create(null); + var value_modified = Object.create(null); + var var_defs = Object.create(null); + if (self instanceof AST_Toplevel && compressor.top_retain) { + self.variables.each(function(def) { + if (compressor.top_retain(def) && !(def.id in in_use_ids)) { + AST_Node.info("Retaining variable {name}", def); + in_use_ids[def.id] = true; + in_use.push(def); + } + }); + } + var assignments = new Dictionary(); + var initializations = new Dictionary(); + // pass 1: find out which symbols are directly used in + // this scope (not in nested scopes). + var scope = this; + var tw = new TreeWalker(function(node, descend) { + if (node instanceof AST_Lambda && node.uses_arguments && !tw.has_directive("use strict")) { + node.each_argname(function(argname) { + var def = argname.definition(); + if (!(def.id in in_use_ids)) { + in_use_ids[def.id] = true; + in_use.push(def); + } + }); + } + if (node === self) return; + if (scope === self) { + if (node instanceof AST_DefClass) { + var def = node.name.definition(); + var drop = drop_funcs && !def.exported; + if (!drop && !(def.id in in_use_ids)) { + in_use_ids[def.id] = true; + in_use.push(def); + } + var used = tw.parent() instanceof AST_ExportDefault; + if (used) { + export_defaults[def.id] = true; + } else if (drop && !(def.id in lambda_ids)) { + lambda_ids[def.id] = 1; + } + if (node.extends) node.extends.walk(tw); + var values = []; + node.properties.forEach(function(prop) { + if (prop.key instanceof AST_Node) prop.key.walk(tw); + var value = prop.value; + if (!value) return; + if (is_static_field_or_init(prop)) { + if (!used && value.contains_this()) used = true; + walk_class_prop(value); + } else { + values.push(value); + } + }); + values.forEach(drop && used ? walk_class_prop : function(value) { + initializations.add(def.id, value); + }); + return true; + } + if (node instanceof AST_LambdaDefinition) { + var def = node.name.definition(); + var drop = drop_funcs && !def.exported; + if (!drop && !(def.id in in_use_ids)) { + in_use_ids[def.id] = true; + in_use.push(def); + } + initializations.add(def.id, node); + if (tw.parent() instanceof AST_ExportDefault) { + export_defaults[def.id] = true; + return scan_ref_scoped(node, descend, true); + } + if (drop && !(def.id in lambda_ids)) lambda_ids[def.id] = 1; + return true; + } + if (node instanceof AST_Definitions) { + node.definitions.forEach(function(defn) { + var value = defn.value; + var side_effects = value + && (defn.name instanceof AST_Destructured || value.has_side_effects(compressor)); + var shared = side_effects && value.tail_node().operator == "="; + defn.name.mark_symbol(function(name) { + if (!(name instanceof AST_SymbolDeclaration)) return; + var def = name.definition(); + var_defs[def.id] = (var_defs[def.id] || 0) + 1; + if (node instanceof AST_Var && def.orig[0] instanceof AST_SymbolCatch) { + var redef = def.redefined(); + if (redef) var_defs[redef.id] = (var_defs[redef.id] || 0) + 1; + } + if (!(def.id in in_use_ids) && (!drop_vars || def.exported + || (node instanceof AST_Const ? def.redefined() : def.const_redefs) + || !(node instanceof AST_Var || is_safe_lexical(def)))) { + in_use_ids[def.id] = true; + in_use.push(def); + } + if (value) { + if (!side_effects) { + initializations.add(def.id, value); + } else if (shared) { + verify_safe_usage(def, name, value_modified[def.id]); + } + assignments.add(def.id, defn); + } + unmark_lambda(def); + return true; + }, tw); + if (side_effects) value.walk(tw); + }); + return true; + } + if (node instanceof AST_SymbolFunarg) { + var def = node.definition(); + var_defs[def.id] = (var_defs[def.id] || 0) + 1; + assignments.add(def.id, node); + return true; + } + if (node instanceof AST_SymbolImport) { + var def = node.definition(); + if (!(def.id in in_use_ids) && (!drop_vars || !is_safe_lexical(def))) { + in_use_ids[def.id] = true; + in_use.push(def); + } + return true; + } + } + return scan_ref_scoped(node, descend, true); + + function walk_class_prop(value) { + var save_scope = scope; + scope = node; + value.walk(tw); + scope = save_scope; + } + }); + tw.directives = Object.create(compressor.directives); + self.walk(tw); + var drop_fn_name = compressor.option("keep_fnames") ? return_false : compressor.option("ie") ? function(def) { + return !compressor.exposed(def) && def.references.length == def.replaced; + } : function(def) { + if (!(def.id in in_use_ids)) return true; + if (def.orig.length - def.eliminated < 2) return false; + // function argument will always overshadow its name + if (def.orig[1] instanceof AST_SymbolFunarg) return true; + // retain if referenced within destructured object of argument + return all(def.references, function(ref) { + return !ref.in_arg; + }); + }; + if (compressor.option("ie")) initializations.each(function(init, id) { + if (id in in_use_ids) return; + init.forEach(function(init) { + init.walk(new TreeWalker(function(node) { + if (node instanceof AST_Function && node.name && !drop_fn_name(node.name.definition())) { + node.walk(tw); + return true; + } + if (node instanceof AST_Scope) return true; + })); + }); + }); + // pass 2: for every used symbol we need to walk its + // initialization code to figure out if it uses other + // symbols (that may not be in_use). + tw = new TreeWalker(scan_ref_scoped); + for (var i = 0; i < in_use.length; i++) { + var init = initializations.get(in_use[i].id); + if (init) init.forEach(function(init) { + init.walk(tw); + }); + } + Object.keys(assign_in_use).forEach(function(id) { + var assigns = assign_in_use[id]; + if (!assigns) { + delete assign_in_use[id]; + return; + } + assigns = assigns.reduce(function(in_use, assigns) { + assigns.forEach(function(assign) { + push_uniq(in_use, assign); + }); + return in_use; + }, []); + var in_use = (assignments.get(id) || []).filter(function(node) { + return find_if(node instanceof AST_Unary ? function(assign) { + return assign === node; + } : function(assign) { + if (assign === node) return true; + if (assign instanceof AST_Unary) return false; + return get_rvalue(assign) === get_rvalue(node); + }, assigns); + }); + if (assigns.length == in_use.length) { + assign_in_use[id] = in_use; + } else { + delete assign_in_use[id]; + } + }); + // pass 3: we should drop declarations not in_use + var calls_to_drop_args = []; + var fns_with_marked_args = []; + var trimmer = new TreeTransformer(function(node) { + if (node instanceof AST_DefaultValue) return trim_default(trimmer, node); + if (node instanceof AST_Destructured && node.rest) node.rest = node.rest.transform(trimmer); + if (node instanceof AST_DestructuredArray) { + var trim = !node.rest; + for (var i = node.elements.length; --i >= 0;) { + var element = node.elements[i].transform(trimmer); + if (element) { + node.elements[i] = element; + trim = false; + } else if (trim) { + node.elements.pop(); + } else { + node.elements[i] = make_node(AST_Hole, node.elements[i]); + } + } + return node; + } + if (node instanceof AST_DestructuredObject) { + var properties = []; + node.properties.forEach(function(prop) { + var retain = false; + if (prop.key instanceof AST_Node) { + prop.key = prop.key.transform(tt); + retain = prop.key.has_side_effects(compressor); + } + if ((retain || node.rest) && is_decl(prop.value)) { + prop.value = prop.value.transform(tt); + properties.push(prop); + } else { + var value = prop.value.transform(trimmer); + if (!value && node.rest) { + if (prop.value instanceof AST_DestructuredArray) { + value = make_node(AST_DestructuredArray, prop.value, { elements: [] }); + } else { + value = make_node(AST_DestructuredObject, prop.value, { properties: [] }); + } + } + if (value) { + prop.value = value; + properties.push(prop); + } + } + }); + node.properties = properties; + return node; + } + if (node instanceof AST_SymbolDeclaration) return trim_decl(node); + }); + var tt = new TreeTransformer(function(node, descend, in_list) { + var parent = tt.parent(); + if (drop_vars) { + var props = [], sym = assign_as_unused(node, props); + if (sym) { + var value; + if (can_drop_lhs(sym, node)) { + if (node instanceof AST_Assign) { + value = get_rhs(node); + if (node.write_only === true) value = value.drop_side_effect_free(compressor); + } + if (!value) value = make_node(AST_Number, node, { value: 0 }); + } + if (value) { + if (props.assign) { + var assign = props.assign.drop_side_effect_free(compressor); + if (assign) { + assign.write_only = true; + props.unshift(assign); + } + } + if (!(parent instanceof AST_Sequence) + || parent.tail_node() === node + || value.has_side_effects(compressor)) { + props.push(value); + } + switch (props.length) { + case 0: + return List.skip; + case 1: + return maintain_this_binding(parent, node, props[0].transform(tt)); + default: + return make_sequence(node, props.map(function(prop) { + return prop.transform(tt); + })); + } + } + } else if (node instanceof AST_UnaryPostfix + && node.expression instanceof AST_SymbolRef + && indexOf_assign(node.expression.definition(), node) < 0) { + return make_node(AST_UnaryPrefix, node, { + operator: "+", + expression: node.expression, + }); + } + } + if (node instanceof AST_Binary && node.operator == "instanceof") { + var sym = node.right; + if (!(sym instanceof AST_SymbolRef)) return; + if (sym.definition().id in in_use_ids) return; + var lhs = node.left.drop_side_effect_free(compressor); + var value = make_node(AST_False, node).optimize(compressor); + return lhs ? make_sequence(node, [ lhs, value ]) : value; + } + if (node instanceof AST_Call) { + calls_to_drop_args.push(node); + node.args = node.args.map(function(arg) { + return arg.transform(tt); + }); + node.expression = node.expression.transform(tt); + return node; + } + if (scope !== self) return; + if (drop_funcs && node !== self && node instanceof AST_DefClass) { + var def = node.name.definition(); + if (!(def.id in in_use_ids)) { + log(node.name, "Dropping unused class {name}"); + def.eliminated++; + descend(node, tt); + var trimmed = to_class_expr(node, true); + if (parent instanceof AST_ExportDefault) return trimmed; + trimmed = trimmed.drop_side_effect_free(compressor, true); + if (trimmed) return make_node(AST_SimpleStatement, node, { body: trimmed }); + return in_list ? List.skip : make_node(AST_EmptyStatement, node); + } + } + if (node instanceof AST_ClassExpression && node.name && drop_fn_name(node.name.definition())) { + node.name = null; + } + if (node instanceof AST_Lambda) { + if (drop_funcs && node !== self && node instanceof AST_LambdaDefinition) { + var def = node.name.definition(); + if (!(def.id in in_use_ids)) { + log(node.name, "Dropping unused function {name}"); + def.eliminated++; + if (parent instanceof AST_ExportDefault) { + descend_scope(); + return to_func_expr(node, true); + } + return in_list ? List.skip : make_node(AST_EmptyStatement, node); + } + } + descend_scope(); + if (node instanceof AST_LambdaExpression && node.name && drop_fn_name(node.name.definition())) { + node.name = null; + } + if (!(node instanceof AST_Accessor)) { + var args, spread, trim = compressor.drop_fargs(node, parent); + if (trim && parent instanceof AST_Call && parent.expression === node) { + args = parent.args; + for (spread = 0; spread < args.length; spread++) { + if (args[spread] instanceof AST_Spread) break; + } + } + var argnames = node.argnames; + var rest = node.rest; + var after = false, before = false; + if (rest) { + before = true; + if (!args || spread < argnames.length || rest instanceof AST_SymbolFunarg) { + rest = rest.transform(trimmer); + } else { + var trimmed = trim_destructured(rest, make_node(AST_Array, parent, { + elements: args.slice(argnames.length), + }), trim_decl, !node.uses_arguments, rest); + rest = trimmed.name; + args.length = argnames.length; + if (trimmed.value.elements.length) [].push.apply(args, trimmed.value.elements); + } + if (rest instanceof AST_Destructured && !rest.rest) { + if (rest instanceof AST_DestructuredArray) { + if (rest.elements.length == 0) rest = null; + } else if (rest.properties.length == 0) { + rest = null; + } + } + node.rest = rest; + if (rest) { + trim = false; + after = true; + } + } + var default_length = trim ? -1 : node.length(); + var trim_value = args && !node.uses_arguments && parent !== compressor.parent(); + for (var i = argnames.length; --i >= 0;) { + var sym = argnames[i]; + if (sym instanceof AST_SymbolFunarg) { + var def = sym.definition(); + if (def.id in in_use_ids) { + trim = false; + if (indexOf_assign(def, sym) < 0) sym.unused = null; + } else if (trim) { + log(sym, "Dropping unused function argument {name}"); + argnames.pop(); + def.eliminated++; + sym.unused = true; + } else { + sym.unused = true; + } + } else { + before = true; + var funarg; + if (!args || spread < i) { + funarg = sym.transform(trimmer); + } else { + var trimmed = trim_destructured(sym, args[i], trim_decl, trim_value, sym); + funarg = trimmed.name; + if (trimmed.value) args[i] = trimmed.value; + } + if (funarg) { + trim = false; + argnames[i] = funarg; + if (!after) after = !(funarg instanceof AST_SymbolFunarg); + } else if (trim) { + log_default(sym, "Dropping unused default argument {name}"); + argnames.pop(); + } else if (i > default_length) { + log_default(sym, "Dropping unused default argument assignment {name}"); + if (sym.name instanceof AST_SymbolFunarg) { + sym.name.unused = true; + } else { + after = true; + } + argnames[i] = sym.name; + } else { + log_default(sym, "Dropping unused default argument value {name}"); + argnames[i] = sym = sym.clone(); + sym.value = make_node(AST_Number, sym, { value: 0 }); + after = true; + } + } + } + if (before && !after && node.uses_arguments && !tt.has_directive("use strict")) { + node.rest = make_node(AST_DestructuredArray, node, { elements: [] }); + } + fns_with_marked_args.push(node); + } + return node; + } + if (node instanceof AST_Catch && node.argname instanceof AST_Destructured) { + node.argname.transform(trimmer); + } + if (node instanceof AST_Definitions && !(parent instanceof AST_ForEnumeration && parent.init === node)) { + // place uninitialized names at the start + var body = [], head = [], tail = []; + // for unused names whose initialization has + // side effects, we can cascade the init. code + // into the next one, or next statement. + var side_effects = []; + var duplicated = 0; + var is_var = node instanceof AST_Var; + node.definitions.forEach(function(def) { + if (def.value) def.value = def.value.transform(tt); + var value = def.value; + if (def.name instanceof AST_Destructured) { + var trimmed = trim_destructured(def.name, value, function(node) { + if (!drop_vars) return node; + if (node.definition().id in in_use_ids) return node; + if (is_catch(node)) return node; + if (is_var && !can_drop_symbol(node)) return node; + return null; + }, true); + if (trimmed.name) { + def = make_node(AST_VarDef, def, { + name: trimmed.name, + value: value = trimmed.value, + }); + flush(); + } else if (trimmed.value) { + side_effects.push(trimmed.value); + } + return; + } + var sym = def.name.definition(); + var drop_sym = is_var ? can_drop_symbol(def.name) : is_safe_lexical(sym); + if (!drop_sym || !drop_vars || sym.id in in_use_ids) { + var index; + if (value && ((index = indexOf_assign(sym, def)) < 0 || self_assign(value.tail_node()))) { + def = def.clone(); + value = value.drop_side_effect_free(compressor); + if (value) AST_Node.warn("Side effects in definition of variable {name} [{start}]", def.name); + if (node instanceof AST_Const) { + def.value = value || make_node(AST_Number, def, { value: 0 }); + } else { + def.value = null; + if (value) side_effects.push(value); + } + value = null; + if (index >= 0) assign_in_use[sym.id][index] = def; + } + var old_def, fn; + if (!value && !(node instanceof AST_Let)) { + if (parent instanceof AST_ExportDeclaration) { + flush(); + } else if (drop_sym && var_defs[sym.id] > 1) { + AST_Node.info("Dropping declaration of variable {name} [{start}]", def.name); + var_defs[sym.id]--; + sym.eliminated++; + } else { + head.push(def); + } + } else if (compressor.option("functions") + && !compressor.option("ie") + && drop_sym + && value + && var_defs[sym.id] == 1 + && sym.assignments == 0 + && (fn = value.tail_node()) instanceof AST_LambdaExpression + && !is_arguments(sym) + && !is_arrow(fn) + && assigned_once(fn, sym.references) + && can_declare_defun(fn) + && (old_def = rename_def(fn, def.name.name)) !== false) { + AST_Node.warn("Declaring {name} as function [{start}]", def.name); + var ctor; + switch (fn.CTOR) { + case AST_AsyncFunction: + ctor = AST_AsyncDefun; + break; + case AST_AsyncGeneratorFunction: + ctor = AST_AsyncGeneratorDefun; + break; + case AST_Function: + ctor = AST_Defun; + break; + case AST_GeneratorFunction: + ctor = AST_GeneratorDefun; + break; + } + var defun = make_node(ctor, fn); + defun.name = make_node(AST_SymbolDefun, def.name); + var name_def = def.name.scope.resolve().def_function(defun.name); + if (old_def) old_def.forEach(function(node) { + node.name = name_def.name; + node.thedef = name_def; + node.reference(); + }); + body.push(defun); + if (value !== fn) [].push.apply(side_effects, value.expressions.slice(0, -1)); + } else { + if (drop_sym + && var_defs[sym.id] > 1 + && !(parent instanceof AST_ExportDeclaration) + && sym.orig.indexOf(def.name) > sym.eliminated) { + var_defs[sym.id]--; + duplicated++; + } + flush(); + } + } else if (is_catch(def.name)) { + value = value && value.drop_side_effect_free(compressor); + if (value) side_effects.push(value); + if (var_defs[sym.id] > 1) { + AST_Node.warn("Dropping duplicated declaration of variable {name} [{start}]", def.name); + var_defs[sym.id]--; + sym.eliminated++; + } else { + def.value = null; + head.push(def); + } + } else { + value = value && value.drop_side_effect_free(compressor); + if (value) { + AST_Node.warn("Side effects in initialization of unused variable {name} [{start}]", def.name); + side_effects.push(value); + } else { + log(def.name, "Dropping unused variable {name}"); + } + sym.eliminated++; + } + + function self_assign(ref) { + return ref instanceof AST_SymbolRef && ref.definition() === sym; + } + + function assigned_once(fn, refs) { + if (refs.length == 0) return fn === def.name.fixed_value(); + return all(refs, function(ref) { + return fn === ref.fixed_value(); + }); + } + + function can_declare_defun(fn) { + if (!is_var || compressor.has_directive("use strict") || !(fn instanceof AST_Function)) { + return parent instanceof AST_Scope; + } + return parent instanceof AST_Block + || parent instanceof AST_For && parent.init === node + || parent instanceof AST_If; + } + + function rename_def(fn, name) { + if (!fn.name) return null; + var def = fn.name.definition(); + if (def.orig.length > 1) return null; + if (def.assignments > 0) return false; + if (def.name == name) return def; + if (compressor.option("keep_fnames")) return false; + var forbidden; + switch (name) { + case "await": + forbidden = is_async; + break; + case "yield": + forbidden = is_generator; + break; + } + return all(def.references, function(ref) { + var scope = ref.scope; + if (scope.find_variable(name) !== sym) return false; + if (forbidden) do { + scope = scope.resolve(); + if (forbidden(scope)) return false; + } while (scope !== fn && (scope = scope.parent_scope)); + return true; + }) && def; + } + + function is_catch(node) { + var sym = node.definition(); + return sym.orig[0] instanceof AST_SymbolCatch && sym.scope.resolve() === node.scope.resolve(); + } + + function flush() { + if (side_effects.length > 0) { + if (tail.length == 0) { + body.push(make_node(AST_SimpleStatement, node, { + body: make_sequence(node, side_effects), + })); + } else if (value) { + side_effects.push(value); + def.value = make_sequence(value, side_effects); + } else { + def.value = make_node(AST_UnaryPrefix, def, { + operator: "void", + expression: make_sequence(def, side_effects), + }); + } + side_effects = []; + } + tail.push(def); + } + }); + switch (head.length) { + case 0: + if (tail.length == 0) break; + if (tail.length == duplicated) { + [].unshift.apply(side_effects, tail.map(function(def) { + AST_Node.info("Dropping duplicated definition of variable {name} [{start}]", def.name); + var sym = def.name.definition(); + var ref = make_node(AST_SymbolRef, def.name); + sym.references.push(ref); + var assign = make_node(AST_Assign, def, { + operator: "=", + left: ref, + right: def.value, + }); + var index = indexOf_assign(sym, def); + if (index >= 0) assign_in_use[sym.id][index] = assign; + sym.assignments++; + sym.eliminated++; + return assign; + })); + break; + } + case 1: + if (tail.length == 0) { + var id = head[0].name.definition().id; + if (id in for_ins) { + node.definitions = head; + for_ins[id].init = node; + break; + } + } + default: + var seq; + if (tail.length > 0 && (seq = tail[0].value) instanceof AST_Sequence) { + tail[0].value = seq.tail_node(); + body.push(make_node(AST_SimpleStatement, node, { + body: make_sequence(seq, seq.expressions.slice(0, -1)), + })); + } + node.definitions = head.concat(tail); + body.push(node); + } + if (side_effects.length > 0) { + body.push(make_node(AST_SimpleStatement, node, { body: make_sequence(node, side_effects) })); + } + return insert_statements(body, node, in_list); + } + if (node instanceof AST_Assign) { + descend(node, tt); + if (!(node.left instanceof AST_Destructured)) return node; + var trimmed = trim_destructured(node.left, node.right, function(node) { + return node; + }, node.write_only === true); + if (trimmed.name) return make_node(AST_Assign, node, { + operator: node.operator, + left: trimmed.name, + right: trimmed.value, + }); + if (trimmed.value) return trimmed.value; + if (parent instanceof AST_Sequence && parent.tail_node() !== node) return List.skip; + return make_node(AST_Number, node, { value: 0 }); + } + if (node instanceof AST_LabeledStatement && node.body instanceof AST_For) { + // Certain combination of unused name + side effect leads to invalid AST: + // https://github.com/mishoo/UglifyJS/issues/1830 + // We fix it at this stage by moving the label inwards, back to the `for`. + descend(node, tt); + if (node.body instanceof AST_BlockStatement) { + var block = node.body; + node.body = block.body.pop(); + block.body.push(node); + return in_list ? List.splice(block.body) : block; + } + return node; + } + if (node instanceof AST_Scope) { + descend_scope(); + return node; + } + if (node instanceof AST_SymbolImport) { + if (!compressor.option("imports") || node.definition().id in in_use_ids) return node; + return in_list ? List.skip : null; + } + + function descend_scope() { + var save_scope = scope; + scope = node; + descend(node, tt); + scope = save_scope; + } + }, function(node, in_list) { + if (node instanceof AST_BlockStatement) return trim_block(node, tt.parent(), in_list); + if (node instanceof AST_ExportDeclaration) { + var block = node.body; + if (!(block instanceof AST_BlockStatement)) return; + node.body = block.body.pop(); + block.body.push(node); + return in_list ? List.splice(block.body) : block; + } + if (node instanceof AST_For) return patch_for_init(node, in_list); + if (node instanceof AST_ForIn) { + if (!drop_vars || !compressor.option("loops")) return; + if (!is_empty(node.body)) return; + var sym = get_init_symbol(node); + if (!sym) return; + var def = sym.definition(); + if (def.id in in_use_ids) return; + log(sym, "Dropping unused loop variable {name}"); + if (for_ins[def.id] === node) delete for_ins[def.id]; + var body = []; + var value = node.object.drop_side_effect_free(compressor); + if (value) { + AST_Node.warn("Side effects in object of for-in loop [{start}]", value); + body.push(make_node(AST_SimpleStatement, node, { body: value })); + } + if (node.init instanceof AST_Definitions && def.orig[0] instanceof AST_SymbolCatch) { + body.push(node.init); + } + return insert_statements(body, node, in_list); + } + if (node instanceof AST_Import) { + if (node.properties && node.properties.length == 0) node.properties = null; + return node; + } + if (node instanceof AST_Sequence) { + if (node.expressions.length > 1) return; + return maintain_this_binding(tt.parent(), node, node.expressions[0]); + } + }); + tt.push(compressor.parent()); + tt.directives = Object.create(compressor.directives); + self.transform(tt); + if (self instanceof AST_Lambda + && self.body.length == 1 + && self.body[0] instanceof AST_Directive + && self.body[0].value == "use strict") { + self.body.length = 0; + } + calls_to_drop_args.forEach(function(call) { + drop_unused_call_args(call, compressor, fns_with_marked_args); + }); + + function log(sym, text) { + AST_Node[sym.definition().references.length > 0 ? "info" : "warn"](text + " [{start}]", sym); + } + + function log_default(node, text) { + if (node.name instanceof AST_SymbolFunarg) { + log(node.name, text); + } else { + AST_Node.info(text + " [{start}]", node); + } + } + + function get_rvalue(expr) { + return expr[expr instanceof AST_Assign ? "right" : "value"]; + } + + function insert_statements(body, orig, in_list) { + switch (body.length) { + case 0: + return in_list ? List.skip : make_node(AST_EmptyStatement, orig); + case 1: + return body[0]; + default: + return in_list ? List.splice(body) : make_node(AST_BlockStatement, orig, { body: body }); + } + } + + function track_assigns(def, node) { + if (def.scope.resolve() !== self) return false; + if (!def.fixed || !node.fixed) assign_in_use[def.id] = false; + return assign_in_use[def.id] !== false; + } + + function add_assigns(def, node) { + if (!assign_in_use[def.id]) assign_in_use[def.id] = []; + if (node.fixed.assigns) push_uniq(assign_in_use[def.id], node.fixed.assigns); + } + + function indexOf_assign(def, node) { + var nodes = assign_in_use[def.id]; + return nodes && nodes.indexOf(node); + } + + function unmark_lambda(def) { + if (lambda_ids[def.id] > 1 && !(def.id in in_use_ids)) { + in_use_ids[def.id] = true; + in_use.push(def); + } + lambda_ids[def.id] = 0; + } + + function verify_safe_usage(def, read, modified) { + if (def.id in in_use_ids) return; + if (read && modified) { + in_use_ids[def.id] = read; + in_use.push(def); + } else { + value_read[def.id] = read; + value_modified[def.id] = modified; + } + } + + function can_drop_lhs(sym, node) { + var def = sym.definition(); + var in_use = in_use_ids[def.id]; + if (!in_use) return true; + if (node[node instanceof AST_Assign ? "left" : "expression"] !== sym) return false; + return in_use === sym && def.references.length - def.replaced == 1 || indexOf_assign(def, node) < 0; + } + + function get_rhs(assign) { + var rhs = assign.right; + if (!assign.write_only) return rhs; + if (!(rhs instanceof AST_Binary && lazy_op[rhs.operator])) return rhs; + if (!(rhs.left instanceof AST_SymbolRef)) return rhs; + if (!(assign.left instanceof AST_SymbolRef)) return rhs; + var def = assign.left.definition(); + if (rhs.left.definition() !== def) return rhs; + if (rhs.right.has_side_effects(compressor)) return rhs; + if (track_assigns(def, rhs.left)) add_assigns(def, rhs.left); + return rhs.right; + } + + function get_init_symbol(for_in) { + var init = for_in.init; + if (init instanceof AST_Definitions) { + init = init.definitions[0].name; + return init instanceof AST_SymbolDeclaration && init; + } + while (init instanceof AST_PropAccess) init = init.expression.tail_node(); + if (init instanceof AST_SymbolRef) return init; + } + + function scan_ref_scoped(node, descend, init) { + if (node instanceof AST_Assign && node.left instanceof AST_SymbolRef) { + var def = node.left.definition(); + if (def.scope.resolve() === self) assignments.add(def.id, node); + } + if (node instanceof AST_SymbolRef && node.in_arg) var_defs[node.definition().id] = 0; + if (node instanceof AST_Unary && node.expression instanceof AST_SymbolRef) { + var def = node.expression.definition(); + if (def.scope.resolve() === self) assignments.add(def.id, node); + } + var props = [], sym = assign_as_unused(node, props); + if (sym) { + var node_def = sym.definition(); + if (node_def.scope.resolve() !== self && self.variables.get(sym.name) !== node_def) return; + if (is_arguments(node_def) && !all(self.argnames, function(argname) { + return !argname.match_symbol(function(node) { + if (node instanceof AST_SymbolFunarg) { + var def = node.definition(); + return def.references.length > def.replaced; + } + }, true); + })) return; + if (node.write_only === "p" && node.right.may_throw_on_access(compressor, true)) return; + var assign = props.assign; + if (assign) { + assign.write_only = true; + assign.walk(tw); + } + props.forEach(function(prop) { + prop.walk(tw); + }); + if (node instanceof AST_Assign) { + var right = get_rhs(node), shared = false; + if (init && node.write_only === true && !right.has_side_effects(compressor)) { + initializations.add(node_def.id, right); + } else { + right.walk(tw); + shared = right.tail_node().operator == "="; + } + if (node.left === sym) { + if (!node.write_only || shared) { + verify_safe_usage(node_def, sym, value_modified[node_def.id]); + } + } else { + var fixed = sym.fixed_value(); + if (!fixed || !fixed.is_constant()) { + verify_safe_usage(node_def, value_read[node_def.id], true); + } + } + } + if (track_assigns(node_def, sym) && is_lhs(sym, node) !== sym) add_assigns(node_def, sym); + unmark_lambda(node_def); + return true; + } + if (node instanceof AST_Binary) { + if (node.operator != "instanceof") return; + var sym = node.right; + if (!(sym instanceof AST_SymbolRef)) return; + var id = sym.definition().id; + if (!lambda_ids[id]) return; + node.left.walk(tw); + lambda_ids[id]++; + return true; + } + if (node instanceof AST_ForIn) { + if (node.init instanceof AST_SymbolRef && scope === self) { + var id = node.init.definition().id; + if (!(id in for_ins)) for_ins[id] = node; + } + if (!drop_vars || !compressor.option("loops")) return; + if (!is_empty(node.body)) return; + if (node.init.has_side_effects(compressor)) return; + var sym = get_init_symbol(node); + if (!sym) return; + var def = sym.definition(); + if (def.scope.resolve() !== self) { + var d = find_variable(sym.name); + if (d === def || d && d.redefined() === def) return; + } + node.object.walk(tw); + return true; + } + if (node instanceof AST_SymbolRef) { + var node_def = node.definition(); + if (!(node_def.id in in_use_ids)) { + in_use_ids[node_def.id] = true; + in_use.push(node_def); + } + if (cross_scope(node_def.scope, node.scope)) { + var redef = node_def.redefined(); + if (redef && !(redef.id in in_use_ids)) { + in_use_ids[redef.id] = true; + in_use.push(redef); + } + } + if (track_assigns(node_def, node)) add_assigns(node_def, node); + return true; + } + if (node instanceof AST_Scope) { + var save_scope = scope; + scope = node; + descend(); + scope = save_scope; + return true; + } + } + + function is_decl(node) { + return (node instanceof AST_DefaultValue ? node.name : node) instanceof AST_SymbolDeclaration; + } + + function trim_decl(node) { + if (node.definition().id in in_use_ids) return node; + if (node instanceof AST_SymbolFunarg) node.unused = true; + return null; + } + + function trim_default(trimmer, node) { + node.value = node.value.transform(tt); + var name = node.name.transform(trimmer); + if (!name) { + if (node.name instanceof AST_Destructured) return null; + var value = node.value.drop_side_effect_free(compressor); + if (!value) return null; + log(node.name, "Side effects in default value of unused variable {name}"); + node = node.clone(); + node.name.unused = null; + node.value = value; + } + return node; + } + + function trim_destructured(node, value, process, drop, root) { + var trimmer = new TreeTransformer(function(node) { + if (node instanceof AST_DefaultValue) { + if (!(compressor.option("default_values") && value && value.is_defined(compressor))) { + var save_drop = drop; + drop = false; + var trimmed = trim_default(trimmer, node); + drop = save_drop; + if (!trimmed && drop && value) value = value.drop_side_effect_free(compressor); + return trimmed; + } else if (node === root) { + root = node = node.name; + } else { + node = node.name; + } + } + if (node instanceof AST_DestructuredArray) { + var save_drop = drop; + var save_value = value; + if (value instanceof AST_SymbolRef) { + drop = false; + value = value.fixed_value(); + } + var native, values; + if (value instanceof AST_Array) { + native = true; + values = value.elements; + } else { + native = value && value.is_string(compressor); + values = false; + } + var elements = [], newValues = drop && [], pos = 0; + node.elements.forEach(function(element, index) { + value = values && values[index]; + if (value instanceof AST_Hole) { + value = null; + } else if (value instanceof AST_Spread) { + if (drop) { + newValues.length = pos; + fill_holes(save_value, newValues); + [].push.apply(newValues, values.slice(index)); + save_value.elements = newValues; + } + value = values = false; + } + element = element.transform(trimmer); + if (element) elements[pos] = element; + if (drop && value) newValues[pos] = value; + if (element || value || !drop || !values) pos++; + }); + value = values && make_node(AST_Array, save_value, { + elements: values.slice(node.elements.length), + }); + if (node.rest) { + var was_drop = drop; + drop = false; + node.rest = node.rest.transform(compressor.option("rests") ? trimmer : tt); + drop = was_drop; + if (node.rest) elements.length = pos; + } + if (drop) { + if (value && !node.rest) value = value.drop_side_effect_free(compressor); + if (value instanceof AST_Array) { + value = value.elements; + } else if (value instanceof AST_Sequence) { + value = value.expressions; + } else if (value) { + value = [ value ]; + } + if (value && value.length) { + newValues.length = pos; + [].push.apply(newValues, value); + } + } + value = save_value; + drop = save_drop; + if (values && newValues) { + fill_holes(value, newValues); + value = value.clone(); + value.elements = newValues; + } + if (!native) { + elements.length = node.elements.length; + } else if (!node.rest) switch (elements.length) { + case 0: + if (node === root) break; + if (drop) value = value.drop_side_effect_free(compressor); + return null; + case 1: + if (!drop) break; + if (node === root) break; + var sym = elements[0]; + if (sym.has_side_effects(compressor)) break; + if (value.has_side_effects(compressor) && sym.match_symbol(function(node) { + return node instanceof AST_PropAccess; + })) break; + value = make_node(AST_Sub, node, { + expression: value, + property: make_node(AST_Number, node, { value: 0 }), + }); + return sym; + } + fill_holes(node, elements); + node.elements = elements; + return node; + } + if (node instanceof AST_DestructuredObject) { + var save_drop = drop; + var save_value = value; + if (value instanceof AST_SymbolRef) { + drop = false; + value = value.fixed_value(); + } + var prop_keys, prop_map, values; + if (value instanceof AST_Object) { + prop_keys = []; + prop_map = new Dictionary(); + values = value.properties.map(function(prop, index) { + prop = prop.clone(); + if (prop instanceof AST_Spread) { + prop_map = false; + } else { + var key = prop.key; + if (key instanceof AST_Node) key = key.evaluate(compressor, true); + if (key instanceof AST_Node) { + prop_map = false; + } else if (prop_map && !(prop instanceof AST_ObjectSetter)) { + prop_map.set(key, prop); + } + prop_keys[index] = key; + } + return prop; + }); + } + if (node.rest) { + value = false; + node.rest = node.rest.transform(compressor.option("rests") ? trimmer : tt); + } + var can_drop = new Dictionary(); + var drop_keys = drop && new Dictionary(); + var properties = []; + node.properties.map(function(prop) { + var key = prop.key; + if (key instanceof AST_Node) { + prop.key = key = key.transform(tt); + key = key.evaluate(compressor, true); + } + if (key instanceof AST_Node) { + drop_keys = false; + } else { + can_drop.set(key, !can_drop.has(key)); + } + return key; + }).forEach(function(key, index) { + var prop = node.properties[index], trimmed; + if (key instanceof AST_Node) { + drop = false; + value = false; + trimmed = prop.value.transform(trimmer) || retain_lhs(prop.value); + } else { + drop = drop_keys && can_drop.get(key); + var mapped = prop_map && prop_map.get(key); + if (mapped) { + value = mapped.value; + if (value instanceof AST_Accessor) value = false; + } else { + value = false; + } + trimmed = prop.value.transform(trimmer); + if (!trimmed) { + if (node.rest || retain_key(prop)) trimmed = retain_lhs(prop.value); + if (drop_keys && !drop_keys.has(key)) { + if (mapped) { + drop_keys.set(key, mapped); + if (value === null) { + prop_map.set(key, retain_key(mapped) && make_node(AST_ObjectKeyVal, mapped, { + key: mapped.key, + value: make_node(AST_Number, mapped, { value: 0 }), + })); + } + } else { + drop_keys.set(key, true); + } + } + } else if (drop_keys) { + drop_keys.set(key, false); + } + if (value) mapped.value = value; + } + if (trimmed) { + prop.value = trimmed; + properties.push(prop); + } + }); + value = save_value; + drop = save_drop; + if (drop_keys && prop_keys) { + value = value.clone(); + value.properties = List(values, function(prop, index) { + if (prop instanceof AST_Spread) return prop; + var key = prop_keys[index]; + if (key instanceof AST_Node) return prop; + if (drop_keys.has(key)) { + var mapped = drop_keys.get(key); + if (!mapped) return prop; + if (mapped === prop) return prop_map.get(key) || List.skip; + } else if (node.rest) { + return prop; + } + var trimmed = prop.value.drop_side_effect_free(compressor); + if (trimmed) { + prop.value = trimmed; + return prop; + } + return retain_key(prop) ? make_node(AST_ObjectKeyVal, prop, { + key: prop.key, + value: make_node(AST_Number, prop, { value: 0 }), + }) : List.skip; + }); + } + if (value && !node.rest) switch (properties.length) { + case 0: + if (node === root) break; + if (value.may_throw_on_access(compressor, true)) break; + if (drop) value = value.drop_side_effect_free(compressor); + return null; + case 1: + if (!drop) break; + if (node === root) break; + var prop = properties[0]; + if (prop.key instanceof AST_Node) break; + if (prop.value.has_side_effects(compressor)) break; + if (value.has_side_effects(compressor) && prop.value.match_symbol(function(node) { + return node instanceof AST_PropAccess; + })) break; + value = make_node(AST_Sub, node, { + expression: value, + property: make_node_from_constant(prop.key, prop), + }); + return prop.value; + } + node.properties = properties; + return node; + } + if (node instanceof AST_Hole) { + node = null; + } else { + node = process(node); + } + if (!node && drop && value) value = value.drop_side_effect_free(compressor); + return node; + }); + return { + name: node.transform(trimmer), + value: value, + }; + + function retain_key(prop) { + return prop.key instanceof AST_Node && prop.key.has_side_effects(compressor); + } + + function clear_write_only(node) { + if (node instanceof AST_Assign) { + node.write_only = false; + clear_write_only(node.right); + } else if (node instanceof AST_Binary) { + if (!lazy_op[node.operator]) return; + clear_write_only(node.left); + clear_write_only(node.right); + } else if (node instanceof AST_Conditional) { + clear_write_only(node.consequent); + clear_write_only(node.alternative); + } else if (node instanceof AST_Sequence) { + clear_write_only(node.tail_node()); + } else if (node instanceof AST_Unary) { + node.write_only = false; + } + } + + function retain_lhs(node) { + if (node instanceof AST_DefaultValue) return retain_lhs(node.name); + if (node instanceof AST_Destructured) { + if (value === null) { + value = make_node(AST_Number, node, { value: 0 }); + } else if (value) { + if (value.may_throw_on_access(compressor, true)) { + value = make_node(AST_Array, node, { + elements: value instanceof AST_Sequence ? value.expressions : [ value ], + }); + } else { + clear_write_only(value); + } + } + return make_node(AST_DestructuredObject, node, { properties: [] }); + } + node.unused = null; + return node; + } + } + }); + + AST_Scope.DEFMETHOD("hoist_declarations", function(compressor) { + if (compressor.has_directive("use asm")) return; + var hoist_funs = compressor.option("hoist_funs"); + var hoist_vars = compressor.option("hoist_vars"); + var self = this; + if (hoist_vars) { + // let's count var_decl first, we seem to waste a lot of + // space if we hoist `var` when there's only one. + var var_decl = 0; + self.walk(new TreeWalker(function(node) { + if (var_decl > 1) return true; + if (node instanceof AST_ExportDeclaration) return true; + if (node instanceof AST_Scope && node !== self) return true; + if (node instanceof AST_Var) { + var_decl++; + return true; + } + })); + if (var_decl <= 1) hoist_vars = false; + } + if (!hoist_funs && !hoist_vars) return; + var consts = new Dictionary(); + var dirs = []; + var hoisted = []; + var vars = new Dictionary(); + var tt = new TreeTransformer(function(node, descend, in_list) { + if (node === self) return; + if (node instanceof AST_Directive) { + dirs.push(node); + return in_list ? List.skip : make_node(AST_EmptyStatement, node); + } + if (node instanceof AST_LambdaDefinition) { + if (!hoist_funs) return node; + var p = tt.parent(); + if (p instanceof AST_ExportDeclaration) return node; + if (p instanceof AST_ExportDefault) return node; + if (p !== self && compressor.has_directive("use strict")) return node; + hoisted.push(node); + return in_list ? List.skip : make_node(AST_EmptyStatement, node); + } + if (node instanceof AST_Var) { + if (!hoist_vars) return node; + var p = tt.parent(); + if (p instanceof AST_ExportDeclaration) return node; + if (!all(node.definitions, function(defn) { + var sym = defn.name; + return sym instanceof AST_SymbolVar + && !consts.has(sym.name) + && self.find_variable(sym.name) === sym.definition(); + })) return node; + node.definitions.forEach(function(defn) { + vars.set(defn.name.name, defn); + }); + var seq = node.to_assignments(); + if (p instanceof AST_ForEnumeration && p.init === node) { + if (seq) return seq; + var sym = node.definitions[0].name; + return make_node(AST_SymbolRef, sym); + } + if (p instanceof AST_For && p.init === node) return seq; + if (!seq) return in_list ? List.skip : make_node(AST_EmptyStatement, node); + return make_node(AST_SimpleStatement, node, { body: seq }); + } + if (node instanceof AST_Scope) return node; + if (node instanceof AST_SymbolConst) { + consts.set(node.name, true); + return node; + } + }); + self.transform(tt); + if (vars.size() > 0) { + // collect only vars which don't show up in self's arguments list + var defns = []; + if (self instanceof AST_Lambda) self.each_argname(function(argname) { + if (all(argname.definition().references, function(ref) { + return !ref.in_arg; + })) vars.del(argname.name); + }); + vars.each(function(defn, name) { + defn = defn.clone(); + defn.name = defn.name.clone(); + defn.value = null; + defns.push(defn); + vars.set(name, defn); + defn.name.definition().orig.unshift(defn.name); + }); + if (defns.length > 0) hoisted.push(make_node(AST_Var, self, { definitions: defns })); + } + self.body = dirs.concat(hoisted, self.body); + }); + + function scan_local_returns(fn, transform) { + fn.walk(new TreeWalker(function(node) { + if (node instanceof AST_Return) { + transform(node); + return true; + } + if (node instanceof AST_Scope && node !== fn) return true; + })); + } + + function map_self_returns(fn) { + var map = Object.create(null); + scan_local_returns(fn, function(node) { + var value = node.value; + if (value) value = value.tail_node(); + if (value instanceof AST_SymbolRef) { + var id = value.definition().id; + map[id] = (map[id] || 0) + 1; + } + }); + return map; + } + + function can_trim_returns(def, self_returns, compressor) { + if (compressor.exposed(def)) return false; + switch (def.references.length - def.replaced - (self_returns[def.id] || 0)) { + case def.drop_return: + return "d"; + case def.bool_return: + return true; + } + } + + function process_boolean_returns(fn, compressor) { + scan_local_returns(fn, function(node) { + node.in_bool = true; + var value = node.value; + if (value) { + var ev = fuzzy_eval(compressor, value); + if (!ev) { + value = value.drop_side_effect_free(compressor); + node.value = value ? make_sequence(node.value, [ + value, + make_node(AST_Number, node.value, { value: 0 }), + ]) : null; + } else if (!(ev instanceof AST_Node)) { + value = value.drop_side_effect_free(compressor); + node.value = value ? make_sequence(node.value, [ + value, + make_node(AST_Number, node.value, { value: 1 }), + ]) : make_node(AST_Number, node.value, { value: 1 }); + } + } + }); + } + + AST_Scope.DEFMETHOD("process_returns", noop); + AST_Defun.DEFMETHOD("process_returns", function(compressor) { + if (!compressor.option("booleans")) return; + if (compressor.parent() instanceof AST_ExportDefault) return; + switch (can_trim_returns(this.name.definition(), map_self_returns(this), compressor)) { + case "d": + drop_returns(compressor, this, true); + break; + case true: + process_boolean_returns(this, compressor); + break; + } + }); + AST_Function.DEFMETHOD("process_returns", function(compressor) { + if (!compressor.option("booleans")) return; + var drop = true; + var self_returns = map_self_returns(this); + if (this.name && !can_trim(this.name.definition())) return; + var parent = compressor.parent(); + if (parent instanceof AST_Assign) { + if (parent.operator != "=") return; + var sym = parent.left; + if (!(sym instanceof AST_SymbolRef)) return; + if (!can_trim(sym.definition())) return; + } else if (parent instanceof AST_Call && parent.expression !== this) { + var exp = parent.expression; + if (exp instanceof AST_SymbolRef) exp = exp.fixed_value(); + if (!(exp instanceof AST_Lambda)) return; + if (exp.uses_arguments || exp.pinned()) return; + var args = parent.args, sym; + for (var i = 0; i < args.length; i++) { + var arg = args[i]; + if (arg === this) { + sym = exp.argnames[i]; + if (!sym && exp.rest) return; + break; + } + if (arg instanceof AST_Spread) return; + } + if (sym instanceof AST_DefaultValue) sym = sym.name; + if (sym instanceof AST_SymbolFunarg && !can_trim(sym.definition())) return; + } else if (parent.TYPE == "Call") { + compressor.pop(); + var in_bool = compressor.in_boolean_context(); + compressor.push(this); + switch (in_bool) { + case true: + drop = false; + case "d": + break; + default: + return; + } + } else return; + if (drop) { + drop_returns(compressor, this, true); + } else { + process_boolean_returns(this, compressor); + } + + function can_trim(def) { + switch (can_trim_returns(def, self_returns, compressor)) { + case true: + drop = false; + case "d": + return true; + } + } + }); + + AST_BlockScope.DEFMETHOD("var_names", function() { + var var_names = this._var_names; + if (!var_names) { + this._var_names = var_names = new Dictionary(); + this.enclosed.forEach(function(def) { + var_names.set(def.name, true); + }); + this.variables.each(function(def, name) { + var_names.set(name, true); + }); + } + return var_names; + }); + + AST_Scope.DEFMETHOD("make_var", function(type, orig, prefix) { + var scopes = [ this ]; + if (orig instanceof AST_SymbolDeclaration) orig.definition().references.forEach(function(ref) { + var s = ref.scope; + do { + if (!push_uniq(scopes, s)) return; + s = s.parent_scope; + } while (s && s !== this); + }); + prefix = prefix.replace(/^[^a-z_$]|[^a-z0-9_$]/gi, "_"); + var name = prefix; + for (var i = 0; !all(scopes, function(scope) { + return !scope.var_names().has(name); + }); i++) name = prefix + "$" + i; + var sym = make_node(type, orig, { + name: name, + scope: this, + }); + var def = this.def_variable(sym); + scopes.forEach(function(scope) { + scope.enclosed.push(def); + scope.var_names().set(name, true); + }); + return sym; + }); + + AST_Scope.DEFMETHOD("hoist_properties", function(compressor) { + if (!compressor.option("hoist_props") || compressor.has_directive("use asm")) return; + var self = this; + if (is_arrow(self) && self.value) return; + var top_retain = self instanceof AST_Toplevel && compressor.top_retain || return_false; + var defs_by_id = Object.create(null); + var tt = new TreeTransformer(function(node, descend) { + if (node instanceof AST_Assign) { + if (node.operator != "=") return; + if (!node.write_only) return; + if (!can_hoist(node.left, node.right, 1)) return; + descend(node, tt); + var defs = new Dictionary(); + var assignments = []; + var decls = []; + node.right.properties.forEach(function(prop) { + var decl = make_sym(AST_SymbolVar, node.left, prop.key); + decls.push(make_node(AST_VarDef, node, { + name: decl, + value: null, + })); + var sym = make_node(AST_SymbolRef, node, { + name: decl.name, + scope: self, + thedef: decl.definition(), + }); + sym.reference(); + assignments.push(make_node(AST_Assign, node, { + operator: "=", + left: sym, + right: prop.value, + })); + }); + defs.value = node.right; + defs_by_id[node.left.definition().id] = defs; + self.body.splice(self.body.indexOf(tt.stack[1]) + 1, 0, make_node(AST_Var, node, { + definitions: decls, + })); + return make_sequence(node, assignments); + } + if (node instanceof AST_Scope) { + if (node === self) return; + var parent = tt.parent(); + if (parent.TYPE == "Call" && parent.expression === node) return; + return node; + } + if (node instanceof AST_VarDef) { + if (!can_hoist(node.name, node.value, 0)) return; + descend(node, tt); + var defs = new Dictionary(); + var var_defs = []; + var decl = node.clone(); + decl.value = node.name instanceof AST_SymbolConst ? make_node(AST_Number, node, { value: 0 }) : null; + var_defs.push(decl); + node.value.properties.forEach(function(prop) { + var_defs.push(make_node(AST_VarDef, node, { + name: make_sym(node.name.CTOR, node.name, prop.key), + value: prop.value, + })); + }); + defs.value = node.value; + defs_by_id[node.name.definition().id] = defs; + return List.splice(var_defs); + } + + function make_sym(type, sym, key) { + var new_var = self.make_var(type, sym, sym.name + "_" + key); + defs.set(key, new_var.definition()); + return new_var; + } + }); + self.transform(tt); + self.transform(new TreeTransformer(function(node, descend) { + if (node instanceof AST_PropAccess) { + if (!(node.expression instanceof AST_SymbolRef)) return; + var defs = defs_by_id[node.expression.definition().id]; + if (!defs) return; + if (node.expression.fixed_value() !== defs.value) return; + var def = defs.get(node.get_property()); + var sym = make_node(AST_SymbolRef, node, { + name: def.name, + scope: node.expression.scope, + thedef: def, + }); + sym.reference(); + return sym; + } + if (node instanceof AST_SymbolRef) { + var defs = defs_by_id[node.definition().id]; + if (!defs) return; + if (node.fixed_value() !== defs.value) return; + return make_node(AST_Object, node, { properties: [] }); + } + })); + + function can_hoist(sym, right, count) { + if (!(sym instanceof AST_Symbol)) return; + var def = sym.definition(); + if (def.assignments != count) return; + if (def.references.length - def.replaced == count) return; + if (def.single_use) return; + if (self.find_variable(sym.name) !== def) return; + if (top_retain(def)) return; + if (sym.fixed_value() !== right) return; + var fixed = sym.fixed || def.fixed; + if (fixed.direct_access) return; + if (fixed.escaped && fixed.escaped.depth == 1) return; + return right instanceof AST_Object + && right.properties.length > 0 + && can_drop_symbol(sym, compressor) + && all(right.properties, function(prop) { + return can_hoist_property(prop) && prop.key !== "__proto__"; + }); + } + }); + + function fn_name_unused(fn, compressor) { + if (!fn.name || !compressor.option("ie")) return true; + var def = fn.name.definition(); + if (compressor.exposed(def)) return false; + return all(def.references, function(sym) { + return !(sym instanceof AST_SymbolRef); + }); + } + + function drop_returns(compressor, exp, ignore_name) { + if (!(exp instanceof AST_Lambda)) return; + var arrow = is_arrow(exp); + var async = is_async(exp); + var changed = false; + var drop_body = false; + if (arrow && compressor.option("arrows")) { + if (!exp.value) { + drop_body = true; + } else if (!async || needs_enqueuing(compressor, exp.value)) { + var dropped = exp.value.drop_side_effect_free(compressor); + if (dropped !== exp.value) { + changed = true; + exp.value = dropped; + } + } + } else if (!is_generator(exp)) { + if (!ignore_name && exp.name) { + var def = exp.name.definition(); + drop_body = def.references.length == def.replaced; + } else { + drop_body = true; + } + } + if (drop_body) { + exp.process_expression(false, function(node) { + var value = node.value; + if (value) { + if (async && !needs_enqueuing(compressor, value)) return node; + value = value.drop_side_effect_free(compressor, true); + } + changed = true; + if (!value) return make_node(AST_EmptyStatement, node); + return make_node(AST_SimpleStatement, node, { body: value }); + }); + scan_local_returns(exp, function(node) { + var value = node.value; + if (value) { + if (async && !needs_enqueuing(compressor, value)) return; + var dropped = value.drop_side_effect_free(compressor); + if (dropped !== value) { + changed = true; + if (dropped && async && !needs_enqueuing(compressor, dropped)) { + dropped = dropped.negate(compressor); + } + node.value = dropped; + } + } + }); + } + if (async && compressor.option("awaits")) { + if (drop_body) exp.process_expression("awaits", function(node) { + var body = node.body; + if (body instanceof AST_Await) { + if (needs_enqueuing(compressor, body.expression)) { + changed = true; + body = body.expression.drop_side_effect_free(compressor, true); + if (!body) return make_node(AST_EmptyStatement, node); + node.body = body; + } + } else if (body instanceof AST_Sequence) { + var exprs = body.expressions; + for (var i = exprs.length; --i >= 0;) { + var tail = exprs[i]; + if (!(tail instanceof AST_Await)) break; + var value = tail.expression; + if (!needs_enqueuing(compressor, value)) break; + changed = true; + if (exprs[i] = value.drop_side_effect_free(compressor)) break; + } + switch (i) { + case -1: + return make_node(AST_EmptyStatement, node); + case 0: + node.body = exprs[0]; + break; + default: + exprs.length = i + 1; + break; + } + } + return node; + }); + var abort = !drop_body && exp.name || arrow && exp.value && !needs_enqueuing(compressor, exp.value); + var tw = new TreeWalker(function(node) { + if (abort) return true; + if (tw.parent() === exp && node.may_throw(compressor)) return abort = true; + if (node instanceof AST_Await) return abort = true; + if (node instanceof AST_ForAwaitOf) return abort = true; + if (node instanceof AST_Return) { + if (node.value && !needs_enqueuing(compressor, node.value)) return abort = true; + return; + } + if (node instanceof AST_Scope && node !== exp) return true; + }); + exp.walk(tw); + if (!abort) { + var ctor; + switch (exp.CTOR) { + case AST_AsyncArrow: + ctor = AST_Arrow; + break; + case AST_AsyncFunction: + ctor = AST_Function; + break; + case AST_AsyncGeneratorFunction: + ctor = AST_GeneratorFunction; + break; + } + return make_node(ctor, exp); + } + } + return changed && exp.clone(); + } + + // drop_side_effect_free() + // remove side-effect-free parts which only affects return value + (function(def) { + // Drop side-effect-free elements from an array of expressions. + // Returns an array of expressions with side-effects or null + // if all elements were dropped. Note: original array may be + // returned if nothing changed. + function trim(nodes, compressor, first_in_statement, spread) { + var len = nodes.length; + var ret = [], changed = false; + for (var i = 0; i < len; i++) { + var node = nodes[i]; + var trimmed; + if (spread && node instanceof AST_Spread) { + trimmed = spread(node, compressor, first_in_statement); + } else { + trimmed = node.drop_side_effect_free(compressor, first_in_statement); + } + if (trimmed !== node) changed = true; + if (trimmed) { + ret.push(trimmed); + first_in_statement = false; + } + } + return ret.length ? changed ? ret : nodes : null; + } + function array_spread(node, compressor, first_in_statement) { + var exp = node.expression; + if (!exp.is_string(compressor)) return node; + return exp.drop_side_effect_free(compressor, first_in_statement); + } + function convert_spread(node) { + return node instanceof AST_Spread ? make_node(AST_Array, node, { elements: [ node ] }) : node; + } + def(AST_Node, return_this); + def(AST_Accessor, return_null); + def(AST_Array, function(compressor, first_in_statement) { + var values = trim(this.elements, compressor, first_in_statement, array_spread); + if (!values) return null; + if (values === this.elements && all(values, function(node) { + return node instanceof AST_Spread; + })) return this; + return make_sequence(this, values.map(convert_spread)); + }); + def(AST_Assign, function(compressor) { + var left = this.left; + if (left instanceof AST_PropAccess) { + var expr = left.expression; + if (expr.may_throw_on_access(compressor, true)) return this; + if (compressor.has_directive("use strict") && expr.is_constant()) return this; + } + if (left.has_side_effects(compressor)) return this; + if (lazy_op[this.operator.slice(0, -1)]) return this; + this.write_only = true; + if (!root_expr(left).is_constant_expression(compressor.find_parent(AST_Scope))) return this; + return this.right.drop_side_effect_free(compressor); + }); + def(AST_Await, function(compressor) { + if (!compressor.option("awaits")) return this; + var exp = this.expression; + if (!needs_enqueuing(compressor, exp)) return this; + if (exp instanceof AST_UnaryPrefix && exp.operator == "!") exp = exp.expression; + var dropped = exp.drop_side_effect_free(compressor); + if (dropped === exp) return this; + if (!dropped) { + dropped = make_node(AST_Number, exp, { value: 0 }); + } else if (!needs_enqueuing(compressor, dropped)) { + dropped = dropped.negate(compressor); + } + var node = this.clone(); + node.expression = dropped; + return node; + }); + def(AST_Binary, function(compressor, first_in_statement) { + var left = this.left; + var right = this.right; + var op = this.operator; + if (!can_drop_op(op, right, compressor)) { + var lhs = left.drop_side_effect_free(compressor, first_in_statement); + if (lhs === left) return this; + var node = this.clone(); + node.left = lhs || make_node(AST_Number, left, { value: 0 }); + return node; + } + var rhs = right.drop_side_effect_free(compressor, first_in_statement); + if (!rhs) return left.drop_side_effect_free(compressor, first_in_statement); + if (lazy_op[op] && rhs.has_side_effects(compressor)) { + var node = this; + if (rhs !== right) { + node = node.clone(); + node.right = rhs.drop_side_effect_free(compressor); + } + if (op == "??") return node; + var negated = node.clone(); + negated.operator = op == "&&" ? "||" : "&&"; + negated.left = left.negate(compressor, first_in_statement); + var negated_rhs = negated.right.tail_node(); + if (negated_rhs instanceof AST_Binary && negated.operator == negated_rhs.operator) swap_chain(negated); + var best = first_in_statement ? best_of_statement : best_of_expression; + return op == "&&" ? best(node, negated) : best(negated, node); + } + var lhs = left.drop_side_effect_free(compressor, first_in_statement); + if (!lhs) return rhs; + rhs = rhs.drop_side_effect_free(compressor); + if (!rhs) return lhs; + return make_sequence(this, [ lhs, rhs ]); + }); + function assign_this_only(fn, compressor) { + fn.new = true; + var result = all(fn.body, function(stat) { + return !stat.has_side_effects(compressor); + }) && all(fn.argnames, function(argname) { + return !argname.match_symbol(return_false); + }) && !(fn.rest && fn.rest.match_symbol(return_false)); + fn.new = false; + return result; + } + def(AST_Call, function(compressor, first_in_statement) { + var self = this; + if (self.is_expr_pure(compressor)) { + if (self.pure) AST_Node.warn("Dropping __PURE__ call [{start}]", self); + var args = trim(self.args, compressor, first_in_statement, array_spread); + return args && make_sequence(self, args.map(convert_spread)); + } + var exp = self.expression; + if (self.is_call_pure(compressor)) { + var exprs = self.args.slice(); + exprs.unshift(exp.expression); + exprs = trim(exprs, compressor, first_in_statement, array_spread); + return exprs && make_sequence(self, exprs.map(convert_spread)); + } + if (compressor.option("yields") && is_generator(exp)) { + var call = self.clone(); + call.expression = make_node(AST_Function, exp); + call.expression.body = []; + var opt = call.transform(compressor); + if (opt !== call) return opt.drop_side_effect_free(compressor, first_in_statement); + } + var dropped = drop_returns(compressor, exp); + if (dropped) { + // always shallow clone to ensure stripping of negated IIFEs + self = self.clone(); + self.expression = dropped; + // avoid extraneous traversal + if (exp._squeezed) self.expression._squeezed = true; + } + if (self instanceof AST_New) { + var fn = exp; + if (fn instanceof AST_SymbolRef) fn = fn.fixed_value(); + if (fn instanceof AST_Lambda) { + if (assign_this_only(fn, compressor)) { + var exprs = self.args.slice(); + exprs.unshift(exp); + exprs = trim(exprs, compressor, first_in_statement, array_spread); + return exprs && make_sequence(self, exprs.map(convert_spread)); + } + if (!fn.contains_this()) { + self = make_node(AST_Call, self); + self.expression = self.expression.clone(); + self.args = self.args.slice(); + } + } + } + self.call_only = true; + return self; + }); + def(AST_ClassExpression, function(compressor, first_in_statement) { + var self = this; + var exprs = [], values = [], init = 0; + var props = self.properties; + for (var i = 0; i < props.length; i++) { + var prop = props[i]; + if (prop.key instanceof AST_Node) exprs.push(prop.key); + if (!is_static_field_or_init(prop)) continue; + var value = prop.value; + if (!value.has_side_effects(compressor)) continue; + if (value.contains_this()) return self; + if (prop instanceof AST_ClassInit) { + init++; + values.push(prop); + } else { + values.push(value); + } + } + var base = self.extends; + if (base) { + if (base instanceof AST_SymbolRef) base = base.fixed_value(); + base = !safe_for_extends(base); + if (!base) exprs.unshift(self.extends); + } + exprs = trim(exprs, compressor, first_in_statement); + if (exprs) first_in_statement = false; + values = trim(values, compressor, first_in_statement); + if (!exprs) { + if (!base && !values && !self.name) return null; + exprs = []; + } + if (base || self.name || !compressor.has_directive("use strict")) { + var node = to_class_expr(self); + if (!base) node.extends = null; + node.properties = []; + if (values) { + if (values.length == init) { + if (exprs.length) values.unshift(make_node(AST_ClassField, self, { + key: make_sequence(self, exprs), + value: null, + })); + node.properties = values; + } else node.properties.push(make_node(AST_ClassField, self, { + static: true, + key: exprs.length ? make_sequence(self, exprs) : "c", + value: make_value(), + })); + } else if (exprs.length) node.properties.push(make_node(AST_ClassMethod, self, { + key: make_sequence(self, exprs), + value: make_node(AST_Function, self, { + argnames: [], + body: [], + }).init_vars(node), + })); + return node; + } + if (values) exprs.push(make_node(AST_Call, self, { + expression: make_node(AST_Arrow, self, { + argnames: [], + body: [], + value: make_value(), + }).init_vars(self.parent_scope), + args: [], + })); + return make_sequence(self, exprs); + + function make_value() { + return make_sequence(self, values.map(function(node) { + if (!(node instanceof AST_ClassInit)) return node; + var fn = make_node(AST_Arrow, node.value); + fn.argnames = []; + return make_node(AST_Call, node, { + expression: fn, + args: [], + }); + })); + } + }); + def(AST_Conditional, function(compressor) { + var consequent = this.consequent.drop_side_effect_free(compressor); + var alternative = this.alternative.drop_side_effect_free(compressor); + if (consequent === this.consequent && alternative === this.alternative) return this; + var exprs; + if (compressor.option("ie")) { + exprs = []; + if (consequent instanceof AST_Function) { + exprs.push(consequent); + consequent = null; + } + if (alternative instanceof AST_Function) { + exprs.push(alternative); + alternative = null; + } + } + var node; + if (!consequent) { + node = alternative ? make_node(AST_Binary, this, { + operator: "||", + left: this.condition, + right: alternative, + }) : this.condition.drop_side_effect_free(compressor); + } else if (!alternative) { + node = make_node(AST_Binary, this, { + operator: "&&", + left: this.condition, + right: consequent, + }); + } else { + node = this.clone(); + node.consequent = consequent; + node.alternative = alternative; + } + if (!exprs) return node; + if (node) exprs.push(node); + return exprs.length == 0 ? null : make_sequence(this, exprs); + }); + def(AST_Constant, return_null); + def(AST_Dot, function(compressor, first_in_statement) { + var expr = this.expression; + if (expr.may_throw_on_access(compressor)) return this; + return expr.drop_side_effect_free(compressor, first_in_statement); + }); + def(AST_Function, function(compressor) { + return fn_name_unused(this, compressor) ? null : this; + }); + def(AST_LambdaExpression, return_null); + def(AST_Object, function(compressor, first_in_statement) { + var exprs = []; + this.properties.forEach(function(prop) { + if (prop instanceof AST_Spread) { + exprs.push(prop); + } else { + if (prop.key instanceof AST_Node) exprs.push(prop.key); + exprs.push(prop.value); + } + }); + var values = trim(exprs, compressor, first_in_statement, function(node, compressor, first_in_statement) { + var exp = node.expression; + return exp.safe_to_spread() ? exp.drop_side_effect_free(compressor, first_in_statement) : node; + }); + if (!values) return null; + if (values === exprs && !all(values, function(node) { + return !(node instanceof AST_Spread); + })) return this; + return make_sequence(this, values.map(function(node) { + return node instanceof AST_Spread ? make_node(AST_Object, node, { properties: [ node ] }) : node; + })); + }); + def(AST_ObjectIdentity, return_null); + def(AST_Sequence, function(compressor, first_in_statement) { + var expressions = trim(this.expressions, compressor, first_in_statement); + if (!expressions) return null; + var end = expressions.length - 1; + var last = expressions[end]; + if (compressor.option("awaits") && end > 0 && last instanceof AST_Await && last.expression.is_constant()) { + expressions = expressions.slice(0, -1); + end--; + var expr = expressions[end]; + last.expression = needs_enqueuing(compressor, expr) ? expr : expr.negate(compressor); + expressions[end] = last; + } + var assign, cond, lhs; + if (compressor.option("conditionals") + && end > 0 + && (assign = expressions[end - 1]) instanceof AST_Assign + && assign.operator == "=" + && (lhs = assign.left) instanceof AST_SymbolRef + && (cond = to_conditional_assignment(compressor, lhs.definition(), assign.right, last))) { + assign = assign.clone(); + assign.right = cond; + expressions = expressions.slice(0, -2); + expressions.push(assign.drop_side_effect_free(compressor, first_in_statement)); + } + return expressions === this.expressions ? this : make_sequence(this, expressions); + }); + def(AST_Sub, function(compressor, first_in_statement) { + var expr = this.expression; + if (expr.may_throw_on_access(compressor)) return this; + var prop = this.property; + expr = expr.drop_side_effect_free(compressor, first_in_statement); + if (!expr) return prop.drop_side_effect_free(compressor, first_in_statement); + prop = prop.drop_side_effect_free(compressor); + if (!prop) return expr; + return make_sequence(this, [ expr, prop ]); + }); + def(AST_SymbolRef, function(compressor) { + return this.is_declared(compressor) && can_drop_symbol(this, compressor) ? null : this; + }); + def(AST_Template, function(compressor, first_in_statement) { + var self = this; + if (self.is_expr_pure(compressor)) { + var expressions = self.expressions; + if (expressions.length == 0) return null; + return make_sequence(self, expressions).drop_side_effect_free(compressor, first_in_statement); + } + var tag = self.tag; + var dropped = drop_returns(compressor, tag); + if (dropped) { + // always shallow clone to signal internal changes + self = self.clone(); + self.tag = dropped; + // avoid extraneous traversal + if (tag._squeezed) self.tag._squeezed = true; + } + return self; + }); + def(AST_Unary, function(compressor, first_in_statement) { + var exp = this.expression; + if (unary_side_effects[this.operator]) { + this.write_only = !exp.has_side_effects(compressor); + return this; + } + if (this.operator == "typeof" && exp instanceof AST_SymbolRef && can_drop_symbol(exp, compressor)) { + return null; + } + var node = exp.drop_side_effect_free(compressor, first_in_statement); + if (first_in_statement && node && is_iife_call(node)) { + if (node === exp && this.operator == "!") return this; + return node.negate(compressor, first_in_statement); + } + return node; + }); + })(function(node, func) { + node.DEFMETHOD("drop_side_effect_free", func); + }); + + OPT(AST_SimpleStatement, function(self, compressor) { + if (compressor.option("side_effects")) { + var body = self.body; + var node = body.drop_side_effect_free(compressor, true); + if (!node) { + AST_Node.warn("Dropping side-effect-free statement [{start}]", self); + return make_node(AST_EmptyStatement, self); + } + if (node !== body) { + return make_node(AST_SimpleStatement, self, { body: node }); + } + } + return self; + }); + + OPT(AST_While, function(self, compressor) { + return compressor.option("loops") ? make_node(AST_For, self).optimize(compressor) : self; + }); + + function has_loop_control(loop, parent, type) { + if (!type) type = AST_LoopControl; + var found = false; + var tw = new TreeWalker(function(node) { + if (found || node instanceof AST_Scope) return true; + if (node instanceof type && tw.loopcontrol_target(node) === loop) { + return found = true; + } + }); + if (parent instanceof AST_LabeledStatement) tw.push(parent); + tw.push(loop); + loop.body.walk(tw); + return found; + } + + OPT(AST_Do, function(self, compressor) { + if (!compressor.option("loops")) return self; + var cond = fuzzy_eval(compressor, self.condition); + if (!(cond instanceof AST_Node)) { + if (cond && !has_loop_control(self, compressor.parent(), AST_Continue)) return make_node(AST_For, self, { + body: make_node(AST_BlockStatement, self.body, { + body: [ + self.body, + make_node(AST_SimpleStatement, self.condition, { body: self.condition }), + ], + }), + }).optimize(compressor); + if (!has_loop_control(self, compressor.parent())) return make_node(AST_BlockStatement, self.body, { + body: [ + self.body, + make_node(AST_SimpleStatement, self.condition, { body: self.condition }), + ], + }).optimize(compressor); + } + if (self.body instanceof AST_BlockStatement && !has_loop_control(self, compressor.parent(), AST_Continue)) { + var body = self.body.body; + for (var i = body.length; --i >= 0;) { + var stat = body[i]; + if (stat instanceof AST_If + && !stat.alternative + && stat.body instanceof AST_Break + && compressor.loopcontrol_target(stat.body) === self) { + if (has_block_scope_refs(stat.condition)) break; + self.condition = make_node(AST_Binary, self, { + operator: "&&", + left: stat.condition.negate(compressor), + right: self.condition, + }); + body.splice(i, 1); + } else if (stat instanceof AST_SimpleStatement) { + if (has_block_scope_refs(stat.body)) break; + self.condition = make_sequence(self, [ + stat.body, + self.condition, + ]); + body.splice(i, 1); + } else if (!is_declaration(stat, true)) { + break; + } + } + self.body = trim_block(self.body, compressor.parent()); + } + if (self.body instanceof AST_EmptyStatement) return make_node(AST_For, self).optimize(compressor); + if (self.body instanceof AST_SimpleStatement) return make_node(AST_For, self, { + condition: make_sequence(self.condition, [ + self.body.body, + self.condition, + ]), + body: make_node(AST_EmptyStatement, self), + }).optimize(compressor); + return self; + + function has_block_scope_refs(node) { + var found = false; + node.walk(new TreeWalker(function(node) { + if (found) return true; + if (node instanceof AST_SymbolRef) { + if (!member(node.definition(), self.enclosed)) found = true; + return true; + } + })); + return found; + } + }); + + function if_break_in_loop(self, compressor) { + var first = first_statement(self.body); + if (compressor.option("dead_code") + && (first instanceof AST_Break + || first instanceof AST_Continue && external_target(first) + || first instanceof AST_Exit)) { + var body = []; + if (is_statement(self.init)) { + body.push(self.init); + } else if (self.init) { + body.push(make_node(AST_SimpleStatement, self.init, { body: self.init })); + } + var retain = external_target(first) || first instanceof AST_Exit; + if (self.condition && retain) { + body.push(make_node(AST_If, self, { + condition: self.condition, + body: first, + alternative: null, + })); + } else if (self.condition) { + body.push(make_node(AST_SimpleStatement, self.condition, { body: self.condition })); + } else if (retain) { + body.push(first); + } + extract_declarations_from_unreachable_code(compressor, self.body, body); + return make_node(AST_BlockStatement, self, { body: body }); + } + if (first instanceof AST_If) { + var ab = first_statement(first.body); + if (ab instanceof AST_Break && !external_target(ab)) { + if (self.condition) { + self.condition = make_node(AST_Binary, self.condition, { + left: self.condition, + operator: "&&", + right: first.condition.negate(compressor), + }); + } else { + self.condition = first.condition.negate(compressor); + } + var body = as_statement_array(first.alternative); + extract_declarations_from_unreachable_code(compressor, first.body, body); + return drop_it(body); + } + ab = first_statement(first.alternative); + if (ab instanceof AST_Break && !external_target(ab)) { + if (self.condition) { + self.condition = make_node(AST_Binary, self.condition, { + left: self.condition, + operator: "&&", + right: first.condition, + }); + } else { + self.condition = first.condition; + } + var body = as_statement_array(first.body); + extract_declarations_from_unreachable_code(compressor, first.alternative, body); + return drop_it(body); + } + } + return self; + + function first_statement(body) { + return body instanceof AST_BlockStatement ? body.body[0] : body; + } + + function external_target(node) { + return compressor.loopcontrol_target(node) !== compressor.self(); + } + + function drop_it(rest) { + if (self.body instanceof AST_BlockStatement) { + self.body = self.body.clone(); + self.body.body = rest.concat(self.body.body.slice(1)); + self.body = self.body.transform(compressor); + } else { + self.body = make_node(AST_BlockStatement, self.body, { body: rest }).transform(compressor); + } + return if_break_in_loop(self, compressor); + } + } + + OPT(AST_For, function(self, compressor) { + if (!compressor.option("loops")) return self; + if (compressor.option("side_effects")) { + if (self.init) self.init = self.init.drop_side_effect_free(compressor); + if (self.step) self.step = self.step.drop_side_effect_free(compressor); + } + if (self.condition) { + var cond = fuzzy_eval(compressor, self.condition); + if (!cond) { + if (compressor.option("dead_code")) { + var body = []; + if (is_statement(self.init)) { + body.push(self.init); + } else if (self.init) { + body.push(make_node(AST_SimpleStatement, self.init, { body: self.init })); + } + body.push(make_node(AST_SimpleStatement, self.condition, { body: self.condition })); + extract_declarations_from_unreachable_code(compressor, self.body, body); + return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor); + } + } else if (!(cond instanceof AST_Node)) { + self.body = make_node(AST_BlockStatement, self.body, { + body: [ + make_node(AST_SimpleStatement, self.condition, { body: self.condition }), + self.body, + ], + }); + self.condition = null; + } + } + return if_break_in_loop(self, compressor); + }); + + OPT(AST_ForEnumeration, function(self, compressor) { + if (compressor.option("varify") && is_lexical_definition(self.init)) { + var name = self.init.definitions[0].name; + if ((name instanceof AST_Destructured || name instanceof AST_SymbolLet) + && !name.match_symbol(function(node) { + if (node instanceof AST_SymbolDeclaration) { + var def = node.definition(); + return !same_scope(def) || may_overlap(compressor, def); + } + }, true)) { + self.init = to_var(self.init, self.resolve()); + } + } + return self; + }); + + function mark_locally_defined(condition, consequent, alternative) { + if (condition instanceof AST_Sequence) condition = condition.tail_node(); + if (!(condition instanceof AST_Binary)) return; + if (!(condition.left instanceof AST_String)) { + switch (condition.operator) { + case "&&": + mark_locally_defined(condition.left, consequent); + mark_locally_defined(condition.right, consequent); + break; + case "||": + mark_locally_defined(negate(condition.left), alternative); + mark_locally_defined(negate(condition.right), alternative); + break; + } + return; + } + if (!(condition.right instanceof AST_UnaryPrefix)) return; + if (condition.right.operator != "typeof") return; + var sym = condition.right.expression; + if (!is_undeclared_ref(sym)) return; + var body; + var undef = condition.left.value == "undefined"; + switch (condition.operator) { + case "==": + body = undef ? alternative : consequent; + break; + case "!=": + body = undef ? consequent : alternative; + break; + default: + return; + } + if (!body) return; + var abort = false; + var def = sym.definition(); + var fn; + var refs = []; + var scanned = []; + var tw = new TreeWalker(function(node, descend) { + if (abort) return true; + if (node instanceof AST_Assign) { + var ref = node.left; + if (!(ref instanceof AST_SymbolRef && ref.definition() === def)) return; + node.right.walk(tw); + switch (node.operator) { + case "=": + case "&&=": + abort = true; + } + return true; + } + if (node instanceof AST_Call) { + descend(); + fn = node.expression.tail_node(); + var save; + if (fn instanceof AST_SymbolRef) { + fn = fn.fixed_value(); + save = refs.length; + } + if (!(fn instanceof AST_Lambda)) { + abort = true; + } else if (push_uniq(scanned, fn)) { + fn.walk(tw); + } + if (save >= 0) refs.length = save; + return true; + } + if (node instanceof AST_DWLoop) { + var save = refs.length; + descend(); + if (abort) refs.length = save; + return true; + } + if (node instanceof AST_For) { + if (node.init) node.init.walk(tw); + var save = refs.length; + if (node.condition) node.condition.walk(tw); + node.body.walk(tw); + if (node.step) node.step.walk(tw); + if (abort) refs.length = save; + return true; + } + if (node instanceof AST_ForEnumeration) { + node.object.walk(tw); + var save = refs.length; + node.init.walk(tw); + node.body.walk(tw); + if (abort) refs.length = save; + return true; + } + if (node instanceof AST_Scope) { + if (node === fn) return; + return true; + } + if (node instanceof AST_SymbolRef) { + if (node.definition() === def) refs.push(node); + return true; + } + }); + body.walk(tw); + refs.forEach(function(ref) { + ref.defined = true; + }); + + function negate(node) { + if (!(node instanceof AST_Binary)) return; + switch (node.operator) { + case "==": + node = node.clone(); + node.operator = "!="; + return node; + case "!=": + node = node.clone(); + node.operator = "=="; + return node; + } + } + } + + function fuzzy_eval(compressor, node, nullish) { + if (node.truthy) return true; + if (is_undefined(node)) return undefined; + if (node.falsy && !nullish) return false; + if (node.is_truthy()) return true; + return node.evaluate(compressor, true); + } + + function mark_duplicate_condition(compressor, node) { + var child; + var level = 0; + var negated = false; + var parent = compressor.self(); + if (!is_statement(parent)) while (true) { + child = parent; + parent = compressor.parent(level++); + if (parent instanceof AST_Binary) { + switch (child) { + case parent.left: + if (lazy_op[parent.operator]) continue; + break; + case parent.right: + if (match(parent.left)) switch (parent.operator) { + case "&&": + node[negated ? "falsy" : "truthy"] = true; + break; + case "||": + case "??": + node[negated ? "truthy" : "falsy"] = true; + break; + } + break; + } + } else if (parent instanceof AST_Conditional) { + var cond = parent.condition; + if (cond === child) continue; + if (match(cond)) switch (child) { + case parent.consequent: + node[negated ? "falsy" : "truthy"] = true; + break; + case parent.alternative: + node[negated ? "truthy" : "falsy"] = true; + break; + } + } else if (parent instanceof AST_Exit) { + break; + } else if (parent instanceof AST_If) { + break; + } else if (parent instanceof AST_Sequence) { + if (parent.expressions[0] === child) continue; + } else if (parent instanceof AST_SimpleStatement) { + break; + } + return; + } + while (true) { + child = parent; + parent = compressor.parent(level++); + if (parent instanceof AST_BlockStatement) { + if (parent.body[0] === child) continue; + } else if (parent instanceof AST_If) { + if (match(parent.condition)) switch (child) { + case parent.body: + node[negated ? "falsy" : "truthy"] = true; + break; + case parent.alternative: + node[negated ? "truthy" : "falsy"] = true; + break; + } + } + return; + } + + function match(cond) { + if (node.equals(cond)) return true; + if (!(cond instanceof AST_UnaryPrefix)) return false; + if (cond.operator != "!") return false; + if (!node.equals(cond.expression)) return false; + negated = true; + return true; + } + } + + OPT(AST_If, function(self, compressor) { + if (is_empty(self.alternative)) self.alternative = null; + + if (!compressor.option("conditionals")) return self; + if (compressor.option("booleans") && !self.condition.has_side_effects(compressor)) { + mark_duplicate_condition(compressor, self.condition); + } + // if condition can be statically determined, warn and drop + // one of the blocks. note, statically determined implies + // “has no side effects”; also it doesn't work for cases like + // `x && true`, though it probably should. + if (compressor.option("dead_code")) { + var cond = fuzzy_eval(compressor, self.condition); + if (!cond) { + AST_Node.warn("Condition always false [{start}]", self.condition); + var body = [ + make_node(AST_SimpleStatement, self.condition, { body: self.condition }).transform(compressor), + ]; + extract_declarations_from_unreachable_code(compressor, self.body, body); + if (self.alternative) body.push(self.alternative); + return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor); + } else if (!(cond instanceof AST_Node)) { + AST_Node.warn("Condition always true [{start}]", self.condition); + var body = [ + make_node(AST_SimpleStatement, self.condition, { body: self.condition }).transform(compressor), + self.body, + ]; + if (self.alternative) extract_declarations_from_unreachable_code(compressor, self.alternative, body); + return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor); + } + } + var negated = self.condition.negate(compressor); + var self_condition_length = self.condition.print_to_string().length; + var negated_length = negated.print_to_string().length; + var negated_is_best = negated_length < self_condition_length; + if (self.alternative && negated_is_best) { + negated_is_best = false; // because we already do the switch here. + // no need to swap values of self_condition_length and negated_length + // here because they are only used in an equality comparison later on. + self.condition = negated; + var tmp = self.body; + self.body = self.alternative; + self.alternative = is_empty(tmp) ? null : tmp; + } + var body_defuns = []; + var body_var_defs = []; + var body_refs = []; + var body_exprs = sequencesize(self.body, body_defuns, body_var_defs, body_refs); + var alt_defuns = []; + var alt_var_defs = []; + var alt_refs = []; + var alt_exprs = sequencesize(self.alternative, alt_defuns, alt_var_defs, alt_refs); + if (body_exprs instanceof AST_BlockStatement || alt_exprs instanceof AST_BlockStatement) { + var body = [], var_defs = []; + if (body_exprs) { + [].push.apply(body, body_defuns); + [].push.apply(var_defs, body_var_defs); + if (body_exprs instanceof AST_BlockStatement) { + self.body = body_exprs; + } else if (body_exprs.length == 0) { + self.body = make_node(AST_EmptyStatement, self.body); + } else { + self.body = make_node(AST_SimpleStatement, self.body, { + body: make_sequence(self.body, body_exprs), + }); + } + body_refs.forEach(process_to_assign); + } + if (alt_exprs) { + [].push.apply(body, alt_defuns); + [].push.apply(var_defs, alt_var_defs); + if (alt_exprs instanceof AST_BlockStatement) { + self.alternative = alt_exprs; + } else if (alt_exprs.length == 0) { + self.alternative = null; + } else { + self.alternative = make_node(AST_SimpleStatement, self.alternative, { + body: make_sequence(self.alternative, alt_exprs), + }); + } + alt_refs.forEach(process_to_assign); + } + if (var_defs.length > 0) body.push(make_node(AST_Var, self, { definitions: var_defs })); + if (body.length > 0) { + body.push(self.transform(compressor)); + return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor); + } + } else if (body_exprs && alt_exprs) { + var body = body_defuns.concat(alt_defuns); + if (body_var_defs.length > 0 || alt_var_defs.length > 0) body.push(make_node(AST_Var, self, { + definitions: body_var_defs.concat(alt_var_defs), + })); + if (body_exprs.length == 0) { + body.push(make_node(AST_SimpleStatement, self.condition, { + body: alt_exprs.length > 0 ? make_node(AST_Binary, self, { + operator: "||", + left: self.condition, + right: make_sequence(self.alternative, alt_exprs), + }).transform(compressor) : self.condition.clone(), + }).optimize(compressor)); + } else if (alt_exprs.length == 0) { + if (self_condition_length === negated_length && !negated_is_best + && self.condition instanceof AST_Binary && self.condition.operator == "||") { + // although the code length of self.condition and negated are the same, + // negated does not require additional surrounding parentheses. + // see https://github.com/mishoo/UglifyJS/issues/979 + negated_is_best = true; + } + body.push(make_node(AST_SimpleStatement, self, { + body: make_node(AST_Binary, self, { + operator: negated_is_best ? "||" : "&&", + left: negated_is_best ? negated : self.condition, + right: make_sequence(self.body, body_exprs), + }).transform(compressor), + }).optimize(compressor)); + } else { + body.push(make_node(AST_SimpleStatement, self, { + body: make_node(AST_Conditional, self, { + condition: self.condition, + consequent: make_sequence(self.body, body_exprs), + alternative: make_sequence(self.alternative, alt_exprs), + }), + }).optimize(compressor)); + } + body_refs.forEach(process_to_assign); + alt_refs.forEach(process_to_assign); + return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor); + } + if (is_empty(self.body)) self = make_node(AST_If, self, { + condition: negated, + body: self.alternative, + alternative: null, + }); + if (self.alternative instanceof AST_Exit && self.body.TYPE == self.alternative.TYPE) { + var cons_value = self.body.value; + var alt_value = self.alternative.value; + if (!cons_value && !alt_value) return make_node(AST_BlockStatement, self, { + body: [ + make_node(AST_SimpleStatement, self, { body: self.condition }), + self.body, + ], + }).optimize(compressor); + if (cons_value && alt_value || !keep_return_void()) { + var exit = make_node(self.body.CTOR, self, { + value: make_node(AST_Conditional, self, { + condition: self.condition, + consequent: cons_value || make_node(AST_Undefined, self.body).transform(compressor), + alternative: alt_value || make_node(AST_Undefined, self.alternative).transform(compressor), + }), + }); + if (exit instanceof AST_Return) exit.in_bool = self.body.in_bool || self.alternative.in_bool; + return exit; + } + } + if (self.body instanceof AST_If && !self.body.alternative && !self.alternative) { + self = make_node(AST_If, self, { + condition: make_node(AST_Binary, self.condition, { + operator: "&&", + left: self.condition, + right: self.body.condition, + }), + body: self.body.body, + alternative: null, + }); + } + if (aborts(self.body) && self.alternative) { + var alt = self.alternative; + self.alternative = null; + return make_node(AST_BlockStatement, self, { body: [ self, alt ] }).optimize(compressor); + } + if (aborts(self.alternative)) { + var body = self.body; + self.body = self.alternative; + self.condition = negated_is_best ? negated : self.condition.negate(compressor); + self.alternative = null; + return make_node(AST_BlockStatement, self, { body: [ self, body ] }).optimize(compressor); + } + if (self.alternative) { + var body_stats = as_array(self.body); + var body_index = last_index(body_stats); + var alt_stats = as_array(self.alternative); + var alt_index = last_index(alt_stats); + for (var stats = []; body_index >= 0 && alt_index >= 0;) { + var stat = body_stats[body_index]; + var alt_stat = alt_stats[alt_index]; + if (stat.equals(alt_stat)) { + body_stats.splice(body_index--, 1); + alt_stats.splice(alt_index--, 1); + stats.unshift(merge_expression(stat, alt_stat)); + } else { + if (!(stat instanceof AST_SimpleStatement)) break; + if (!(alt_stat instanceof AST_SimpleStatement)) break; + var expr1 = stat.body.tail_node(); + var expr2 = alt_stat.body.tail_node(); + if (!expr1.equals(expr2)) break; + body_index = pop_expr(body_stats, stat.body, body_index); + alt_index = pop_expr(alt_stats, alt_stat.body, alt_index); + stats.unshift(make_node(AST_SimpleStatement, expr1, { body: merge_expression(expr1, expr2) })); + } + } + if (stats.length > 0) { + self.body = body_stats.length > 0 ? make_node(AST_BlockStatement, self, { + body: body_stats, + }) : make_node(AST_EmptyStatement, self); + self.alternative = alt_stats.length > 0 ? make_node(AST_BlockStatement, self, { + body: alt_stats, + }) : null; + stats.unshift(self); + return make_node(AST_BlockStatement, self, { body: stats }).optimize(compressor); + } + } + if (compressor.option("typeofs")) mark_locally_defined(self.condition, self.body, self.alternative); + return self; + + function as_array(node) { + return node instanceof AST_BlockStatement ? node.body : [ node ]; + } + + function keep_return_void() { + var has_finally = false, level = 0, node = compressor.self(); + do { + if (node instanceof AST_Catch) { + if (compressor.parent(level).bfinally) has_finally = true; + level++; + } else if (node instanceof AST_Finally) { + level++; + } else if (node instanceof AST_Scope) { + return has_finally && in_async_generator(node); + } else if (node instanceof AST_Try) { + if (node.bfinally) has_finally = true; + } + } while (node = compressor.parent(level++)); + } + + function last_index(stats) { + for (var index = stats.length; --index >= 0;) { + if (!is_declaration(stats[index], true)) break; + } + return index; + } + + function pop_expr(stats, body, index) { + if (body instanceof AST_Sequence) { + stats[index] = make_node(AST_SimpleStatement, body, { + body: make_sequence(body, body.expressions.slice(0, -1)), + }); + } else { + stats.splice(index--, 1); + } + return index; + } + + function sequencesize(stat, defuns, var_defs, refs) { + if (stat == null) return []; + if (stat instanceof AST_BlockStatement) { + var exprs = []; + for (var i = 0; i < stat.body.length; i++) { + var line = stat.body[i]; + if (line instanceof AST_EmptyStatement) continue; + if (line instanceof AST_Exit) { + if (i == 0) return; + if (exprs.length > 0) { + line = line.clone(); + exprs.push(line.value || make_node(AST_Undefined, line).transform(compressor)); + line.value = make_sequence(stat, exprs); + } + var block = stat.clone(); + block.body = block.body.slice(i + 1); + block.body.unshift(line); + return block; + } + if (line instanceof AST_LambdaDefinition) { + defuns.push(line); + } else if (line instanceof AST_SimpleStatement) { + if (!compressor.option("sequences") && exprs.length > 0) return; + exprs.push(line.body); + } else if (line instanceof AST_Var) { + if (!compressor.option("sequences") && exprs.length > 0) return; + line.remove_initializers(compressor, var_defs); + line.definitions.forEach(process_var_def); + } else { + return; + } + } + return exprs; + } + if (stat instanceof AST_LambdaDefinition) { + defuns.push(stat); + return []; + } + if (stat instanceof AST_EmptyStatement) return []; + if (stat instanceof AST_SimpleStatement) return [ stat.body ]; + if (stat instanceof AST_Var) { + var exprs = []; + stat.remove_initializers(compressor, var_defs); + stat.definitions.forEach(process_var_def); + return exprs; + } + + function process_var_def(var_def) { + if (!var_def.value) return; + exprs.push(make_node(AST_Assign, var_def, { + operator: "=", + left: var_def.name.convert_symbol(AST_SymbolRef, function(ref) { + refs.push(ref); + }), + right: var_def.value, + })); + } + } + }); + + OPT(AST_Switch, function(self, compressor) { + if (!compressor.option("switches")) return self; + if (!compressor.option("dead_code")) return self; + var body = []; + var branch; + var decl = []; + var default_branch; + var exact_match; + var side_effects = []; + for (var i = 0, len = self.body.length; i < len; i++) { + branch = self.body[i]; + if (branch instanceof AST_Default) { + var prev = body[body.length - 1]; + if (default_branch || is_break(branch.body[0], compressor) && (!prev || aborts(prev))) { + eliminate_branch(branch, prev); + continue; + } else { + default_branch = branch; + } + } else { + var exp = branch.expression; + var equals = make_node(AST_Binary, self, { + operator: "===", + left: self.expression, + right: exp, + }).evaluate(compressor, true); + if (!equals) { + if (exp.has_side_effects(compressor)) side_effects.push(exp); + eliminate_branch(branch, body[body.length - 1]); + continue; + } + if (!(equals instanceof AST_Node)) { + if (default_branch) { + var default_index = body.indexOf(default_branch); + body.splice(default_index, 1); + eliminate_branch(default_branch, body[default_index - 1]); + default_branch = null; + } + if (exp.has_side_effects(compressor)) { + exact_match = branch; + } else { + default_branch = branch = make_node(AST_Default, branch); + } + while (++i < len) eliminate_branch(self.body[i], branch); + } + } + if (i + 1 >= len || aborts(branch)) { + var prev = body[body.length - 1]; + var statements = branch.body; + if (aborts(prev)) switch (prev.body.length - statements.length) { + case 1: + var stat = prev.body[prev.body.length - 1]; + if (!is_break(stat, compressor)) break; + statements = statements.concat(stat); + case 0: + var prev_block = make_node(AST_BlockStatement, prev); + var next_block = make_node(AST_BlockStatement, branch, { body: statements }); + if (prev_block.equals(next_block)) prev.body = []; + } + } + if (side_effects.length) { + if (branch instanceof AST_Default) { + body.push(make_node(AST_Case, self, { expression: make_sequence(self, side_effects), body: [] })); + } else { + side_effects.push(branch.expression); + branch.expression = make_sequence(self, side_effects); + } + side_effects = []; + } + body.push(branch); + } + if (side_effects.length && !exact_match) { + body.push(make_node(AST_Case, self, { expression: make_sequence(self, side_effects), body: [] })); + } + while (branch = body[body.length - 1]) { + var stat = branch.body[branch.body.length - 1]; + if (is_break(stat, compressor)) branch.body.pop(); + if (branch === default_branch) { + if (!has_declarations_only(branch)) break; + } else if (branch.expression.has_side_effects(compressor)) { + break; + } else if (default_branch) { + if (!has_declarations_only(default_branch)) break; + if (body[body.length - 2] !== default_branch) break; + default_branch.body = default_branch.body.concat(branch.body); + branch.body = []; + } else if (!has_declarations_only(branch)) break; + eliminate_branch(branch); + if (body.pop() === default_branch) default_branch = null; + } + if (!branch) { + decl.push(make_node(AST_SimpleStatement, self.expression, { body: self.expression })); + if (side_effects.length) decl.push(make_node(AST_SimpleStatement, self, { + body: make_sequence(self, side_effects), + })); + return make_node(AST_BlockStatement, self, { body: decl }).optimize(compressor); + } + if (branch === default_branch) while (branch = body[body.length - 2]) { + if (branch instanceof AST_Default) break; + if (!has_declarations_only(branch)) break; + var exp = branch.expression; + if (exp.has_side_effects(compressor)) { + var prev = body[body.length - 3]; + if (prev && !aborts(prev)) break; + default_branch.body.unshift(make_node(AST_SimpleStatement, self, { body: exp })); + } + eliminate_branch(branch); + body.splice(-2, 1); + } + body[0].body = decl.concat(body[0].body); + self.body = body; + if (compressor.option("conditionals")) switch (body.length) { + case 1: + if (!no_break(body[0])) break; + var exp = body[0].expression; + var statements = body[0].body.slice(); + if (body[0] !== default_branch && body[0] !== exact_match) return make_node(AST_If, self, { + condition: make_node(AST_Binary, self, { + operator: "===", + left: self.expression, + right: exp, + }), + body: make_node(AST_BlockStatement, self, { body: statements }), + alternative: null, + }).optimize(compressor); + if (exp) statements.unshift(make_node(AST_SimpleStatement, exp, { body: exp })); + statements.unshift(make_node(AST_SimpleStatement, self.expression, { body: self.expression })); + return make_node(AST_BlockStatement, self, { body: statements }).optimize(compressor); + case 2: + if (!member(default_branch, body) || !no_break(body[1])) break; + var statements = body[0].body.slice(); + var exclusive = statements.length && is_break(statements[statements.length - 1], compressor); + if (exclusive) statements.pop(); + if (!all(statements, no_break)) break; + var alternative = body[1].body.length && make_node(AST_BlockStatement, body[1]); + var node = make_node(AST_If, self, { + condition: make_node(AST_Binary, self, body[0] === default_branch ? { + operator: "!==", + left: self.expression, + right: body[1].expression, + } : { + operator: "===", + left: self.expression, + right: body[0].expression, + }), + body: make_node(AST_BlockStatement, body[0], { body: statements }), + alternative: exclusive && alternative || null, + }); + if (!exclusive && alternative) node = make_node(AST_BlockStatement, self, { body: [ node, alternative ] }); + return node.optimize(compressor); + } + return self; + + function is_break(node, tw) { + return node instanceof AST_Break && tw.loopcontrol_target(node) === self; + } + + function no_break(node) { + var found = false; + var tw = new TreeWalker(function(node) { + if (found + || node instanceof AST_Lambda + || node instanceof AST_SimpleStatement) return true; + if (is_break(node, tw)) found = true; + }); + tw.push(self); + node.walk(tw); + return !found; + } + + function eliminate_branch(branch, prev) { + if (prev && !aborts(prev)) { + prev.body = prev.body.concat(branch.body); + } else { + extract_declarations_from_unreachable_code(compressor, branch, decl); + } + } + }); + + OPT(AST_Try, function(self, compressor) { + self.body = tighten_body(self.body, compressor); + if (compressor.option("dead_code")) { + if (has_declarations_only(self) + && !(self.bcatch && self.bcatch.argname && self.bcatch.argname.match_symbol(function(node) { + return node instanceof AST_SymbolCatch && !can_drop_symbol(node); + }, true))) { + var body = []; + if (self.bcatch) { + extract_declarations_from_unreachable_code(compressor, self.bcatch, body); + body.forEach(function(stat) { + if (!(stat instanceof AST_Var)) return; + stat.definitions.forEach(function(var_def) { + var def = var_def.name.definition().redefined(); + if (!def) return; + var_def.name = var_def.name.clone(); + var_def.name.thedef = def; + }); + }); + } + body.unshift(make_node(AST_BlockStatement, self).optimize(compressor)); + if (self.bfinally) { + body.push(make_node(AST_BlockStatement, self.bfinally).optimize(compressor)); + } + return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor); + } + if (self.bfinally && has_declarations_only(self.bfinally)) { + var body = make_node(AST_BlockStatement, self.bfinally).optimize(compressor); + body = self.body.concat(body); + if (!self.bcatch) return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor); + self.body = body; + self.bfinally = null; + } + } + return self; + }); + + function remove_initializers(make_value) { + return function(compressor, defns) { + var dropped = false; + this.definitions.forEach(function(defn) { + if (defn.value) dropped = true; + defn.name.match_symbol(function(node) { + if (node instanceof AST_SymbolDeclaration) defns.push(make_node(AST_VarDef, node, { + name: node, + value: make_value(compressor, node), + })); + }, true); + }); + return dropped; + }; + } + + AST_Const.DEFMETHOD("remove_initializers", remove_initializers(function(compressor, node) { + return make_node(AST_Undefined, node).optimize(compressor); + })); + AST_Let.DEFMETHOD("remove_initializers", remove_initializers(return_null)); + AST_Var.DEFMETHOD("remove_initializers", remove_initializers(return_null)); + + AST_Definitions.DEFMETHOD("to_assignments", function() { + var assignments = this.definitions.reduce(function(a, defn) { + var def = defn.name.definition(); + var value = defn.value; + if (value) { + if (value instanceof AST_Sequence) value = value.clone(); + var name = make_node(AST_SymbolRef, defn.name); + var assign = make_node(AST_Assign, defn, { + operator: "=", + left: name, + right: value, + }); + a.push(assign); + var fixed = function() { + return assign.right; + }; + fixed.assigns = [ assign ]; + fixed.direct_access = def.direct_access; + fixed.escaped = def.escaped; + name.fixed = fixed; + def.references.forEach(function(ref) { + if (!ref.fixed) return; + var assigns = ref.fixed.assigns; + if (!assigns) return; + if (assigns[0] !== defn) return; + if (assigns.length > 1 || ref.fixed.to_binary || ref.fixed.to_prefix) { + assigns[0] = assign; + } else { + ref.fixed = fixed; + if (def.fixed === ref.fixed) def.fixed = fixed; + } + }); + def.references.push(name); + } + def.assignments++; + def.eliminated++; + def.single_use = false; + return a; + }, []); + if (assignments.length == 0) return null; + return make_sequence(this, assignments); + }); + + function is_safe_lexical(def) { + return def.name != "arguments" && def.orig.length < (def.orig[0] instanceof AST_SymbolLambda ? 3 : 2); + } + + function may_overlap(compressor, def) { + if (compressor.exposed(def)) return true; + var scope = def.scope.resolve(); + for (var s = def.scope; s !== scope;) { + s = s.parent_scope; + if (s.var_names().has(def.name)) return true; + } + } + + function to_var(stat, scope) { + return make_node(AST_Var, stat, { + definitions: stat.definitions.map(function(defn) { + return make_node(AST_VarDef, defn, { + name: defn.name.convert_symbol(AST_SymbolVar, function(name, node) { + var def = name.definition(); + def.orig[def.orig.indexOf(node)] = name; + if (def.scope === scope) return; + def.scope = scope; + scope.variables.set(def.name, def); + scope.enclosed.push(def); + scope.var_names().set(def.name, true); + }), + value: defn.value, + }); + }), + }); + } + + function can_varify(compressor, sym) { + var def = sym.definition(); + return (def.fixed || def.fixed === 0) + && is_safe_lexical(def) + && same_scope(def) + && !may_overlap(compressor, def); + } + + function varify(self, compressor) { + return compressor.option("varify") && all(self.definitions, function(defn) { + return !defn.name.match_symbol(function(node) { + if (node instanceof AST_SymbolDeclaration) return !can_varify(compressor, node); + }, true); + }) ? to_var(self, compressor.find_parent(AST_Scope)) : self; + } + + OPT(AST_Const, varify); + OPT(AST_Let, varify); + + function trim_optional_chain(node, compressor) { + if (!compressor.option("optional_chains")) return; + if (node.terminal) do { + var expr = node.expression; + if (node.optional) { + var ev = fuzzy_eval(compressor, expr, true); + if (ev == null) return make_node(AST_UnaryPrefix, node, { + operator: "void", + expression: expr, + }).optimize(compressor); + if (!(ev instanceof AST_Node)) node.optional = false; + } + node = expr; + } while ((node.TYPE == "Call" || node instanceof AST_PropAccess) && !node.terminal); + } + + function lift_sequence_in_expression(node, compressor) { + var exp = node.expression; + if (!(exp instanceof AST_Sequence)) return node; + var x = exp.expressions.slice(); + var e = node.clone(); + e.expression = x.pop(); + x.push(e); + return make_sequence(node, x); + } + + function drop_unused_call_args(call, compressor, fns_with_marked_args) { + var exp = call.expression; + var fn = exp instanceof AST_SymbolRef ? exp.fixed_value() : exp; + if (!(fn instanceof AST_Lambda)) return; + if (fn.uses_arguments) return; + if (fn.pinned()) return; + if (fns_with_marked_args && fns_with_marked_args.indexOf(fn) < 0) return; + var args = call.args; + if (!all(args, function(arg) { + return !(arg instanceof AST_Spread); + })) return; + var argnames = fn.argnames; + var is_iife = fn === exp && !fn.name; + if (fn.rest) { + if (!(is_iife && compressor.option("rests"))) return; + var insert = argnames.length; + args = args.slice(0, insert); + while (args.length < insert) args.push(make_node(AST_Undefined, call).optimize(compressor)); + args.push(make_node(AST_Array, call, { elements: call.args.slice(insert) })); + argnames = argnames.concat(fn.rest); + fn.rest = null; + } else { + args = args.slice(); + argnames = argnames.slice(); + } + var pos = 0, last = 0; + var drop_defaults = is_iife && compressor.option("default_values"); + var drop_fargs = is_iife && compressor.drop_fargs(fn, call) ? function(argname, arg) { + if (!argname) return true; + if (argname instanceof AST_DestructuredArray) { + return argname.elements.length == 0 && !argname.rest && arg instanceof AST_Array; + } + if (argname instanceof AST_DestructuredObject) { + return argname.properties.length == 0 && !argname.rest && arg && !arg.may_throw_on_access(compressor); + } + return argname.unused; + } : return_false; + var side_effects = []; + for (var i = 0; i < args.length; i++) { + var argname = argnames[i]; + if (drop_defaults && argname instanceof AST_DefaultValue && args[i].is_defined(compressor)) { + argnames[i] = argname = argname.name; + } + if (!argname || argname.unused !== undefined) { + var node = args[i].drop_side_effect_free(compressor); + if (drop_fargs(argname)) { + if (argname) argnames.splice(i, 1); + args.splice(i, 1); + if (node) side_effects.push(node); + i--; + continue; + } else if (node) { + side_effects.push(node); + args[pos++] = make_sequence(call, side_effects); + side_effects = []; + } else if (argname) { + if (side_effects.length) { + args[pos++] = make_sequence(call, side_effects); + side_effects = []; + } else { + args[pos++] = make_node(AST_Number, args[i], { value: 0 }); + continue; + } + } + } else if (drop_fargs(argname, args[i])) { + var node = args[i].drop_side_effect_free(compressor); + argnames.splice(i, 1); + args.splice(i, 1); + if (node) side_effects.push(node); + i--; + continue; + } else { + side_effects.push(args[i]); + args[pos++] = make_sequence(call, side_effects); + side_effects = []; + } + last = pos; + } + for (; i < argnames.length; i++) { + if (drop_fargs(argnames[i])) argnames.splice(i--, 1); + } + fn.argnames = argnames; + args.length = last; + call.args = args; + if (!side_effects.length) return; + var arg = make_sequence(call, side_effects); + args.push(args.length < argnames.length ? make_node(AST_UnaryPrefix, call, { + operator: "void", + expression: arg, + }) : arg); + } + + function avoid_await_yield(compressor, parent_scope) { + if (!parent_scope) parent_scope = compressor.find_parent(AST_Scope); + var avoid = []; + if (is_async(parent_scope) || parent_scope instanceof AST_Toplevel && compressor.option("module")) { + avoid.push("await"); + } + if (is_generator(parent_scope)) avoid.push("yield"); + return avoid.length && makePredicate(avoid); + } + + function safe_from_await_yield(fn, avoid) { + if (!avoid) return true; + var safe = true; + var tw = new TreeWalker(function(node) { + if (!safe) return true; + if (node instanceof AST_Scope) { + if (node === fn) return; + if (is_arrow(node)) { + for (var i = 0; safe && i < node.argnames.length; i++) node.argnames[i].walk(tw); + } else if (node instanceof AST_LambdaDefinition && avoid[node.name.name]) { + safe = false; + } + return true; + } + if (node instanceof AST_Symbol && avoid[node.name] && node !== fn.name) safe = false; + }); + fn.walk(tw); + return safe; + } + + function safe_from_strict_mode(fn, compressor) { + return fn.in_strict_mode(compressor) || !compressor.has_directive("use strict"); + } + + OPT(AST_Call, function(self, compressor) { + var exp = self.expression; + var terminated = trim_optional_chain(self, compressor); + if (terminated) return terminated; + if (compressor.option("sequences")) { + if (exp instanceof AST_PropAccess) { + var seq = lift_sequence_in_expression(exp, compressor); + if (seq !== exp) { + var call = self.clone(); + call.expression = seq.expressions.pop(); + seq.expressions.push(call); + return seq.optimize(compressor); + } + } else if (!needs_unbinding(exp.tail_node())) { + var seq = lift_sequence_in_expression(self, compressor); + if (seq !== self) return seq.optimize(compressor); + } + } + if (compressor.option("unused")) drop_unused_call_args(self, compressor); + if (compressor.option("unsafe")) { + if (is_undeclared_ref(exp)) switch (exp.name) { + case "Array": + // Array(n) ---> [ , , ... , ] + if (self.args.length == 1) { + var first = self.args[0]; + if (first instanceof AST_Number) try { + var length = first.value; + if (length > 6) break; + var elements = Array(length); + for (var i = 0; i < length; i++) elements[i] = make_node(AST_Hole, self); + return make_node(AST_Array, self, { elements: elements }); + } catch (ex) { + AST_Node.warn("Invalid array length: {length} [{start}]", { + length: length, + start: self.start, + }); + break; + } + if (!first.is_boolean(compressor) && !first.is_string(compressor)) break; + } + // Array(...) ---> [ ... ] + return make_node(AST_Array, self, { elements: self.args }); + case "Object": + // Object() ---> {} + if (self.args.length == 0) return make_node(AST_Object, self, { properties: [] }); + break; + case "String": + // String() ---> "" + if (self.args.length == 0) return make_node(AST_String, self, { value: "" }); + // String(x) ---> "" + x + if (self.args.length == 1) return make_node(AST_Binary, self, { + operator: "+", + left: make_node(AST_String, self, { value: "" }), + right: self.args[0], + }).optimize(compressor); + break; + case "Number": + // Number() ---> 0 + if (self.args.length == 0) return make_node(AST_Number, self, { value: 0 }); + // Number(x) ---> +("" + x) + if (self.args.length == 1) return make_node(AST_UnaryPrefix, self, { + operator: "+", + expression: make_node(AST_Binary, self, { + operator: "+", + left: make_node(AST_String, self, { value: "" }), + right: self.args[0], + }), + }).optimize(compressor); + break; + case "Boolean": + // Boolean() ---> false + if (self.args.length == 0) return make_node(AST_False, self).optimize(compressor); + // Boolean(x) ---> !!x + if (self.args.length == 1) return make_node(AST_UnaryPrefix, self, { + operator: "!", + expression: make_node(AST_UnaryPrefix, self, { + operator: "!", + expression: self.args[0], + }), + }).optimize(compressor); + break; + case "RegExp": + // attempt to convert RegExp(...) to literal + var params = []; + if (all(self.args, function(arg) { + var value = arg.evaluate(compressor); + params.unshift(value); + return arg !== value; + })) try { + return best_of(compressor, self, make_node(AST_RegExp, self, { + value: RegExp.apply(RegExp, params), + })); + } catch (ex) { + AST_Node.warn("Error converting {this} [{start}]", self); + } + break; + } else if (exp instanceof AST_Dot) switch (exp.property) { + case "toString": + // x.toString() ---> "" + x + var expr = exp.expression; + if (self.args.length == 0 && !(expr.may_throw_on_access(compressor) || expr instanceof AST_Super)) { + return make_node(AST_Binary, self, { + operator: "+", + left: make_node(AST_String, self, { value: "" }), + right: expr, + }).optimize(compressor); + } + break; + case "join": + if (exp.expression instanceof AST_Array && self.args.length < 2) EXIT: { + var separator = self.args[0]; + // [].join() ---> "" + // [].join(x) ---> (x, "") + if (exp.expression.elements.length == 0 && !(separator instanceof AST_Spread)) { + return separator ? make_sequence(self, [ + separator, + make_node(AST_String, self, { value: "" }), + ]).optimize(compressor) : make_node(AST_String, self, { value: "" }); + } + if (separator) { + separator = separator.evaluate(compressor); + if (separator instanceof AST_Node) break EXIT; // not a constant + } + var elements = []; + var consts = []; + for (var i = 0; i < exp.expression.elements.length; i++) { + var el = exp.expression.elements[i]; + var value = el.evaluate(compressor); + if (value !== el) { + consts.push(value); + } else if (el instanceof AST_Spread) { + break EXIT; + } else { + if (consts.length > 0) { + elements.push(make_node(AST_String, self, { value: consts.join(separator) })); + consts.length = 0; + } + elements.push(el); + } + } + if (consts.length > 0) elements.push(make_node(AST_String, self, { + value: consts.join(separator), + })); + // [ x ].join() ---> "" + x + // [ x ].join(".") ---> "" + x + // [ 1, 2, 3 ].join() ---> "1,2,3" + // [ 1, 2, 3 ].join(".") ---> "1.2.3" + if (elements.length == 1) { + if (elements[0].is_string(compressor)) return elements[0]; + return make_node(AST_Binary, elements[0], { + operator: "+", + left: make_node(AST_String, self, { value: "" }), + right: elements[0], + }); + } + // [ 1, 2, a, 3 ].join("") ---> "12" + a + "3" + if (separator == "") { + var first; + if (elements[0].is_string(compressor) || elements[1].is_string(compressor)) { + first = elements.shift(); + } else { + first = make_node(AST_String, self, { value: "" }); + } + return elements.reduce(function(prev, el) { + return make_node(AST_Binary, el, { + operator: "+", + left: prev, + right: el, + }); + }, first).optimize(compressor); + } + // [ x, "foo", "bar", y ].join() ---> [ x, "foo,bar", y ].join() + // [ x, "foo", "bar", y ].join("-") ---> [ x, "foo-bar", y ].join("-") + // need this awkward cloning to not affect original element + // best_of will decide which one to get through. + var node = self.clone(); + node.expression = node.expression.clone(); + node.expression.expression = node.expression.expression.clone(); + node.expression.expression.elements = elements; + return best_of(compressor, self, node); + } + break; + case "charAt": + if (self.args.length < 2) { + var node = make_node(AST_Binary, self, { + operator: "||", + left: make_node(AST_Sub, self, { + expression: exp.expression, + property: self.args.length ? make_node(AST_Binary, self.args[0], { + operator: "|", + left: make_node(AST_Number, self, { value: 0 }), + right: self.args[0], + }) : make_node(AST_Number, self, { value: 0 }), + }).optimize(compressor), + right: make_node(AST_String, self, { value: "" }), + }); + node.is_string = return_true; + return node.optimize(compressor); + } + break; + case "apply": + if (self.args.length == 2 && self.args[1] instanceof AST_Array) { + var args = self.args[1].elements.slice(); + args.unshift(self.args[0]); + return make_node(AST_Call, self, { + expression: make_node(AST_Dot, exp, { + expression: exp.expression, + property: "call", + }), + args: args, + }).optimize(compressor); + } + break; + case "call": + var func = exp.expression; + if (func instanceof AST_SymbolRef) { + func = func.fixed_value(); + } + if (func instanceof AST_Lambda && !func.contains_this()) { + return (self.args.length ? make_sequence(self, [ + self.args[0], + make_node(AST_Call, self, { + expression: exp.expression, + args: self.args.slice(1), + }), + ]) : make_node(AST_Call, self, { + expression: exp.expression, + args: [], + })).optimize(compressor); + } + break; + } else if (compressor.option("side_effects") + && exp instanceof AST_Call + && exp.args.length == 1 + && is_undeclared_ref(exp.expression) + && exp.expression.name == "Object") { + var call = self.clone(); + call.expression = maintain_this_binding(self, exp, exp.args[0]); + return call.optimize(compressor); + } + } + if (compressor.option("unsafe_Function") + && is_undeclared_ref(exp) + && exp.name == "Function") { + // new Function() ---> function(){} + if (self.args.length == 0) return make_node(AST_Function, self, { + argnames: [], + body: [], + }).init_vars(exp.scope); + if (all(self.args, function(x) { + return x instanceof AST_String; + })) { + // quite a corner-case, but we can handle it: + // https://github.com/mishoo/UglifyJS/issues/203 + // if the code argument is a constant, then we can minify it. + try { + var code = "n(function(" + self.args.slice(0, -1).map(function(arg) { + return arg.value; + }).join() + "){" + self.args[self.args.length - 1].value + "})"; + var ast = parse(code); + var mangle = { ie: compressor.option("ie") }; + ast.figure_out_scope(mangle); + var comp = new Compressor(compressor.options); + ast = ast.transform(comp); + ast.figure_out_scope(mangle); + ast.compute_char_frequency(mangle); + ast.mangle_names(mangle); + var fun; + ast.walk(new TreeWalker(function(node) { + if (fun) return true; + if (node instanceof AST_Lambda) { + fun = node; + return true; + } + })); + var code = OutputStream(); + AST_BlockStatement.prototype._codegen.call(fun, code); + self.args = [ + make_node(AST_String, self, { + value: fun.argnames.map(function(arg) { + return arg.print_to_string(); + }).join(), + }), + make_node(AST_String, self.args[self.args.length - 1], { + value: code.get().replace(/^\{|\}$/g, "") + }), + ]; + return self; + } catch (ex) { + if (ex instanceof JS_Parse_Error) { + AST_Node.warn("Error parsing code passed to new Function [{start}]", self.args[self.args.length - 1]); + AST_Node.warn(ex.toString()); + } else { + throw ex; + } + } + } + } + var fn = exp instanceof AST_SymbolRef ? exp.fixed_value() : exp; + var parent = compressor.parent(), current = compressor.self(); + var is_func = fn instanceof AST_Lambda + && (!is_async(fn) || compressor.option("awaits") && parent instanceof AST_Await) + && (!is_generator(fn) || compressor.option("yields") && current instanceof AST_Yield && current.nested); + var stat = is_func && fn.first_statement(); + var has_default = 0, has_destructured = false; + var has_spread = !all(self.args, function(arg) { + return !(arg instanceof AST_Spread); + }); + var can_drop = is_func && all(fn.argnames, function(argname, index) { + if (has_default == 1 && self.args[index] instanceof AST_Spread) has_default = 2; + if (argname instanceof AST_DefaultValue) { + if (!has_default) has_default = 1; + var arg = has_default == 1 && self.args[index]; + if (!is_undefined(arg)) has_default = 2; + if (has_arg_refs(fn, argname.value)) return false; + argname = argname.name; + } + if (argname instanceof AST_Destructured) { + has_destructured = true; + if (has_arg_refs(fn, argname)) return false; + } + return true; + }) && !(fn.rest instanceof AST_Destructured && has_arg_refs(fn, fn.rest)); + var can_inline = can_drop + && compressor.option("inline") + && !self.is_expr_pure(compressor) + && (exp === fn || safe_from_strict_mode(fn, compressor)); + if (can_inline && stat instanceof AST_Return) { + var value = stat.value; + if (exp === fn + && !fn.name + && (!value || value.is_constant_expression()) + && safe_from_await_yield(fn, avoid_await_yield(compressor))) { + return make_sequence(self, convert_args(value)).optimize(compressor); + } + } + if (is_func && !fn.contains_this()) { + var def, value, var_assigned = false; + if (can_inline + && !fn.uses_arguments + && !fn.pinned() + && !(fn.name && fn instanceof AST_LambdaExpression) + && (exp === fn || !recursive_ref(compressor, def = exp.definition(), fn) + && fn.is_constant_expression(find_scope(compressor))) + && (value = can_flatten_body(stat))) { + var replacing = exp === fn || def.single_use && def.references.length - def.replaced == 1; + if (can_substitute_directly()) { + var args = self.args.slice(); + var refs = []; + var retValue = value.clone(true).transform(new TreeTransformer(function(node) { + if (node instanceof AST_SymbolRef) { + var def = node.definition(); + if (fn.variables.get(node.name) !== def) { + refs.push(node); + return node; + } + var index = resolve_index(def); + var arg = args[index]; + if (!arg) return make_node(AST_Undefined, self); + args[index] = null; + var parent = this.parent(); + return parent ? maintain_this_binding(parent, node, arg) : arg; + } + })); + var save_inlined = fn.inlined; + if (exp !== fn) fn.inlined = true; + var exprs = []; + args.forEach(function(arg) { + if (!arg) return; + arg = arg.clone(true); + arg.walk(new TreeWalker(function(node) { + if (node instanceof AST_SymbolRef) refs.push(node); + })); + exprs.push(arg); + }, []); + exprs.push(retValue); + var node = make_sequence(self, exprs).optimize(compressor); + fn.inlined = save_inlined; + node = maintain_this_binding(parent, current, node); + if (replacing || best_of_expression(node, self) === node) { + refs.forEach(function(ref) { + ref.scope = exp === fn ? fn.parent_scope : exp.scope; + ref.reference(); + var def = ref.definition(); + if (replacing) def.replaced++; + def.single_use = false; + }); + return node; + } else if (!node.has_side_effects(compressor)) { + self.drop_side_effect_free = function(compressor, first_in_statement) { + var self = this; + var exprs = self.args.slice(); + exprs.unshift(self.expression); + return make_sequence(self, exprs).drop_side_effect_free(compressor, first_in_statement); + }; + } + } + var arg_used, insert, in_loop, scope; + if (replacing && can_inject_symbols()) { + fn._squeezed = true; + if (exp !== fn) fn.parent_scope = exp.scope; + var node = make_sequence(self, flatten_fn()).optimize(compressor); + return maintain_this_binding(parent, current, node); + } + } + if (compressor.option("side_effects") + && can_drop + && all(fn.body, is_empty) + && (fn === exp ? fn_name_unused(fn, compressor) : !has_default && !has_destructured && !fn.rest) + && !(is_arrow(fn) && fn.value) + && safe_from_await_yield(fn, avoid_await_yield(compressor))) { + return make_sequence(self, convert_args()).optimize(compressor); + } + } + if (compressor.option("drop_console")) { + if (exp instanceof AST_PropAccess) { + var name = exp.expression; + while (name.expression) { + name = name.expression; + } + if (is_undeclared_ref(name) && name.name == "console") { + return make_node(AST_Undefined, self).optimize(compressor); + } + } + } + if (compressor.option("negate_iife") && parent instanceof AST_SimpleStatement && is_iife_call(current)) { + return self.negate(compressor, true); + } + return try_evaluate(compressor, self); + + function make_void_lhs(orig) { + return make_node(AST_Sub, orig, { + expression: make_node(AST_Array, orig, { elements: [] }), + property: make_node(AST_Number, orig, { value: 0 }), + }); + } + + function convert_args(value) { + var args = self.args.slice(); + var destructured = has_default > 1 || has_destructured || fn.rest; + if (destructured || has_spread) args = [ make_node(AST_Array, self, { elements: args }) ]; + if (destructured) { + var tt = new TreeTransformer(function(node, descend) { + if (node instanceof AST_DefaultValue) return make_node(AST_DefaultValue, node, { + name: node.name.transform(tt) || make_void_lhs(node), + value: node.value, + }); + if (node instanceof AST_DestructuredArray) { + var elements = []; + node.elements.forEach(function(node, index) { + node = node.transform(tt); + if (node) elements[index] = node; + }); + fill_holes(node, elements); + return make_node(AST_DestructuredArray, node, { elements: elements }); + } + if (node instanceof AST_DestructuredObject) { + var properties = [], side_effects = []; + node.properties.forEach(function(prop) { + var key = prop.key; + var value = prop.value.transform(tt); + if (value) { + if (side_effects.length) { + if (!(key instanceof AST_Node)) key = make_node_from_constant(key, prop); + side_effects.push(key); + key = make_sequence(node, side_effects); + side_effects = []; + } + properties.push(make_node(AST_DestructuredKeyVal, prop, { + key: key, + value: value, + })); + } else if (key instanceof AST_Node) { + side_effects.push(key); + } + }); + if (side_effects.length) properties.push(make_node(AST_DestructuredKeyVal, node, { + key: make_sequence(node, side_effects), + value: make_void_lhs(node), + })); + return make_node(AST_DestructuredObject, node, { properties: properties }); + } + if (node instanceof AST_SymbolFunarg) return null; + }); + var lhs = []; + fn.argnames.forEach(function(argname, index) { + argname = argname.transform(tt); + if (argname) lhs[index] = argname; + }); + var rest = fn.rest && fn.rest.transform(tt); + if (rest) lhs.length = fn.argnames.length; + fill_holes(fn, lhs); + args[0] = make_node(AST_Assign, self, { + operator: "=", + left: make_node(AST_DestructuredArray, fn, { + elements: lhs, + rest: rest, + }), + right: args[0], + }); + } else fn.argnames.forEach(function(argname) { + if (argname instanceof AST_DefaultValue) args.push(argname.value); + }); + args.push(value || make_node(AST_Undefined, self)); + return args; + } + + function noop_value() { + return self.call_only ? make_node(AST_Number, self, { value: 0 }) : make_node(AST_Undefined, self); + } + + function return_value(stat) { + if (!stat) return noop_value(); + if (stat instanceof AST_Return) return stat.value || noop_value(); + if (stat instanceof AST_SimpleStatement) { + return self.call_only ? stat.body : make_node(AST_UnaryPrefix, stat, { + operator: "void", + expression: stat.body, + }); + } + } + + function can_flatten_body(stat) { + var len = fn.body.length; + if (len < 2) { + stat = return_value(stat); + if (stat) return stat; + } + if (compressor.option("inline") < 3) return false; + stat = null; + for (var i = 0; i < len; i++) { + var line = fn.body[i]; + if (line instanceof AST_Var) { + if (var_assigned) { + if (!stat) continue; + if (!(stat instanceof AST_SimpleStatement)) return false; + if (!declarations_only(line)) stat = null; + } else if (!declarations_only(line)) { + if (stat && !(stat instanceof AST_SimpleStatement)) return false; + stat = null; + var_assigned = true; + } + } else if (line instanceof AST_AsyncDefun + || line instanceof AST_Defun + || line instanceof AST_EmptyStatement) { + continue; + } else if (stat) { + return false; + } else { + stat = line; + } + } + return return_value(stat); + } + + function resolve_index(def) { + for (var i = fn.argnames.length; --i >= 0;) { + if (fn.argnames[i].definition() === def) return i; + } + } + + function can_substitute_directly() { + if (has_default || has_destructured || has_spread || var_assigned || fn.rest) return; + if (compressor.option("inline") < 2 && fn.argnames.length) return; + if (!fn.variables.all(function(def) { + return def.references.length - def.replaced < 2 && def.orig[0] instanceof AST_SymbolFunarg; + })) return; + var scope = compressor.find_parent(AST_Scope); + var abort = false; + var avoid = avoid_await_yield(compressor, scope); + var begin; + var in_order = []; + var side_effects = false; + var tw = new TreeWalker(function(node, descend) { + if (abort) return true; + if (node instanceof AST_Binary && lazy_op[node.operator] + || node instanceof AST_Conditional) { + in_order = null; + return; + } + if (node instanceof AST_Scope) return abort = true; + if (avoid && node instanceof AST_Symbol && avoid[node.name]) return abort = true; + if (node instanceof AST_SymbolRef) { + var def = node.definition(); + if (fn.variables.get(node.name) !== def) { + in_order = null; + return; + } + if (def.init instanceof AST_LambdaDefinition) return abort = true; + if (is_lhs(node, tw.parent())) return abort = true; + var index = resolve_index(def); + if (!(begin < index)) begin = index; + if (!in_order) return; + if (side_effects) { + in_order = null; + } else { + in_order.push(fn.argnames[index]); + } + return; + } + if (side_effects) return; + if (node instanceof AST_Assign && node.left instanceof AST_PropAccess) { + node.left.expression.walk(tw); + if (node.left instanceof AST_Sub) node.left.property.walk(tw); + node.right.walk(tw); + side_effects = true; + return true; + } + if (node.has_side_effects(compressor)) { + descend(); + side_effects = true; + return true; + } + }); + value.walk(tw); + if (abort) return; + var end = self.args.length; + if (in_order && fn.argnames.length >= end) { + end = fn.argnames.length; + while (end-- > begin && fn.argnames[end] === in_order.pop()); + end++; + } + return end <= begin || all(self.args.slice(begin, end), side_effects && !in_order ? function(funarg) { + return funarg.is_constant_expression(scope); + } : function(funarg) { + return !funarg.has_side_effects(compressor); + }); + } + + function var_exists(defined, name) { + return defined.has(name) || identifier_atom[name] || scope.var_names().has(name); + } + + function can_inject_args(defined, safe_to_inject) { + var abort = false; + fn.each_argname(function(arg) { + if (abort) return; + if (arg.unused) return; + if (!safe_to_inject || var_exists(defined, arg.name)) return abort = true; + arg_used.set(arg.name, true); + if (in_loop) in_loop.push(arg.definition()); + }); + return !abort; + } + + function can_inject_vars(defined, safe_to_inject) { + for (var i = 0; i < fn.body.length; i++) { + var stat = fn.body[i]; + if (stat instanceof AST_LambdaDefinition) { + var name = stat.name; + if (!safe_to_inject) return false; + if (arg_used.has(name.name)) return false; + if (var_exists(defined, name.name)) return false; + if (!all(stat.enclosed, function(def) { + return def.scope === scope || def.scope === stat || !defined.has(def.name); + })) return false; + if (in_loop) in_loop.push(name.definition()); + continue; + } + if (!(stat instanceof AST_Var)) continue; + if (!safe_to_inject) return false; + for (var j = stat.definitions.length; --j >= 0;) { + var name = stat.definitions[j].name; + if (var_exists(defined, name.name)) return false; + if (in_loop) in_loop.push(name.definition()); + } + } + return true; + } + + function can_inject_symbols() { + var defined = new Dictionary(); + var level = 0, child; + scope = current; + do { + if (scope.variables) scope.variables.each(function(def) { + defined.set(def.name, true); + }); + child = scope; + scope = compressor.parent(level++); + if (scope instanceof AST_ClassField) { + if (!scope.static) return false; + } else if (scope instanceof AST_DWLoop) { + in_loop = []; + } else if (scope instanceof AST_For) { + if (scope.init === child) continue; + in_loop = []; + } else if (scope instanceof AST_ForEnumeration) { + if (scope.init === child) continue; + if (scope.object === child) continue; + in_loop = []; + } + } while (!(scope instanceof AST_Scope)); + insert = scope.body.indexOf(child) + 1; + if (!insert) return false; + if (!safe_from_await_yield(fn, avoid_await_yield(compressor, scope))) return false; + var safe_to_inject = (exp !== fn || fn.parent_scope.resolve() === scope) && !scope.pinned(); + if (scope instanceof AST_Toplevel) { + if (compressor.toplevel.vars) { + defined.set("arguments", true); + } else { + safe_to_inject = false; + } + } + arg_used = new Dictionary(); + var inline = compressor.option("inline"); + if (!can_inject_args(defined, inline >= 2 && safe_to_inject)) return false; + if (!can_inject_vars(defined, inline >= 3 && safe_to_inject)) return false; + return !in_loop || in_loop.length == 0 || !is_reachable(fn, in_loop); + } + + function append_var(decls, expressions, name, value) { + var def = name.definition(); + if (!scope.var_names().has(name.name)) { + scope.var_names().set(name.name, true); + decls.push(make_node(AST_VarDef, name, { + name: name, + value: null, + })); + } + scope.variables.set(name.name, def); + scope.enclosed.push(def); + if (!value) return; + var sym = make_node(AST_SymbolRef, name); + def.assignments++; + def.references.push(sym); + expressions.push(make_node(AST_Assign, self, { + operator: "=", + left: sym, + right: value, + })); + } + + function flatten_args(decls, expressions) { + var len = fn.argnames.length; + for (var i = self.args.length; --i >= len;) { + expressions.push(self.args[i]); + } + var default_args = []; + for (i = len; --i >= 0;) { + var argname = fn.argnames[i]; + var name; + if (argname instanceof AST_DefaultValue) { + default_args.push(argname); + name = argname.name; + } else { + name = argname; + } + var value = self.args[i]; + if (name.unused || scope.var_names().has(name.name)) { + if (value) expressions.push(value); + } else { + var symbol = make_node(AST_SymbolVar, name); + var def = name.definition(); + def.orig.push(symbol); + def.eliminated++; + if (name.unused !== undefined) { + append_var(decls, expressions, symbol); + if (value) expressions.push(value); + } else { + if (!value && argname === name && (in_loop + || name.name == "arguments" && !is_arrow(fn) && is_arrow(scope))) { + value = make_node(AST_Undefined, self); + } + append_var(decls, expressions, symbol, value); + } + } + } + decls.reverse(); + expressions.reverse(); + for (i = default_args.length; --i >= 0;) { + var node = default_args[i]; + if (node.name.unused !== undefined) { + expressions.push(node.value); + } else { + var sym = make_node(AST_SymbolRef, node.name); + node.name.definition().references.push(sym); + expressions.push(make_node(AST_Assign, node, { + operator: "=", + left: sym, + right: node.value, + })); + } + } + } + + function flatten_destructured(decls, expressions) { + expressions.push(make_node(AST_Assign, self, { + operator: "=", + left: make_node(AST_DestructuredArray, self, { + elements: fn.argnames.map(function(argname) { + if (argname.unused) return make_node(AST_Hole, argname); + return argname.convert_symbol(AST_SymbolRef, process); + }), + rest: fn.rest && fn.rest.convert_symbol(AST_SymbolRef, process), + }), + right: make_node(AST_Array, self, { elements: self.args.slice() }), + })); + + function process(ref, name) { + if (name.unused) return make_void_lhs(name); + var def = name.definition(); + def.assignments++; + def.references.push(ref); + var symbol = make_node(AST_SymbolVar, name); + def.orig.push(symbol); + def.eliminated++; + append_var(decls, expressions, symbol); + } + } + + function flatten_vars(decls, expressions) { + var args = [ insert, 0 ]; + var decl_var = [], expr_fn = [], expr_var = [], expr_loop = [], exprs = []; + fn.body.filter(in_loop ? function(stat) { + if (!(stat instanceof AST_LambdaDefinition)) return true; + var name = make_node(AST_SymbolVar, flatten_var(stat.name)); + var def = name.definition(); + def.fixed = false; + def.orig.push(name); + def.eliminated++; + append_var(decls, expr_fn, name, to_func_expr(stat, true)); + return false; + } : function(stat) { + if (!(stat instanceof AST_LambdaDefinition)) return true; + var def = stat.name.definition(); + scope.functions.set(def.name, def); + scope.variables.set(def.name, def); + scope.enclosed.push(def); + scope.var_names().set(def.name, true); + args.push(stat); + return false; + }).forEach(function(stat) { + if (!(stat instanceof AST_Var)) { + if (stat instanceof AST_SimpleStatement) exprs.push(stat.body); + return; + } + for (var j = 0; j < stat.definitions.length; j++) { + var var_def = stat.definitions[j]; + var name = flatten_var(var_def.name); + var value = var_def.value; + if (value && exprs.length > 0) { + exprs.push(value); + value = make_sequence(var_def, exprs); + exprs = []; + } + append_var(decl_var, expr_var, name, value); + if (!in_loop) continue; + if (arg_used.has(name.name)) continue; + if (name.definition().orig.length == 1 && fn.functions.has(name.name)) continue; + expr_loop.push(init_ref(compressor, name)); + } + }); + [].push.apply(decls, decl_var); + [].push.apply(expressions, expr_loop); + [].push.apply(expressions, expr_fn); + [].push.apply(expressions, expr_var); + return args; + } + + function flatten_fn() { + var decls = []; + var expressions = []; + if (has_default > 1 || has_destructured || has_spread || fn.rest) { + flatten_destructured(decls, expressions); + } else { + flatten_args(decls, expressions); + } + var args = flatten_vars(decls, expressions); + expressions.push(value); + if (decls.length) args.push(make_node(AST_Var, fn, { definitions: decls })); + [].splice.apply(scope.body, args); + fn.enclosed.forEach(function(def) { + if (scope.var_names().has(def.name)) return; + scope.enclosed.push(def); + scope.var_names().set(def.name, true); + }); + return expressions; + } + }); + + OPT(AST_New, function(self, compressor) { + if (compressor.option("unsafe")) { + var exp = self.expression; + if (is_undeclared_ref(exp)) switch (exp.name) { + case "Array": + case "Error": + case "Function": + case "Object": + case "RegExp": + return make_node(AST_Call, self).transform(compressor); + } + } + if (compressor.option("sequences")) { + var seq = lift_sequence_in_expression(self, compressor); + if (seq !== self) return seq.optimize(compressor); + } + if (compressor.option("unused")) drop_unused_call_args(self, compressor); + return self; + }); + + // (a = b, x && a = c) ---> a = x ? c : b + // (a = b, x || a = c) ---> a = x ? b : c + function to_conditional_assignment(compressor, def, value, node) { + if (!(node instanceof AST_Binary)) return; + if (!(node.operator == "&&" || node.operator == "||")) return; + if (!(node.right instanceof AST_Assign)) return; + if (node.right.operator != "=") return; + if (!(node.right.left instanceof AST_SymbolRef)) return; + if (node.right.left.definition() !== def) return; + if (value.has_side_effects(compressor)) return; + if (!safe_from_assignment(node.left)) return; + if (!safe_from_assignment(node.right.right)) return; + def.replaced++; + return node.operator == "&&" ? make_node(AST_Conditional, node, { + condition: node.left, + consequent: node.right.right, + alternative: value, + }) : make_node(AST_Conditional, node, { + condition: node.left, + consequent: value, + alternative: node.right.right, + }); + + function safe_from_assignment(node) { + if (node.has_side_effects(compressor)) return; + var hit = false; + node.walk(new TreeWalker(function(node) { + if (hit) return true; + if (node instanceof AST_SymbolRef && node.definition() === def) return hit = true; + })); + return !hit; + } + } + + OPT(AST_Sequence, function(self, compressor) { + var expressions = filter_for_side_effects(); + var end = expressions.length - 1; + merge_assignments(); + trim_right_for_undefined(); + if (end == 0) { + self = maintain_this_binding(compressor.parent(), compressor.self(), expressions[0]); + if (!(self instanceof AST_Sequence)) self = self.optimize(compressor); + return self; + } + self.expressions = expressions; + return self; + + function filter_for_side_effects() { + if (!compressor.option("side_effects")) return self.expressions; + var expressions = []; + var first = first_in_statement(compressor); + var last = self.expressions.length - 1; + self.expressions.forEach(function(expr, index) { + if (index < last) expr = expr.drop_side_effect_free(compressor, first); + if (expr) { + merge_sequence(expressions, expr); + first = false; + } + }); + return expressions; + } + + function trim_right_for_undefined() { + if (!compressor.option("side_effects")) return; + while (end > 0 && is_undefined(expressions[end], compressor)) end--; + if (end < expressions.length - 1) { + expressions[end] = make_node(AST_UnaryPrefix, self, { + operator: "void", + expression: expressions[end], + }); + expressions.length = end + 1; + } + } + + function is_simple_assign(node) { + return node instanceof AST_Assign + && node.operator == "=" + && node.left instanceof AST_SymbolRef + && node.left.definition(); + } + + function merge_assignments() { + for (var i = 1; i < end; i++) { + var prev = expressions[i - 1]; + var def = is_simple_assign(prev); + if (!def) continue; + var expr = expressions[i]; + if (compressor.option("conditionals")) { + var cond = to_conditional_assignment(compressor, def, prev.right, expr); + if (cond) { + prev.right = cond; + expressions.splice(i--, 1); + end--; + continue; + } + } + if (compressor.option("dead_code") + && is_simple_assign(expr) === def + && expr.right.is_constant_expression(def.scope.resolve())) { + expressions[--i] = prev.right; + } + } + } + }); + + OPT(AST_UnaryPostfix, function(self, compressor) { + if (compressor.option("sequences")) { + var seq = lift_sequence_in_expression(self, compressor); + if (seq !== self) return seq.optimize(compressor); + } + return try_evaluate(compressor, self); + }); + + var SIGN_OPS = makePredicate("+ -"); + var MULTIPLICATIVE_OPS = makePredicate("* / %"); + OPT(AST_UnaryPrefix, function(self, compressor) { + var op = self.operator; + var exp = self.expression; + if (compressor.option("sequences") && can_lift()) { + var seq = lift_sequence_in_expression(self, compressor); + if (seq !== self) return seq.optimize(compressor); + } + switch (op) { + case "+": + if (!compressor.option("evaluate")) break; + if (!exp.is_number(compressor, true)) break; + var parent = compressor.parent(); + if (parent instanceof AST_UnaryPrefix && parent.operator == "delete") break; + return exp; + case "-": + if (exp instanceof AST_Infinity) exp = exp.transform(compressor); + // avoids infinite recursion of numerals + if (exp instanceof AST_Number || exp instanceof AST_Infinity) return self; + break; + case "!": + if (!compressor.option("booleans")) break; + if (exp.is_truthy()) return make_sequence(self, [ exp, make_node(AST_False, self) ]).optimize(compressor); + if (compressor.in_boolean_context()) { + // !!foo ---> foo, if we're in boolean context + if (exp instanceof AST_UnaryPrefix && exp.operator == "!") return exp.expression; + if (exp instanceof AST_Binary) { + var first = first_in_statement(compressor); + self = (first ? best_of_statement : best_of_expression)(self, exp.negate(compressor, first)); + } + } + break; + case "delete": + if (!compressor.option("evaluate")) break; + if (may_not_delete(exp)) break; + return make_sequence(self, [ exp, make_node(AST_True, self) ]).optimize(compressor); + case "typeof": + if (!compressor.option("booleans")) break; + if (!compressor.in_boolean_context()) break; + // typeof always returns a non-empty string, thus always truthy + AST_Node.warn("Boolean expression always true [{start}]", self); + var exprs = [ make_node(AST_True, self) ]; + if (!(exp instanceof AST_SymbolRef && can_drop_symbol(exp, compressor))) exprs.unshift(exp); + return make_sequence(self, exprs).optimize(compressor); + case "void": + if (!compressor.option("side_effects")) break; + exp = exp.drop_side_effect_free(compressor); + if (!exp) return make_node(AST_Undefined, self).optimize(compressor); + self.expression = exp; + return self; + } + if (compressor.option("evaluate") + && exp instanceof AST_Binary + && SIGN_OPS[op] + && MULTIPLICATIVE_OPS[exp.operator] + && (exp.left.is_constant() || !exp.right.has_side_effects(compressor))) { + return make_node(AST_Binary, self, { + operator: exp.operator, + left: make_node(AST_UnaryPrefix, exp.left, { + operator: op, + expression: exp.left, + }), + right: exp.right, + }); + } + return try_evaluate(compressor, self); + + function may_not_delete(node) { + return node instanceof AST_Infinity + || node instanceof AST_NaN + || node instanceof AST_NewTarget + || node instanceof AST_PropAccess + || node instanceof AST_SymbolRef + || node instanceof AST_Undefined; + } + + function can_lift() { + switch (op) { + case "delete": + return !may_not_delete(exp.tail_node()); + case "typeof": + return !is_undeclared_ref(exp.tail_node()); + default: + return true; + } + } + }); + + OPT(AST_Await, function(self, compressor) { + if (!compressor.option("awaits")) return self; + if (compressor.option("sequences")) { + var seq = lift_sequence_in_expression(self, compressor); + if (seq !== self) return seq.optimize(compressor); + } + if (compressor.option("side_effects")) { + var exp = self.expression; + if (exp instanceof AST_Await) return exp.optimize(compressor); + if (exp instanceof AST_UnaryPrefix && exp.expression instanceof AST_Await) return exp.optimize(compressor); + for (var level = 0, node = self, parent; parent = compressor.parent(level++); node = parent) { + if (is_arrow(parent)) { + if (parent.value === node) return exp.optimize(compressor); + } else if (parent instanceof AST_Return) { + var drop = true; + do { + node = parent; + parent = compressor.parent(level++); + if (parent instanceof AST_Try && (parent.bfinally || parent.bcatch) !== node) { + drop = false; + break; + } + } while (parent && !(parent instanceof AST_Scope)); + if (drop) return exp.optimize(compressor); + } else if (parent instanceof AST_Sequence) { + if (parent.tail_node() === node) continue; + } + break; + } + } + return self; + }); + + OPT(AST_Yield, function(self, compressor) { + if (!compressor.option("yields")) return self; + if (compressor.option("sequences")) { + var seq = lift_sequence_in_expression(self, compressor); + if (seq !== self) return seq.optimize(compressor); + } + var exp = self.expression; + if (self.nested && exp.TYPE == "Call") { + var inlined = exp.clone().optimize(compressor); + if (inlined.TYPE != "Call") return inlined; + } + return self; + }); + + AST_Binary.DEFMETHOD("lift_sequences", function(compressor) { + if (this.left instanceof AST_PropAccess) { + if (!(this.left.expression instanceof AST_Sequence)) return this; + var x = this.left.expression.expressions.slice(); + var e = this.clone(); + e.left = e.left.clone(); + e.left.expression = x.pop(); + x.push(e); + return make_sequence(this, x); + } + if (this.left instanceof AST_Sequence) { + var x = this.left.expressions.slice(); + var e = this.clone(); + e.left = x.pop(); + x.push(e); + return make_sequence(this, x); + } + if (this.right instanceof AST_Sequence) { + if (this.left.has_side_effects(compressor)) return this; + var assign = this.operator == "=" && this.left instanceof AST_SymbolRef; + var x = this.right.expressions; + var last = x.length - 1; + for (var i = 0; i < last; i++) { + if (!assign && x[i].has_side_effects(compressor)) break; + } + if (i == last) { + x = x.slice(); + var e = this.clone(); + e.right = x.pop(); + x.push(e); + return make_sequence(this, x); + } + if (i > 0) { + var e = this.clone(); + e.right = make_sequence(this.right, x.slice(i)); + x = x.slice(0, i); + x.push(e); + return make_sequence(this, x); + } + } + return this; + }); + + var indexFns = makePredicate("indexOf lastIndexOf"); + var commutativeOperators = makePredicate("== === != !== * & | ^"); + function is_object(node, plain) { + if (node instanceof AST_Assign) return !plain && node.operator == "=" && is_object(node.right); + if (node instanceof AST_New) return !plain; + if (node instanceof AST_Sequence) return is_object(node.tail_node(), plain); + if (node instanceof AST_SymbolRef) return !plain && is_object(node.fixed_value()); + return node instanceof AST_Array + || node instanceof AST_Class + || node instanceof AST_Lambda + || node instanceof AST_Object; + } + + function can_drop_op(op, rhs, compressor) { + switch (op) { + case "in": + return is_object(rhs) || compressor && compressor.option("unsafe_comps"); + case "instanceof": + if (rhs instanceof AST_SymbolRef) rhs = rhs.fixed_value(); + return is_lambda(rhs) || compressor && compressor.option("unsafe_comps"); + default: + return true; + } + } + + function needs_enqueuing(compressor, node) { + if (node.is_constant()) return true; + if (node instanceof AST_Assign) return node.operator != "=" || needs_enqueuing(compressor, node.right); + if (node instanceof AST_Binary) { + return !lazy_op[node.operator] + || needs_enqueuing(compressor, node.left) && needs_enqueuing(compressor, node.right); + } + if (node instanceof AST_Call) return is_async(node.expression); + if (node instanceof AST_Conditional) { + return needs_enqueuing(compressor, node.consequent) && needs_enqueuing(compressor, node.alternative); + } + if (node instanceof AST_Sequence) return needs_enqueuing(compressor, node.tail_node()); + if (node instanceof AST_SymbolRef) { + var fixed = node.fixed_value(); + return fixed && needs_enqueuing(compressor, fixed); + } + if (node instanceof AST_Template) return !node.tag || is_raw_tag(compressor, node.tag); + if (node instanceof AST_Unary) return true; + } + + function extract_lhs(node, compressor) { + if (node instanceof AST_Assign) return is_lhs_read_only(node.left, compressor) ? node : node.left; + if (node instanceof AST_Sequence) return extract_lhs(node.tail_node(), compressor); + if (node instanceof AST_UnaryPrefix && UNARY_POSTFIX[node.operator]) { + return is_lhs_read_only(node.expression, compressor) ? node : node.expression; + } + return node; + } + + function repeatable(compressor, node) { + if (node instanceof AST_Dot) return repeatable(compressor, node.expression); + if (node instanceof AST_Sub) { + return repeatable(compressor, node.expression) && repeatable(compressor, node.property); + } + if (node instanceof AST_Symbol) return true; + return !node.has_side_effects(compressor); + } + + function swap_chain(self, compressor) { + var rhs = self.right.tail_node(); + if (rhs !== self.right) { + var exprs = self.right.expressions.slice(0, -1); + exprs.push(rhs.left); + rhs = rhs.clone(); + rhs.left = make_sequence(self.right, exprs); + self.right = rhs; + } + self.left = make_node(AST_Binary, self, { + operator: self.operator, + left: self.left, + right: rhs.left, + start: self.left.start, + end: rhs.left.end, + }); + self.right = rhs.right; + if (compressor) { + self.left = self.left.transform(compressor); + } else if (self.operator == rhs.left.operator) { + swap_chain(self.left); + } + } + + OPT(AST_Binary, function(self, compressor) { + if (commutativeOperators[self.operator] + && self.right.is_constant() + && !self.left.is_constant() + && !(self.left instanceof AST_Binary + && PRECEDENCE[self.left.operator] >= PRECEDENCE[self.operator])) { + // if right is a constant, whatever side effects the + // left side might have could not influence the + // result. hence, force switch. + reverse(); + } + if (compressor.option("sequences")) { + var seq = self.lift_sequences(compressor); + if (seq !== self) return seq.optimize(compressor); + } + if (compressor.option("assignments") && lazy_op[self.operator]) { + var lhs = extract_lhs(self.left, compressor); + var right = self.right; + // a || (a = x) ---> a = a || x + // (a = x) && (a = y) ---> a = (a = x) && y + if (lhs instanceof AST_SymbolRef + && right instanceof AST_Assign + && right.operator == "=" + && lhs.equals(right.left)) { + lhs = lhs.clone(); + var assign = make_node(AST_Assign, self, { + operator: "=", + left: lhs, + right: make_node(AST_Binary, self, { + operator: self.operator, + left: self.left, + right: right.right, + }), + }); + if (lhs.fixed) { + lhs.fixed = function() { + return assign.right; + }; + lhs.fixed.assigns = [ assign ]; + } + var def = lhs.definition(); + def.references.push(lhs); + def.replaced++; + return assign.optimize(compressor); + } + } + if (compressor.option("comparisons")) switch (self.operator) { + case "===": + case "!==": + if (is_undefined(self.left, compressor) && self.right.is_defined(compressor)) { + AST_Node.warn("Expression always defined [{start}]", self); + return make_sequence(self, [ + self.right, + make_node(self.operator == "===" ? AST_False : AST_True, self), + ]).optimize(compressor); + } + var is_strict_comparison = true; + if ((self.left.is_string(compressor) && self.right.is_string(compressor)) || + (self.left.is_number(compressor) && self.right.is_number(compressor)) || + (self.left.is_boolean(compressor) && self.right.is_boolean(compressor)) || + repeatable(compressor, self.left) && self.left.equals(self.right)) { + self.operator = self.operator.slice(0, 2); + } + // XXX: intentionally falling down to the next case + case "==": + case "!=": + // void 0 == x ---> null == x + if (!is_strict_comparison && is_undefined(self.left, compressor)) { + self.left = make_node(AST_Null, self.left); + } + // "undefined" == typeof x ---> undefined === x + else if (compressor.option("typeofs") + && self.left instanceof AST_String + && self.left.value == "undefined" + && self.right instanceof AST_UnaryPrefix + && self.right.operator == "typeof") { + var expr = self.right.expression; + if (expr instanceof AST_SymbolRef ? expr.is_declared(compressor) + : !(expr instanceof AST_PropAccess && compressor.option("ie"))) { + self.right = expr; + self.left = make_node(AST_Undefined, self.left).optimize(compressor); + if (self.operator.length == 2) self.operator += "="; + } + } + // obj !== obj ---> false + else if (self.left instanceof AST_SymbolRef + && self.right instanceof AST_SymbolRef + && self.left.definition() === self.right.definition() + && is_object(self.left)) { + return make_node(self.operator[0] == "=" ? AST_True : AST_False, self).optimize(compressor); + } + break; + case "&&": + case "||": + // void 0 !== x && null !== x ---> null != x + // void 0 === x || null === x ---> null == x + var left = self.left; + if (!(left instanceof AST_Binary)) break; + if (left.operator != (self.operator == "&&" ? "!==" : "===")) break; + if (!(self.right instanceof AST_Binary)) break; + if (left.operator != self.right.operator) break; + if (is_undefined(left.left, compressor) && self.right.left instanceof AST_Null + || left.left instanceof AST_Null && is_undefined(self.right.left, compressor)) { + var expr = left.right; + if (expr instanceof AST_Assign && expr.operator == "=") expr = expr.left; + if (expr.has_side_effects(compressor)) break; + if (!expr.equals(self.right.right)) break; + left.operator = left.operator.slice(0, -1); + left.left = make_node(AST_Null, self); + return left; + } + break; + } + var in_bool = false; + var parent = compressor.parent(); + if (compressor.option("booleans")) { + var lhs = extract_lhs(self.left, compressor); + if (lazy_op[self.operator] && !lhs.has_side_effects(compressor)) { + // a || a ---> a + // (a = x) && a --> a = x + if (lhs.equals(self.right)) { + return maintain_this_binding(parent, compressor.self(), self.left).optimize(compressor); + } + mark_duplicate_condition(compressor, lhs); + } + in_bool = compressor.in_boolean_context(); + } + if (in_bool) switch (self.operator) { + case "+": + var ev = self.left.evaluate(compressor, true); + if (ev && typeof ev == "string" || (ev = self.right.evaluate(compressor, true)) && typeof ev == "string") { + AST_Node.warn("+ in boolean context always true [{start}]", self); + var exprs = []; + if (self.left.evaluate(compressor) instanceof AST_Node) exprs.push(self.left); + if (self.right.evaluate(compressor) instanceof AST_Node) exprs.push(self.right); + if (exprs.length < 2) { + exprs.push(make_node(AST_True, self)); + return make_sequence(self, exprs).optimize(compressor); + } + self.truthy = true; + } + break; + case "==": + if (self.left instanceof AST_String && self.left.value == "" && self.right.is_string(compressor)) { + return make_node(AST_UnaryPrefix, self, { + operator: "!", + expression: self.right, + }).optimize(compressor); + } + break; + case "!=": + if (self.left instanceof AST_String && self.left.value == "" && self.right.is_string(compressor)) { + return self.right.optimize(compressor); + } + break; + } + if (compressor.option("comparisons") && self.is_boolean(compressor)) { + if (parent.TYPE != "Binary") { + var negated = make_node(AST_UnaryPrefix, self, { + operator: "!", + expression: self.negate(compressor), + }); + if (best_of(compressor, self, negated) === negated) return negated; + } + switch (self.operator) { + case ">": reverse("<"); break; + case ">=": reverse("<="); break; + } + } + if (compressor.option("conditionals") && lazy_op[self.operator]) { + if (self.left instanceof AST_Binary && self.operator == self.left.operator) { + var before = make_node(AST_Binary, self, { + operator: self.operator, + left: self.left.right, + right: self.right, + }); + var after = before.transform(compressor); + if (before !== after) { + self.left = self.left.left; + self.right = after; + } + } + // x && (y && z) ---> x && y && z + // w || (x, y || z) ---> w || (x, y) || z + var rhs = self.right.tail_node(); + if (rhs instanceof AST_Binary && self.operator == rhs.operator) swap_chain(self, compressor); + } + if (compressor.option("strings") && self.operator == "+") { + // "foo" + 42 + "" ---> "foo" + 42 + if (self.right instanceof AST_String + && self.right.value == "" + && self.left.is_string(compressor)) { + return self.left.optimize(compressor); + } + // "" + ("foo" + 42) ---> "foo" + 42 + if (self.left instanceof AST_String + && self.left.value == "" + && self.right.is_string(compressor)) { + return self.right.optimize(compressor); + } + // "" + 42 + "foo" ---> 42 + "foo" + if (self.left instanceof AST_Binary + && self.left.operator == "+" + && self.left.left instanceof AST_String + && self.left.left.value == "" + && self.right.is_string(compressor) + && (self.left.right.is_constant() || !self.right.has_side_effects(compressor))) { + self.left = self.left.right; + return self.optimize(compressor); + } + // "x" + (y + "z") ---> "x" + y + "z" + // w + (x, "y" + z) ---> w + (x, "y") + z + var rhs = self.right.tail_node(); + if (rhs instanceof AST_Binary + && self.operator == rhs.operator + && (self.left.is_string(compressor) && rhs.is_string(compressor) + || rhs.left.is_string(compressor) + && (self.left.is_constant() || !rhs.right.has_side_effects(compressor)))) { + swap_chain(self, compressor); + } + } + if (compressor.option("evaluate")) { + var associative = true; + switch (self.operator) { + case "&&": + var ll = fuzzy_eval(compressor, self.left); + if (!ll) { + AST_Node.warn("Condition left of && always false [{start}]", self); + return maintain_this_binding(parent, compressor.self(), self.left).optimize(compressor); + } else if (!(ll instanceof AST_Node)) { + AST_Node.warn("Condition left of && always true [{start}]", self); + return make_sequence(self, [ self.left, self.right ]).optimize(compressor); + } + if (!self.right.evaluate(compressor, true)) { + if (in_bool && !(self.right.evaluate(compressor) instanceof AST_Node)) { + AST_Node.warn("Boolean && always false [{start}]", self); + return make_sequence(self, [ self.left, make_node(AST_False, self) ]).optimize(compressor); + } else self.falsy = true; + } else if ((in_bool || parent.operator == "&&" && parent.left === compressor.self()) + && !(self.right.evaluate(compressor) instanceof AST_Node)) { + AST_Node.warn("Dropping side-effect-free && [{start}]", self); + return self.left.optimize(compressor); + } + // (x || false) && y ---> x ? y : false + if (self.left.operator == "||") { + var lr = fuzzy_eval(compressor, self.left.right); + if (!lr) return make_node(AST_Conditional, self, { + condition: self.left.left, + consequent: self.right, + alternative: self.left.right, + }).optimize(compressor); + } + break; + case "??": + var nullish = true; + case "||": + var ll = fuzzy_eval(compressor, self.left, nullish); + if (nullish ? ll == null : !ll) { + AST_Node.warn("Condition left of {operator} always {value} [{start}]", { + operator: self.operator, + value: nullish ? "nullish" : "false", + start: self.start, + }); + return make_sequence(self, [ self.left, self.right ]).optimize(compressor); + } else if (!(ll instanceof AST_Node)) { + AST_Node.warn("Condition left of {operator} always {value} [{start}]", { + operator: self.operator, + value: nullish ? "defined" : "true", + start: self.start, + }); + return maintain_this_binding(parent, compressor.self(), self.left).optimize(compressor); + } + var rr; + if (!nullish && (rr = self.right.evaluate(compressor, true)) && !(rr instanceof AST_Node)) { + if (in_bool && !(self.right.evaluate(compressor) instanceof AST_Node)) { + AST_Node.warn("Boolean || always true [{start}]", self); + return make_sequence(self, [ self.left, make_node(AST_True, self) ]).optimize(compressor); + } else self.truthy = true; + } else if ((in_bool || parent.operator == "||" && parent.left === compressor.self()) + && !self.right.evaluate(compressor)) { + AST_Node.warn("Dropping side-effect-free {operator} [{start}]", self); + return self.left.optimize(compressor); + } + // x && true || y ---> x ? true : y + if (!nullish && self.left.operator == "&&") { + var lr = fuzzy_eval(compressor, self.left.right); + if (lr && !(lr instanceof AST_Node)) return make_node(AST_Conditional, self, { + condition: self.left.left, + consequent: self.left.right, + alternative: self.right, + }).optimize(compressor); + } + break; + case "+": + // "foo" + ("bar" + x) ---> "foobar" + x + if (self.left instanceof AST_Constant + && self.right instanceof AST_Binary + && self.right.operator == "+" + && self.right.left instanceof AST_Constant + && self.right.is_string(compressor)) { + self = make_node(AST_Binary, self, { + operator: "+", + left: make_node(AST_String, self.left, { + value: "" + self.left.value + self.right.left.value, + start: self.left.start, + end: self.right.left.end, + }), + right: self.right.right, + }); + } + // (x + "foo") + "bar" ---> x + "foobar" + if (self.right instanceof AST_Constant + && self.left instanceof AST_Binary + && self.left.operator == "+" + && self.left.right instanceof AST_Constant + && self.left.is_string(compressor)) { + self = make_node(AST_Binary, self, { + operator: "+", + left: self.left.left, + right: make_node(AST_String, self.right, { + value: "" + self.left.right.value + self.right.value, + start: self.left.right.start, + end: self.right.end, + }), + }); + } + // a + -b ---> a - b + if (self.right instanceof AST_UnaryPrefix + && self.right.operator == "-" + && self.left.is_number(compressor)) { + self = make_node(AST_Binary, self, { + operator: "-", + left: self.left, + right: self.right.expression, + }); + break; + } + // -a + b ---> b - a + if (self.left instanceof AST_UnaryPrefix + && self.left.operator == "-" + && reversible() + && self.right.is_number(compressor)) { + self = make_node(AST_Binary, self, { + operator: "-", + left: self.right, + right: self.left.expression, + }); + break; + } + // (a + b) + 3 ---> 3 + (a + b) + if (compressor.option("unsafe_math") + && self.left instanceof AST_Binary + && PRECEDENCE[self.left.operator] == PRECEDENCE[self.operator] + && self.right.is_constant() + && (self.right.is_boolean(compressor) || self.right.is_number(compressor)) + && self.left.is_number(compressor) + && !self.left.right.is_constant() + && (self.left.left.is_boolean(compressor) || self.left.left.is_number(compressor))) { + self = make_node(AST_Binary, self, { + operator: self.left.operator, + left: make_node(AST_Binary, self, { + operator: self.operator, + left: self.right, + right: self.left.left, + }), + right: self.left.right, + }); + break; + } + case "-": + // a - -b ---> a + b + if (self.right instanceof AST_UnaryPrefix + && self.right.operator == "-" + && self.left.is_number(compressor) + && self.right.expression.is_number(compressor)) { + self = make_node(AST_Binary, self, { + operator: "+", + left: self.left, + right: self.right.expression, + }); + break; + } + case "*": + case "/": + associative = compressor.option("unsafe_math"); + // +a - b ---> a - b + // a - +b ---> a - b + if (self.operator != "+") [ "left", "right" ].forEach(function(operand) { + var node = self[operand]; + if (node instanceof AST_UnaryPrefix && node.operator == "+") { + var exp = node.expression; + if (exp.is_boolean(compressor) || exp.is_number(compressor) || exp.is_string(compressor)) { + self[operand] = exp; + } + } + }); + case "&": + case "|": + case "^": + // a + +b ---> +b + a + if (self.operator != "-" + && self.operator != "/" + && (self.left.is_boolean(compressor) || self.left.is_number(compressor)) + && (self.right.is_boolean(compressor) || self.right.is_number(compressor)) + && reversible() + && !(self.left instanceof AST_Binary + && self.left.operator != self.operator + && PRECEDENCE[self.left.operator] >= PRECEDENCE[self.operator])) { + self = best_of(compressor, self, make_node(AST_Binary, self, { + operator: self.operator, + left: self.right, + right: self.left, + }), self.right instanceof AST_Constant && !(self.left instanceof AST_Constant)); + } + if (!associative || !self.is_number(compressor)) break; + // a + (b + c) ---> (a + b) + c + if (self.right instanceof AST_Binary + && self.right.operator != "%" + && PRECEDENCE[self.right.operator] == PRECEDENCE[self.operator] + && self.right.is_number(compressor) + && (self.operator != "+" + || self.right.left.is_boolean(compressor) + || self.right.left.is_number(compressor)) + && (self.operator != "-" || !self.left.is_negative_zero()) + && (self.right.left.is_constant_expression() + || !self.right.right.has_side_effects(compressor)) + && !is_modify_array(self.right.right)) { + self = make_node(AST_Binary, self, { + operator: align(self.operator, self.right.operator), + left: make_node(AST_Binary, self.left, { + operator: self.operator, + left: self.left, + right: self.right.left, + start: self.left.start, + end: self.right.left.end, + }), + right: self.right.right, + }); + if (self.operator == "+" + && !self.right.is_boolean(compressor) + && !self.right.is_number(compressor)) { + self.right = make_node(AST_UnaryPrefix, self.right, { + operator: "+", + expression: self.right, + }); + } + } + // (2 * n) * 3 ---> 6 * n + // (n + 2) + 3 ---> n + 5 + if (self.right instanceof AST_Constant + && self.left instanceof AST_Binary + && self.left.operator != "%" + && PRECEDENCE[self.left.operator] == PRECEDENCE[self.operator] + && self.left.is_number(compressor)) { + if (self.left.left instanceof AST_Constant) { + var lhs = make_binary(self.operator, self.left.left, self.right, { + start: self.left.left.start, + end: self.right.end, + }); + self = make_binary(self.left.operator, try_evaluate(compressor, lhs), self.left.right, self); + } else if (self.left.right instanceof AST_Constant) { + var op = align(self.left.operator, self.operator); + var rhs = try_evaluate(compressor, make_binary(op, self.left.right, self.right, self.left)); + if (rhs.is_constant() + && !(self.left.operator == "-" + && self.right.value != 0 + && +rhs.value == 0 + && self.left.left.is_negative_zero())) { + self = make_binary(self.left.operator, self.left.left, rhs, self); + } + } + } + break; + case "instanceof": + if (is_lambda(self.right)) return make_sequence(self, [ + self, + make_node(AST_False, self), + ]).optimize(compressor); + break; + } + if (!(parent instanceof AST_UnaryPrefix && parent.operator == "delete")) { + if (self.left instanceof AST_Number && !self.right.is_constant()) switch (self.operator) { + // 0 + n ---> n + case "+": + if (self.left.value == 0) { + if (self.right.is_boolean(compressor)) return make_node(AST_UnaryPrefix, self, { + operator: "+", + expression: self.right, + }).optimize(compressor); + if (self.right.is_number(compressor) && !self.right.is_negative_zero()) return self.right; + } + break; + // 1 * n ---> n + case "*": + if (self.left.value == 1) return make_node(AST_UnaryPrefix, self, { + operator: "+", + expression: self.right, + }).optimize(compressor); + break; + } + if (self.right instanceof AST_Number && !self.left.is_constant()) switch (self.operator) { + // n + 0 ---> n + case "+": + if (self.right.value == 0) { + if (self.left.is_boolean(compressor)) return make_node(AST_UnaryPrefix, self, { + operator: "+", + expression: self.left, + }).optimize(compressor); + if (self.left.is_number(compressor) && !self.left.is_negative_zero()) return self.left; + } + break; + // n - 0 ---> n + case "-": + if (self.right.value == 0) return make_node(AST_UnaryPrefix, self, { + operator: "+", + expression: self.left, + }).optimize(compressor); + break; + // n / 1 ---> n + case "/": + if (self.right.value == 1) return make_node(AST_UnaryPrefix, self, { + operator: "+", + expression: self.left, + }).optimize(compressor); + break; + } + } + } + if (compressor.option("typeofs")) switch (self.operator) { + case "&&": + mark_locally_defined(self.left, self.right, null); + break; + case "||": + mark_locally_defined(self.left, null, self.right); + break; + } + if (compressor.option("unsafe")) { + var indexRight = is_indexFn(self.right); + if (in_bool + && indexRight + && (self.operator == "==" || self.operator == "!=") + && self.left instanceof AST_Number + && self.left.value == 0) { + return (self.operator == "==" ? make_node(AST_UnaryPrefix, self, { + operator: "!", + expression: self.right, + }) : self.right).optimize(compressor); + } + var indexLeft = is_indexFn(self.left); + if (compressor.option("comparisons") && is_indexOf_match_pattern()) { + var node = make_node(AST_UnaryPrefix, self, { + operator: "!", + expression: make_node(AST_UnaryPrefix, self, { + operator: "~", + expression: indexLeft ? self.left : self.right, + }), + }); + switch (self.operator) { + case "<": + if (indexLeft) break; + case "<=": + case "!=": + node = make_node(AST_UnaryPrefix, self, { + operator: "!", + expression: node, + }); + break; + } + return node.optimize(compressor); + } + } + return try_evaluate(compressor, self); + + function is_modify_array(node) { + var found = false; + node.walk(new TreeWalker(function(node) { + if (found) return true; + if (node instanceof AST_Assign) { + if (node.left instanceof AST_PropAccess) return found = true; + } else if (node instanceof AST_Unary) { + if (unary_side_effects[node.operator] && node.expression instanceof AST_PropAccess) { + return found = true; + } + } + })); + return found; + } + + function align(ref, op) { + switch (ref) { + case "-": + return op == "+" ? "-" : "+"; + case "/": + return op == "*" ? "/" : "*"; + default: + return op; + } + } + + function make_binary(op, left, right, orig) { + if (op == "+") { + if (!left.is_boolean(compressor) && !left.is_number(compressor)) { + left = make_node(AST_UnaryPrefix, left, { + operator: "+", + expression: left, + }); + } + if (!right.is_boolean(compressor) && !right.is_number(compressor)) { + right = make_node(AST_UnaryPrefix, right, { + operator: "+", + expression: right, + }); + } + } + return make_node(AST_Binary, orig, { + operator: op, + left: left, + right: right, + }); + } + + function is_indexFn(node) { + return node.TYPE == "Call" + && node.expression instanceof AST_Dot + && indexFns[node.expression.property]; + } + + function is_indexOf_match_pattern() { + switch (self.operator) { + case "<=": + // 0 <= array.indexOf(string) ---> !!~array.indexOf(string) + return indexRight && self.left instanceof AST_Number && self.left.value == 0; + case "<": + // array.indexOf(string) < 0 ---> !~array.indexOf(string) + if (indexLeft && self.right instanceof AST_Number && self.right.value == 0) return true; + // -1 < array.indexOf(string) ---> !!~array.indexOf(string) + case "==": + case "!=": + // -1 == array.indexOf(string) ---> !~array.indexOf(string) + // -1 != array.indexOf(string) ---> !!~array.indexOf(string) + if (!indexRight) return false; + return self.left instanceof AST_Number && self.left.value == -1 + || self.left instanceof AST_UnaryPrefix && self.left.operator == "-" + && self.left.expression instanceof AST_Number && self.left.expression.value == 1; + } + } + + function reversible() { + return self.left.is_constant() + || self.right.is_constant() + || !self.left.has_side_effects(compressor) + && !self.right.has_side_effects(compressor); + } + + function reverse(op) { + if (reversible()) { + if (op) self.operator = op; + var tmp = self.left; + self.left = self.right; + self.right = tmp; + } + } + }); + + OPT(AST_SymbolExport, function(self) { + return self; + }); + + function recursive_ref(compressor, def, fn) { + var level = 0, node = compressor.self(); + do { + if (node === fn) return node; + if (is_lambda(node) && node.name && node.name.definition() === def) return node; + } while (node = compressor.parent(level++)); + } + + function same_scope(def) { + var scope = def.scope.resolve(); + return all(def.references, function(ref) { + return scope === ref.scope.resolve(); + }); + } + + OPT(AST_SymbolRef, function(self, compressor) { + if (!compressor.option("ie") + && is_undeclared_ref(self) + // testing against `self.scope.uses_with` is an optimization + && !(self.scope.resolve().uses_with && compressor.find_parent(AST_With))) { + switch (self.name) { + case "undefined": + return make_node(AST_Undefined, self).optimize(compressor); + case "NaN": + return make_node(AST_NaN, self).optimize(compressor); + case "Infinity": + return make_node(AST_Infinity, self).optimize(compressor); + } + } + var parent = compressor.parent(); + if (compressor.option("reduce_vars") && is_lhs(compressor.self(), parent) !== compressor.self()) { + var def = self.definition(); + var fixed = self.fixed_value(); + var single_use = def.single_use && !(parent instanceof AST_Call && parent.is_expr_pure(compressor)); + if (single_use) { + if (is_lambda(fixed)) { + if ((def.scope !== self.scope.resolve(true) || def.in_loop) + && (!compressor.option("reduce_funcs") || def.escaped.depth == 1 || fixed.inlined)) { + single_use = false; + } else if (def.redefined()) { + single_use = false; + } else if (recursive_ref(compressor, def, fixed)) { + single_use = false; + } else if (fixed.name && fixed.name.definition() !== def) { + single_use = false; + } else if (fixed.parent_scope !== self.scope || is_funarg(def)) { + if (!safe_from_strict_mode(fixed, compressor)) { + single_use = false; + } else if ((single_use = fixed.is_constant_expression(self.scope)) == "f") { + var scope = self.scope; + do { + if (scope instanceof AST_LambdaDefinition || scope instanceof AST_LambdaExpression) { + scope.inlined = true; + } + } while (scope = scope.parent_scope); + } + } else if (fixed.name && (fixed.name.name == "await" && is_async(fixed) + || fixed.name.name == "yield" && is_generator(fixed))) { + single_use = false; + } else if (fixed.has_side_effects(compressor)) { + single_use = false; + } else if (compressor.option("ie") && fixed instanceof AST_Class) { + single_use = false; + } + if (single_use) fixed.parent_scope = self.scope; + } else if (!fixed + || def.recursive_refs > 0 + || !fixed.is_constant_expression() + || fixed.drop_side_effect_free(compressor)) { + single_use = false; + } + } + if (single_use) { + def.single_use = false; + fixed._squeezed = true; + fixed.single_use = true; + if (fixed instanceof AST_DefClass) fixed = to_class_expr(fixed); + if (fixed instanceof AST_LambdaDefinition) fixed = to_func_expr(fixed); + if (is_lambda(fixed)) { + var scopes = []; + var scope = self.scope; + do { + scopes.push(scope); + if (scope === def.scope) break; + } while (scope = scope.parent_scope); + fixed.enclosed.forEach(function(def) { + if (fixed.variables.has(def.name)) return; + for (var i = 0; i < scopes.length; i++) { + var scope = scopes[i]; + if (!push_uniq(scope.enclosed, def)) return; + scope.var_names().set(def.name, true); + } + }); + } + var value; + if (def.recursive_refs > 0) { + value = fixed.clone(true); + var defun_def = value.name.definition(); + var lambda_def = value.variables.get(value.name.name); + var name = lambda_def && lambda_def.orig[0]; + var def_fn_name, symbol_type; + if (value instanceof AST_Class) { + def_fn_name = "def_function"; + symbol_type = AST_SymbolClass; + } else { + def_fn_name = "def_variable"; + symbol_type = AST_SymbolLambda; + } + if (!(name instanceof symbol_type)) { + name = make_node(symbol_type, value.name); + name.scope = value; + value.name = name; + lambda_def = value[def_fn_name](name); + lambda_def.recursive_refs = def.recursive_refs; + } + value.walk(new TreeWalker(function(node) { + if (node instanceof AST_SymbolDeclaration) { + if (node !== name) { + var def = node.definition(); + def.orig.push(node); + def.eliminated++; + } + return; + } + if (!(node instanceof AST_SymbolRef)) return; + var def = node.definition(); + if (def === defun_def) { + node.thedef = def = lambda_def; + } else { + def.single_use = false; + var fn = node.fixed_value(); + if (is_lambda(fn) + && fn.name + && fn.name.definition() === def + && def.scope === fn.name.scope + && fixed.variables.get(fn.name.name) === def) { + fn.name = fn.name.clone(); + node.thedef = def = value.variables.get(fn.name.name) || value[def_fn_name](fn.name); + } + } + def.references.push(node); + })); + } else { + if (fixed instanceof AST_Scope) { + compressor.push(fixed); + value = fixed.optimize(compressor); + compressor.pop(); + } else { + value = fixed.optimize(compressor); + } + value = value.transform(new TreeTransformer(function(node, descend) { + if (node instanceof AST_Scope) return node; + node = node.clone(); + descend(node, this); + return node; + })); + } + def.replaced++; + return value; + } + var state; + if (fixed && (state = self.fixed || def.fixed).should_replace !== false) { + var ev, init; + if (fixed instanceof AST_This) { + if (!is_funarg(def) && same_scope(def) && !cross_class(def)) init = fixed; + } else if ((ev = fixed.evaluate(compressor, true)) !== fixed + && typeof ev != "function" + && (ev === null + || typeof ev != "object" + || compressor.option("unsafe_regexp") + && ev instanceof RegExp && !def.cross_loop && same_scope(def))) { + init = make_node_from_constant(ev, fixed); + } + if (init) { + if (state.should_replace === undefined) { + var value_length = init.optimize(compressor).print_to_string().length; + if (!has_symbol_ref(fixed)) { + value_length = Math.min(value_length, fixed.print_to_string().length); + } + var name_length = def.name.length; + if (compressor.option("unused") && !compressor.exposed(def)) { + var refs = def.references.length - def.replaced - def.assignments; + refs = Math.min(refs, def.references.filter(function(ref) { + return ref.fixed === state; + }).length); + name_length += (name_length + 2 + value_length) / Math.max(1, refs); + } + state.should_replace = value_length - Math.floor(name_length) < compressor.eval_threshold; + } + if (state.should_replace) { + var value; + if (has_symbol_ref(fixed)) { + value = init.optimize(compressor); + if (value === init) value = value.clone(true); + } else { + value = best_of_expression(init.optimize(compressor), fixed); + if (value === init || value === fixed) value = value.clone(true); + } + def.replaced++; + return value; + } + } + } + } + return self; + + function cross_class(def) { + var scope = self.scope; + while (scope !== def.scope) { + if (scope instanceof AST_Class) return true; + scope = scope.parent_scope; + } + } + + function has_symbol_ref(value) { + var found; + value.walk(new TreeWalker(function(node) { + if (node instanceof AST_SymbolRef) found = true; + if (found) return true; + })); + return found; + } + }); + + function is_raw_tag(compressor, tag) { + return compressor.option("unsafe") + && tag instanceof AST_Dot + && tag.property == "raw" + && is_undeclared_ref(tag.expression) + && tag.expression.name == "String"; + } + + function decode_template(str) { + var malformed = false; + str = str.replace(/\\(u\{[^{}]*\}?|u[\s\S]{0,4}|x[\s\S]{0,2}|[0-9]+|[\s\S])/g, function(match, seq) { + var ch = decode_escape_sequence(seq); + if (typeof ch == "string") return ch; + malformed = true; + }); + if (!malformed) return str; + } + + OPT(AST_Template, function(self, compressor) { + if (!compressor.option("templates")) return self; + var tag = self.tag; + if (!tag || is_raw_tag(compressor, tag)) { + var exprs = []; + var strs = []; + for (var i = 0, status; i < self.strings.length; i++) { + var str = self.strings[i]; + if (!tag) { + var trimmed = decode_template(str); + if (trimmed) str = escape_literal(trimmed); + } + if (i > 0) { + var node = self.expressions[i - 1]; + var value = should_join(node); + if (value) { + var prev = strs[strs.length - 1]; + var joined = prev + value + str; + var decoded; + if (tag || typeof (decoded = decode_template(joined)) == status) { + strs[strs.length - 1] = decoded ? escape_literal(decoded) : joined; + continue; + } + } + exprs.push(node); + } + strs.push(str); + if (!tag) status = typeof trimmed; + } + if (!tag && strs.length > 1) { + if (strs[strs.length - 1] == "") return make_node(AST_Binary, self, { + operator: "+", + left: make_node(AST_Template, self, { + expressions: exprs.slice(0, -1), + strings: strs.slice(0, -1), + }).transform(compressor), + right: exprs[exprs.length - 1], + }).optimize(compressor); + if (strs[0] == "") { + var left = make_node(AST_Binary, self, { + operator: "+", + left: make_node(AST_String, self, { value: "" }), + right: exprs[0], + }); + for (var i = 1; strs[i] == "" && i < exprs.length; i++) { + left = make_node(AST_Binary, self, { + operator: "+", + left: left, + right: exprs[i], + }); + } + return best_of(compressor, self, make_node(AST_Binary, self, { + operator: "+", + left: left.transform(compressor), + right: make_node(AST_Template, self, { + expressions: exprs.slice(i), + strings: strs.slice(i), + }).transform(compressor), + }).optimize(compressor)); + } + } + self.expressions = exprs; + self.strings = strs; + } + return try_evaluate(compressor, self); + + function escape_literal(str) { + return str.replace(/\r|\\|`|\${/g, function(s) { + return "\\" + (s == "\r" ? "r" : s); + }); + } + + function should_join(node) { + var ev = node.evaluate(compressor); + if (ev === node) return; + if (tag && /\r|\\|`/.test(ev)) return; + ev = escape_literal("" + ev); + if (ev.length > node.print_to_string().length + "${}".length) return; + return ev; + } + }); + + function is_atomic(lhs, self) { + return lhs instanceof AST_SymbolRef || lhs.TYPE === self.TYPE; + } + + OPT(AST_Undefined, function(self, compressor) { + if (compressor.option("unsafe_undefined")) { + var undef = find_scope(compressor).find_variable("undefined"); + if (undef) { + var ref = make_node(AST_SymbolRef, self, { + name: "undefined", + scope: undef.scope, + thedef: undef, + }); + ref.is_undefined = true; + return ref; + } + } + var lhs = is_lhs(compressor.self(), compressor.parent()); + if (lhs && is_atomic(lhs, self)) return self; + return make_node(AST_UnaryPrefix, self, { + operator: "void", + expression: make_node(AST_Number, self, { value: 0 }), + }); + }); + + OPT(AST_Infinity, function(self, compressor) { + var lhs = is_lhs(compressor.self(), compressor.parent()); + if (lhs && is_atomic(lhs, self)) return self; + if (compressor.option("keep_infinity") && !lhs && !find_scope(compressor).find_variable("Infinity")) { + return self; + } + return make_node(AST_Binary, self, { + operator: "/", + left: make_node(AST_Number, self, { value: 1 }), + right: make_node(AST_Number, self, { value: 0 }), + }); + }); + + OPT(AST_NaN, function(self, compressor) { + var lhs = is_lhs(compressor.self(), compressor.parent()); + if (lhs && is_atomic(lhs, self)) return self; + if (!lhs && !find_scope(compressor).find_variable("NaN")) return self; + return make_node(AST_Binary, self, { + operator: "/", + left: make_node(AST_Number, self, { value: 0 }), + right: make_node(AST_Number, self, { value: 0 }), + }); + }); + + function is_reachable(self, defs) { + var reachable = false; + var find_ref = new TreeWalker(function(node) { + if (reachable) return true; + if (node instanceof AST_SymbolRef && member(node.definition(), defs)) return reachable = true; + }); + var scan_scope = new TreeWalker(function(node) { + if (reachable) return true; + if (node instanceof AST_Lambda && node !== self) { + if (!(node.name || is_async(node) || is_generator(node))) { + var parent = scan_scope.parent(); + if (parent instanceof AST_Call && parent.expression === node) return; + } + node.walk(find_ref); + return true; + } + }); + self.walk(scan_scope); + return reachable; + } + + var ASSIGN_OPS = makePredicate("+ - * / % >> << >>> | ^ &"); + var ASSIGN_OPS_COMMUTATIVE = makePredicate("* | ^ &"); + OPT(AST_Assign, function(self, compressor) { + if (compressor.option("dead_code")) { + if (self.left instanceof AST_PropAccess) { + if (self.operator == "=") { + if (self.redundant) { + var exprs = [ self.left.expression ]; + if (self.left instanceof AST_Sub) exprs.push(self.left.property); + exprs.push(self.right); + return make_sequence(self, exprs).optimize(compressor); + } + if (self.left.equals(self.right) && !self.left.has_side_effects(compressor)) { + return self.right; + } + var exp = self.left.expression; + if (exp instanceof AST_Lambda + || !compressor.has_directive("use strict") + && exp instanceof AST_Constant + && !exp.may_throw_on_access(compressor)) { + return self.left instanceof AST_Dot ? self.right : make_sequence(self, [ + self.left.property, + self.right + ]).optimize(compressor); + } + } + } else if (self.left instanceof AST_SymbolRef && can_drop_symbol(self.left, compressor)) { + var parent; + if (self.operator == "=" && self.left.equals(self.right) + && !((parent = compressor.parent()) instanceof AST_UnaryPrefix && parent.operator == "delete")) { + return self.right; + } + if (self.left.is_immutable()) return strip_assignment(); + var def = self.left.definition(); + var scope = def.scope.resolve(); + var local = scope === compressor.find_parent(AST_Lambda); + var level = 0, node; + parent = compressor.self(); + if (!(scope.uses_arguments && is_funarg(def)) || compressor.has_directive("use strict")) do { + node = parent; + parent = compressor.parent(level++); + if (parent instanceof AST_Assign) { + if (parent.left instanceof AST_SymbolRef && parent.left.definition() === def) { + if (in_try(level, parent, !local)) break; + return strip_assignment(def); + } + if (parent.left.match_symbol(function(node) { + if (node instanceof AST_PropAccess) return true; + })) break; + continue; + } + if (parent instanceof AST_Exit) { + if (!local) break; + if (in_try(level, parent)) break; + if (is_reachable(scope, [ def ])) break; + return strip_assignment(def); + } + if (parent instanceof AST_SimpleStatement) { + if (!local) break; + if (is_reachable(scope, [ def ])) break; + var stat; + do { + stat = parent; + parent = compressor.parent(level++); + if (parent === scope && is_last_statement(parent.body, stat)) return strip_assignment(def); + } while (is_tail_block(stat, parent)); + break; + } + if (parent instanceof AST_VarDef) { + if (!(parent.name instanceof AST_SymbolDeclaration)) continue; + if (parent.name.definition() !== def) continue; + if (in_try(level, parent)) break; + return strip_assignment(def); + } + } while (is_tail(node, parent)); + } + } + if (compressor.option("sequences")) { + var seq = self.lift_sequences(compressor); + if (seq !== self) return seq.optimize(compressor); + } + if (compressor.option("assignments")) { + if (self.operator == "=" && self.left instanceof AST_SymbolRef && self.right instanceof AST_Binary) { + // x = expr1 OP expr2 + if (self.right.left instanceof AST_SymbolRef + && self.right.left.name == self.left.name + && ASSIGN_OPS[self.right.operator]) { + // x = x - 2 ---> x -= 2 + return make_compound(self.right.right); + } + if (self.right.right instanceof AST_SymbolRef + && self.right.right.name == self.left.name + && ASSIGN_OPS_COMMUTATIVE[self.right.operator] + && !self.right.left.has_side_effects(compressor)) { + // x = 2 & x ---> x &= 2 + return make_compound(self.right.left); + } + } + if ((self.operator == "-=" || self.operator == "+=" + && (self.left.is_boolean(compressor) || self.left.is_number(compressor))) + && self.right instanceof AST_Number + && self.right.value == 1) { + var op = self.operator.slice(0, -1); + return make_node(AST_UnaryPrefix, self, { + operator: op + op, + expression: self.left, + }); + } + } + return try_evaluate(compressor, self); + + function is_tail(node, parent) { + if (parent instanceof AST_Binary) switch (node) { + case parent.left: + return parent.right.is_constant_expression(scope); + case parent.right: + return true; + default: + return false; + } + if (parent instanceof AST_Conditional) switch (node) { + case parent.condition: + return parent.consequent.is_constant_expression(scope) + && parent.alternative.is_constant_expression(scope); + case parent.consequent: + case parent.alternative: + return true; + default: + return false; + } + if (parent instanceof AST_Sequence) { + var exprs = parent.expressions; + var stop = exprs.indexOf(node); + if (stop < 0) return false; + for (var i = exprs.length; --i > stop;) { + if (!exprs[i].is_constant_expression(scope)) return false; + } + return true; + } + return parent instanceof AST_UnaryPrefix; + } + + function is_tail_block(stat, parent) { + if (parent instanceof AST_BlockStatement) return is_last_statement(parent.body, stat); + if (parent instanceof AST_Catch) return is_last_statement(parent.body, stat); + if (parent instanceof AST_Finally) return is_last_statement(parent.body, stat); + if (parent instanceof AST_If) return parent.body === stat || parent.alternative === stat; + if (parent instanceof AST_Try) return parent.bfinally ? parent.bfinally === stat : parent.bcatch === stat; + } + + function in_try(level, node, sync) { + var right = self.right; + self.right = make_node(AST_Null, right); + var may_throw = node.may_throw(compressor); + self.right = right; + return find_try(compressor, level, node, scope, may_throw, sync); + } + + function make_compound(rhs) { + var fixed = self.left.fixed; + if (fixed) fixed.to_binary = replace_ref(function(node) { + return node.left; + }, fixed); + return make_node(AST_Assign, self, { + operator: self.right.operator + "=", + left: self.left, + right: rhs, + }); + } + + function strip_assignment(def) { + if (def) def.fixed = false; + return (self.operator != "=" ? make_node(AST_Binary, self, { + operator: self.operator.slice(0, -1), + left: self.left, + right: self.right, + }) : maintain_this_binding(compressor.parent(), self, self.right)).optimize(compressor); + } + }); + + OPT(AST_Conditional, function(self, compressor) { + if (compressor.option("sequences") && self.condition instanceof AST_Sequence) { + var expressions = self.condition.expressions.slice(); + var node = self.clone(); + node.condition = expressions.pop(); + expressions.push(node); + return make_sequence(self, expressions).optimize(compressor); + } + if (!compressor.option("conditionals")) return self; + var condition = self.condition; + if (compressor.option("booleans") && !condition.has_side_effects(compressor)) { + mark_duplicate_condition(compressor, condition); + } + condition = fuzzy_eval(compressor, condition); + if (!condition) { + AST_Node.warn("Condition always false [{start}]", self); + return make_sequence(self, [ self.condition, self.alternative ]).optimize(compressor); + } else if (!(condition instanceof AST_Node)) { + AST_Node.warn("Condition always true [{start}]", self); + return make_sequence(self, [ self.condition, self.consequent ]).optimize(compressor); + } + var first = first_in_statement(compressor); + var negated = condition.negate(compressor, first); + if ((first ? best_of_statement : best_of_expression)(condition, negated) === negated) { + self = make_node(AST_Conditional, self, { + condition: negated, + consequent: self.alternative, + alternative: self.consequent, + }); + negated = condition; + condition = self.condition; + } + var consequent = self.consequent; + var alternative = self.alternative; + var cond_lhs = extract_lhs(condition, compressor); + if (repeatable(compressor, cond_lhs)) { + // x ? x : y ---> x || y + if (cond_lhs.equals(consequent)) return make_node(AST_Binary, self, { + operator: "||", + left: condition, + right: alternative, + }).optimize(compressor); + // x ? y : x ---> x && y + if (cond_lhs.equals(alternative)) return make_node(AST_Binary, self, { + operator: "&&", + left: condition, + right: consequent, + }).optimize(compressor); + } + // if (foo) exp = something; else exp = something_else; + // | + // v + // exp = foo ? something : something_else; + var seq_tail = consequent.tail_node(); + if (seq_tail instanceof AST_Assign) { + var is_eq = seq_tail.operator == "="; + var alt_tail = is_eq ? alternative.tail_node() : alternative; + if ((is_eq || consequent === seq_tail) + && alt_tail instanceof AST_Assign + && seq_tail.operator == alt_tail.operator + && seq_tail.left.equals(alt_tail.left) + && (is_eq && seq_tail.left instanceof AST_SymbolRef + || !condition.has_side_effects(compressor) + && can_shift_lhs_of_tail(consequent) + && can_shift_lhs_of_tail(alternative))) { + return make_node(AST_Assign, self, { + operator: seq_tail.operator, + left: seq_tail.left, + right: make_node(AST_Conditional, self, { + condition: condition, + consequent: pop_lhs(consequent), + alternative: pop_lhs(alternative), + }), + }); + } + } + var alt_tail = alternative.tail_node(); + // x ? y : y ---> x, y + // x ? (a, c) : (b, c) ---> x ? a : b, c + if (seq_tail.equals(alt_tail)) return make_sequence(self, consequent.equals(alternative) ? [ + condition, + consequent, + ] : [ + make_node(AST_Conditional, self, { + condition: condition, + consequent: pop_seq(consequent), + alternative: pop_seq(alternative), + }), + alt_tail, + ]).optimize(compressor); + // x ? y.p : z.p ---> (x ? y : z).p + // x ? y(a) : z(a) ---> (x ? y : z)(a) + // x ? y.f(a) : z.f(a) ---> (x ? y : z).f(a) + var combined = combine_tail(consequent, alternative, true); + if (combined) return combined; + // x ? y(a) : y(b) ---> y(x ? a : b) + var arg_index; + if (consequent instanceof AST_Call + && alternative.TYPE == consequent.TYPE + && (arg_index = arg_diff(consequent, alternative)) >= 0 + && consequent.expression.equals(alternative.expression) + && !condition.has_side_effects(compressor) + && !consequent.expression.has_side_effects(compressor)) { + var node = consequent.clone(); + var arg = consequent.args[arg_index]; + node.args[arg_index] = arg instanceof AST_Spread ? make_node(AST_Spread, self, { + expression: make_node(AST_Conditional, self, { + condition: condition, + consequent: arg.expression, + alternative: alternative.args[arg_index].expression, + }), + }) : make_node(AST_Conditional, self, { + condition: condition, + consequent: arg, + alternative: alternative.args[arg_index], + }); + return node; + } + // x ? (y ? a : b) : b ---> x && y ? a : b + if (seq_tail instanceof AST_Conditional + && seq_tail.alternative.equals(alternative)) { + return make_node(AST_Conditional, self, { + condition: make_node(AST_Binary, self, { + left: condition, + operator: "&&", + right: fuse(consequent, seq_tail, "condition"), + }), + consequent: seq_tail.consequent, + alternative: merge_expression(seq_tail.alternative, alternative), + }); + } + // x ? (y ? a : b) : a ---> !x || y ? a : b + if (seq_tail instanceof AST_Conditional + && seq_tail.consequent.equals(alternative)) { + return make_node(AST_Conditional, self, { + condition: make_node(AST_Binary, self, { + left: negated, + operator: "||", + right: fuse(consequent, seq_tail, "condition"), + }), + consequent: merge_expression(seq_tail.consequent, alternative), + alternative: seq_tail.alternative, + }); + } + // x ? a : (y ? a : b) ---> x || y ? a : b + if (alt_tail instanceof AST_Conditional + && consequent.equals(alt_tail.consequent)) { + return make_node(AST_Conditional, self, { + condition: make_node(AST_Binary, self, { + left: condition, + operator: "||", + right: fuse(alternative, alt_tail, "condition"), + }), + consequent: merge_expression(consequent, alt_tail.consequent), + alternative: alt_tail.alternative, + }); + } + // x ? b : (y ? a : b) ---> !x && y ? a : b + if (alt_tail instanceof AST_Conditional + && consequent.equals(alt_tail.alternative)) { + return make_node(AST_Conditional, self, { + condition: make_node(AST_Binary, self, { + left: negated, + operator: "&&", + right: fuse(alternative, alt_tail, "condition"), + }), + consequent: alt_tail.consequent, + alternative: merge_expression(consequent, alt_tail.alternative), + }); + } + // x ? y && a : a ---> (!x || y) && a + if (seq_tail instanceof AST_Binary + && seq_tail.operator == "&&" + && seq_tail.right.equals(alternative)) { + return make_node(AST_Binary, self, { + operator: "&&", + left: make_node(AST_Binary, self, { + operator: "||", + left: negated, + right: fuse(consequent, seq_tail, "left"), + }), + right: merge_expression(seq_tail.right, alternative), + }).optimize(compressor); + } + // x ? y || a : a ---> x && y || a + if (seq_tail instanceof AST_Binary + && seq_tail.operator == "||" + && seq_tail.right.equals(alternative)) { + return make_node(AST_Binary, self, { + operator: "||", + left: make_node(AST_Binary, self, { + operator: "&&", + left: condition, + right: fuse(consequent, seq_tail, "left"), + }), + right: merge_expression(seq_tail.right, alternative), + }).optimize(compressor); + } + // x ? a : y && a ---> (x || y) && a + if (alt_tail instanceof AST_Binary + && alt_tail.operator == "&&" + && alt_tail.right.equals(consequent)) { + return make_node(AST_Binary, self, { + operator: "&&", + left: make_node(AST_Binary, self, { + operator: "||", + left: condition, + right: fuse(alternative, alt_tail, "left"), + }), + right: merge_expression(consequent, alt_tail.right), + }).optimize(compressor); + } + // x ? a : y || a ---> !x && y || a + if (alt_tail instanceof AST_Binary + && alt_tail.operator == "||" + && alt_tail.right.equals(consequent)) { + return make_node(AST_Binary, self, { + operator: "||", + left: make_node(AST_Binary, self, { + operator: "&&", + left: negated, + right: fuse(alternative, alt_tail, "left"), + }), + right: merge_expression(consequent, alt_tail.right), + }).optimize(compressor); + } + var in_bool = compressor.option("booleans") && compressor.in_boolean_context(); + if (is_true(consequent)) { + // c ? true : false ---> !!c + if (is_false(alternative)) return booleanize(condition); + // c ? true : x ---> !!c || x + return make_node(AST_Binary, self, { + operator: "||", + left: booleanize(condition), + right: alternative, + }).optimize(compressor); + } + if (is_false(consequent)) { + // c ? false : true ---> !c + if (is_true(alternative)) return booleanize(condition.negate(compressor)); + // c ? false : x ---> !c && x + return make_node(AST_Binary, self, { + operator: "&&", + left: booleanize(condition.negate(compressor)), + right: alternative, + }).optimize(compressor); + } + // c ? x : true ---> !c || x + if (is_true(alternative)) return make_node(AST_Binary, self, { + operator: "||", + left: booleanize(condition.negate(compressor)), + right: consequent, + }).optimize(compressor); + // c ? x : false ---> !!c && x + if (is_false(alternative)) return make_node(AST_Binary, self, { + operator: "&&", + left: booleanize(condition), + right: consequent, + }).optimize(compressor); + if (compressor.option("typeofs")) mark_locally_defined(condition, consequent, alternative); + return self; + + function booleanize(node) { + if (node.is_boolean(compressor)) return node; + // !!expression + return make_node(AST_UnaryPrefix, node, { + operator: "!", + expression: node.negate(compressor), + }); + } + + // AST_True or !0 + function is_true(node) { + return node instanceof AST_True + || in_bool + && node instanceof AST_Constant + && node.value + || (node instanceof AST_UnaryPrefix + && node.operator == "!" + && node.expression instanceof AST_Constant + && !node.expression.value); + } + // AST_False or !1 or void 0 + function is_false(node) { + return node instanceof AST_False + || in_bool + && (node instanceof AST_Constant + && !node.value + || node instanceof AST_UnaryPrefix + && node.operator == "void" + && !node.expression.has_side_effects(compressor)) + || (node instanceof AST_UnaryPrefix + && node.operator == "!" + && node.expression instanceof AST_Constant + && node.expression.value); + } + + function arg_diff(consequent, alternative) { + var a = consequent.args; + var b = alternative.args; + var len = a.length; + if (len != b.length) return -2; + for (var i = 0; i < len; i++) { + if (!a[i].equals(b[i])) { + if (a[i] instanceof AST_Spread !== b[i] instanceof AST_Spread) return -3; + for (var j = i + 1; j < len; j++) { + if (!a[j].equals(b[j])) return -2; + } + return i; + } + } + return -1; + } + + function fuse(node, tail, prop) { + if (node === tail) return tail[prop]; + var exprs = node.expressions.slice(0, -1); + exprs.push(tail[prop]); + return make_sequence(node, exprs); + } + + function is_tail_equivalent(consequent, alternative) { + if (consequent.TYPE != alternative.TYPE) return; + if (consequent.optional != alternative.optional) return; + if (consequent instanceof AST_Call) { + if (arg_diff(consequent, alternative) != -1) return; + return consequent.TYPE != "Call" + || !(consequent.expression instanceof AST_PropAccess + || alternative.expression instanceof AST_PropAccess) + || is_tail_equivalent(consequent.expression, alternative.expression); + } + if (!(consequent instanceof AST_PropAccess)) return; + var p = consequent.property; + var q = alternative.property; + return (p instanceof AST_Node ? p.equals(q) : p == q) + && !(consequent.expression instanceof AST_Super || alternative.expression instanceof AST_Super); + } + + function combine_tail(consequent, alternative, top) { + var seq_tail = consequent.tail_node(); + var alt_tail = alternative.tail_node(); + if (!is_tail_equivalent(seq_tail, alt_tail)) return !top && make_node(AST_Conditional, self, { + condition: condition, + consequent: consequent, + alternative: alternative, + }); + var node = seq_tail.clone(); + var seq_expr = fuse(consequent, seq_tail, "expression"); + var alt_expr = fuse(alternative, alt_tail, "expression"); + var combined = combine_tail(seq_expr, alt_expr); + if (seq_tail.expression instanceof AST_Sequence) { + combined = maintain_this_binding(seq_tail, seq_tail.expression, combined); + } + node.expression = combined; + return node; + } + + function can_shift_lhs_of_tail(node) { + return node === node.tail_node() || all(node.expressions.slice(0, -1), function(expr) { + return !expr.has_side_effects(compressor); + }); + } + + function pop_lhs(node) { + if (!(node instanceof AST_Sequence)) return node.right; + var exprs = node.expressions.slice(); + exprs.push(exprs.pop().right); + return make_sequence(node, exprs); + } + + function pop_seq(node) { + if (!(node instanceof AST_Sequence)) return make_node(AST_Number, node, { value: 0 }); + return make_sequence(node, node.expressions.slice(0, -1)); + } + }); + + OPT(AST_Boolean, function(self, compressor) { + if (!compressor.option("booleans")) return self; + if (compressor.in_boolean_context()) return make_node(AST_Number, self, { value: +self.value }); + var p = compressor.parent(); + if (p instanceof AST_Binary && (p.operator == "==" || p.operator == "!=")) { + AST_Node.warn("Non-strict equality against boolean: {operator} {value} [{start}]", { + operator: p.operator, + value: self.value, + start: p.start, + }); + return make_node(AST_Number, self, { value: +self.value }); + } + return make_node(AST_UnaryPrefix, self, { + operator: "!", + expression: make_node(AST_Number, self, { value: 1 - self.value }), + }); + }); + + OPT(AST_Spread, function(self, compressor) { + var exp = self.expression; + if (compressor.option("spreads") && exp instanceof AST_Array && !(compressor.parent() instanceof AST_Object)) { + return List.splice(exp.elements.map(function(node) { + return node instanceof AST_Hole ? make_node(AST_Undefined, node).optimize(compressor) : node; + })); + } + return self; + }); + + function safe_to_flatten(value, compressor) { + if (!value) return false; + var parent = compressor.parent(); + if (parent.TYPE != "Call") return true; + if (parent.expression !== compressor.self()) return true; + if (value instanceof AST_SymbolRef) { + value = value.fixed_value(); + if (!value) return false; + } + return value instanceof AST_Lambda && !value.contains_this(); + } + + OPT(AST_Sub, function(self, compressor) { + var expr = self.expression; + var prop = self.property; + var terminated = trim_optional_chain(self, compressor); + if (terminated) return terminated; + if (compressor.option("properties")) { + var key = prop.evaluate(compressor); + if (key !== prop) { + if (typeof key == "string") { + if (key == "undefined") { + key = undefined; + } else { + var value = parseFloat(key); + if (value.toString() == key) { + key = value; + } + } + } + prop = self.property = best_of_expression(prop, make_node_from_constant(key, prop).transform(compressor)); + var property = "" + key; + if (is_identifier_string(property) + && property.length <= prop.print_to_string().length + 1) { + return make_node(AST_Dot, self, { + optional: self.optional, + expression: expr, + property: property, + quoted: true, + }).optimize(compressor); + } + } + } + var parent = compressor.parent(); + var assigned = is_lhs(compressor.self(), parent); + var def, fn, fn_parent, index; + if (compressor.option("arguments") + && expr instanceof AST_SymbolRef + && is_arguments(def = expr.definition()) + && !expr.in_arg + && prop instanceof AST_Number + && Math.floor(index = prop.value) == index + && (fn = def.scope) === find_lambda() + && fn.uses_arguments < (assigned ? 2 : 3)) { + if (parent instanceof AST_UnaryPrefix && parent.operator == "delete") { + if (!def.deleted) def.deleted = []; + def.deleted[index] = true; + } + var argname = fn.argnames[index]; + if (def.deleted && def.deleted[index]) { + argname = null; + } else if (argname) { + var arg_def; + if (!(argname instanceof AST_SymbolFunarg) + || argname.name == "await" + || expr.scope.find_variable(argname.name) !== (arg_def = argname.definition())) { + argname = null; + } else if (compressor.has_directive("use strict") + || fn.name + || fn.rest + || !(fn_parent instanceof AST_Call + && index < fn_parent.args.length + && all(fn_parent.args.slice(0, index + 1), function(arg) { + return !(arg instanceof AST_Spread); + })) + || !all(fn.argnames, function(argname) { + return argname instanceof AST_SymbolFunarg; + })) { + if (has_reassigned() || arg_def.assignments || arg_def.orig.length > 1) argname = null; + } + } else if ((assigned || !has_reassigned()) + && index < fn.argnames.length + 5 + && compressor.drop_fargs(fn, fn_parent) + && !fn.rest) { + while (index >= fn.argnames.length) { + argname = fn.make_var(AST_SymbolFunarg, fn, "argument_" + fn.argnames.length); + fn.argnames.push(argname); + } + } + if (argname && find_if(function(node) { + return node.name === argname.name; + }, fn.argnames) === argname) { + if (assigned) def.reassigned--; + var sym = make_node(AST_SymbolRef, argname); + sym.reference(); + argname.unused = undefined; + return sym; + } + } + if (assigned) return self; + if (compressor.option("sequences") + && parent.TYPE != "Call" + && !(parent instanceof AST_ForEnumeration && parent.init === self)) { + var seq = lift_sequence_in_expression(self, compressor); + if (seq !== self) return seq.optimize(compressor); + } + if (key !== prop) { + var sub = self.flatten_object(property, compressor); + if (sub) { + expr = self.expression = sub.expression; + prop = self.property = sub.property; + } + } + var elements; + if (compressor.option("properties") + && compressor.option("side_effects") + && prop instanceof AST_Number + && expr instanceof AST_Array + && all(elements = expr.elements, function(value) { + return !(value instanceof AST_Spread); + })) { + var index = prop.value; + var retValue = elements[index]; + if (safe_to_flatten(retValue, compressor)) { + var is_hole = retValue instanceof AST_Hole; + var flatten = !is_hole; + var values = []; + for (var i = elements.length; --i > index;) { + var value = elements[i].drop_side_effect_free(compressor); + if (value) { + values.unshift(value); + if (flatten && value.has_side_effects(compressor)) flatten = false; + } + } + if (!flatten) values.unshift(retValue); + while (--i >= 0) { + var value = elements[i].drop_side_effect_free(compressor); + if (value) { + values.unshift(value); + } else if (is_hole) { + values.unshift(make_node(AST_Hole, elements[i])); + } else { + index--; + } + } + if (flatten) { + values.push(retValue); + return make_sequence(self, values).optimize(compressor); + } + return make_node(AST_Sub, self, { + expression: make_node(AST_Array, expr, { elements: values }), + property: make_node(AST_Number, prop, { value: index }), + }); + } + } + return try_evaluate(compressor, self); + + function find_lambda() { + var i = 0, p; + while (p = compressor.parent(i++)) { + if (p instanceof AST_Lambda) { + if (p instanceof AST_Accessor) return; + if (is_arrow(p)) continue; + fn_parent = compressor.parent(i); + return p; + } + } + } + + function has_reassigned() { + return !compressor.option("reduce_vars") || def.reassigned; + } + }); + + AST_LambdaExpression.DEFMETHOD("contains_super", function() { + var result = false; + var self = this; + self.walk(new TreeWalker(function(node) { + if (result) return true; + if (node instanceof AST_Super) return result = true; + if (node !== self && node instanceof AST_Scope && !is_arrow(node)) return true; + })); + return result; + }); + + // contains_this() + // returns false only if context bound by the specified scope (or scope + // containing the specified expression) is not referenced by `this` + (function(def) { + // scope of arrow function cannot bind to any context + def(AST_Arrow, return_false); + def(AST_AsyncArrow, return_false); + def(AST_Node, function() { + var result = false; + var self = this; + self.walk(new TreeWalker(function(node) { + if (result) return true; + if (node instanceof AST_This) return result = true; + if (node !== self && node instanceof AST_Scope && !is_arrow(node)) return true; + })); + return result; + }); + })(function(node, func) { + node.DEFMETHOD("contains_this", func); + }); + + function can_hoist_property(prop) { + return prop instanceof AST_ObjectKeyVal + && typeof prop.key == "string" + && !(prop instanceof AST_ObjectMethod && prop.value.contains_super()); + } + + AST_PropAccess.DEFMETHOD("flatten_object", function(key, compressor) { + if (!compressor.option("properties")) return; + if (key === "__proto__") return; + var self = this; + var expr = self.expression; + if (!(expr instanceof AST_Object)) return; + var props = expr.properties; + for (var i = props.length; --i >= 0;) { + var prop = props[i]; + if (prop.key !== key) continue; + if (!all(props, can_hoist_property)) return; + if (!safe_to_flatten(prop.value, compressor)) return; + var call, scope, values = []; + for (var j = 0; j < props.length; j++) { + var value = props[j].value; + if (props[j] instanceof AST_ObjectMethod) { + var arrow = !(value.uses_arguments || is_generator(value) || value.contains_this()); + if (arrow) { + if (!scope) scope = compressor.find_parent(AST_Scope); + var avoid = avoid_await_yield(compressor, scope); + value.each_argname(function(argname) { + if (avoid[argname.name]) arrow = false; + }); + } + var ctor; + if (arrow) { + ctor = is_async(value) ? AST_AsyncArrow : AST_Arrow; + } else if (i != j + || (call = compressor.parent()) instanceof AST_Call && call.expression === self) { + ctor = value.CTOR; + } else { + return; + } + value = make_node(ctor, value); + } + values.push(value); + } + return make_node(AST_Sub, self, { + expression: make_node(AST_Array, expr, { elements: values }), + property: make_node(AST_Number, self, { value: i }), + }); + } + }); + + OPT(AST_Dot, function(self, compressor) { + if (self.property == "arguments" || self.property == "caller") { + AST_Node.warn("Function.prototype.{property} not supported [{start}]", self); + } + var parent = compressor.parent(); + if (is_lhs(compressor.self(), parent)) return self; + var terminated = trim_optional_chain(self, compressor); + if (terminated) return terminated; + if (compressor.option("sequences") + && parent.TYPE != "Call" + && !(parent instanceof AST_ForEnumeration && parent.init === self)) { + var seq = lift_sequence_in_expression(self, compressor); + if (seq !== self) return seq.optimize(compressor); + } + if (compressor.option("unsafe_proto") + && self.expression instanceof AST_Dot + && self.expression.property == "prototype") { + var exp = self.expression.expression; + if (is_undeclared_ref(exp)) switch (exp.name) { + case "Array": + self.expression = make_node(AST_Array, self.expression, { elements: [] }); + break; + case "Function": + self.expression = make_node(AST_Function, self.expression, { + argnames: [], + body: [], + }).init_vars(exp.scope); + break; + case "Number": + self.expression = make_node(AST_Number, self.expression, { value: 0 }); + break; + case "Object": + self.expression = make_node(AST_Object, self.expression, { properties: [] }); + break; + case "RegExp": + self.expression = make_node(AST_RegExp, self.expression, { value: /t/ }); + break; + case "String": + self.expression = make_node(AST_String, self.expression, { value: "" }); + break; + } + } + var sub = self.flatten_object(self.property, compressor); + if (sub) return sub.optimize(compressor); + return try_evaluate(compressor, self); + }); + + OPT(AST_DestructuredArray, function(self, compressor) { + if (compressor.option("rests") && self.rest instanceof AST_DestructuredArray) { + return make_node(AST_DestructuredArray, self, { + elements: self.elements.concat(self.rest.elements), + rest: self.rest.rest, + }); + } + return self; + }); + + OPT(AST_DestructuredKeyVal, function(self, compressor) { + if (compressor.option("objects")) { + var key = self.key; + if (key instanceof AST_Node) { + key = key.evaluate(compressor); + if (key !== self.key) self.key = "" + key; + } + } + return self; + }); + + OPT(AST_Object, function(self, compressor) { + if (!compressor.option("objects")) return self; + var changed = false; + var found = false; + var generated = false; + var keep_duplicate = compressor.has_directive("use strict"); + var keys = []; + var map = new Dictionary(); + var values = []; + self.properties.forEach(function(prop) { + if (!(prop instanceof AST_Spread)) return process(prop); + found = true; + var exp = prop.expression; + if (compressor.option("spreads") && exp instanceof AST_Object && all(exp.properties, function(prop) { + if (prop instanceof AST_ObjectGetter) return false; + if (prop instanceof AST_Spread) return false; + if (prop.key !== "__proto__") return true; + if (prop instanceof AST_ObjectSetter) return true; + return !prop.value.has_side_effects(compressor); + })) { + changed = true; + exp.properties.forEach(function(prop) { + var key = prop.key; + var setter = prop instanceof AST_ObjectSetter; + if (key === "__proto__") { + if (!setter) return; + key = make_node_from_constant(key, prop); + } + process(setter ? make_node(AST_ObjectKeyVal, prop, { + key: key, + value: make_node(AST_Undefined, prop).optimize(compressor), + }) : prop); + }); + } else { + generated = true; + flush(); + values.push(prop); + } + }); + flush(); + if (!changed) return self; + if (found && generated && values.length == 1) { + var value = values[0]; + if (value instanceof AST_ObjectProperty && value.key instanceof AST_Number) { + value.key = "" + value.key.value; + } + } + return make_node(AST_Object, self, { properties: values }); + + function flush() { + keys.forEach(function(key) { + var props = map.get(key); + switch (props.length) { + case 0: + return; + case 1: + return values.push(props[0]); + } + changed = true; + var tail = keep_duplicate && !generated && props.pop(); + values.push(props.length == 1 ? props[0] : make_node(AST_ObjectKeyVal, self, { + key: props[0].key, + value: make_sequence(self, props.map(function(prop) { + return prop.value; + })), + })); + if (tail) values.push(tail); + props.length = 0; + }); + keys = []; + map = new Dictionary(); + } + + function process(prop) { + var key = prop.key; + if (key instanceof AST_Node) { + found = true; + key = key.evaluate(compressor); + if (key === prop.key || key === "__proto__") { + generated = true; + } else { + key = prop.key = "" + key; + } + } + if (can_hoist_property(prop)) { + if (prop.value.has_side_effects(compressor)) flush(); + keys.push(key); + map.add(key, prop); + } else { + flush(); + values.push(prop); + } + if (found && !generated && typeof key == "string" && RE_POSITIVE_INTEGER.test(key)) { + generated = true; + if (map.has(key)) prop = map.get(key)[0]; + prop.key = make_node(AST_Number, prop, { value: +key }); + } + } + }); + + function flatten_var(name) { + var redef = name.definition().redefined(); + if (redef) { + name = name.clone(); + name.thedef = redef; + } + return name; + } + + function has_arg_refs(fn, node) { + var found = false; + node.walk(new TreeWalker(function(node) { + if (found) return true; + if (node instanceof AST_SymbolRef && fn.variables.get(node.name) === node.definition()) { + return found = true; + } + })); + return found; + } + + function insert_assign(def, assign) { + var visited = []; + def.references.forEach(function(ref) { + var fixed = ref.fixed; + if (!fixed || !push_uniq(visited, fixed)) return; + if (fixed.assigns) { + fixed.assigns.unshift(assign); + } else { + fixed.assigns = [ assign ]; + } + }); + } + + function init_ref(compressor, name) { + var sym = make_node(AST_SymbolRef, name); + var assign = make_node(AST_Assign, name, { + operator: "=", + left: sym, + right: make_node(AST_Undefined, name).transform(compressor), + }); + var def = name.definition(); + if (def.fixed) { + sym.fixed = function() { + return assign.right; + }; + sym.fixed.assigns = [ assign ]; + insert_assign(def, assign); + } + def.assignments++; + def.references.push(sym); + return assign; + } + + (function(def) { + def(AST_Node, noop); + def(AST_Assign, noop); + def(AST_Await, function(compressor, scope, no_return, in_loop) { + if (!compressor.option("awaits")) return; + var self = this; + var inlined = self.expression.try_inline(compressor, scope, no_return, in_loop, true); + if (!inlined) return; + if (!no_return) scan_local_returns(inlined, function(node) { + node.in_bool = false; + var value = node.value; + if (value instanceof AST_Await) return; + node.value = make_node(AST_Await, self, { + expression: value || make_node(AST_Undefined, node).transform(compressor), + }); + }); + return aborts(inlined) ? inlined : make_node(AST_BlockStatement, self, { + body: [ inlined, make_node(AST_SimpleStatement, self, { + body: make_node(AST_Await, self, { expression: make_node(AST_Number, self, { value: 0 })}), + }) ], + }); + }); + def(AST_Binary, function(compressor, scope, no_return, in_loop, in_await) { + if (no_return === undefined) return; + var self = this; + var op = self.operator; + if (!lazy_op[op]) return; + var inlined = self.right.try_inline(compressor, scope, no_return, in_loop, in_await); + if (!inlined) return; + return make_node(AST_If, self, { + condition: make_condition(self.left), + body: inlined, + alternative: no_return ? null : make_node(AST_Return, self, { + value: make_node(AST_Undefined, self).transform(compressor), + }), + }); + + function make_condition(cond) { + switch (op) { + case "&&": + return cond; + case "||": + return cond.negate(compressor); + case "??": + return make_node(AST_Binary, self, { + operator: "==", + left: make_node(AST_Null, self), + right: cond, + }); + } + } + }); + def(AST_BlockStatement, function(compressor, scope, no_return, in_loop) { + if (no_return) return; + if (!this.variables) return; + var body = this.body; + var last = body.length - 1; + if (last < 0) return; + var inlined = body[last].try_inline(compressor, this, no_return, in_loop); + if (!inlined) return; + body[last] = inlined; + return this; + }); + def(AST_Call, function(compressor, scope, no_return, in_loop, in_await) { + if (compressor.option("inline") < 4) return; + var call = this; + if (call.is_expr_pure(compressor)) return; + var fn = call.expression; + if (!(fn instanceof AST_LambdaExpression)) return; + if (fn.name) return; + if (fn.uses_arguments) return; + if (fn.pinned()) return; + if (is_generator(fn)) return; + var arrow = is_arrow(fn); + if (arrow && fn.value) return; + if (fn.body[0] instanceof AST_Directive) return; + if (fn.contains_this()) return; + if (!scope) scope = find_scope(compressor); + var defined = new Dictionary(); + defined.set("NaN", true); + while (!(scope instanceof AST_Scope)) { + scope.variables.each(function(def) { + defined.set(def.name, true); + }); + scope = scope.parent_scope; + } + if (!member(scope, compressor.stack)) return; + if (scope.pinned() && fn.variables.size() > (arrow ? 0 : 1)) return; + if (scope instanceof AST_Toplevel) { + if (fn.variables.size() > (arrow ? 0 : 1)) { + if (!compressor.toplevel.vars) return; + if (fn.functions.size() > 0 && !compressor.toplevel.funcs) return; + } + defined.set("arguments", true); + } + var async = !in_await && is_async(fn); + if (async) { + if (!compressor.option("awaits")) return; + if (!is_async(scope)) return; + if (call.may_throw(compressor)) return; + } + var names = scope.var_names(); + if (in_loop) in_loop = []; + if (!fn.variables.all(function(def, name) { + if (in_loop) in_loop.push(def); + if (!defined.has(name) && !names.has(name)) return true; + return !arrow && name == "arguments" && def.orig.length == 1; + })) return; + if (in_loop && in_loop.length > 0 && is_reachable(fn, in_loop)) return; + var simple_argnames = true; + if (!all(fn.argnames, function(argname) { + var abort = false; + var tw = new TreeWalker(function(node) { + if (abort) return true; + if (node instanceof AST_DefaultValue) { + if (has_arg_refs(fn, node.value)) return abort = true; + node.name.walk(tw); + return true; + } + if (node instanceof AST_DestructuredKeyVal) { + if (node.key instanceof AST_Node && has_arg_refs(fn, node.key)) return abort = true; + node.value.walk(tw); + return true; + } + if (node instanceof AST_SymbolFunarg && !all(node.definition().orig, function(sym) { + return !(sym instanceof AST_SymbolDefun); + })) return abort = true; + }); + argname.walk(tw); + if (abort) return false; + if (!(argname instanceof AST_SymbolFunarg)) simple_argnames = false; + return true; + })) return; + if (fn.rest) { + if (has_arg_refs(fn, fn.rest)) return; + simple_argnames = false; + } + var verify_body; + if (no_return) { + verify_body = function(stat) { + var abort = false; + stat.walk(new TreeWalker(function(node) { + if (abort) return true; + if (async && (node instanceof AST_Await || node instanceof AST_ForAwaitOf) + || node instanceof AST_Return) { + return abort = true; + } + if (node instanceof AST_Scope) return true; + })); + return !abort; + }; + } else if (in_await || is_async(fn) || in_async_generator(scope)) { + verify_body = function(stat) { + var abort = false; + var find_return = new TreeWalker(function(node) { + if (abort) return true; + if (node instanceof AST_Return) return abort = true; + if (node instanceof AST_Scope) return true; + }); + stat.walk(new TreeWalker(function(node) { + if (abort) return true; + if (node instanceof AST_Try) { + if (node.bfinally && all(node.body, function(stat) { + stat.walk(find_return); + return !abort; + }) && node.bcatch) node.bcatch.walk(find_return); + return true; + } + if (node instanceof AST_Scope) return true; + })); + return !abort; + }; + } + if (verify_body && !all(fn.body, verify_body)) return; + if (!safe_from_await_yield(fn, avoid_await_yield(compressor, scope))) return; + fn.functions.each(function(def, name) { + scope.functions.set(name, def); + }); + var body = []; + fn.variables.each(function(def, name) { + if (!arrow && name == "arguments" && def.orig.length == 1) return; + names.set(name, true); + scope.enclosed.push(def); + scope.variables.set(name, def); + def.single_use = false; + if (!in_loop) return; + if (def.references.length == def.replaced) return; + if (def.orig.length == def.eliminated) return; + if (def.orig.length == 1 && fn.functions.has(name)) return; + if (!all(def.orig, function(sym) { + if (sym instanceof AST_SymbolConst) return false; + if (sym instanceof AST_SymbolFunarg) return !sym.unused && def.scope.resolve() !== fn; + if (sym instanceof AST_SymbolLet) return false; + return true; + })) return; + var sym = def.orig[0]; + if (sym instanceof AST_SymbolCatch) return; + body.push(make_node(AST_SimpleStatement, sym, { body: init_ref(compressor, flatten_var(sym)) })); + }); + var defs = Object.create(null), syms = new Dictionary(); + if (simple_argnames && all(call.args, function(arg) { + return !(arg instanceof AST_Spread); + })) { + var values = call.args.slice(); + fn.argnames.forEach(function(argname) { + var value = values.shift(); + if (argname.unused) { + if (value) body.push(make_node(AST_SimpleStatement, call, { body: value })); + return; + } + var defn = make_node(AST_VarDef, call, { + name: argname.convert_symbol(AST_SymbolVar, process), + value: value || make_node(AST_Undefined, call).transform(compressor), + }); + if (argname instanceof AST_SymbolFunarg) insert_assign(argname.definition(), defn); + body.push(make_node(AST_Var, call, { definitions: [ defn ] })); + }); + if (values.length) body.push(make_node(AST_SimpleStatement, call, { + body: make_sequence(call, values), + })); + } else { + body.push(make_node(AST_Var, call, { + definitions: [ make_node(AST_VarDef, call, { + name: make_node(AST_DestructuredArray, call, { + elements: fn.argnames.map(function(argname) { + if (argname.unused) return make_node(AST_Hole, argname); + return argname.convert_symbol(AST_SymbolVar, process); + }), + rest: fn.rest && fn.rest.convert_symbol(AST_SymbolVar, process), + }), + value: make_node(AST_Array, call, { elements: call.args.slice() }), + }) ], + })); + } + syms.each(function(orig, id) { + var def = defs[id]; + [].unshift.apply(def.orig, orig); + def.eliminated += orig.length; + }); + [].push.apply(body, in_loop ? fn.body.filter(function(stat) { + if (!(stat instanceof AST_LambdaDefinition)) return true; + var name = make_node(AST_SymbolVar, flatten_var(stat.name)); + var def = name.definition(); + def.fixed = false; + def.orig.push(name); + def.eliminated++; + body.push(make_node(AST_Var, stat, { + definitions: [ make_node(AST_VarDef, stat, { + name: name, + value: to_func_expr(stat, true), + }) ], + })); + return false; + }) : fn.body); + var inlined = make_node(AST_BlockStatement, call, { body: body }); + if (!no_return) { + if (async) scan_local_returns(inlined, function(node) { + var value = node.value; + if (is_undefined(value)) return; + node.value = make_node(AST_Await, call, { expression: value }); + }); + body.push(make_node(AST_Return, call, { + value: in_async_generator(scope) ? make_node(AST_Undefined, call).transform(compressor) : null, + })); + } + return inlined; + + function process(sym, argname) { + var def = argname.definition(); + defs[def.id] = def; + syms.add(def.id, sym); + } + }); + def(AST_Conditional, function(compressor, scope, no_return, in_loop, in_await) { + var self = this; + var body = self.consequent.try_inline(compressor, scope, no_return, in_loop, in_await); + var alt = self.alternative.try_inline(compressor, scope, no_return, in_loop, in_await); + if (!body && !alt) return; + return make_node(AST_If, self, { + condition: self.condition, + body: body || make_body(self.consequent), + alternative: alt || make_body(self.alternative), + }); + + function make_body(value) { + if (no_return) return make_node(AST_SimpleStatement, value, { body: value }); + return make_node(AST_Return, value, { value: value }); + } + }); + def(AST_For, function(compressor, scope, no_return, in_loop) { + var body = this.body.try_inline(compressor, scope, true, true); + if (body) this.body = body; + var inlined = this.init; + if (inlined) { + inlined = inlined.try_inline(compressor, scope, true, in_loop); + if (inlined) { + this.init = null; + if (inlined instanceof AST_BlockStatement) { + inlined.body.push(this); + return inlined; + } + return make_node(AST_BlockStatement, inlined, { body: [ inlined, this ] }); + } + } + return body && this; + }); + def(AST_ForEnumeration, function(compressor, scope, no_return, in_loop) { + var body = this.body.try_inline(compressor, scope, true, true); + if (body) this.body = body; + var obj = this.object; + if (obj instanceof AST_Sequence) { + var inlined = inline_sequence(compressor, scope, true, in_loop, false, obj, 1); + if (inlined) { + this.object = obj.tail_node(); + inlined.body.push(this); + return inlined; + } + } + return body && this; + }); + def(AST_If, function(compressor, scope, no_return, in_loop) { + var body = this.body.try_inline(compressor, scope, no_return, in_loop); + if (body) this.body = body; + var alt = this.alternative; + if (alt) { + alt = alt.try_inline(compressor, scope, no_return, in_loop); + if (alt) this.alternative = alt; + } + var cond = this.condition; + if (cond instanceof AST_Sequence) { + var inlined = inline_sequence(compressor, scope, true, in_loop, false, cond, 1); + if (inlined) { + this.condition = cond.tail_node(); + inlined.body.push(this); + return inlined; + } + } + return (body || alt) && this; + }); + def(AST_IterationStatement, function(compressor, scope, no_return, in_loop) { + var body = this.body.try_inline(compressor, scope, true, true); + if (!body) return; + this.body = body; + return this; + }); + def(AST_LabeledStatement, function(compressor, scope, no_return, in_loop) { + var body = this.body.try_inline(compressor, scope, no_return, in_loop); + if (!body) return; + if (this.body instanceof AST_IterationStatement && body instanceof AST_BlockStatement) { + var loop = body.body.pop(); + this.body = loop; + body.body.push(this); + return body; + } + this.body = body; + return this; + }); + def(AST_New, noop); + def(AST_Return, function(compressor, scope, no_return, in_loop) { + var value = this.value; + return value && value.try_inline(compressor, scope, undefined, in_loop === "try"); + }); + function inline_sequence(compressor, scope, no_return, in_loop, in_await, node, skip) { + var body = [], exprs = node.expressions, no_ret = no_return; + for (var i = exprs.length - (skip || 0), j = i; --i >= 0; no_ret = true, in_await = false) { + var inlined = exprs[i].try_inline(compressor, scope, no_ret, in_loop, in_await); + if (!inlined) continue; + flush(); + body.push(inlined); + } + if (body.length == 0) return; + flush(); + if (!no_return && body[0] instanceof AST_SimpleStatement) { + body[0] = make_node(AST_Return, node, { value: body[0].body }); + } + return make_node(AST_BlockStatement, node, { body: body.reverse() }); + + function flush() { + if (j > i + 1) body.push(make_node(AST_SimpleStatement, node, { + body: make_sequence(node, exprs.slice(i + 1, j)), + })); + j = i; + } + } + def(AST_Sequence, function(compressor, scope, no_return, in_loop, in_await) { + return inline_sequence(compressor, scope, no_return, in_loop, in_await, this); + }); + def(AST_SimpleStatement, function(compressor, scope, no_return, in_loop) { + var body = this.body; + while (body instanceof AST_UnaryPrefix) { + var op = body.operator; + if (unary_side_effects[op]) break; + if (op == "void") break; + body = body.expression; + } + if (!no_return && !is_undefined(body)) body = make_node(AST_UnaryPrefix, this, { + operator: "void", + expression: body, + }); + return body.try_inline(compressor, scope, no_return || false, in_loop); + }); + def(AST_UnaryPrefix, function(compressor, scope, no_return, in_loop, in_await) { + var self = this; + var op = self.operator; + if (unary_side_effects[op]) return; + if (!no_return && op == "void") no_return = false; + var inlined = self.expression.try_inline(compressor, scope, no_return, in_loop, in_await); + if (!inlined) return; + if (!no_return) scan_local_returns(inlined, function(node) { + node.in_bool = false; + var value = node.value; + if (op == "void" && is_undefined(value)) return; + node.value = make_node(AST_UnaryPrefix, self, { + operator: op, + expression: value || make_node(AST_Undefined, node).transform(compressor), + }); + }); + return inlined; + }); + def(AST_With, function(compressor, scope, no_return, in_loop) { + var body = this.body.try_inline(compressor, scope, no_return, in_loop); + if (body) this.body = body; + var exp = this.expression; + if (exp instanceof AST_Sequence) { + var inlined = inline_sequence(compressor, scope, true, in_loop, false, exp, 1); + if (inlined) { + this.expression = exp.tail_node(); + inlined.body.push(this); + return inlined; + } + } + return body && this; + }); + def(AST_Yield, function(compressor, scope, no_return, in_loop) { + if (!compressor.option("yields")) return; + if (!this.nested) return; + var call = this.expression; + if (call.TYPE != "Call") return; + var fn = call.expression; + switch (fn.CTOR) { + case AST_AsyncGeneratorFunction: + fn = make_node(AST_AsyncFunction, fn); + break; + case AST_GeneratorFunction: + fn = make_node(AST_Function, fn); + break; + default: + return; + } + call = call.clone(); + call.expression = fn; + return call.try_inline(compressor, scope, no_return, in_loop); + }); + })(function(node, func) { + node.DEFMETHOD("try_inline", func); + }); + + OPT(AST_Return, function(self, compressor) { + var value = self.value; + if (value && compressor.option("side_effects") + && is_undefined(value, compressor) + && !in_async_generator(compressor.find_parent(AST_Scope))) { + self.value = null; + } + return self; + }); +})(function(node, optimizer) { + node.DEFMETHOD("optimize", function(compressor) { + var self = this; + if (self._optimized) return self; + if (compressor.has_directive("use asm")) return self; + var opt = optimizer(self, compressor); + opt._optimized = true; + return opt; + }); +}); diff --git a/node_modules/uglify-js/lib/minify.js b/node_modules/uglify-js/lib/minify.js new file mode 100644 index 0000000..c7a1341 --- /dev/null +++ b/node_modules/uglify-js/lib/minify.js @@ -0,0 +1,276 @@ +"use strict"; + +var to_ascii, to_base64; +if (typeof Buffer == "undefined") { + to_ascii = atob; + to_base64 = btoa; +} else if (typeof Buffer.alloc == "undefined") { + to_ascii = function(b64) { + return new Buffer(b64, "base64").toString(); + }; + to_base64 = function(str) { + return new Buffer(str).toString("base64"); + }; +} else { + to_ascii = function(b64) { + return Buffer.from(b64, "base64").toString(); + }; + to_base64 = function(str) { + return Buffer.from(str).toString("base64"); + }; +} + +function read_source_map(name, toplevel) { + var comments = toplevel.end.comments_after; + for (var i = comments.length; --i >= 0;) { + var comment = comments[i]; + if (comment.type != "comment1") break; + var match = /^# ([^\s=]+)=(\S+)\s*$/.exec(comment.value); + if (!match) break; + if (match[1] == "sourceMappingURL") { + match = /^data:application\/json(;.*?)?;base64,([^,]+)$/.exec(match[2]); + if (!match) break; + return to_ascii(match[2]); + } + } + AST_Node.warn("inline source map not found: {name}", { + name: name, + }); +} + +function parse_source_map(content) { + try { + return JSON.parse(content); + } catch (ex) { + throw new Error("invalid input source map: " + content); + } +} + +function set_shorthand(name, options, keys) { + keys.forEach(function(key) { + if (options[key]) { + if (typeof options[key] != "object") options[key] = {}; + if (!(name in options[key])) options[key][name] = options[name]; + } + }); +} + +function init_cache(cache) { + if (!cache) return; + if (!("props" in cache)) { + cache.props = new Dictionary(); + } else if (!(cache.props instanceof Dictionary)) { + cache.props = Dictionary.fromObject(cache.props); + } +} + +function to_json(cache) { + return { + props: cache.props.toObject() + }; +} + +function minify(files, options) { + try { + options = defaults(options, { + annotations: undefined, + compress: {}, + enclose: false, + expression: false, + ie: false, + ie8: false, + keep_fargs: false, + keep_fnames: false, + mangle: {}, + module: false, + nameCache: null, + output: {}, + parse: {}, + rename: undefined, + sourceMap: false, + timings: false, + toplevel: !!(options && options["module"]), + v8: false, + validate: false, + warnings: false, + webkit: false, + wrap: false, + }, true); + if (options.validate) AST_Node.enable_validation(); + var timings = options.timings && { start: Date.now() }; + if (options.annotations !== undefined) set_shorthand("annotations", options, [ "compress", "output" ]); + if (options.expression) set_shorthand("expression", options, [ "compress", "parse" ]); + if (options.ie8) options.ie = options.ie || options.ie8; + if (options.ie) set_shorthand("ie", options, [ "compress", "mangle", "output", "rename" ]); + if (options.keep_fargs) set_shorthand("keep_fargs", options, [ "compress", "mangle", "rename" ]); + if (options.keep_fnames) set_shorthand("keep_fnames", options, [ "compress", "mangle", "rename" ]); + if (options.module) set_shorthand("module", options, [ "compress", "parse" ]); + if (options.toplevel) set_shorthand("toplevel", options, [ "compress", "mangle", "rename" ]); + if (options.v8) set_shorthand("v8", options, [ "mangle", "output", "rename" ]); + if (options.webkit) set_shorthand("webkit", options, [ "compress", "mangle", "output", "rename" ]); + var quoted_props; + if (options.mangle) { + options.mangle = defaults(options.mangle, { + cache: options.nameCache && (options.nameCache.vars || {}), + eval: false, + ie: false, + keep_fargs: false, + keep_fnames: false, + properties: false, + reserved: [], + toplevel: false, + v8: false, + webkit: false, + }, true); + if (options.mangle.properties) { + if (typeof options.mangle.properties != "object") { + options.mangle.properties = {}; + } + if (options.mangle.properties.keep_quoted) { + quoted_props = options.mangle.properties.reserved; + if (!Array.isArray(quoted_props)) quoted_props = []; + options.mangle.properties.reserved = quoted_props; + } + if (options.nameCache && !("cache" in options.mangle.properties)) { + options.mangle.properties.cache = options.nameCache.props || {}; + } + } + init_cache(options.mangle.cache); + init_cache(options.mangle.properties.cache); + } + if (options.rename === undefined) options.rename = options.compress && options.mangle; + if (options.sourceMap) { + options.sourceMap = defaults(options.sourceMap, { + content: null, + filename: null, + includeSources: false, + names: true, + root: null, + url: null, + }, true); + } + var warnings = []; + if (options.warnings) AST_Node.log_function(function(warning) { + warnings.push(warning); + }, options.warnings == "verbose"); + if (timings) timings.parse = Date.now(); + var toplevel; + options.parse = options.parse || {}; + if (files instanceof AST_Node) { + toplevel = files; + } else { + if (typeof files == "string") files = [ files ]; + options.parse.toplevel = null; + var source_map_content = options.sourceMap && options.sourceMap.content; + if (typeof source_map_content == "string" && source_map_content != "inline") { + source_map_content = parse_source_map(source_map_content); + } + if (source_map_content) options.sourceMap.orig = Object.create(null); + for (var name in files) if (HOP(files, name)) { + options.parse.filename = name; + options.parse.toplevel = toplevel = parse(files[name], options.parse); + if (source_map_content == "inline") { + var inlined_content = read_source_map(name, toplevel); + if (inlined_content) options.sourceMap.orig[name] = parse_source_map(inlined_content); + } else if (source_map_content) { + options.sourceMap.orig[name] = source_map_content; + } + } + } + if (options.parse.expression) toplevel = toplevel.wrap_expression(); + if (quoted_props) reserve_quoted_keys(toplevel, quoted_props); + [ "enclose", "wrap" ].forEach(function(action) { + var option = options[action]; + if (!option) return; + var orig = toplevel.print_to_string().slice(0, -1); + toplevel = toplevel[action](option); + files[toplevel.start.file] = toplevel.print_to_string().replace(orig, ""); + }); + if (options.validate) toplevel.validate_ast(); + if (timings) timings.rename = Date.now(); + if (options.rename) { + toplevel.figure_out_scope(options.rename); + toplevel.expand_names(options.rename); + } + if (timings) timings.compress = Date.now(); + if (options.compress) { + toplevel = new Compressor(options.compress).compress(toplevel); + if (options.validate) toplevel.validate_ast(); + } + if (timings) timings.scope = Date.now(); + if (options.mangle) toplevel.figure_out_scope(options.mangle); + if (timings) timings.mangle = Date.now(); + if (options.mangle) { + toplevel.compute_char_frequency(options.mangle); + toplevel.mangle_names(options.mangle); + } + if (timings) timings.properties = Date.now(); + if (quoted_props) reserve_quoted_keys(toplevel, quoted_props); + if (options.mangle && options.mangle.properties) mangle_properties(toplevel, options.mangle.properties); + if (options.parse.expression) toplevel = toplevel.unwrap_expression(); + if (timings) timings.output = Date.now(); + var result = {}; + var output = defaults(options.output, { + ast: false, + code: true, + }); + if (output.ast) result.ast = toplevel; + if (output.code) { + if (options.sourceMap) { + output.source_map = SourceMap(options.sourceMap); + if (options.sourceMap.includeSources) { + if (files instanceof AST_Toplevel) { + throw new Error("original source content unavailable"); + } else for (var name in files) if (HOP(files, name)) { + output.source_map.setSourceContent(name, files[name]); + } + } + } + delete output.ast; + delete output.code; + var stream = OutputStream(output); + toplevel.print(stream); + result.code = stream.get(); + if (options.sourceMap) { + result.map = output.source_map.toString(); + var url = options.sourceMap.url; + if (url) { + result.code = result.code.replace(/\n\/\/# sourceMappingURL=\S+\s*$/, ""); + if (url == "inline") { + result.code += "\n//# sourceMappingURL=data:application/json;charset=utf-8;base64," + to_base64(result.map); + } else { + result.code += "\n//# sourceMappingURL=" + url; + } + } + } + } + if (options.nameCache && options.mangle) { + if (options.mangle.cache) options.nameCache.vars = to_json(options.mangle.cache); + if (options.mangle.properties && options.mangle.properties.cache) { + options.nameCache.props = to_json(options.mangle.properties.cache); + } + } + if (timings) { + timings.end = Date.now(); + result.timings = { + parse: 1e-3 * (timings.rename - timings.parse), + rename: 1e-3 * (timings.compress - timings.rename), + compress: 1e-3 * (timings.scope - timings.compress), + scope: 1e-3 * (timings.mangle - timings.scope), + mangle: 1e-3 * (timings.properties - timings.mangle), + properties: 1e-3 * (timings.output - timings.properties), + output: 1e-3 * (timings.end - timings.output), + total: 1e-3 * (timings.end - timings.start) + }; + } + if (warnings.length) { + result.warnings = warnings; + } + return result; + } catch (ex) { + return { error: ex }; + } finally { + AST_Node.log_function(); + AST_Node.disable_validation(); + } +} diff --git a/node_modules/uglify-js/lib/mozilla-ast.js b/node_modules/uglify-js/lib/mozilla-ast.js new file mode 100644 index 0000000..3e0534c --- /dev/null +++ b/node_modules/uglify-js/lib/mozilla-ast.js @@ -0,0 +1,1310 @@ +/*********************************************************************** + + A JavaScript tokenizer / parser / beautifier / compressor. + https://github.com/mishoo/UglifyJS + + -------------------------------- (C) --------------------------------- + + Author: Mihai Bazon + + http://mihai.bazon.net/blog + + Distributed under the BSD license: + + Copyright 2012 (c) Mihai Bazon + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + ***********************************************************************/ + +"use strict"; + +(function() { + var MOZ_TO_ME = { + Program: function(M) { + return new AST_Toplevel({ + start: my_start_token(M), + end: my_end_token(M), + body: normalize_directives(M.body.map(from_moz)), + }); + }, + ArrowFunctionExpression: function(M) { + var argnames = [], rest = null; + M.params.forEach(function(param) { + if (param.type == "RestElement") { + rest = from_moz(param.argument); + } else { + argnames.push(from_moz(param)); + } + }); + var fn = new (M.async ? AST_AsyncArrow : AST_Arrow)({ + start: my_start_token(M), + end: my_end_token(M), + argnames: argnames, + rest: rest, + }); + var node = from_moz(M.body); + if (node instanceof AST_BlockStatement) { + fn.body = normalize_directives(node.body); + fn.value = null; + } else { + fn.body = []; + fn.value = node; + } + return fn; + }, + FunctionDeclaration: function(M) { + var ctor; + if (M.async) { + ctor = M.generator ? AST_AsyncGeneratorDefun : AST_AsyncDefun; + } else { + ctor = M.generator ? AST_GeneratorDefun : AST_Defun; + } + var argnames = [], rest = null; + M.params.forEach(function(param) { + if (param.type == "RestElement") { + rest = from_moz(param.argument); + } else { + argnames.push(from_moz(param)); + } + }); + return new ctor({ + start: my_start_token(M), + end: my_end_token(M), + name: from_moz(M.id), + argnames: argnames, + rest: rest, + body: normalize_directives(from_moz(M.body).body), + }); + }, + FunctionExpression: function(M) { + var ctor; + if (M.async) { + ctor = M.generator ? AST_AsyncGeneratorFunction : AST_AsyncFunction; + } else { + ctor = M.generator ? AST_GeneratorFunction : AST_Function; + } + var argnames = [], rest = null; + M.params.forEach(function(param) { + if (param.type == "RestElement") { + rest = from_moz(param.argument); + } else { + argnames.push(from_moz(param)); + } + }); + return new ctor({ + start: my_start_token(M), + end: my_end_token(M), + name: from_moz(M.id), + argnames: argnames, + rest: rest, + body: normalize_directives(from_moz(M.body).body), + }); + }, + ClassDeclaration: function(M) { + return new AST_DefClass({ + start: my_start_token(M), + end: my_end_token(M), + name: from_moz(M.id), + extends: from_moz(M.superClass), + properties: M.body.body.map(from_moz), + }); + }, + ClassExpression: function(M) { + return new AST_ClassExpression({ + start: my_start_token(M), + end: my_end_token(M), + name: from_moz(M.id), + extends: from_moz(M.superClass), + properties: M.body.body.map(from_moz), + }); + }, + MethodDefinition: function(M) { + var key = M.key, internal = false; + if (M.computed) { + key = from_moz(key); + } else if (key.type == "PrivateIdentifier") { + internal = true; + key = "#" + key.name; + } else { + key = read_name(key); + } + var ctor = AST_ClassMethod, value = from_moz(M.value); + switch (M.kind) { + case "get": + ctor = AST_ClassGetter; + value = new AST_Accessor(value); + break; + case "set": + ctor = AST_ClassSetter; + value = new AST_Accessor(value); + break; + } + return new ctor({ + start: my_start_token(M), + end: my_end_token(M), + key: key, + private: internal, + static: M.static, + value: value, + }); + }, + PropertyDefinition: function(M) { + var key = M.key, internal = false; + if (M.computed) { + key = from_moz(key); + } else if (key.type == "PrivateIdentifier") { + internal = true; + key = "#" + key.name; + } else { + key = read_name(key); + } + return new AST_ClassField({ + start: my_start_token(M), + end: my_end_token(M), + key: key, + private: internal, + static: M.static, + value: from_moz(M.value), + }); + }, + StaticBlock: function(M) { + var start = my_start_token(M); + var end = my_end_token(M); + return new AST_ClassInit({ + start: start, + end: end, + value: new AST_ClassInitBlock({ + start: start, + end: end, + body: normalize_directives(M.body.map(from_moz)), + }), + }); + }, + ForOfStatement: function(M) { + return new (M.await ? AST_ForAwaitOf : AST_ForOf)({ + start: my_start_token(M), + end: my_end_token(M), + init: from_moz(M.left), + object: from_moz(M.right), + body: from_moz(M.body), + }); + }, + TryStatement: function(M) { + var handlers = M.handlers || [M.handler]; + if (handlers.length > 1 || M.guardedHandlers && M.guardedHandlers.length) { + throw new Error("Multiple catch clauses are not supported."); + } + return new AST_Try({ + start : my_start_token(M), + end : my_end_token(M), + body : from_moz(M.block).body, + bcatch : from_moz(handlers[0]), + bfinally : M.finalizer ? new AST_Finally(from_moz(M.finalizer)) : null, + }); + }, + Property: function(M) { + var key = M.computed ? from_moz(M.key) : read_name(M.key); + var args = { + start: my_start_token(M), + end: my_end_token(M), + key: key, + value: from_moz(M.value), + }; + if (M.kind == "init") return new (M.method ? AST_ObjectMethod : AST_ObjectKeyVal)(args); + args.value = new AST_Accessor(args.value); + if (M.kind == "get") return new AST_ObjectGetter(args); + if (M.kind == "set") return new AST_ObjectSetter(args); + }, + ArrayExpression: function(M) { + return new AST_Array({ + start: my_start_token(M), + end: my_end_token(M), + elements: M.elements.map(function(elem) { + return elem === null ? new AST_Hole() : from_moz(elem); + }), + }); + }, + ArrayPattern: function(M) { + var elements = [], rest = null; + M.elements.forEach(function(el) { + if (el === null) { + elements.push(new AST_Hole()); + } else if (el.type == "RestElement") { + rest = from_moz(el.argument); + } else { + elements.push(from_moz(el)); + } + }); + return new AST_DestructuredArray({ + start: my_start_token(M), + end: my_end_token(M), + elements: elements, + rest: rest, + }); + }, + ObjectPattern: function(M) { + var props = [], rest = null; + M.properties.forEach(function(prop) { + if (prop.type == "RestElement") { + rest = from_moz(prop.argument); + } else { + props.push(new AST_DestructuredKeyVal(from_moz(prop))); + } + }); + return new AST_DestructuredObject({ + start: my_start_token(M), + end: my_end_token(M), + properties: props, + rest: rest, + }); + }, + MemberExpression: function(M) { + return new (M.computed ? AST_Sub : AST_Dot)({ + start: my_start_token(M), + end: my_end_token(M), + optional: M.optional, + expression: from_moz(M.object), + property: M.computed ? from_moz(M.property) : M.property.name, + }); + }, + MetaProperty: function(M) { + var expr = from_moz(M.meta); + var prop = read_name(M.property); + if (expr.name == "new" && prop == "target") return new AST_NewTarget({ + start: my_start_token(M), + end: my_end_token(M), + name: "new.target", + }); + return new AST_Dot({ + start: my_start_token(M), + end: my_end_token(M), + expression: expr, + property: prop, + }); + }, + SwitchCase: function(M) { + return new (M.test ? AST_Case : AST_Default)({ + start : my_start_token(M), + end : my_end_token(M), + expression : from_moz(M.test), + body : M.consequent.map(from_moz), + }); + }, + ExportAllDeclaration: function(M) { + var start = my_start_token(M); + var end = my_end_token(M); + return new AST_ExportForeign({ + start: start, + end: end, + aliases: [ M.exported ? from_moz_alias(M.exported) : new AST_String({ + start: start, + value: "*", + end: end, + }) ], + keys: [ new AST_String({ + start: start, + value: "*", + end: end, + }) ], + path: from_moz(M.source), + }); + }, + ExportDefaultDeclaration: function(M) { + var decl = from_moz(M.declaration); + if (!decl.name) switch (decl.CTOR) { + case AST_AsyncDefun: + decl = new AST_AsyncFunction(decl); + break; + case AST_AsyncGeneratorDefun: + decl = new AST_AsyncGeneratorFunction(decl); + break; + case AST_DefClass: + decl = new AST_ClassExpression(decl); + break; + case AST_Defun: + decl = new AST_Function(decl); + break; + case AST_GeneratorDefun: + decl = new AST_GeneratorFunction(decl); + break; + } + return new AST_ExportDefault({ + start: my_start_token(M), + end: my_end_token(M), + body: decl, + }); + }, + ExportNamedDeclaration: function(M) { + if (M.declaration) return new AST_ExportDeclaration({ + start: my_start_token(M), + end: my_end_token(M), + body: from_moz(M.declaration), + }); + if (M.source) { + var aliases = [], keys = []; + M.specifiers.forEach(function(prop) { + aliases.push(from_moz_alias(prop.exported)); + keys.push(from_moz_alias(prop.local)); + }); + return new AST_ExportForeign({ + start: my_start_token(M), + end: my_end_token(M), + aliases: aliases, + keys: keys, + path: from_moz(M.source), + }); + } + return new AST_ExportReferences({ + start: my_start_token(M), + end: my_end_token(M), + properties: M.specifiers.map(function(prop) { + var sym = new AST_SymbolExport(from_moz(prop.local)); + sym.alias = from_moz_alias(prop.exported); + return sym; + }), + }); + }, + ImportDeclaration: function(M) { + var start = my_start_token(M); + var end = my_end_token(M); + var all = null, def = null, props = null; + M.specifiers.forEach(function(prop) { + var sym = new AST_SymbolImport(from_moz(prop.local)); + switch (prop.type) { + case "ImportDefaultSpecifier": + def = sym; + def.key = new AST_String({ + start: start, + value: "", + end: end, + }); + break; + case "ImportNamespaceSpecifier": + all = sym; + all.key = new AST_String({ + start: start, + value: "*", + end: end, + }); + break; + default: + sym.key = from_moz_alias(prop.imported); + if (!props) props = []; + props.push(sym); + break; + } + }); + return new AST_Import({ + start: start, + end: end, + all: all, + default: def, + properties: props, + path: from_moz(M.source), + }); + }, + ImportExpression: function(M) { + var start = my_start_token(M); + var arg = from_moz(M.source); + return new AST_Call({ + start: start, + end: my_end_token(M), + expression: new AST_SymbolRef({ + start: start, + end: arg.start, + name: "import", + }), + args: [ arg ], + }); + }, + VariableDeclaration: function(M) { + return new ({ + const: AST_Const, + let: AST_Let, + }[M.kind] || AST_Var)({ + start: my_start_token(M), + end: my_end_token(M), + definitions: M.declarations.map(from_moz), + }); + }, + Literal: function(M) { + var args = { + start: my_start_token(M), + end: my_end_token(M), + }; + if (M.bigint) { + args.value = M.bigint.toLowerCase() + "n"; + return new AST_BigInt(args); + } + var val = M.value; + if (val === null) return new AST_Null(args); + var rx = M.regex; + if (rx && rx.pattern) { + // RegExpLiteral as per ESTree AST spec + args.value = new RegExp(rx.pattern, rx.flags); + args.value.raw_source = rx.pattern; + return new AST_RegExp(args); + } else if (rx) { + // support legacy RegExp + args.value = M.regex && M.raw ? M.raw : val; + return new AST_RegExp(args); + } + switch (typeof val) { + case "string": + args.value = val; + return new AST_String(args); + case "number": + if (isNaN(val)) return new AST_NaN(args); + var negate, node; + if (isFinite(val)) { + negate = 1 / val < 0; + args.value = negate ? -val : val; + node = new AST_Number(args); + } else { + negate = val < 0; + node = new AST_Infinity(args); + } + return negate ? new AST_UnaryPrefix({ + start: args.start, + end: args.end, + operator: "-", + expression: node, + }) : node; + case "boolean": + return new (val ? AST_True : AST_False)(args); + } + }, + TemplateLiteral: function(M) { + return new AST_Template({ + start: my_start_token(M), + end: my_end_token(M), + expressions: M.expressions.map(from_moz), + strings: M.quasis.map(function(el) { + return el.value.raw; + }), + }); + }, + TaggedTemplateExpression: function(M) { + var tmpl = from_moz(M.quasi); + tmpl.start = my_start_token(M); + tmpl.end = my_end_token(M); + tmpl.tag = from_moz(M.tag); + return tmpl; + }, + Identifier: function(M) { + var p, level = FROM_MOZ_STACK.length - 1; + do { + p = FROM_MOZ_STACK[--level]; + } while (p.type == "ArrayPattern" + || p.type == "AssignmentPattern" && p.left === FROM_MOZ_STACK[level + 1] + || p.type == "ObjectPattern" + || p.type == "Property" && p.value === FROM_MOZ_STACK[level + 1] + || p.type == "VariableDeclarator" && p.id === FROM_MOZ_STACK[level + 1]); + var ctor = AST_SymbolRef; + switch (p.type) { + case "ArrowFunctionExpression": + if (p.body !== FROM_MOZ_STACK[level + 1]) ctor = AST_SymbolFunarg; + break; + case "BreakStatement": + case "ContinueStatement": + ctor = AST_LabelRef; + break; + case "CatchClause": + ctor = AST_SymbolCatch; + break; + case "ClassDeclaration": + if (p.id === FROM_MOZ_STACK[level + 1]) ctor = AST_SymbolDefClass; + break; + case "ClassExpression": + if (p.id === FROM_MOZ_STACK[level + 1]) ctor = AST_SymbolClass; + break; + case "FunctionDeclaration": + ctor = p.id === FROM_MOZ_STACK[level + 1] ? AST_SymbolDefun : AST_SymbolFunarg; + break; + case "FunctionExpression": + ctor = p.id === FROM_MOZ_STACK[level + 1] ? AST_SymbolLambda : AST_SymbolFunarg; + break; + case "LabeledStatement": + ctor = AST_Label; + break; + case "VariableDeclaration": + ctor = { + const: AST_SymbolConst, + let: AST_SymbolLet, + }[p.kind] || AST_SymbolVar; + break; + } + return new ctor({ + start: my_start_token(M), + end: my_end_token(M), + name: M.name, + }); + }, + Super: function(M) { + return new AST_Super({ + start: my_start_token(M), + end: my_end_token(M), + name: "super", + }); + }, + ThisExpression: function(M) { + return new AST_This({ + start: my_start_token(M), + end: my_end_token(M), + name: "this", + }); + }, + ParenthesizedExpression: function(M) { + var node = from_moz(M.expression); + if (!node.start.parens) node.start.parens = []; + node.start.parens.push(my_start_token(M)); + if (!node.end.parens) node.end.parens = []; + node.end.parens.push(my_end_token(M)); + return node; + }, + ChainExpression: function(M) { + var node = from_moz(M.expression); + node.terminal = true; + return node; + }, + }; + + MOZ_TO_ME.UpdateExpression = + MOZ_TO_ME.UnaryExpression = function To_Moz_Unary(M) { + var prefix = "prefix" in M ? M.prefix + : M.type == "UnaryExpression" ? true : false; + return new (prefix ? AST_UnaryPrefix : AST_UnaryPostfix)({ + start : my_start_token(M), + end : my_end_token(M), + operator : M.operator, + expression : from_moz(M.argument) + }); + }; + + map("EmptyStatement", AST_EmptyStatement); + map("ExpressionStatement", AST_SimpleStatement, "expression>body"); + map("BlockStatement", AST_BlockStatement, "body@body"); + map("IfStatement", AST_If, "test>condition, consequent>body, alternate>alternative"); + map("LabeledStatement", AST_LabeledStatement, "label>label, body>body"); + map("BreakStatement", AST_Break, "label>label"); + map("ContinueStatement", AST_Continue, "label>label"); + map("WithStatement", AST_With, "object>expression, body>body"); + map("SwitchStatement", AST_Switch, "discriminant>expression, cases@body"); + map("ReturnStatement", AST_Return, "argument>value"); + map("ThrowStatement", AST_Throw, "argument>value"); + map("WhileStatement", AST_While, "test>condition, body>body"); + map("DoWhileStatement", AST_Do, "test>condition, body>body"); + map("ForStatement", AST_For, "init>init, test>condition, update>step, body>body"); + map("ForInStatement", AST_ForIn, "left>init, right>object, body>body"); + map("DebuggerStatement", AST_Debugger); + map("VariableDeclarator", AST_VarDef, "id>name, init>value"); + map("CatchClause", AST_Catch, "param>argname, body%body"); + + map("BinaryExpression", AST_Binary, "operator=operator, left>left, right>right"); + map("LogicalExpression", AST_Binary, "operator=operator, left>left, right>right"); + map("AssignmentExpression", AST_Assign, "operator=operator, left>left, right>right"); + map("AssignmentPattern", AST_DefaultValue, "left>name, right>value"); + map("ConditionalExpression", AST_Conditional, "test>condition, consequent>consequent, alternate>alternative"); + map("NewExpression", AST_New, "callee>expression, arguments@args, pure=pure"); + map("CallExpression", AST_Call, "callee>expression, arguments@args, optional=optional, pure=pure"); + map("SequenceExpression", AST_Sequence, "expressions@expressions"); + map("SpreadElement", AST_Spread, "argument>expression"); + map("ObjectExpression", AST_Object, "properties@properties"); + map("AwaitExpression", AST_Await, "argument>expression"); + map("YieldExpression", AST_Yield, "argument>expression, delegate=nested"); + + def_to_moz(AST_Toplevel, function To_Moz_Program(M) { + return to_moz_scope("Program", M); + }); + + def_to_moz(AST_LambdaDefinition, function To_Moz_FunctionDeclaration(M) { + var params = M.argnames.map(to_moz); + if (M.rest) params.push({ + type: "RestElement", + argument: to_moz(M.rest), + }); + return { + type: "FunctionDeclaration", + id: to_moz(M.name), + async: is_async(M), + generator: is_generator(M), + params: params, + body: to_moz_scope("BlockStatement", M), + }; + }); + + def_to_moz(AST_Lambda, function To_Moz_FunctionExpression(M) { + var params = M.argnames.map(to_moz); + if (M.rest) params.push({ + type: "RestElement", + argument: to_moz(M.rest), + }); + if (is_arrow(M)) return { + type: "ArrowFunctionExpression", + async: is_async(M), + params: params, + body: M.value ? to_moz(M.value) : to_moz_scope("BlockStatement", M), + }; + return { + type: "FunctionExpression", + id: to_moz(M.name), + async: is_async(M), + generator: is_generator(M), + params: params, + body: to_moz_scope("BlockStatement", M), + }; + }); + + def_to_moz(AST_DefClass, function To_Moz_ClassDeclaration(M) { + return { + type: "ClassDeclaration", + id: to_moz(M.name), + superClass: to_moz(M.extends), + body: { + type: "ClassBody", + body: M.properties.map(to_moz), + }, + }; + }); + + def_to_moz(AST_ClassExpression, function To_Moz_ClassExpression(M) { + return { + type: "ClassExpression", + id: to_moz(M.name), + superClass: to_moz(M.extends), + body: { + type: "ClassBody", + body: M.properties.map(to_moz), + }, + }; + }); + + function To_Moz_MethodDefinition(kind) { + return function(M) { + var computed = M.key instanceof AST_Node; + var key = computed ? to_moz(M.key) : M.private ? { + type: "PrivateIdentifier", + name: M.key.slice(1), + } : { + type: "Literal", + value: M.key, + }; + return { + type: "MethodDefinition", + kind: kind, + computed: computed, + key: key, + static: M.static, + value: to_moz(M.value), + }; + }; + } + def_to_moz(AST_ClassGetter, To_Moz_MethodDefinition("get")); + def_to_moz(AST_ClassSetter, To_Moz_MethodDefinition("set")); + def_to_moz(AST_ClassMethod, To_Moz_MethodDefinition("method")); + + def_to_moz(AST_ClassField, function To_Moz_PropertyDefinition(M) { + var computed = M.key instanceof AST_Node; + var key = computed ? to_moz(M.key) : M.private ? { + type: "PrivateIdentifier", + name: M.key.slice(1), + } : { + type: "Literal", + value: M.key, + }; + return { + type: "PropertyDefinition", + computed: computed, + key: key, + static: M.static, + value: to_moz(M.value), + }; + }); + + def_to_moz(AST_ClassInit, function To_Moz_StaticBlock(M) { + return to_moz_scope("StaticBlock", M.value); + }); + + function To_Moz_ForOfStatement(is_await) { + return function(M) { + return { + type: "ForOfStatement", + await: is_await, + left: to_moz(M.init), + right: to_moz(M.object), + body: to_moz(M.body), + }; + }; + } + def_to_moz(AST_ForAwaitOf, To_Moz_ForOfStatement(true)); + def_to_moz(AST_ForOf, To_Moz_ForOfStatement(false)); + + def_to_moz(AST_Directive, function To_Moz_Directive(M) { + return { + type: "ExpressionStatement", + expression: set_moz_loc(M, { + type: "Literal", + value: M.value, + }), + }; + }); + + def_to_moz(AST_SwitchBranch, function To_Moz_SwitchCase(M) { + return { + type: "SwitchCase", + test: to_moz(M.expression), + consequent: M.body.map(to_moz), + }; + }); + + def_to_moz(AST_Try, function To_Moz_TryStatement(M) { + return { + type: "TryStatement", + block: to_moz_block(M), + handler: to_moz(M.bcatch), + guardedHandlers: [], + finalizer: to_moz(M.bfinally), + }; + }); + + def_to_moz(AST_Catch, function To_Moz_CatchClause(M) { + return { + type: "CatchClause", + param: to_moz(M.argname), + guard: null, + body: to_moz_block(M), + }; + }); + + def_to_moz(AST_ExportDeclaration, function To_Moz_ExportNamedDeclaration_declaration(M) { + return { + type: "ExportNamedDeclaration", + declaration: to_moz(M.body), + }; + }); + + def_to_moz(AST_ExportDefault, function To_Moz_ExportDefaultDeclaration(M) { + return { + type: "ExportDefaultDeclaration", + declaration: to_moz(M.body), + }; + }); + + def_to_moz(AST_ExportForeign, function To_Moz_ExportAllDeclaration_ExportNamedDeclaration(M) { + if (M.keys[0].value == "*") return { + type: "ExportAllDeclaration", + exported: M.aliases[0].value == "*" ? null : to_moz_alias(M.aliases[0]), + source: to_moz(M.path), + }; + var specifiers = []; + for (var i = 0; i < M.aliases.length; i++) { + specifiers.push(set_moz_loc({ + start: M.keys[i].start, + end: M.aliases[i].end, + }, { + type: "ExportSpecifier", + local: to_moz_alias(M.keys[i]), + exported: to_moz_alias(M.aliases[i]), + })); + } + return { + type: "ExportNamedDeclaration", + specifiers: specifiers, + source: to_moz(M.path), + }; + }); + + def_to_moz(AST_ExportReferences, function To_Moz_ExportNamedDeclaration_specifiers(M) { + return { + type: "ExportNamedDeclaration", + specifiers: M.properties.map(function(prop) { + return set_moz_loc({ + start: prop.start, + end: prop.alias.end, + }, { + type: "ExportSpecifier", + local: to_moz(prop), + exported: to_moz_alias(prop.alias), + }); + }), + }; + }); + + def_to_moz(AST_Import, function To_Moz_ImportDeclaration(M) { + var specifiers = M.properties ? M.properties.map(function(prop) { + return set_moz_loc({ + start: prop.key.start, + end: prop.end, + }, { + type: "ImportSpecifier", + local: to_moz(prop), + imported: to_moz_alias(prop.key), + }); + }) : []; + if (M.all) specifiers.unshift(set_moz_loc(M.all, { + type: "ImportNamespaceSpecifier", + local: to_moz(M.all), + })); + if (M.default) specifiers.unshift(set_moz_loc(M.default, { + type: "ImportDefaultSpecifier", + local: to_moz(M.default), + })); + return { + type: "ImportDeclaration", + specifiers: specifiers, + source: to_moz(M.path), + }; + }); + + def_to_moz(AST_Definitions, function To_Moz_VariableDeclaration(M) { + return { + type: "VariableDeclaration", + kind: M.TYPE.toLowerCase(), + declarations: M.definitions.map(to_moz), + }; + }); + + def_to_moz(AST_PropAccess, function To_Moz_MemberExpression(M) { + var computed = M instanceof AST_Sub; + var expr = { + type: "MemberExpression", + object: to_moz(M.expression), + computed: computed, + optional: M.optional, + property: computed ? to_moz(M.property) : { + type: "Identifier", + name: M.property, + }, + }; + return M.terminal ? { + type: "ChainExpression", + expression: expr, + } : expr; + }); + + def_to_moz(AST_Unary, function To_Moz_Unary(M) { + return { + type: M.operator == "++" || M.operator == "--" ? "UpdateExpression" : "UnaryExpression", + operator: M.operator, + prefix: M instanceof AST_UnaryPrefix, + argument: to_moz(M.expression) + }; + }); + + def_to_moz(AST_Binary, function To_Moz_BinaryExpression(M) { + return { + type: M.operator == "&&" || M.operator == "||" ? "LogicalExpression" : "BinaryExpression", + left: to_moz(M.left), + operator: M.operator, + right: to_moz(M.right) + }; + }); + + def_to_moz(AST_Array, function To_Moz_ArrayExpression(M) { + return { + type: "ArrayExpression", + elements: M.elements.map(to_moz), + }; + }); + + def_to_moz(AST_DestructuredArray, function To_Moz_ArrayPattern(M) { + var elements = M.elements.map(to_moz); + if (M.rest) elements.push({ + type: "RestElement", + argument: to_moz(M.rest), + }); + return { + type: "ArrayPattern", + elements: elements, + }; + }); + + def_to_moz(AST_DestructuredKeyVal, function To_Moz_Property(M) { + var computed = M.key instanceof AST_Node; + var key = computed ? to_moz(M.key) : { + type: "Literal", + value: M.key, + }; + return { + type: "Property", + kind: "init", + computed: computed, + key: key, + value: to_moz(M.value), + }; + }); + + def_to_moz(AST_DestructuredObject, function To_Moz_ObjectPattern(M) { + var props = M.properties.map(to_moz); + if (M.rest) props.push({ + type: "RestElement", + argument: to_moz(M.rest), + }); + return { + type: "ObjectPattern", + properties: props, + }; + }); + + def_to_moz(AST_ObjectProperty, function To_Moz_Property(M) { + var computed = M.key instanceof AST_Node; + var key = computed ? to_moz(M.key) : { + type: "Literal", + value: M.key, + }; + var kind; + if (M instanceof AST_ObjectKeyVal) { + kind = "init"; + } else if (M instanceof AST_ObjectGetter) { + kind = "get"; + } else if (M instanceof AST_ObjectSetter) { + kind = "set"; + } + return { + type: "Property", + kind: kind, + computed: computed, + method: M instanceof AST_ObjectMethod, + key: key, + value: to_moz(M.value), + }; + }); + + def_to_moz(AST_Symbol, function To_Moz_Identifier(M) { + var def = M.definition(); + return { + type: "Identifier", + name: def && def.mangled_name || M.name, + }; + }); + + def_to_moz(AST_Super, function To_Moz_Super() { + return { type: "Super" }; + }); + + def_to_moz(AST_This, function To_Moz_ThisExpression() { + return { type: "ThisExpression" }; + }); + + def_to_moz(AST_NewTarget, function To_Moz_MetaProperty() { + return { + type: "MetaProperty", + meta: { + type: "Identifier", + name: "new", + }, + property: { + type: "Identifier", + name: "target", + }, + }; + }); + + def_to_moz(AST_RegExp, function To_Moz_RegExpLiteral(M) { + var flags = M.value.toString().match(/\/([gimuy]*)$/)[1]; + var value = "/" + M.value.raw_source + "/" + flags; + return { + type: "Literal", + value: value, + raw: value, + regex: { + pattern: M.value.raw_source, + flags: flags, + }, + }; + }); + + def_to_moz(AST_BigInt, function To_Moz_BigInt(M) { + var value = M.value; + return { + type: "Literal", + bigint: value.slice(0, -1), + raw: value, + }; + }); + + function To_Moz_Literal(M) { + var value = M.value; + if (typeof value === "number" && (value < 0 || (value === 0 && 1 / value < 0))) { + return { + type: "UnaryExpression", + operator: "-", + prefix: true, + argument: { + type: "Literal", + value: -value, + raw: M.start.raw, + }, + }; + } + return { + type: "Literal", + value: value, + raw: M.start.raw, + }; + } + def_to_moz(AST_Boolean, To_Moz_Literal); + def_to_moz(AST_Constant, To_Moz_Literal); + def_to_moz(AST_Null, To_Moz_Literal); + + def_to_moz(AST_Atom, function To_Moz_Atom(M) { + return { + type: "Identifier", + name: String(M.value), + }; + }); + + def_to_moz(AST_Template, function To_Moz_TemplateLiteral_TaggedTemplateExpression(M) { + var last = M.strings.length - 1; + var tmpl = { + type: "TemplateLiteral", + expressions: M.expressions.map(to_moz), + quasis: M.strings.map(function(str, index) { + return { + type: "TemplateElement", + tail: index == last, + value: { raw: str }, + }; + }), + }; + if (!M.tag) return tmpl; + return { + type: "TaggedTemplateExpression", + tag: to_moz(M.tag), + quasi: tmpl, + }; + }); + + AST_Block.DEFMETHOD("to_mozilla_ast", AST_BlockStatement.prototype.to_mozilla_ast); + AST_Hole.DEFMETHOD("to_mozilla_ast", return_null); + AST_Node.DEFMETHOD("to_mozilla_ast", function() { + throw new Error("Cannot convert AST_" + this.TYPE); + }); + + /* -----[ tools ]----- */ + + function normalize_directives(body) { + for (var i = 0; i < body.length; i++) { + var stat = body[i]; + if (!(stat instanceof AST_SimpleStatement)) break; + var node = stat.body; + if (!(node instanceof AST_String)) break; + if (stat.start.pos !== node.start.pos) break; + body[i] = new AST_Directive(node); + } + return body; + } + + function raw_token(moznode) { + if (moznode.type == "Literal") { + return moznode.raw != null ? moznode.raw : moznode.value + ""; + } + } + + function my_start_token(moznode) { + var loc = moznode.loc, start = loc && loc.start; + var range = moznode.range; + return new AST_Token({ + file : loc && loc.source, + line : start && start.line, + col : start && start.column, + pos : range ? range[0] : moznode.start, + endline : start && start.line, + endcol : start && start.column, + endpos : range ? range[0] : moznode.start, + raw : raw_token(moznode), + }); + } + + function my_end_token(moznode) { + var loc = moznode.loc, end = loc && loc.end; + var range = moznode.range; + return new AST_Token({ + file : loc && loc.source, + line : end && end.line, + col : end && end.column, + pos : range ? range[1] : moznode.end, + endline : end && end.line, + endcol : end && end.column, + endpos : range ? range[1] : moznode.end, + raw : raw_token(moznode), + }); + } + + function read_name(M) { + return "" + M[M.type == "Identifier" ? "name" : "value"]; + } + + function map(moztype, mytype, propmap) { + var moz_to_me = [ + "start: my_start_token(M)", + "end: my_end_token(M)", + ]; + var me_to_moz = [ + "type: " + JSON.stringify(moztype), + ]; + + if (propmap) propmap.split(/\s*,\s*/).forEach(function(prop) { + var m = /([a-z0-9$_]+)(=|@|>|%)([a-z0-9$_]+)/i.exec(prop); + if (!m) throw new Error("Can't understand property map: " + prop); + var moz = m[1], how = m[2], my = m[3]; + switch (how) { + case "@": + moz_to_me.push(my + ": M." + moz + ".map(from_moz)"); + me_to_moz.push(moz + ": M." + my + ".map(to_moz)"); + break; + case ">": + moz_to_me.push(my + ": from_moz(M." + moz + ")"); + me_to_moz.push(moz + ": to_moz(M." + my + ")"); + break; + case "=": + moz_to_me.push(my + ": M." + moz); + me_to_moz.push(moz + ": M." + my); + break; + case "%": + moz_to_me.push(my + ": from_moz(M." + moz + ").body"); + me_to_moz.push(moz + ": to_moz_block(M)"); + break; + default: + throw new Error("Can't understand operator in propmap: " + prop); + } + }); + + MOZ_TO_ME[moztype] = new Function("U2", "my_start_token", "my_end_token", "from_moz", [ + "return function From_Moz_" + moztype + "(M) {", + " return new U2.AST_" + mytype.TYPE + "({", + moz_to_me.join(",\n"), + " });", + "};", + ].join("\n"))(exports, my_start_token, my_end_token, from_moz); + def_to_moz(mytype, new Function("to_moz", "to_moz_block", "to_moz_scope", [ + "return function To_Moz_" + moztype + "(M) {", + " return {", + me_to_moz.join(",\n"), + " };", + "};", + ].join("\n"))(to_moz, to_moz_block, to_moz_scope)); + } + + var FROM_MOZ_STACK = null; + + function from_moz(moz) { + FROM_MOZ_STACK.push(moz); + var node = null; + if (moz) { + if (!HOP(MOZ_TO_ME, moz.type)) throw new Error("Unsupported type: " + moz.type); + node = MOZ_TO_ME[moz.type](moz); + } + FROM_MOZ_STACK.pop(); + return node; + } + + function from_moz_alias(moz) { + return new AST_String({ + start: my_start_token(moz), + value: read_name(moz), + end: my_end_token(moz), + }); + } + + AST_Node.from_mozilla_ast = function(node) { + var save_stack = FROM_MOZ_STACK; + FROM_MOZ_STACK = []; + var ast = from_moz(node); + FROM_MOZ_STACK = save_stack; + ast.walk(new TreeWalker(function(node) { + if (node instanceof AST_LabelRef) { + for (var level = 0, parent; parent = this.parent(level); level++) { + if (parent instanceof AST_Scope) break; + if (parent instanceof AST_LabeledStatement && parent.label.name == node.name) { + node.thedef = parent.label; + break; + } + } + if (!node.thedef) { + var s = node.start; + js_error("Undefined label " + node.name, s.file, s.line, s.col, s.pos); + } + } + })); + return ast; + }; + + function set_moz_loc(mynode, moznode) { + var start = mynode.start; + var end = mynode.end; + if (start.pos != null && end.endpos != null) { + moznode.range = [start.pos, end.endpos]; + } + if (start.line) { + moznode.loc = { + start: {line: start.line, column: start.col}, + end: end.endline ? {line: end.endline, column: end.endcol} : null, + }; + if (start.file) { + moznode.loc.source = start.file; + } + } + return moznode; + } + + function def_to_moz(mytype, handler) { + mytype.DEFMETHOD("to_mozilla_ast", function() { + return set_moz_loc(this, handler(this)); + }); + } + + function to_moz(node) { + return node != null ? node.to_mozilla_ast() : null; + } + + function to_moz_alias(alias) { + return is_identifier_string(alias.value) ? set_moz_loc(alias, { + type: "Identifier", + name: alias.value, + }) : to_moz(alias); + } + + function to_moz_block(node) { + return { + type: "BlockStatement", + body: node.body.map(to_moz), + }; + } + + function to_moz_scope(type, node) { + var body = node.body.map(to_moz); + if (node.body[0] instanceof AST_SimpleStatement && node.body[0].body instanceof AST_String) { + body.unshift(to_moz(new AST_EmptyStatement(node.body[0]))); + } + return { + type: type, + body: body, + }; + } +})(); diff --git a/node_modules/uglify-js/lib/output.js b/node_modules/uglify-js/lib/output.js new file mode 100644 index 0000000..7e93d05 --- /dev/null +++ b/node_modules/uglify-js/lib/output.js @@ -0,0 +1,1956 @@ +/*********************************************************************** + + A JavaScript tokenizer / parser / beautifier / compressor. + https://github.com/mishoo/UglifyJS + + -------------------------------- (C) --------------------------------- + + Author: Mihai Bazon + + http://mihai.bazon.net/blog + + Distributed under the BSD license: + + Copyright 2012 (c) Mihai Bazon + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + ***********************************************************************/ + +"use strict"; + +function is_some_comments(comment) { + // multiline comment + return comment.type == "comment2" && /@preserve|@license|@cc_on/i.test(comment.value); +} + +function OutputStream(options) { + options = defaults(options, { + annotations : false, + ascii_only : false, + beautify : false, + braces : false, + comments : false, + extendscript : false, + galio : false, + ie : false, + indent_level : 4, + indent_start : 0, + inline_script : true, + keep_quoted_props: false, + max_line_len : false, + preamble : null, + preserve_line : false, + quote_keys : false, + quote_style : 0, + semicolons : true, + shebang : true, + source_map : null, + v8 : false, + webkit : false, + width : 80, + wrap_iife : false, + }, true); + + // Convert comment option to RegExp if necessary and set up comments filter + var comment_filter = return_false; // Default case, throw all comments away + if (options.comments) { + var comments = options.comments; + if (typeof options.comments === "string" && /^\/.*\/[a-zA-Z]*$/.test(options.comments)) { + var regex_pos = options.comments.lastIndexOf("/"); + comments = new RegExp( + options.comments.substr(1, regex_pos - 1), + options.comments.substr(regex_pos + 1) + ); + } + if (comments instanceof RegExp) { + comment_filter = function(comment) { + return comment.type != "comment5" && comments.test(comment.value); + }; + } else if (typeof comments === "function") { + comment_filter = function(comment) { + return comment.type != "comment5" && comments(this, comment); + }; + } else if (comments === "some") { + comment_filter = is_some_comments; + } else { // NOTE includes "all" option + comment_filter = return_true; + } + } + + function make_indent(value) { + if (typeof value == "number") return new Array(value + 1).join(" "); + if (!value) return ""; + if (!/^\s*$/.test(value)) throw new Error("unsupported indentation: " + JSON.stringify("" + value)); + return value; + } + + var current_col = 0; + var current_line = 1; + var current_indent = make_indent(options.indent_start); + var full_indent = make_indent(options.indent_level); + var half_indent = full_indent.length + 1 >> 1; + var last; + var line_end = 0; + var line_fixed = true; + var mappings = options.source_map && []; + var mapping_name; + var mapping_token; + var might_need_space; + var might_need_semicolon; + var need_newline_indented = false; + var need_space = false; + var output; + var stack; + var stored = ""; + + function reset() { + last = ""; + might_need_space = false; + might_need_semicolon = false; + stack = []; + var str = output; + output = ""; + return str; + } + + reset(); + var to_utf8 = options.ascii_only ? function(str, identifier) { + if (identifier) str = str.replace(/[\ud800-\udbff][\udc00-\udfff]/g, function(ch) { + return "\\u{" + (ch.charCodeAt(0) - 0xd7c0 << 10 | ch.charCodeAt(1) - 0xdc00).toString(16) + "}"; + }); + return str.replace(/[\u0000-\u001f\u007f-\uffff]/g, function(ch) { + var code = ch.charCodeAt(0).toString(16); + if (code.length <= 2 && !identifier) { + while (code.length < 2) code = "0" + code; + return "\\x" + code; + } else { + while (code.length < 4) code = "0" + code; + return "\\u" + code; + } + }); + } : function(str) { + var s = ""; + for (var i = 0, j = 0; i < str.length; i++) { + var code = str.charCodeAt(i); + if (is_surrogate_pair_head(code)) { + if (is_surrogate_pair_tail(str.charCodeAt(i + 1))) { + i++; + continue; + } + } else if (!is_surrogate_pair_tail(code)) { + continue; + } + s += str.slice(j, i) + "\\u" + code.toString(16); + j = i + 1; + } + return j == 0 ? str : s + str.slice(j); + }; + + function quote_single(str) { + return "'" + str.replace(/\x27/g, "\\'") + "'"; + } + + function quote_double(str) { + return '"' + str.replace(/\x22/g, '\\"') + '"'; + } + + var quote_string = [ + null, + quote_single, + quote_double, + function(str, quote) { + return quote == "'" ? quote_single(str) : quote_double(str); + }, + ][options.quote_style] || function(str, quote, dq, sq) { + return dq > sq ? quote_single(str) : quote_double(str); + }; + + function make_string(str, quote) { + var dq = 0, sq = 0; + str = str.replace(/[\\\b\f\n\r\v\t\x22\x27\u2028\u2029\0\ufeff]/g, function(s, i) { + switch (s) { + case '"': ++dq; return '"'; + case "'": ++sq; return "'"; + case "\\": return "\\\\"; + case "\n": return "\\n"; + case "\r": return "\\r"; + case "\t": return "\\t"; + case "\b": return "\\b"; + case "\f": return "\\f"; + case "\x0B": return options.ie ? "\\x0B" : "\\v"; + case "\u2028": return "\\u2028"; + case "\u2029": return "\\u2029"; + case "\ufeff": return "\\ufeff"; + case "\0": + return /[0-9]/.test(str.charAt(i+1)) ? "\\x00" : "\\0"; + } + return s; + }); + return quote_string(to_utf8(str), quote, dq, sq); + } + + /* -----[ beautification/minification ]----- */ + + var adjust_mappings = mappings ? function(line, col) { + mappings.forEach(function(mapping) { + mapping.line += line; + mapping.col += col; + }); + } : noop; + + var flush_mappings = mappings ? function() { + mappings.forEach(function(mapping) { + options.source_map.add( + mapping.token.file, + mapping.line, mapping.col, + mapping.token.line, mapping.token.col, + !mapping.name && mapping.token.type == "name" ? mapping.token.value : mapping.name + ); + }); + mappings = []; + } : noop; + + function insert_newlines(count) { + stored += output.slice(0, line_end); + output = output.slice(line_end); + var new_col = output.length; + adjust_mappings(count, new_col - current_col); + current_line += count; + current_col = new_col; + while (count--) stored += "\n"; + } + + var fix_line = options.max_line_len ? function(flush) { + if (line_fixed) { + if (current_col > options.max_line_len) { + AST_Node.warn("Output exceeds {max_line_len} characters", options); + } + return; + } + if (current_col > options.max_line_len) { + insert_newlines(1); + line_fixed = true; + } + if (line_fixed || flush) flush_mappings(); + } : noop; + + var require_semicolon = makePredicate("( [ + * / - , ."); + + function require_space(prev, ch, str) { + return is_identifier_char(prev) && (is_identifier_char(ch) || ch == "\\") + || (ch == "/" && ch == prev) + || ((ch == "+" || ch == "-") && ch == last) + || last == "--" && ch == ">" + || last == "!" && str == "--" + || prev == "/" && (str == "in" || str == "instanceof"); + } + + var print = options.beautify + || options.comments + || options.max_line_len + || options.preserve_line + || options.shebang + || !options.semicolons + || options.source_map + || options.width ? function(str) { + var ch = str.charAt(0); + if (need_newline_indented && ch) { + need_newline_indented = false; + if (ch != "\n") { + print("\n"); + indent(); + } + } + if (need_space && ch) { + need_space = false; + if (!/[\s;})]/.test(ch)) { + space(); + } + } + var prev = last.slice(-1); + if (might_need_semicolon) { + might_need_semicolon = false; + if (prev == ":" && ch == "}" || prev != ";" && (!ch || ";}".indexOf(ch) < 0)) { + var need_semicolon = require_semicolon[ch]; + if (need_semicolon || options.semicolons) { + output += ";"; + current_col++; + if (!line_fixed) { + fix_line(); + if (line_fixed && !need_semicolon && output == ";") { + output = ""; + current_col = 0; + } + } + if (line_end == output.length - 1) line_end++; + } else { + fix_line(); + output += "\n"; + current_line++; + current_col = 0; + // reset the semicolon flag, since we didn't print one + // now and might still have to later + if (/^\s+$/.test(str)) might_need_semicolon = true; + } + if (!options.beautify) might_need_space = false; + } + } + + if (might_need_space) { + if (require_space(prev, ch, str)) { + output += " "; + current_col++; + } + if (prev != "<" || str != "!") might_need_space = false; + } + + if (mapping_token) { + mappings.push({ + token: mapping_token, + name: mapping_name, + line: current_line, + col: current_col, + }); + mapping_token = false; + if (line_fixed) flush_mappings(); + } + + output += str; + var a = str.split(/\r?\n/), n = a.length - 1; + current_line += n; + current_col += a[0].length; + if (n > 0) { + fix_line(); + current_col = a[n].length; + } + last = str; + } : function(str) { + var ch = str.charAt(0); + var prev = last.slice(-1); + if (might_need_semicolon) { + might_need_semicolon = false; + if (prev == ":" && ch == "}" || (!ch || ";}".indexOf(ch) < 0) && prev != ";") { + output += ";"; + might_need_space = false; + } + } + if (might_need_space) { + if (require_space(prev, ch, str)) output += " "; + if (prev != "<" || str != "!") might_need_space = false; + } + output += str; + last = str; + }; + + var space = options.beautify ? function() { + print(" "); + } : function() { + might_need_space = true; + }; + + var indent = options.beautify ? function(half) { + if (need_newline_indented) print("\n"); + print(half ? current_indent.slice(0, -half_indent) : current_indent); + } : noop; + + var with_indent = options.beautify ? function(cont) { + var save_indentation = current_indent; + current_indent += full_indent; + cont(); + current_indent = save_indentation; + } : function(cont) { cont() }; + + var may_add_newline = options.max_line_len || options.preserve_line ? function() { + fix_line(); + line_end = output.length; + line_fixed = false; + } : noop; + + var newline = options.beautify ? function() { + print("\n"); + line_end = output.length; + } : may_add_newline; + + var semicolon = options.beautify ? function() { + print(";"); + } : function() { + might_need_semicolon = true; + }; + + function force_semicolon() { + if (might_need_semicolon) print(";"); + print(";"); + } + + function with_block(cont, end) { + print("{"); + newline(); + with_indent(cont); + add_mapping(end); + indent(); + print("}"); + } + + function with_parens(cont) { + print("("); + may_add_newline(); + cont(); + may_add_newline(); + print(")"); + } + + function with_square(cont) { + print("["); + may_add_newline(); + cont(); + may_add_newline(); + print("]"); + } + + function comma() { + may_add_newline(); + print(","); + may_add_newline(); + space(); + } + + function colon() { + print(":"); + space(); + } + + var add_mapping = mappings ? function(token, name) { + mapping_token = token; + mapping_name = name; + } : noop; + + function get() { + if (!line_fixed) fix_line(true); + return stored + output; + } + + function has_nlb() { + return /(^|\n) *$/.test(output); + } + + function pad_comment(token, force) { + if (need_newline_indented) return; + if (token.nlb && (force || !has_nlb())) { + need_newline_indented = true; + } else if (force) { + need_space = true; + } + } + + function print_comment(comment) { + var value = comment.value.replace(/[@#]__PURE__/g, " "); + if (/^\s*$/.test(value) && !/^\s*$/.test(comment.value)) return false; + if (/comment[134]/.test(comment.type)) { + print("//" + value); + need_newline_indented = true; + } else if (comment.type == "comment2") { + print("/*" + value + "*/"); + } + return true; + } + + function should_merge_comments(node, parent) { + if (parent instanceof AST_Binary) return parent.left === node; + if (parent.TYPE == "Call") return parent.expression === node; + if (parent instanceof AST_Conditional) return parent.condition === node; + if (parent instanceof AST_Dot) return parent.expression === node; + if (parent instanceof AST_Exit) return true; + if (parent instanceof AST_Sequence) return parent.expressions[0] === node; + if (parent instanceof AST_Sub) return parent.expression === node; + if (parent instanceof AST_UnaryPostfix) return true; + if (parent instanceof AST_Yield) return true; + } + + function prepend_comments(node) { + var self = this; + var scan; + if (node instanceof AST_Exit) { + scan = node.value; + } else if (node instanceof AST_Yield) { + scan = node.expression; + } + var comments = dump(node); + if (!comments) comments = []; + + if (scan) { + var tw = new TreeWalker(function(node) { + if (!should_merge_comments(node, tw.parent())) return true; + var before = dump(node); + if (before) comments = comments.concat(before); + }); + tw.push(node); + scan.walk(tw); + } + + if (current_line == 1 && current_col == 0) { + if (comments.length > 0 && options.shebang && comments[0].type == "comment5") { + print("#!" + comments.shift().value + "\n"); + indent(); + } + var preamble = options.preamble; + if (preamble) print(preamble.replace(/\r\n?|\u2028|\u2029|(^|\S)\s*$/g, "$1\n")); + } + + comments = comments.filter(comment_filter, node); + var printed = false; + comments.forEach(function(comment, index) { + pad_comment(comment, index); + if (print_comment(comment)) printed = true; + }); + if (printed) pad_comment(node.start, true); + + function dump(node) { + var token = node.start; + if (!token) { + if (!scan) return; + node.start = token = new AST_Token(); + } + var comments = token.comments_before; + if (!comments) { + if (!scan) return; + token.comments_before = comments = []; + } + if (comments._dumped === self) return; + comments._dumped = self; + return comments; + } + } + + function append_comments(node, tail) { + var self = this; + var token = node.end; + if (!token) return; + var comments = token[tail ? "comments_before" : "comments_after"]; + if (!comments || comments._dumped === self) return; + if (!(node instanceof AST_Statement || all(comments, function(c) { + return !/comment[134]/.test(c.type); + }))) return; + comments._dumped = self; + comments.filter(comment_filter, node).forEach(function(comment, index) { + pad_comment(comment, index || !tail); + print_comment(comment); + }); + } + + return { + get : get, + reset : reset, + indent : indent, + should_break : options.beautify && options.width ? function() { + return current_col >= options.width; + } : return_false, + has_parens : function() { return last.slice(-1) == "(" }, + newline : newline, + print : print, + space : space, + comma : comma, + colon : colon, + last : function() { return last }, + semicolon : semicolon, + force_semicolon : force_semicolon, + to_utf8 : to_utf8, + print_name : function(name) { print(to_utf8(name.toString(), true)) }, + print_string : options.inline_script ? function(str, quote) { + str = make_string(str, quote).replace(/<\x2f(script)([>\/\t\n\f\r ])/gi, "<\\/$1$2"); + print(str.replace(/\x3c!--/g, "\\x3c!--").replace(/--\x3e/g, "--\\x3e")); + } : function(str, quote) { + print(make_string(str, quote)); + }, + with_indent : with_indent, + with_block : with_block, + with_parens : with_parens, + with_square : with_square, + add_mapping : add_mapping, + option : function(opt) { return options[opt] }, + prepend_comments: options.comments || options.shebang ? prepend_comments : noop, + append_comments : options.comments ? append_comments : noop, + push_node : function(node) { stack.push(node) }, + pop_node : options.preserve_line ? function() { + var node = stack.pop(); + if (node.start && node.start.line > current_line) { + insert_newlines(node.start.line - current_line); + } + } : function() { + stack.pop(); + }, + parent : function(n) { + return stack[stack.length - 2 - (n || 0)]; + }, + }; +} + +/* -----[ code generators ]----- */ + +(function() { + + /* -----[ utils ]----- */ + + function DEFPRINT(nodetype, generator) { + nodetype.DEFMETHOD("_codegen", generator); + } + + var use_asm = false; + + AST_Node.DEFMETHOD("print", function(stream, force_parens) { + var self = this; + stream.push_node(self); + if (force_parens || self.needs_parens(stream)) { + stream.with_parens(doit); + } else { + doit(); + } + stream.pop_node(); + + function doit() { + stream.prepend_comments(self); + self.add_source_map(stream); + self._codegen(stream); + stream.append_comments(self); + } + }); + var readonly = OutputStream({ + inline_script: false, + shebang: false, + width: false, + }); + AST_Node.DEFMETHOD("print_to_string", function(options) { + if (options) { + var stream = OutputStream(options); + this.print(stream); + return stream.get(); + } + this.print(readonly); + return readonly.reset(); + }); + + /* -----[ PARENTHESES ]----- */ + + function PARENS(nodetype, func) { + nodetype.DEFMETHOD("needs_parens", func); + } + + PARENS(AST_Node, return_false); + + // a function expression needs parens around it when it's provably + // the first token to appear in a statement. + function needs_parens_function(output) { + var p = output.parent(); + if (!output.has_parens() && first_in_statement(output, false, true)) { + // export default function() {} + // export default (function foo() {}); + // export default (function() {})(foo); + // export default (function() {})`foo`; + // export default (function() {}) ? foo : bar; + return this.name || !(p instanceof AST_ExportDefault); + } + if (output.option("webkit") && p instanceof AST_PropAccess && p.expression === this) return true; + if (output.option("wrap_iife") && p instanceof AST_Call && p.expression === this) return true; + } + PARENS(AST_AsyncFunction, needs_parens_function); + PARENS(AST_AsyncGeneratorFunction, needs_parens_function); + PARENS(AST_ClassExpression, needs_parens_function); + PARENS(AST_Function, needs_parens_function); + PARENS(AST_GeneratorFunction, needs_parens_function); + + // same goes for an object literal, because otherwise it would be + // interpreted as a block of code. + function needs_parens_obj(output) { + return !output.has_parens() && first_in_statement(output, true); + } + PARENS(AST_Object, needs_parens_obj); + + function needs_parens_unary(output) { + var p = output.parent(); + // (-x) ** y + if (p instanceof AST_Binary) return p.operator == "**" && p.left === this; + // (await x)(y) + // new (await x) + if (p instanceof AST_Call) return p.expression === this; + // class extends (x++) {} + // class x extends (typeof y) {} + if (p instanceof AST_Class) return true; + // (x++)[y] + // (typeof x).y + // https://github.com/mishoo/UglifyJS/issues/115 + if (p instanceof AST_PropAccess) return p.expression === this; + // (~x)`foo` + if (p instanceof AST_Template) return p.tag === this; + } + PARENS(AST_Await, needs_parens_unary); + PARENS(AST_Unary, needs_parens_unary); + + PARENS(AST_Sequence, function(output) { + var p = output.parent(); + // [ 1, (2, 3), 4 ] ---> [ 1, 3, 4 ] + return p instanceof AST_Array + // () ---> (foo, bar) + || is_arrow(p) && p.value === this + // await (foo, bar) + || p instanceof AST_Await + // 1 + (2, 3) + 4 ---> 8 + || p instanceof AST_Binary + // new (foo, bar) or foo(1, (2, 3), 4) + || p instanceof AST_Call + // class extends (foo, bar) {} + // class foo extends (bar, baz) {} + || p instanceof AST_Class + // class { foo = (bar, baz) } + // class { [(foo, bar)]() {} } + || p instanceof AST_ClassProperty + // (false, true) ? (a = 10, b = 20) : (c = 30) + // ---> 20 (side effect, set a := 10 and b := 20) + || p instanceof AST_Conditional + // [ a = (1, 2) ] = [] ---> a == 2 + || p instanceof AST_DefaultValue + // { [(1, 2)]: foo } = bar + // { 1: (2, foo) } = bar + || p instanceof AST_DestructuredKeyVal + // export default (foo, bar) + || p instanceof AST_ExportDefault + // for (foo of (bar, baz)); + || p instanceof AST_ForOf + // { [(1, 2)]: 3 }[2] ---> 3 + // { foo: (1, 2) }.foo ---> 2 + || p instanceof AST_ObjectProperty + // (1, {foo:2}).foo or (1, {foo:2})["foo"] ---> 2 + || p instanceof AST_PropAccess && p.expression === this + // ...(foo, bar, baz) + || p instanceof AST_Spread + // (foo, bar)`baz` + || p instanceof AST_Template && p.tag === this + // !(foo, bar, baz) + || p instanceof AST_Unary + // var a = (1, 2), b = a + a; ---> b == 4 + || p instanceof AST_VarDef + // yield (foo, bar) + || p instanceof AST_Yield; + }); + + PARENS(AST_Binary, function(output) { + var p = output.parent(); + // await (foo && bar) + if (p instanceof AST_Await) return true; + // this deals with precedence: + // 3 * (2 + 1) + // 3 - (2 - 1) + // (1 ** 2) ** 3 + if (p instanceof AST_Binary) { + var po = p.operator, pp = PRECEDENCE[po]; + var so = this.operator, sp = PRECEDENCE[so]; + return pp > sp + || po == "??" && (so == "&&" || so == "||") + || (pp == sp && this === p[po == "**" ? "left" : "right"]); + } + // (foo && bar)() + if (p instanceof AST_Call) return p.expression === this; + // class extends (foo && bar) {} + // class foo extends (bar || null) {} + if (p instanceof AST_Class) return true; + // (foo && bar)["prop"], (foo && bar).prop + if (p instanceof AST_PropAccess) return p.expression === this; + // (foo && bar)`` + if (p instanceof AST_Template) return p.tag === this; + // typeof (foo && bar) + if (p instanceof AST_Unary) return true; + }); + + function need_chain_parens(node, parent) { + if (!node.terminal) return false; + if (!(parent instanceof AST_Call || parent instanceof AST_PropAccess)) return false; + return parent.expression === node; + } + + PARENS(AST_PropAccess, function(output) { + var node = this; + var p = output.parent(); + // i.e. new (foo().bar) + // + // if there's one call into this subtree, then we need + // parens around it too, otherwise the call will be + // interpreted as passing the arguments to the upper New + // expression. + if (p instanceof AST_New && p.expression === node && root_expr(node).TYPE == "Call") return true; + // (foo?.bar)() + // (foo?.bar).baz + // new (foo?.bar)() + return need_chain_parens(node, p); + }); + + PARENS(AST_Call, function(output) { + var node = this; + var p = output.parent(); + if (p instanceof AST_New) return p.expression === node; + // https://bugs.webkit.org/show_bug.cgi?id=123506 + if (output.option("webkit") + && node.expression instanceof AST_Function + && p instanceof AST_PropAccess + && p.expression === node) { + var g = output.parent(1); + if (g instanceof AST_Assign && g.left === p) return true; + } + // (foo?.())() + // (foo?.()).bar + // new (foo?.())() + return need_chain_parens(node, p); + }); + + PARENS(AST_New, function(output) { + if (need_constructor_parens(this, output)) return false; + var p = output.parent(); + // (new foo)(bar) + if (p instanceof AST_Call) return p.expression === this; + // (new Date).getTime(), (new Date)["getTime"]() + if (p instanceof AST_PropAccess) return true; + // (new foo)`bar` + if (p instanceof AST_Template) return p.tag === this; + }); + + PARENS(AST_Number, function(output) { + if (!output.option("galio")) return false; + // https://github.com/mishoo/UglifyJS/pull/1009 + var p = output.parent(); + return p instanceof AST_PropAccess && p.expression === this && /^0/.test(make_num(this.value)); + }); + + function needs_parens_assign_cond(self, output) { + var p = output.parent(); + // await (a = foo) + if (p instanceof AST_Await) return true; + // 1 + (a = 2) + 3 → 6, side effect setting a = 2 + if (p instanceof AST_Binary) return !(p instanceof AST_Assign); + // (a = func)() —or— new (a = Object)() + if (p instanceof AST_Call) return p.expression === self; + // class extends (a = foo) {} + // class foo extends (bar ? baz : moo) {} + if (p instanceof AST_Class) return true; + // (a = foo) ? bar : baz + if (p instanceof AST_Conditional) return p.condition === self; + // (a = foo)["prop"] —or— (a = foo).prop + if (p instanceof AST_PropAccess) return p.expression === self; + // (a = foo)`bar` + if (p instanceof AST_Template) return p.tag === self; + // !(a = false) → true + if (p instanceof AST_Unary) return true; + } + PARENS(AST_Arrow, function(output) { + return needs_parens_assign_cond(this, output); + }); + PARENS(AST_Assign, function(output) { + if (needs_parens_assign_cond(this, output)) return true; + // v8 parser bug ---> workaround + // f([1], [a] = []) ---> f([1], ([a] = [])) + if (output.option("v8")) return this.left instanceof AST_Destructured; + // ({ p: a } = o); + if (this.left instanceof AST_DestructuredObject) return needs_parens_obj(output); + }); + PARENS(AST_AsyncArrow, function(output) { + return needs_parens_assign_cond(this, output); + }); + PARENS(AST_Conditional, function(output) { + return needs_parens_assign_cond(this, output) + // https://github.com/mishoo/UglifyJS/issues/1144 + || output.option("extendscript") && output.parent() instanceof AST_Conditional; + }); + PARENS(AST_Yield, function(output) { + return needs_parens_assign_cond(this, output); + }); + + /* -----[ PRINTERS ]----- */ + + DEFPRINT(AST_Directive, function(output) { + var quote = this.quote; + var value = this.value; + switch (output.option("quote_style")) { + case 0: + case 2: + if (value.indexOf('"') == -1) quote = '"'; + break; + case 1: + if (value.indexOf("'") == -1) quote = "'"; + break; + } + output.print(quote + value + quote); + output.semicolon(); + }); + DEFPRINT(AST_Debugger, function(output) { + output.print("debugger"); + output.semicolon(); + }); + + /* -----[ statements ]----- */ + + function display_body(body, is_toplevel, output, allow_directives) { + var last = body.length - 1; + var in_directive = allow_directives; + var was_asm = use_asm; + body.forEach(function(stmt, i) { + if (in_directive) { + if (stmt instanceof AST_Directive) { + if (stmt.value == "use asm") use_asm = true; + } else if (!(stmt instanceof AST_EmptyStatement)) { + if (stmt instanceof AST_SimpleStatement && stmt.body instanceof AST_String) { + output.force_semicolon(); + } + in_directive = false; + } + } + if (stmt instanceof AST_EmptyStatement) return; + output.indent(); + stmt.print(output); + if (i == last && is_toplevel) return; + output.newline(); + if (is_toplevel) output.newline(); + }); + use_asm = was_asm; + } + + DEFPRINT(AST_Toplevel, function(output) { + display_body(this.body, true, output, true); + output.print(""); + }); + DEFPRINT(AST_LabeledStatement, function(output) { + this.label.print(output); + output.colon(); + this.body.print(output); + }); + DEFPRINT(AST_SimpleStatement, function(output) { + this.body.print(output); + output.semicolon(); + }); + function print_braced_empty(self, output) { + output.print("{"); + output.with_indent(function() { + output.append_comments(self, true); + }); + output.print("}"); + } + function print_braced(self, output, allow_directives) { + if (self.body.length > 0) { + output.with_block(function() { + display_body(self.body, false, output, allow_directives); + }, self.end); + } else print_braced_empty(self, output); + } + DEFPRINT(AST_BlockStatement, function(output) { + print_braced(this, output); + }); + DEFPRINT(AST_EmptyStatement, function(output) { + output.semicolon(); + }); + DEFPRINT(AST_Do, function(output) { + var self = this; + output.print("do"); + make_block(self.body, output); + output.space(); + output.print("while"); + output.space(); + output.with_parens(function() { + self.condition.print(output); + }); + output.semicolon(); + }); + DEFPRINT(AST_While, function(output) { + var self = this; + output.print("while"); + output.space(); + output.with_parens(function() { + self.condition.print(output); + }); + force_statement(self.body, output); + }); + DEFPRINT(AST_For, function(output) { + var self = this; + output.print("for"); + output.space(); + output.with_parens(function() { + if (self.init) { + if (self.init instanceof AST_Definitions) { + self.init.print(output); + } else { + parenthesize_for_no_in(self.init, output, true); + } + output.print(";"); + output.space(); + } else { + output.print(";"); + } + if (self.condition) { + self.condition.print(output); + output.print(";"); + output.space(); + } else { + output.print(";"); + } + if (self.step) { + self.step.print(output); + } + }); + force_statement(self.body, output); + }); + function print_for_enum(prefix, infix) { + return function(output) { + var self = this; + output.print(prefix); + output.space(); + output.with_parens(function() { + self.init.print(output); + output.space(); + output.print(infix); + output.space(); + self.object.print(output); + }); + force_statement(self.body, output); + }; + } + DEFPRINT(AST_ForAwaitOf, print_for_enum("for await", "of")); + DEFPRINT(AST_ForIn, print_for_enum("for", "in")); + DEFPRINT(AST_ForOf, print_for_enum("for", "of")); + DEFPRINT(AST_With, function(output) { + var self = this; + output.print("with"); + output.space(); + output.with_parens(function() { + self.expression.print(output); + }); + force_statement(self.body, output); + }); + DEFPRINT(AST_ExportDeclaration, function(output) { + output.print("export"); + output.space(); + this.body.print(output); + }); + DEFPRINT(AST_ExportDefault, function(output) { + output.print("export"); + output.space(); + output.print("default"); + output.space(); + var body = this.body; + body.print(output); + if (body instanceof AST_ClassExpression) { + if (!body.name) return; + } + if (body instanceof AST_DefClass) return; + if (body instanceof AST_LambdaDefinition) return; + if (body instanceof AST_LambdaExpression) { + if (!body.name && !is_arrow(body)) return; + } + output.semicolon(); + }); + function print_alias(alias, output) { + var value = alias.value; + if (value == "*" || is_identifier_string(value)) { + output.print_name(value); + } else { + output.print_string(value, alias.quote); + } + } + DEFPRINT(AST_ExportForeign, function(output) { + var self = this; + output.print("export"); + output.space(); + var len = self.keys.length; + if (len == 0) { + print_braced_empty(self, output); + } else if (self.keys[0].value == "*") { + print_entry(0); + } else output.with_block(function() { + output.indent(); + print_entry(0); + for (var i = 1; i < len; i++) { + output.print(","); + output.newline(); + output.indent(); + print_entry(i); + } + output.newline(); + }, self.end); + output.space(); + output.print("from"); + output.space(); + self.path.print(output); + output.semicolon(); + + function print_entry(index) { + var alias = self.aliases[index]; + var key = self.keys[index]; + print_alias(key, output); + if (alias.value != key.value) { + output.space(); + output.print("as"); + output.space(); + print_alias(alias, output); + } + } + }); + DEFPRINT(AST_ExportReferences, function(output) { + var self = this; + output.print("export"); + output.space(); + print_properties(self, output); + output.semicolon(); + }); + DEFPRINT(AST_Import, function(output) { + var self = this; + output.print("import"); + output.space(); + if (self.default) self.default.print(output); + if (self.all) { + if (self.default) output.comma(); + self.all.print(output); + } + if (self.properties) { + if (self.default) output.comma(); + print_properties(self, output); + } + if (self.all || self.default || self.properties) { + output.space(); + output.print("from"); + output.space(); + } + self.path.print(output); + output.semicolon(); + }); + + /* -----[ functions ]----- */ + function print_funargs(self, output) { + output.with_parens(function() { + self.argnames.forEach(function(arg, i) { + if (i) output.comma(); + arg.print(output); + }); + if (self.rest) { + if (self.argnames.length) output.comma(); + output.print("..."); + self.rest.print(output); + } + }); + } + function print_arrow(self, output) { + var argname = self.argnames.length == 1 && !self.rest && self.argnames[0]; + if (argname instanceof AST_SymbolFunarg && argname.name != "yield") { + argname.print(output); + } else { + print_funargs(self, output); + } + output.space(); + output.print("=>"); + output.space(); + if (self.value) { + self.value.print(output); + } else { + print_braced(self, output, true); + } + } + DEFPRINT(AST_Arrow, function(output) { + print_arrow(this, output); + }); + DEFPRINT(AST_AsyncArrow, function(output) { + output.print("async"); + output.space(); + print_arrow(this, output); + }); + function print_lambda(self, output) { + if (self.name) { + output.space(); + self.name.print(output); + } + print_funargs(self, output); + output.space(); + print_braced(self, output, true); + } + DEFPRINT(AST_Lambda, function(output) { + output.print("function"); + print_lambda(this, output); + }); + function print_async(output) { + output.print("async"); + output.space(); + output.print("function"); + print_lambda(this, output); + } + DEFPRINT(AST_AsyncDefun, print_async); + DEFPRINT(AST_AsyncFunction, print_async); + function print_async_generator(output) { + output.print("async"); + output.space(); + output.print("function*"); + print_lambda(this, output); + } + DEFPRINT(AST_AsyncGeneratorDefun, print_async_generator); + DEFPRINT(AST_AsyncGeneratorFunction, print_async_generator); + function print_generator(output) { + output.print("function*"); + print_lambda(this, output); + } + DEFPRINT(AST_GeneratorDefun, print_generator); + DEFPRINT(AST_GeneratorFunction, print_generator); + + /* -----[ classes ]----- */ + DEFPRINT(AST_Class, function(output) { + var self = this; + output.print("class"); + if (self.name) { + output.space(); + self.name.print(output); + } + if (self.extends) { + output.space(); + output.print("extends"); + output.space(); + self.extends.print(output); + } + output.space(); + print_properties(self, output, true); + }); + DEFPRINT(AST_ClassField, function(output) { + var self = this; + if (self.static) { + output.print("static"); + output.space(); + } + print_property_key(self, output); + if (self.value) { + output.space(); + output.print("="); + output.space(); + self.value.print(output); + } + output.semicolon(); + }); + DEFPRINT(AST_ClassGetter, print_accessor("get")); + DEFPRINT(AST_ClassSetter, print_accessor("set")); + function print_method(self, output) { + var fn = self.value; + if (is_async(fn)) { + output.print("async"); + output.space(); + } + if (is_generator(fn)) output.print("*"); + print_property_key(self, output); + print_lambda(self.value, output); + } + DEFPRINT(AST_ClassMethod, function(output) { + var self = this; + if (self.static) { + output.print("static"); + output.space(); + } + print_method(self, output); + }); + DEFPRINT(AST_ClassInit, function(output) { + output.print("static"); + output.space(); + print_braced(this.value, output); + }); + + /* -----[ jumps ]----- */ + function print_jump(kind, prop) { + return function(output) { + output.print(kind); + var target = this[prop]; + if (target) { + output.space(); + target.print(output); + } + output.semicolon(); + }; + } + DEFPRINT(AST_Return, print_jump("return", "value")); + DEFPRINT(AST_Throw, print_jump("throw", "value")); + DEFPRINT(AST_Break, print_jump("break", "label")); + DEFPRINT(AST_Continue, print_jump("continue", "label")); + + /* -----[ if ]----- */ + function make_then(self, output) { + var b = self.body; + if (output.option("braces") && !(b instanceof AST_Const || b instanceof AST_Let) + || output.option("ie") && b instanceof AST_Do) + return make_block(b, output); + // The squeezer replaces "block"-s that contain only a single + // statement with the statement itself; technically, the AST + // is correct, but this can create problems when we output an + // IF having an ELSE clause where the THEN clause ends in an + // IF *without* an ELSE block (then the outer ELSE would refer + // to the inner IF). This function checks for this case and + // adds the block braces if needed. + if (!b) return output.force_semicolon(); + while (true) { + if (b instanceof AST_If) { + if (!b.alternative) { + make_block(self.body, output); + return; + } + b = b.alternative; + } else if (b instanceof AST_StatementWithBody) { + b = b.body; + } else break; + } + force_statement(self.body, output); + } + DEFPRINT(AST_If, function(output) { + var self = this; + output.print("if"); + output.space(); + output.with_parens(function() { + self.condition.print(output); + }); + if (self.alternative) { + make_then(self, output); + output.space(); + output.print("else"); + if (self.alternative instanceof AST_If) { + output.space(); + self.alternative.print(output); + } else { + force_statement(self.alternative, output); + } + } else { + force_statement(self.body, output); + } + }); + + /* -----[ switch ]----- */ + DEFPRINT(AST_Switch, function(output) { + var self = this; + output.print("switch"); + output.space(); + output.with_parens(function() { + self.expression.print(output); + }); + output.space(); + var last = self.body.length - 1; + if (last < 0) print_braced_empty(self, output); + else output.with_block(function() { + self.body.forEach(function(branch, i) { + output.indent(true); + branch.print(output); + if (i < last && branch.body.length > 0) + output.newline(); + }); + }, self.end); + }); + function print_branch_body(self, output) { + output.newline(); + self.body.forEach(function(stmt) { + output.indent(); + stmt.print(output); + output.newline(); + }); + } + DEFPRINT(AST_Default, function(output) { + output.print("default:"); + print_branch_body(this, output); + }); + DEFPRINT(AST_Case, function(output) { + var self = this; + output.print("case"); + output.space(); + self.expression.print(output); + output.print(":"); + print_branch_body(self, output); + }); + + /* -----[ exceptions ]----- */ + DEFPRINT(AST_Try, function(output) { + var self = this; + output.print("try"); + output.space(); + print_braced(self, output); + if (self.bcatch) { + output.space(); + self.bcatch.print(output); + } + if (self.bfinally) { + output.space(); + self.bfinally.print(output); + } + }); + DEFPRINT(AST_Catch, function(output) { + var self = this; + output.print("catch"); + if (self.argname) { + output.space(); + output.with_parens(function() { + self.argname.print(output); + }); + } + output.space(); + print_braced(self, output); + }); + DEFPRINT(AST_Finally, function(output) { + output.print("finally"); + output.space(); + print_braced(this, output); + }); + + function print_definitions(type) { + return function(output) { + var self = this; + output.print(type); + output.space(); + self.definitions.forEach(function(def, i) { + if (i) output.comma(); + def.print(output); + }); + var p = output.parent(); + if (!(p instanceof AST_IterationStatement && p.init === self)) output.semicolon(); + }; + } + DEFPRINT(AST_Const, print_definitions("const")); + DEFPRINT(AST_Let, print_definitions("let")); + DEFPRINT(AST_Var, print_definitions("var")); + + function parenthesize_for_no_in(node, output, no_in) { + var parens = false; + // need to take some precautions here: + // https://github.com/mishoo/UglifyJS/issues/60 + if (no_in) node.walk(new TreeWalker(function(node) { + if (parens) return true; + if (node instanceof AST_Binary && node.operator == "in") return parens = true; + if (node instanceof AST_Scope && !(is_arrow(node) && node.value)) return true; + })); + node.print(output, parens); + } + + DEFPRINT(AST_VarDef, function(output) { + var self = this; + self.name.print(output); + if (self.value) { + output.space(); + output.print("="); + output.space(); + var p = output.parent(1); + var no_in = p instanceof AST_For || p instanceof AST_ForEnumeration; + parenthesize_for_no_in(self.value, output, no_in); + } + }); + + DEFPRINT(AST_DefaultValue, function(output) { + var self = this; + self.name.print(output); + output.space(); + output.print("="); + output.space(); + self.value.print(output); + }); + + /* -----[ other expressions ]----- */ + function print_annotation(self, output) { + if (!output.option("annotations")) return; + if (!self.pure) return; + var level = 0, parent = self, node; + do { + node = parent; + parent = output.parent(level++); + if (parent instanceof AST_Call && parent.expression === node) return; + } while (parent instanceof AST_PropAccess && parent.expression === node); + output.print("/*@__PURE__*/"); + } + function print_call_args(self, output) { + output.with_parens(function() { + self.args.forEach(function(expr, i) { + if (i) output.comma(); + expr.print(output); + }); + output.add_mapping(self.end); + }); + } + DEFPRINT(AST_Call, function(output) { + var self = this; + print_annotation(self, output); + self.expression.print(output); + if (self.optional) output.print("?."); + print_call_args(self, output); + }); + DEFPRINT(AST_New, function(output) { + var self = this; + print_annotation(self, output); + output.print("new"); + output.space(); + self.expression.print(output); + if (need_constructor_parens(self, output)) print_call_args(self, output); + }); + DEFPRINT(AST_Sequence, function(output) { + this.expressions.forEach(function(node, index) { + if (index > 0) { + output.comma(); + if (output.should_break()) { + output.newline(); + output.indent(); + } + } + node.print(output); + }); + }); + DEFPRINT(AST_Dot, function(output) { + var self = this; + var expr = self.expression; + expr.print(output); + var prop = self.property; + if (output.option("ie") && RESERVED_WORDS[prop] || self.quoted && output.option("keep_quoted_props")) { + if (self.optional) output.print("?."); + output.with_square(function() { + output.add_mapping(self.end); + output.print_string(prop); + }); + } else { + if (expr instanceof AST_Number && !/[ex.)]/i.test(output.last())) output.print("."); + output.print(self.optional ? "?." : "."); + // the name after dot would be mapped about here. + output.add_mapping(self.end); + output.print_name(prop); + } + }); + DEFPRINT(AST_Sub, function(output) { + var self = this; + self.expression.print(output); + if (self.optional) output.print("?."); + output.with_square(function() { + self.property.print(output); + }); + }); + DEFPRINT(AST_Spread, function(output) { + output.print("..."); + this.expression.print(output); + }); + DEFPRINT(AST_UnaryPrefix, function(output) { + var op = this.operator; + var exp = this.expression; + output.print(op); + if (/^[a-z]/i.test(op) + || (/[+-]$/.test(op) + && exp instanceof AST_UnaryPrefix + && /^[+-]/.test(exp.operator))) { + output.space(); + } + exp.print(output); + }); + DEFPRINT(AST_UnaryPostfix, function(output) { + var self = this; + self.expression.print(output); + output.add_mapping(self.end); + output.print(self.operator); + }); + DEFPRINT(AST_Binary, function(output) { + var self = this; + self.left.print(output); + output.space(); + output.print(self.operator); + output.space(); + self.right.print(output); + }); + DEFPRINT(AST_Conditional, function(output) { + var self = this; + self.condition.print(output); + output.space(); + output.print("?"); + output.space(); + self.consequent.print(output); + output.space(); + output.colon(); + self.alternative.print(output); + }); + DEFPRINT(AST_Await, function(output) { + output.print("await"); + output.space(); + this.expression.print(output); + }); + DEFPRINT(AST_Yield, function(output) { + output.print(this.nested ? "yield*" : "yield"); + if (this.expression) { + output.space(); + this.expression.print(output); + } + }); + + /* -----[ literals ]----- */ + DEFPRINT(AST_Array, function(output) { + var a = this.elements, len = a.length; + output.with_square(len > 0 ? function() { + output.space(); + a.forEach(function(exp, i) { + if (i) output.comma(); + exp.print(output); + // If the final element is a hole, we need to make sure it + // doesn't look like a trailing comma, by inserting an actual + // trailing comma. + if (i === len - 1 && exp instanceof AST_Hole) + output.comma(); + }); + output.space(); + } : noop); + }); + DEFPRINT(AST_DestructuredArray, function(output) { + var a = this.elements, len = a.length, rest = this.rest; + output.with_square(len || rest ? function() { + output.space(); + a.forEach(function(exp, i) { + if (i) output.comma(); + exp.print(output); + }); + if (rest) { + if (len) output.comma(); + output.print("..."); + rest.print(output); + } else if (a[len - 1] instanceof AST_Hole) { + // If the final element is a hole, we need to make sure it + // doesn't look like a trailing comma, by inserting an actual + // trailing comma. + output.comma(); + } + output.space(); + } : noop); + }); + DEFPRINT(AST_DestructuredKeyVal, function(output) { + var self = this; + var key = print_property_key(self, output); + var value = self.value; + if (key) { + if (value instanceof AST_DefaultValue) { + if (value.name instanceof AST_Symbol && key == get_symbol_name(value.name)) { + output.space(); + output.print("="); + output.space(); + value.value.print(output); + return; + } + } else if (value instanceof AST_Symbol) { + if (key == get_symbol_name(value)) return; + } + } + output.colon(); + value.print(output); + }); + DEFPRINT(AST_DestructuredObject, function(output) { + var self = this; + var props = self.properties, len = props.length, rest = self.rest; + if (len || rest) output.with_block(function() { + props.forEach(function(prop, i) { + if (i) { + output.print(","); + output.newline(); + } + output.indent(); + prop.print(output); + }); + if (rest) { + if (len) { + output.print(","); + output.newline(); + } + output.indent(); + output.print("..."); + rest.print(output); + } + output.newline(); + }, self.end); + else print_braced_empty(self, output); + }); + function print_properties(self, output, no_comma) { + var props = self.properties; + if (props.length > 0) output.with_block(function() { + props.forEach(function(prop, i) { + if (i) { + if (!no_comma) output.print(","); + output.newline(); + } + output.indent(); + prop.print(output); + }); + output.newline(); + }, self.end); + else print_braced_empty(self, output); + } + DEFPRINT(AST_Object, function(output) { + print_properties(this, output); + }); + + function print_property_key(self, output) { + var key = self.key; + if (key instanceof AST_Node) return output.with_square(function() { + key.print(output); + }); + var quote = self.start && self.start.quote; + if (output.option("quote_keys") || quote && output.option("keep_quoted_props")) { + output.print_string(key, quote); + } else if ("" + +key == key && key >= 0) { + output.print(make_num(key)); + } else if (self.private) { + output.print_name(key); + } else if (RESERVED_WORDS[key] ? !output.option("ie") : is_identifier_string(key)) { + output.print_name(key); + return key; + } else { + output.print_string(key, quote); + } + } + DEFPRINT(AST_ObjectKeyVal, function(output) { + var self = this; + print_property_key(self, output); + output.colon(); + self.value.print(output); + }); + DEFPRINT(AST_ObjectMethod, function(output) { + print_method(this, output); + }); + function print_accessor(type) { + return function(output) { + var self = this; + if (self.static) { + output.print("static"); + output.space(); + } + output.print(type); + output.space(); + print_property_key(self, output); + print_lambda(self.value, output); + }; + } + DEFPRINT(AST_ObjectGetter, print_accessor("get")); + DEFPRINT(AST_ObjectSetter, print_accessor("set")); + function get_symbol_name(sym) { + var def = sym.definition(); + return def && def.mangled_name || sym.name; + } + DEFPRINT(AST_Symbol, function(output) { + output.print_name(get_symbol_name(this)); + }); + DEFPRINT(AST_SymbolExport, function(output) { + var self = this; + var name = get_symbol_name(self); + output.print_name(name); + var alias = self.alias; + if (alias.value != name) { + output.space(); + output.print("as"); + output.space(); + print_alias(alias, output); + } + }); + DEFPRINT(AST_SymbolImport, function(output) { + var self = this; + var name = get_symbol_name(self); + var key = self.key; + if (key.value && key.value != name) { + print_alias(key, output); + output.space(); + output.print("as"); + output.space(); + } + output.print_name(name); + }); + DEFPRINT(AST_Hole, noop); + DEFPRINT(AST_Template, function(output) { + var self = this; + if (self.tag) self.tag.print(output); + output.print("`"); + for (var i = 0; i < self.expressions.length; i++) { + output.print(self.strings[i]); + output.print("${"); + self.expressions[i].print(output); + output.print("}"); + } + output.print(self.strings[i]); + output.print("`"); + }); + DEFPRINT(AST_Constant, function(output) { + output.print("" + this.value); + }); + DEFPRINT(AST_String, function(output) { + output.print_string(this.value, this.quote); + }); + DEFPRINT(AST_Number, function(output) { + var start = this.start; + if (use_asm && start && start.raw != null) { + output.print(start.raw); + } else { + output.print(make_num(this.value)); + } + }); + + DEFPRINT(AST_RegExp, function(output) { + var regexp = this.value; + var str = regexp.toString(); + var end = str.lastIndexOf("/"); + if (regexp.raw_source) { + str = "/" + regexp.raw_source + str.slice(end); + } else if (end == 1) { + str = "/(?:)" + str.slice(end); + } else if (str.indexOf("/", 1) < end) { + str = "/" + str.slice(1, end).replace(/\\\\|[^/]?\//g, function(match) { + return match[0] == "\\" ? match : match.slice(0, -1) + "\\/"; + }) + str.slice(end); + } + output.print(output.to_utf8(str).replace(/\\(?:\0(?![0-9])|[^\0])/g, function(match) { + switch (match[1]) { + case "\n": return "\\n"; + case "\r": return "\\r"; + case "\t": return "\t"; + case "\b": return "\b"; + case "\f": return "\f"; + case "\0": return "\0"; + case "\x0B": return "\v"; + case "\u2028": return "\\u2028"; + case "\u2029": return "\\u2029"; + default: return match; + } + }).replace(/[\n\r\u2028\u2029]/g, function(c) { + switch (c) { + case "\n": return "\\n"; + case "\r": return "\\r"; + case "\u2028": return "\\u2028"; + case "\u2029": return "\\u2029"; + } + })); + }); + + function force_statement(stat, output) { + if (output.option("braces") && !(stat instanceof AST_Const || stat instanceof AST_Let)) { + make_block(stat, output); + } else if (stat instanceof AST_EmptyStatement) { + output.force_semicolon(); + } else { + output.space(); + stat.print(output); + } + } + + // self should be AST_New. decide if we want to show parens or not. + function need_constructor_parens(self, output) { + // Always print parentheses with arguments + if (self.args.length > 0) return true; + + return output.option("beautify"); + } + + function best_of(a) { + var best = a[0], len = best.length; + for (var i = 1; i < a.length; ++i) { + if (a[i].length < len) { + best = a[i]; + len = best.length; + } + } + return best; + } + + function make_num(num) { + var str = num.toString(10).replace(/^0\./, ".").replace("e+", "e"); + var candidates = [ str ]; + if (Math.floor(num) === num) { + if (num < 0) { + candidates.push("-0x" + (-num).toString(16).toLowerCase()); + } else { + candidates.push("0x" + num.toString(16).toLowerCase()); + } + } + var match, len, digits; + if (match = /^\.0+/.exec(str)) { + len = match[0].length; + digits = str.slice(len); + candidates.push(digits + "e-" + (digits.length + len - 1)); + } else if (match = /[^0]0+$/.exec(str)) { + len = match[0].length - 1; + candidates.push(str.slice(0, -len) + "e" + len); + } else if (match = /^(\d)\.(\d+)e(-?\d+)$/.exec(str)) { + candidates.push(match[1] + match[2] + "e" + (match[3] - match[2].length)); + } + return best_of(candidates); + } + + function make_block(stmt, output) { + output.space(); + if (stmt instanceof AST_EmptyStatement) { + print_braced_empty(stmt, output); + } else if (stmt instanceof AST_BlockStatement) { + stmt.print(output); + } else output.with_block(function() { + output.indent(); + stmt.print(output); + output.newline(); + }, stmt.end); + } + + /* -----[ source map generators ]----- */ + + function DEFMAP(nodetype, generator) { + nodetype.forEach(function(nodetype) { + nodetype.DEFMETHOD("add_source_map", generator); + }); + } + + DEFMAP([ + // We could easily add info for ALL nodes, but it seems to me that + // would be quite wasteful, hence this noop in the base class. + AST_Node, + // since the label symbol will mark it + AST_LabeledStatement, + ], noop); + + // XXX: I'm not exactly sure if we need it for all of these nodes, + // or if we should add even more. + DEFMAP([ + AST_Array, + AST_Await, + AST_BlockStatement, + AST_Catch, + AST_Constant, + AST_Debugger, + AST_Definitions, + AST_Destructured, + AST_Directive, + AST_Finally, + AST_Jump, + AST_Lambda, + AST_New, + AST_Object, + AST_Spread, + AST_StatementWithBody, + AST_Symbol, + AST_Switch, + AST_SwitchBranch, + AST_Try, + AST_UnaryPrefix, + AST_Yield, + ], function(output) { + output.add_mapping(this.start); + }); + + DEFMAP([ + AST_ClassProperty, + AST_DestructuredKeyVal, + AST_ObjectProperty, + ], function(output) { + if (typeof this.key == "string") output.add_mapping(this.start, this.key); + }); +})(); diff --git a/node_modules/uglify-js/lib/parse.js b/node_modules/uglify-js/lib/parse.js new file mode 100644 index 0000000..8fb7f38 --- /dev/null +++ b/node_modules/uglify-js/lib/parse.js @@ -0,0 +1,2585 @@ +/*********************************************************************** + + A JavaScript tokenizer / parser / beautifier / compressor. + https://github.com/mishoo/UglifyJS + + -------------------------------- (C) --------------------------------- + + Author: Mihai Bazon + + http://mihai.bazon.net/blog + + Distributed under the BSD license: + + Copyright 2012 (c) Mihai Bazon + Parser based on parse-js (http://marijn.haverbeke.nl/parse-js/). + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + ***********************************************************************/ + +"use strict"; + +var KEYWORDS = "break case catch class const continue debugger default delete do else extends finally for function if in instanceof new return switch throw try typeof var void while with"; +var KEYWORDS_ATOM = "false null true"; +var RESERVED_WORDS = [ + "abstract async await boolean byte char double enum export final float goto implements import int interface let long native package private protected public short static super synchronized this throws transient volatile yield", + KEYWORDS_ATOM, + KEYWORDS, +].join(" "); +var KEYWORDS_BEFORE_EXPRESSION = "return new delete throw else case"; + +KEYWORDS = makePredicate(KEYWORDS); +RESERVED_WORDS = makePredicate(RESERVED_WORDS); +KEYWORDS_BEFORE_EXPRESSION = makePredicate(KEYWORDS_BEFORE_EXPRESSION); +KEYWORDS_ATOM = makePredicate(KEYWORDS_ATOM); + +var RE_BIN_NUMBER = /^0b([01]+)$/i; +var RE_HEX_NUMBER = /^0x([0-9a-f]+)$/i; +var RE_OCT_NUMBER = /^0o?([0-7]+)$/i; + +var OPERATORS = makePredicate([ + "in", + "instanceof", + "typeof", + "new", + "void", + "delete", + "++", + "--", + "+", + "-", + "!", + "~", + "&", + "|", + "^", + "*", + "/", + "%", + "**", + ">>", + "<<", + ">>>", + "<", + ">", + "<=", + ">=", + "==", + "===", + "!=", + "!==", + "?", + "=", + "+=", + "-=", + "/=", + "*=", + "%=", + "**=", + ">>=", + "<<=", + ">>>=", + "&=", + "|=", + "^=", + "&&", + "||", + "??", + "&&=", + "||=", + "??=", +]); + +var NEWLINE_CHARS = "\n\r\u2028\u2029"; +var OPERATOR_CHARS = "+-*&%=<>!?|~^"; +var PUNC_OPENERS = "[{("; +var PUNC_SEPARATORS = ",;:"; +var PUNC_CLOSERS = ")}]"; +var PUNC_AFTER_EXPRESSION = PUNC_SEPARATORS + PUNC_CLOSERS; +var PUNC_BEFORE_EXPRESSION = PUNC_OPENERS + PUNC_SEPARATORS; +var PUNC_CHARS = PUNC_BEFORE_EXPRESSION + "`" + PUNC_CLOSERS; +var WHITESPACE_CHARS = NEWLINE_CHARS + " \u00a0\t\f\u000b\u200b\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\uFEFF"; +var NON_IDENTIFIER_CHARS = makePredicate(characters("./'\"#" + OPERATOR_CHARS + PUNC_CHARS + WHITESPACE_CHARS)); + +NEWLINE_CHARS = makePredicate(characters(NEWLINE_CHARS)); +OPERATOR_CHARS = makePredicate(characters(OPERATOR_CHARS)); +PUNC_AFTER_EXPRESSION = makePredicate(characters(PUNC_AFTER_EXPRESSION)); +PUNC_BEFORE_EXPRESSION = makePredicate(characters(PUNC_BEFORE_EXPRESSION)); +PUNC_CHARS = makePredicate(characters(PUNC_CHARS)); +WHITESPACE_CHARS = makePredicate(characters(WHITESPACE_CHARS)); + +/* -----[ Tokenizer ]----- */ + +function is_surrogate_pair_head(code) { + return code >= 0xd800 && code <= 0xdbff; +} + +function is_surrogate_pair_tail(code) { + return code >= 0xdc00 && code <= 0xdfff; +} + +function is_digit(code) { + return code >= 48 && code <= 57; +} + +function is_identifier_char(ch) { + return !NON_IDENTIFIER_CHARS[ch]; +} + +function is_identifier_string(str) { + return /^[a-z_$][a-z0-9_$]*$/i.test(str); +} + +function decode_escape_sequence(seq) { + switch (seq[0]) { + case "b": return "\b"; + case "f": return "\f"; + case "n": return "\n"; + case "r": return "\r"; + case "t": return "\t"; + case "u": + var code; + if (seq[1] == "{" && seq.slice(-1) == "}") { + code = seq.slice(2, -1); + } else if (seq.length == 5) { + code = seq.slice(1); + } else { + return; + } + var num = parseInt(code, 16); + if (num < 0 || isNaN(num)) return; + if (num < 0x10000) return String.fromCharCode(num); + if (num > 0x10ffff) return; + return String.fromCharCode((num >> 10) + 0xd7c0) + String.fromCharCode((num & 0x03ff) + 0xdc00); + case "v": return "\u000b"; + case "x": + if (seq.length != 3) return; + var num = parseInt(seq.slice(1), 16); + if (num < 0 || isNaN(num)) return; + return String.fromCharCode(num); + case "\r": + case "\n": + return ""; + default: + if (seq == "0") return "\0"; + if (seq[0] >= "0" && seq[0] <= "9") return; + return seq; + } +} + +function parse_js_number(num) { + var match; + if (match = RE_BIN_NUMBER.exec(num)) return parseInt(match[1], 2); + if (match = RE_HEX_NUMBER.exec(num)) return parseInt(match[1], 16); + if (match = RE_OCT_NUMBER.exec(num)) return parseInt(match[1], 8); + var val = parseFloat(num); + if (val == num) return val; +} + +function JS_Parse_Error(message, filename, line, col, pos) { + this.message = message; + this.filename = filename; + this.line = line; + this.col = col; + this.pos = pos; +} +JS_Parse_Error.prototype = Object.create(Error.prototype); +JS_Parse_Error.prototype.constructor = JS_Parse_Error; +JS_Parse_Error.prototype.name = "SyntaxError"; +configure_error_stack(JS_Parse_Error); + +function js_error(message, filename, line, col, pos) { + throw new JS_Parse_Error(message, filename, line, col, pos); +} + +function is_token(token, type, val) { + return token.type == type && (val == null || token.value == val); +} + +var EX_EOF = {}; + +function tokenizer($TEXT, filename, html5_comments, shebang) { + + var S = { + text : $TEXT, + filename : filename, + pos : 0, + tokpos : 0, + line : 1, + tokline : 0, + col : 0, + tokcol : 0, + newline_before : false, + regex_allowed : false, + comments_before : [], + directives : Object.create(null), + read_template : with_eof_error("Unterminated template literal", function(strings) { + var s = ""; + for (;;) { + var ch = read(); + switch (ch) { + case "\\": + ch += read(); + break; + case "`": + strings.push(s); + return; + case "$": + if (peek() == "{") { + next(); + strings.push(s); + S.regex_allowed = true; + return true; + } + } + s += ch; + } + + function read() { + var ch = next(true, true); + return ch == "\r" ? "\n" : ch; + } + }), + }; + var prev_was_dot = false; + + function peek() { + return S.text.charAt(S.pos); + } + + function next(signal_eof, in_string) { + var ch = S.text.charAt(S.pos++); + if (signal_eof && !ch) + throw EX_EOF; + if (NEWLINE_CHARS[ch]) { + S.col = 0; + S.line++; + if (!in_string) S.newline_before = true; + if (ch == "\r" && peek() == "\n") { + // treat `\r\n` as `\n` + S.pos++; + ch = "\n"; + } + } else { + S.col++; + } + return ch; + } + + function forward(i) { + while (i-- > 0) next(); + } + + function looking_at(str) { + return S.text.substr(S.pos, str.length) == str; + } + + function find_eol() { + var text = S.text; + for (var i = S.pos; i < S.text.length; ++i) { + if (NEWLINE_CHARS[text[i]]) return i; + } + return -1; + } + + function find(what, signal_eof) { + var pos = S.text.indexOf(what, S.pos); + if (signal_eof && pos == -1) throw EX_EOF; + return pos; + } + + function start_token() { + S.tokline = S.line; + S.tokcol = S.col; + S.tokpos = S.pos; + } + + function token(type, value, is_comment) { + S.regex_allowed = type == "operator" && !UNARY_POSTFIX[value] + || type == "keyword" && KEYWORDS_BEFORE_EXPRESSION[value] + || type == "punc" && PUNC_BEFORE_EXPRESSION[value]; + if (type == "punc" && value == ".") prev_was_dot = true; + else if (!is_comment) prev_was_dot = false; + var ret = { + type : type, + value : value, + line : S.tokline, + col : S.tokcol, + pos : S.tokpos, + endline : S.line, + endcol : S.col, + endpos : S.pos, + nlb : S.newline_before, + file : filename + }; + if (/^(?:num|string|regexp)$/i.test(type)) { + ret.raw = $TEXT.substring(ret.pos, ret.endpos); + } + if (!is_comment) { + ret.comments_before = S.comments_before; + ret.comments_after = S.comments_before = []; + } + S.newline_before = false; + return new AST_Token(ret); + } + + function skip_whitespace() { + while (WHITESPACE_CHARS[peek()]) + next(); + } + + function read_while(pred) { + var ret = "", ch; + while ((ch = peek()) && pred(ch, ret)) ret += next(); + return ret; + } + + function parse_error(err) { + js_error(err, filename, S.tokline, S.tokcol, S.tokpos); + } + + function is_octal(num) { + return /^0[0-7_]+$/.test(num); + } + + function read_num(prefix) { + var has_e = false, after_e = false, has_x = false, has_dot = prefix == "."; + var num = read_while(function(ch, str) { + switch (ch) { + case "x": case "X": + return has_x ? false : (has_x = true); + case "e": case "E": + return has_x ? true : has_e ? false : (has_e = after_e = true); + case "+": case "-": + return after_e; + case (after_e = false, "."): + return has_dot || has_e || has_x || is_octal(str) ? false : (has_dot = true); + } + return /[_0-9a-dfo]/i.test(ch); + }); + if (prefix) num = prefix + num; + if (is_octal(num)) { + if (next_token.has_directive("use strict")) parse_error("Legacy octal literals are not allowed in strict mode"); + } else { + num = num.replace(has_x ? /([1-9a-f]|.0)_(?=[0-9a-f])/gi : /([1-9]|.0)_(?=[0-9])/gi, "$1"); + } + var valid = parse_js_number(num); + if (isNaN(valid)) parse_error("Invalid syntax: " + num); + if (has_dot || has_e || peek() != "n") return token("num", valid); + return token("bigint", num.toLowerCase() + next()); + } + + function read_escaped_char(in_string) { + var seq = next(true, in_string); + if (seq >= "0" && seq <= "7") return read_octal_escape_sequence(seq); + if (seq == "u") { + var ch = next(true, in_string); + seq += ch; + if (ch != "{") { + seq += next(true, in_string) + next(true, in_string) + next(true, in_string); + } else do { + ch = next(true, in_string); + seq += ch; + } while (ch != "}"); + } else if (seq == "x") { + seq += next(true, in_string) + next(true, in_string); + } + var str = decode_escape_sequence(seq); + if (typeof str != "string") parse_error("Invalid escape sequence: \\" + seq); + return str; + } + + function read_octal_escape_sequence(ch) { + // Read + var p = peek(); + if (p >= "0" && p <= "7") { + ch += next(true); + if (ch[0] <= "3" && (p = peek()) >= "0" && p <= "7") + ch += next(true); + } + + // Parse + if (ch === "0") return "\0"; + if (ch.length > 0 && next_token.has_directive("use strict")) + parse_error("Legacy octal escape sequences are not allowed in strict mode"); + return String.fromCharCode(parseInt(ch, 8)); + } + + var read_string = with_eof_error("Unterminated string constant", function(quote_char) { + var quote = next(), ret = ""; + for (;;) { + var ch = next(true, true); + if (ch == "\\") ch = read_escaped_char(true); + else if (NEWLINE_CHARS[ch]) parse_error("Unterminated string constant"); + else if (ch == quote) break; + ret += ch; + } + var tok = token("string", ret); + tok.quote = quote_char; + return tok; + }); + + function skip_line_comment(type) { + var regex_allowed = S.regex_allowed; + var i = find_eol(), ret; + if (i == -1) { + ret = S.text.substr(S.pos); + S.pos = S.text.length; + } else { + ret = S.text.substring(S.pos, i); + S.pos = i; + } + S.col = S.tokcol + (S.pos - S.tokpos); + S.comments_before.push(token(type, ret, true)); + S.regex_allowed = regex_allowed; + return next_token; + } + + var skip_multiline_comment = with_eof_error("Unterminated multiline comment", function() { + var regex_allowed = S.regex_allowed; + var i = find("*/", true); + var text = S.text.substring(S.pos, i).replace(/\r\n|\r|\u2028|\u2029/g, "\n"); + // update stream position + forward(text.length /* doesn't count \r\n as 2 char while S.pos - i does */ + 2); + S.comments_before.push(token("comment2", text, true)); + S.regex_allowed = regex_allowed; + return next_token; + }); + + function read_name() { + var backslash = false, ch, escaped = false, name = peek() == "#" ? next() : ""; + while (ch = peek()) { + if (!backslash) { + if (ch == "\\") escaped = backslash = true, next(); + else if (is_identifier_char(ch)) name += next(); + else break; + } else { + if (ch != "u") parse_error("Expecting UnicodeEscapeSequence -- uXXXX"); + ch = read_escaped_char(); + if (!is_identifier_char(ch)) parse_error("Unicode char: " + ch.charCodeAt(0) + " is not valid in identifier"); + name += ch; + backslash = false; + } + } + if (KEYWORDS[name] && escaped) { + var hex = name.charCodeAt(0).toString(16).toUpperCase(); + name = "\\u" + "0000".substr(hex.length) + hex + name.slice(1); + } + return name; + } + + var read_regexp = with_eof_error("Unterminated regular expression", function(source) { + var prev_backslash = false, ch, in_class = false; + while ((ch = next(true))) if (NEWLINE_CHARS[ch]) { + parse_error("Unexpected line terminator"); + } else if (prev_backslash) { + source += "\\" + ch; + prev_backslash = false; + } else if (ch == "[") { + in_class = true; + source += ch; + } else if (ch == "]" && in_class) { + in_class = false; + source += ch; + } else if (ch == "/" && !in_class) { + break; + } else if (ch == "\\") { + prev_backslash = true; + } else { + source += ch; + } + var mods = read_name(); + try { + var regexp = new RegExp(source, mods); + regexp.raw_source = source; + return token("regexp", regexp); + } catch (e) { + parse_error(e.message); + } + }); + + function read_operator(prefix) { + function grow(op) { + if (!peek()) return op; + var bigger = op + peek(); + if (OPERATORS[bigger]) { + next(); + return grow(bigger); + } else { + return op; + } + } + return token("operator", grow(prefix || next())); + } + + function handle_slash() { + next(); + switch (peek()) { + case "/": + next(); + return skip_line_comment("comment1"); + case "*": + next(); + return skip_multiline_comment(); + } + return S.regex_allowed ? read_regexp("") : read_operator("/"); + } + + function handle_dot() { + next(); + if (looking_at("..")) return token("operator", "." + next() + next()); + return is_digit(peek().charCodeAt(0)) ? read_num(".") : token("punc", "."); + } + + function read_word() { + var word = read_name(); + if (prev_was_dot) return token("name", word); + return KEYWORDS_ATOM[word] ? token("atom", word) + : !KEYWORDS[word] ? token("name", word) + : OPERATORS[word] ? token("operator", word) + : token("keyword", word); + } + + function with_eof_error(eof_error, cont) { + return function(x) { + try { + return cont(x); + } catch (ex) { + if (ex === EX_EOF) parse_error(eof_error); + else throw ex; + } + }; + } + + function next_token(force_regexp) { + if (force_regexp != null) + return read_regexp(force_regexp); + if (shebang && S.pos == 0 && looking_at("#!")) { + start_token(); + forward(2); + skip_line_comment("comment5"); + } + for (;;) { + skip_whitespace(); + start_token(); + if (html5_comments) { + if (looking_at("") && S.newline_before) { + forward(3); + skip_line_comment("comment4"); + continue; + } + } + var ch = peek(); + if (!ch) return token("eof"); + var code = ch.charCodeAt(0); + switch (code) { + case 34: case 39: return read_string(ch); + case 46: return handle_dot(); + case 47: + var tok = handle_slash(); + if (tok === next_token) continue; + return tok; + } + if (is_digit(code)) return read_num(); + if (PUNC_CHARS[ch]) return token("punc", next()); + if (looking_at("=>")) return token("punc", next() + next()); + if (OPERATOR_CHARS[ch]) return read_operator(); + if (code == 35 || code == 92 || !NON_IDENTIFIER_CHARS[ch]) return read_word(); + break; + } + parse_error("Unexpected character '" + ch + "'"); + } + + next_token.context = function(nc) { + if (nc) S = nc; + return S; + }; + + next_token.add_directive = function(directive) { + S.directives[directive] = true; + } + + next_token.push_directives_stack = function() { + S.directives = Object.create(S.directives); + } + + next_token.pop_directives_stack = function() { + S.directives = Object.getPrototypeOf(S.directives); + } + + next_token.has_directive = function(directive) { + return !!S.directives[directive]; + } + + return next_token; +} + +/* -----[ Parser (constants) ]----- */ + +var UNARY_PREFIX = makePredicate("typeof void delete -- ++ ! ~ - +"); + +var UNARY_POSTFIX = makePredicate("-- ++"); + +var ASSIGNMENT = makePredicate("= += -= /= *= %= **= >>= <<= >>>= &= |= ^= &&= ||= ??="); + +var PRECEDENCE = function(a, ret) { + for (var i = 0; i < a.length;) { + var b = a[i++]; + for (var j = 0; j < b.length; j++) { + ret[b[j]] = i; + } + } + return ret; +}([ + ["??"], + ["||"], + ["&&"], + ["|"], + ["^"], + ["&"], + ["==", "===", "!=", "!=="], + ["<", ">", "<=", ">=", "in", "instanceof"], + [">>", "<<", ">>>"], + ["+", "-"], + ["*", "/", "%"], + ["**"], +], {}); + +var ATOMIC_START_TOKEN = makePredicate("atom bigint num regexp string"); + +/* -----[ Parser ]----- */ + +function parse($TEXT, options) { + options = defaults(options, { + bare_returns : false, + expression : false, + filename : null, + html5_comments : true, + module : false, + shebang : true, + strict : false, + toplevel : null, + }, true); + + var S = { + input : typeof $TEXT == "string" + ? tokenizer($TEXT, options.filename, options.html5_comments, options.shebang) + : $TEXT, + in_async : false, + in_directives : true, + in_funarg : -1, + in_function : 0, + in_generator : false, + in_loop : 0, + labels : [], + peeked : null, + prev : null, + token : null, + }; + + S.token = next(); + + function is(type, value) { + return is_token(S.token, type, value); + } + + function peek() { + return S.peeked || (S.peeked = S.input()); + } + + function next() { + S.prev = S.token; + if (S.peeked) { + S.token = S.peeked; + S.peeked = null; + } else { + S.token = S.input(); + } + S.in_directives = S.in_directives && ( + S.token.type == "string" || is("punc", ";") + ); + return S.token; + } + + function prev() { + return S.prev; + } + + function croak(msg, line, col, pos) { + var ctx = S.input.context(); + js_error(msg, + ctx.filename, + line != null ? line : ctx.tokline, + col != null ? col : ctx.tokcol, + pos != null ? pos : ctx.tokpos); + } + + function token_error(token, msg) { + croak(msg, token.line, token.col); + } + + function token_to_string(type, value) { + return type + (value === undefined ? "" : " «" + value + "»"); + } + + function unexpected(token) { + if (token == null) token = S.token; + token_error(token, "Unexpected token: " + token_to_string(token.type, token.value)); + } + + function expect_token(type, val) { + if (is(type, val)) return next(); + token_error(S.token, "Unexpected token: " + token_to_string(S.token.type, S.token.value) + ", expected: " + token_to_string(type, val)); + } + + function expect(punc) { + return expect_token("punc", punc); + } + + function has_newline_before(token) { + return token.nlb || !all(token.comments_before, function(comment) { + return !comment.nlb; + }); + } + + function can_insert_semicolon() { + return !options.strict + && (is("eof") || is("punc", "}") || has_newline_before(S.token)); + } + + function semicolon(optional) { + if (is("punc", ";")) next(); + else if (!optional && !can_insert_semicolon()) expect(";"); + } + + function parenthesized() { + expect("("); + var exp = expression(); + expect(")"); + return exp; + } + + function embed_tokens(parser) { + return function() { + var start = S.token; + var expr = parser.apply(null, arguments); + var end = prev(); + expr.start = start; + expr.end = end; + return expr; + }; + } + + function handle_regexp() { + if (is("operator", "/") || is("operator", "/=")) { + S.peeked = null; + S.token = S.input(S.token.value.substr(1)); // force regexp + } + } + + var statement = embed_tokens(function(toplevel) { + handle_regexp(); + switch (S.token.type) { + case "string": + var dir = S.in_directives; + var body = expression(); + if (dir) { + if (body instanceof AST_String) { + var value = body.start.raw.slice(1, -1); + S.input.add_directive(value); + body.value = value; + } else { + S.in_directives = dir = false; + } + } + semicolon(); + return dir ? new AST_Directive(body) : new AST_SimpleStatement({ body: body }); + case "num": + case "bigint": + case "regexp": + case "operator": + case "atom": + return simple_statement(); + + case "name": + switch (S.token.value) { + case "async": + if (is_token(peek(), "keyword", "function")) { + next(); + next(); + if (!is("operator", "*")) return function_(AST_AsyncDefun); + next(); + return function_(AST_AsyncGeneratorDefun); + } + break; + case "await": + if (S.in_async) return simple_statement(); + break; + case "export": + if (!toplevel && options.module !== "") unexpected(); + next(); + return export_(); + case "import": + var token = peek(); + if (token.type == "punc" && /^[(.]$/.test(token.value)) break; + if (!toplevel && options.module !== "") unexpected(); + next(); + return import_(); + case "let": + if (is_vardefs()) { + next(); + var node = let_(); + semicolon(); + return node; + } + break; + case "yield": + if (S.in_generator) return simple_statement(); + break; + } + return is_token(peek(), "punc", ":") + ? labeled_statement() + : simple_statement(); + + case "punc": + switch (S.token.value) { + case "{": + return new AST_BlockStatement({ + start : S.token, + body : block_(), + end : prev() + }); + case "[": + case "(": + case "`": + return simple_statement(); + case ";": + S.in_directives = false; + next(); + return new AST_EmptyStatement(); + default: + unexpected(); + } + + case "keyword": + switch (S.token.value) { + case "break": + next(); + return break_cont(AST_Break); + + case "class": + next(); + return class_(AST_DefClass); + + case "const": + next(); + var node = const_(); + semicolon(); + return node; + + case "continue": + next(); + return break_cont(AST_Continue); + + case "debugger": + next(); + semicolon(); + return new AST_Debugger(); + + case "do": + next(); + var body = in_loop(statement); + expect_token("keyword", "while"); + var condition = parenthesized(); + semicolon(true); + return new AST_Do({ + body : body, + condition : condition, + }); + + case "while": + next(); + return new AST_While({ + condition : parenthesized(), + body : in_loop(statement), + }); + + case "for": + next(); + return for_(); + + case "function": + next(); + if (!is("operator", "*")) return function_(AST_Defun); + next(); + return function_(AST_GeneratorDefun); + + case "if": + next(); + return if_(); + + case "return": + if (S.in_function == 0 && !options.bare_returns) + croak("'return' outside of function"); + next(); + var value = null; + if (is("punc", ";")) { + next(); + } else if (!can_insert_semicolon()) { + value = expression(); + semicolon(); + } + return new AST_Return({ value: value }); + + case "switch": + next(); + return new AST_Switch({ + expression : parenthesized(), + body : in_loop(switch_body_), + }); + + case "throw": + next(); + if (has_newline_before(S.token)) + croak("Illegal newline after 'throw'"); + var value = expression(); + semicolon(); + return new AST_Throw({ value: value }); + + case "try": + next(); + return try_(); + + case "var": + next(); + var node = var_(); + semicolon(); + return node; + + case "with": + if (S.input.has_directive("use strict")) { + croak("Strict mode may not include a with statement"); + } + next(); + return new AST_With({ + expression : parenthesized(), + body : statement(), + }); + } + } + unexpected(); + }); + + function labeled_statement() { + var label = as_symbol(AST_Label); + if (!all(S.labels, function(l) { + return l.name != label.name; + })) { + // ECMA-262, 12.12: An ECMAScript program is considered + // syntactically incorrect if it contains a + // LabelledStatement that is enclosed by a + // LabelledStatement with the same Identifier as label. + croak("Label " + label.name + " defined twice"); + } + expect(":"); + S.labels.push(label); + var stat = statement(); + S.labels.pop(); + if (!(stat instanceof AST_IterationStatement)) { + // check for `continue` that refers to this label. + // those should be reported as syntax errors. + // https://github.com/mishoo/UglifyJS/issues/287 + label.references.forEach(function(ref) { + if (ref instanceof AST_Continue) { + token_error(ref.label.start, "Continue label `" + label.name + "` must refer to IterationStatement"); + } + }); + } + return new AST_LabeledStatement({ body: stat, label: label }); + } + + function simple_statement() { + var body = expression(); + semicolon(); + return new AST_SimpleStatement({ body: body }); + } + + function break_cont(type) { + var label = null, ldef; + if (!can_insert_semicolon()) { + label = as_symbol(AST_LabelRef, true); + } + if (label != null) { + ldef = find_if(function(l) { + return l.name == label.name; + }, S.labels); + if (!ldef) token_error(label.start, "Undefined label " + label.name); + label.thedef = ldef; + } else if (S.in_loop == 0) croak(type.TYPE + " not inside a loop or switch"); + semicolon(); + var stat = new type({ label: label }); + if (ldef) ldef.references.push(stat); + return stat; + } + + function has_modifier(name, no_nlb) { + if (!is("name", name)) return; + var token = peek(); + if (!token) return; + if (is_token(token, "operator", "=")) return; + if (token.type == "punc" && /^[(;}]$/.test(token.value)) return; + if (no_nlb && has_newline_before(token)) return; + return next(); + } + + function class_(ctor) { + var was_async = S.in_async; + var was_gen = S.in_generator; + S.input.push_directives_stack(); + S.input.add_directive("use strict"); + var name; + if (ctor === AST_DefClass) { + name = as_symbol(AST_SymbolDefClass); + } else { + name = as_symbol(AST_SymbolClass, true); + } + var parent = null; + if (is("keyword", "extends")) { + next(); + handle_regexp(); + parent = expr_atom(true); + } + expect("{"); + var props = []; + while (!is("punc", "}")) { + if (is("punc", ";")) { + next(); + continue; + } + var start = S.token; + var fixed = !!has_modifier("static"); + var async = has_modifier("async", true); + if (is("operator", "*")) { + next(); + var internal = is("name") && /^#/.test(S.token.value); + var key = as_property_key(); + var gen_start = S.token; + var gen = function_(async ? AST_AsyncGeneratorFunction : AST_GeneratorFunction); + gen.start = gen_start; + gen.end = prev(); + props.push(new AST_ClassMethod({ + start: start, + static: fixed, + private: internal, + key: key, + value: gen, + end: prev(), + })); + continue; + } + if (fixed && is("punc", "{")) { + props.push(new AST_ClassInit({ + start: start, + value: new AST_ClassInitBlock({ + start: start, + body: block_(), + end: prev(), + }), + end: prev(), + })); + continue; + } + var internal = is("name") && /^#/.test(S.token.value); + var key = as_property_key(); + if (is("punc", "(")) { + var func_start = S.token; + var func = function_(async ? AST_AsyncFunction : AST_Function); + func.start = func_start; + func.end = prev(); + props.push(new AST_ClassMethod({ + start: start, + static: fixed, + private: internal, + key: key, + value: func, + end: prev(), + })); + continue; + } + if (async) unexpected(async); + var value = null; + if (is("operator", "=")) { + next(); + S.in_async = false; + S.in_generator = false; + value = maybe_assign(); + S.in_generator = was_gen; + S.in_async = was_async; + } else if (!(is("punc", ";") || is("punc", "}"))) { + var type = null; + switch (key) { + case "get": + type = AST_ClassGetter; + break; + case "set": + type = AST_ClassSetter; + break; + } + if (type) { + props.push(new type({ + start: start, + static: fixed, + private: is("name") && /^#/.test(S.token.value), + key: as_property_key(), + value: create_accessor(), + end: prev(), + })); + continue; + } + } + semicolon(); + props.push(new AST_ClassField({ + start: start, + static: fixed, + private: internal, + key: key, + value: value, + end: prev(), + })); + } + next(); + S.input.pop_directives_stack(); + S.in_generator = was_gen; + S.in_async = was_async; + return new ctor({ + extends: parent, + name: name, + properties: props, + }); + } + + function for_() { + var await_token = is("name", "await") && next(); + expect("("); + var init = null; + if (await_token || !is("punc", ";")) { + init = is("keyword", "const") + ? (next(), const_(true)) + : is("name", "let") && is_vardefs() + ? (next(), let_(true)) + : is("keyword", "var") + ? (next(), var_(true)) + : expression(true); + var ctor; + if (await_token) { + expect_token("name", "of"); + ctor = AST_ForAwaitOf; + } else if (is("operator", "in")) { + next(); + ctor = AST_ForIn; + } else if (is("name", "of")) { + next(); + ctor = AST_ForOf; + } + if (ctor) { + if (init instanceof AST_Definitions) { + if (init.definitions.length > 1) { + token_error(init.start, "Only one variable declaration allowed in for..in/of loop"); + } + if (ctor !== AST_ForIn && init.definitions[0].value) { + token_error(init.definitions[0].value.start, "No initializers allowed in for..of loop"); + } + } else if (!(is_assignable(init) || (init = to_destructured(init)) instanceof AST_Destructured)) { + token_error(init.start, "Invalid left-hand side in for..in/of loop"); + } + return for_enum(ctor, init); + } + } + return regular_for(init); + } + + function regular_for(init) { + expect(";"); + var test = is("punc", ";") ? null : expression(); + expect(";"); + var step = is("punc", ")") ? null : expression(); + expect(")"); + return new AST_For({ + init : init, + condition : test, + step : step, + body : in_loop(statement) + }); + } + + function for_enum(ctor, init) { + handle_regexp(); + var obj = expression(); + expect(")"); + return new ctor({ + init : init, + object : obj, + body : in_loop(statement) + }); + } + + function to_funarg(node) { + if (node instanceof AST_Array) { + var rest = null; + if (node.elements[node.elements.length - 1] instanceof AST_Spread) { + rest = to_funarg(node.elements.pop().expression); + } + return new AST_DestructuredArray({ + start: node.start, + elements: node.elements.map(to_funarg), + rest: rest, + end: node.end, + }); + } + if (node instanceof AST_Assign) return new AST_DefaultValue({ + start: node.start, + name: to_funarg(node.left), + value: node.right, + end: node.end, + }); + if (node instanceof AST_DefaultValue) { + node.name = to_funarg(node.name); + return node; + } + if (node instanceof AST_DestructuredArray) { + node.elements = node.elements.map(to_funarg); + if (node.rest) node.rest = to_funarg(node.rest); + return node; + } + if (node instanceof AST_DestructuredObject) { + node.properties.forEach(function(prop) { + prop.value = to_funarg(prop.value); + }); + if (node.rest) node.rest = to_funarg(node.rest); + return node; + } + if (node instanceof AST_Hole) return node; + if (node instanceof AST_Object) { + var rest = null; + if (node.properties[node.properties.length - 1] instanceof AST_Spread) { + rest = to_funarg(node.properties.pop().expression); + } + return new AST_DestructuredObject({ + start: node.start, + properties: node.properties.map(function(prop) { + if (!(prop instanceof AST_ObjectKeyVal)) token_error(prop.start, "Invalid destructuring assignment"); + return new AST_DestructuredKeyVal({ + start: prop.start, + key: prop.key, + value: to_funarg(prop.value), + end: prop.end, + }); + }), + rest: rest, + end: node.end, + }); + } + if (node instanceof AST_SymbolFunarg) return node; + if (node instanceof AST_SymbolRef) return new AST_SymbolFunarg(node); + if (node instanceof AST_Yield) return new AST_SymbolFunarg({ + start: node.start, + name: "yield", + end: node.end, + }); + token_error(node.start, "Invalid arrow parameter"); + } + + function arrow(exprs, start, async) { + var was_async = S.in_async; + var was_gen = S.in_generator; + S.in_async = async; + S.in_generator = false; + var was_funarg = S.in_funarg; + S.in_funarg = S.in_function; + var argnames = exprs.map(to_funarg); + var rest = exprs.rest || null; + if (rest) rest = to_funarg(rest); + S.in_funarg = was_funarg; + expect("=>"); + var body, value; + var loop = S.in_loop; + var labels = S.labels; + ++S.in_function; + S.input.push_directives_stack(); + S.in_loop = 0; + S.labels = []; + if (is("punc", "{")) { + S.in_directives = true; + body = block_(); + value = null; + } else { + body = []; + handle_regexp(); + value = maybe_assign(); + } + var is_strict = S.input.has_directive("use strict"); + S.input.pop_directives_stack(); + --S.in_function; + S.in_loop = loop; + S.labels = labels; + S.in_generator = was_gen; + S.in_async = was_async; + var node = new (async ? AST_AsyncArrow : AST_Arrow)({ + start: start, + argnames: argnames, + rest: rest, + body: body, + value: value, + end: prev(), + }); + if (is_strict) node.each_argname(strict_verify_symbol); + return node; + } + + var function_ = function(ctor) { + var was_async = S.in_async; + var was_gen = S.in_generator; + var name; + if (/Defun$/.test(ctor.TYPE)) { + name = as_symbol(AST_SymbolDefun); + S.in_async = /^Async/.test(ctor.TYPE); + S.in_generator = /Generator/.test(ctor.TYPE); + } else { + S.in_async = /^Async/.test(ctor.TYPE); + S.in_generator = /Generator/.test(ctor.TYPE); + name = as_symbol(AST_SymbolLambda, true); + } + if (name && ctor !== AST_Accessor && !(name instanceof AST_SymbolDeclaration)) + unexpected(prev()); + expect("("); + var was_funarg = S.in_funarg; + S.in_funarg = S.in_function; + var argnames = expr_list(")", !options.strict, false, function() { + return maybe_default(AST_SymbolFunarg); + }); + S.in_funarg = was_funarg; + var loop = S.in_loop; + var labels = S.labels; + ++S.in_function; + S.in_directives = true; + S.input.push_directives_stack(); + S.in_loop = 0; + S.labels = []; + var body = block_(); + var is_strict = S.input.has_directive("use strict"); + S.input.pop_directives_stack(); + --S.in_function; + S.in_loop = loop; + S.labels = labels; + S.in_generator = was_gen; + S.in_async = was_async; + var node = new ctor({ + name: name, + argnames: argnames, + rest: argnames.rest || null, + body: body, + }); + if (is_strict) { + if (name) strict_verify_symbol(name); + node.each_argname(strict_verify_symbol); + } + return node; + }; + + function if_() { + var cond = parenthesized(), body = statement(), alt = null; + if (is("keyword", "else")) { + next(); + alt = statement(); + } + return new AST_If({ + condition : cond, + body : body, + alternative : alt, + }); + } + + function is_alias() { + return is("name") || is("string") || is_identifier_string(S.token.value); + } + + function make_string(token) { + return new AST_String({ + start: token, + quote: token.quote, + value: token.value, + end: token, + }); + } + + function as_path() { + var path = S.token; + expect_token("string"); + semicolon(); + return make_string(path); + } + + function export_() { + if (is("operator", "*")) { + var key = S.token; + var alias = key; + next(); + if (is("name", "as")) { + next(); + if (!is_alias()) expect_token("name"); + alias = S.token; + next(); + } + expect_token("name", "from"); + return new AST_ExportForeign({ + aliases: [ make_string(alias) ], + keys: [ make_string(key) ], + path: as_path(), + }); + } + if (is("punc", "{")) { + next(); + var aliases = []; + var keys = []; + while (is_alias()) { + var key = S.token; + next(); + keys.push(key); + if (is("name", "as")) { + next(); + if (!is_alias()) expect_token("name"); + aliases.push(S.token); + next(); + } else { + aliases.push(key); + } + if (!is("punc", "}")) expect(","); + } + expect("}"); + if (is("name", "from")) { + next(); + return new AST_ExportForeign({ + aliases: aliases.map(make_string), + keys: keys.map(make_string), + path: as_path(), + }); + } + semicolon(); + return new AST_ExportReferences({ + properties: keys.map(function(token, index) { + if (!is_token(token, "name")) token_error(token, "Name expected"); + var sym = _make_symbol(AST_SymbolExport, token); + sym.alias = make_string(aliases[index]); + return sym; + }), + }); + } + if (is("keyword", "default")) { + next(); + var start = S.token; + var body = export_default_decl(); + if (body) { + body.start = start; + body.end = prev(); + } else { + handle_regexp(); + body = expression(); + semicolon(); + } + return new AST_ExportDefault({ body: body }); + } + return new AST_ExportDeclaration({ body: export_decl() }); + } + + function maybe_named(def, expr) { + if (expr.name) { + expr = new def(expr); + expr.name = new (def === AST_DefClass ? AST_SymbolDefClass : AST_SymbolDefun)(expr.name); + } + return expr; + } + + function export_default_decl() { + if (is("name", "async")) { + if (!is_token(peek(), "keyword", "function")) return; + next(); + next(); + if (!is("operator", "*")) return maybe_named(AST_AsyncDefun, function_(AST_AsyncFunction)); + next(); + return maybe_named(AST_AsyncGeneratorDefun, function_(AST_AsyncGeneratorFunction)); + } else if (is("keyword")) switch (S.token.value) { + case "class": + next(); + return maybe_named(AST_DefClass, class_(AST_ClassExpression)); + case "function": + next(); + if (!is("operator", "*")) return maybe_named(AST_Defun, function_(AST_Function)); + next(); + return maybe_named(AST_GeneratorDefun, function_(AST_GeneratorFunction)); + } + } + + var export_decl = embed_tokens(function() { + if (is("name")) switch (S.token.value) { + case "async": + next(); + expect_token("keyword", "function"); + if (!is("operator", "*")) return function_(AST_AsyncDefun); + next(); + return function_(AST_AsyncGeneratorDefun); + case "let": + next(); + var node = let_(); + semicolon(); + return node; + } else if (is("keyword")) switch (S.token.value) { + case "class": + next(); + return class_(AST_DefClass); + case "const": + next(); + var node = const_(); + semicolon(); + return node; + case "function": + next(); + if (!is("operator", "*")) return function_(AST_Defun); + next(); + return function_(AST_GeneratorDefun); + case "var": + next(); + var node = var_(); + semicolon(); + return node; + } + unexpected(); + }); + + function import_() { + var all = null; + var def = as_symbol(AST_SymbolImport, true); + var props = null; + var cont; + if (def) { + def.key = new AST_String({ + start: def.start, + value: "", + end: def.end, + }); + if (cont = is("punc", ",")) next(); + } else { + cont = !is("string"); + } + if (cont) { + if (is("operator", "*")) { + var key = S.token; + next(); + expect_token("name", "as"); + all = as_symbol(AST_SymbolImport); + all.key = make_string(key); + } else { + expect("{"); + props = []; + while (is_alias()) { + var alias; + if (is_token(peek(), "name", "as")) { + var key = S.token; + next(); + next(); + alias = as_symbol(AST_SymbolImport); + alias.key = make_string(key); + } else { + alias = as_symbol(AST_SymbolImport); + alias.key = new AST_String({ + start: alias.start, + value: alias.name, + end: alias.end, + }); + } + props.push(alias); + if (!is("punc", "}")) expect(","); + } + expect("}"); + } + } + if (all || def || props) expect_token("name", "from"); + return new AST_Import({ + all: all, + default: def, + path: as_path(), + properties: props, + }); + } + + function block_() { + expect("{"); + var a = []; + while (!is("punc", "}")) { + if (is("eof")) expect("}"); + a.push(statement()); + } + next(); + return a; + } + + function switch_body_() { + expect("{"); + var a = [], branch, cur, default_branch, tmp; + while (!is("punc", "}")) { + if (is("eof")) expect("}"); + if (is("keyword", "case")) { + if (branch) branch.end = prev(); + cur = []; + branch = new AST_Case({ + start : (tmp = S.token, next(), tmp), + expression : expression(), + body : cur + }); + a.push(branch); + expect(":"); + } else if (is("keyword", "default")) { + if (branch) branch.end = prev(); + if (default_branch) croak("More than one default clause in switch statement"); + cur = []; + branch = new AST_Default({ + start : (tmp = S.token, next(), expect(":"), tmp), + body : cur + }); + a.push(branch); + default_branch = branch; + } else { + if (!cur) unexpected(); + cur.push(statement()); + } + } + if (branch) branch.end = prev(); + next(); + return a; + } + + function try_() { + var body = block_(), bcatch = null, bfinally = null; + if (is("keyword", "catch")) { + var start = S.token; + next(); + var name = null; + if (is("punc", "(")) { + next(); + name = maybe_destructured(AST_SymbolCatch); + expect(")"); + } + bcatch = new AST_Catch({ + start : start, + argname : name, + body : block_(), + end : prev() + }); + } + if (is("keyword", "finally")) { + var start = S.token; + next(); + bfinally = new AST_Finally({ + start : start, + body : block_(), + end : prev() + }); + } + if (!bcatch && !bfinally) + croak("Missing catch/finally blocks"); + return new AST_Try({ + body : body, + bcatch : bcatch, + bfinally : bfinally + }); + } + + function vardefs(type, no_in) { + var a = []; + for (;;) { + var start = S.token; + var name = maybe_destructured(type); + var value = null; + if (is("operator", "=")) { + next(); + value = maybe_assign(no_in); + } else if (!no_in && (type === AST_SymbolConst || name instanceof AST_Destructured)) { + croak("Missing initializer in declaration"); + } + a.push(new AST_VarDef({ + start : start, + name : name, + value : value, + end : prev() + })); + if (!is("punc", ",")) + break; + next(); + } + return a; + } + + function is_vardefs() { + var token = peek(); + return is_token(token, "name") || is_token(token, "punc", "[") || is_token(token, "punc", "{"); + } + + var const_ = function(no_in) { + return new AST_Const({ + start : prev(), + definitions : vardefs(AST_SymbolConst, no_in), + end : prev() + }); + }; + + var let_ = function(no_in) { + return new AST_Let({ + start : prev(), + definitions : vardefs(AST_SymbolLet, no_in), + end : prev() + }); + }; + + var var_ = function(no_in) { + return new AST_Var({ + start : prev(), + definitions : vardefs(AST_SymbolVar, no_in), + end : prev() + }); + }; + + var new_ = function(allow_calls) { + var start = S.token; + expect_token("operator", "new"); + var call; + if (is("punc", ".") && is_token(peek(), "name", "target")) { + next(); + next(); + call = new AST_NewTarget(); + } else { + var exp = expr_atom(false), args; + if (is("punc", "(")) { + next(); + args = expr_list(")", !options.strict); + } else { + args = []; + } + call = new AST_New({ expression: exp, args: args }); + } + call.start = start; + call.end = prev(); + return subscripts(call, allow_calls); + }; + + function as_atom_node() { + var ret, tok = S.token, value = tok.value; + switch (tok.type) { + case "num": + if (isFinite(value)) { + ret = new AST_Number({ value: value }); + } else { + ret = new AST_Infinity(); + if (value < 0) ret = new AST_UnaryPrefix({ operator: "-", expression: ret }); + } + break; + case "bigint": + ret = new AST_BigInt({ value: value }); + break; + case "string": + ret = new AST_String({ value: value, quote: tok.quote }); + break; + case "regexp": + ret = new AST_RegExp({ value: value }); + break; + case "atom": + switch (value) { + case "false": + ret = new AST_False(); + break; + case "true": + ret = new AST_True(); + break; + case "null": + ret = new AST_Null(); + break; + default: + unexpected(); + } + break; + default: + unexpected(); + } + next(); + ret.start = ret.end = tok; + return ret; + } + + var expr_atom = function(allow_calls) { + if (is("operator", "new")) { + return new_(allow_calls); + } + var start = S.token; + if (is("punc")) { + switch (start.value) { + case "`": + return subscripts(template(null), allow_calls); + case "(": + next(); + if (is("punc", ")")) { + next(); + return arrow([], start); + } + var ex = expression(false, true); + var len = start.comments_before.length; + [].unshift.apply(ex.start.comments_before, start.comments_before); + start.comments_before.length = 0; + start.comments_before = ex.start.comments_before; + start.comments_before_length = len; + if (len == 0 && start.comments_before.length > 0) { + var comment = start.comments_before[0]; + if (!comment.nlb) { + comment.nlb = start.nlb; + start.nlb = false; + } + } + start.comments_after = ex.start.comments_after; + ex.start = start; + expect(")"); + var end = prev(); + end.comments_before = ex.end.comments_before; + end.comments_after.forEach(function(comment) { + ex.end.comments_after.push(comment); + if (comment.nlb) S.token.nlb = true; + }); + end.comments_after.length = 0; + end.comments_after = ex.end.comments_after; + ex.end = end; + if (is("punc", "=>")) return arrow(ex instanceof AST_Sequence ? ex.expressions : [ ex ], start); + return subscripts(ex, allow_calls); + case "[": + return subscripts(array_(), allow_calls); + case "{": + return subscripts(object_(), allow_calls); + } + unexpected(); + } + if (is("keyword")) switch (start.value) { + case "class": + next(); + var clazz = class_(AST_ClassExpression); + clazz.start = start; + clazz.end = prev(); + return subscripts(clazz, allow_calls); + case "function": + next(); + var func; + if (is("operator", "*")) { + next(); + func = function_(AST_GeneratorFunction); + } else { + func = function_(AST_Function); + } + func.start = start; + func.end = prev(); + return subscripts(func, allow_calls); + } + if (is("name")) { + var sym = _make_symbol(AST_SymbolRef, start); + next(); + if (sym.name == "async") { + if (is("keyword", "function")) { + next(); + var func; + if (is("operator", "*")) { + next(); + func = function_(AST_AsyncGeneratorFunction); + } else { + func = function_(AST_AsyncFunction); + } + func.start = start; + func.end = prev(); + return subscripts(func, allow_calls); + } + if (is("name") && is_token(peek(), "punc", "=>")) { + start = S.token; + sym = _make_symbol(AST_SymbolRef, start); + next(); + return arrow([ sym ], start, true); + } + if (is("punc", "(")) { + var call = subscripts(sym, allow_calls); + if (!is("punc", "=>")) return call; + var args = call.args; + if (args[args.length - 1] instanceof AST_Spread) { + args.rest = args.pop().expression; + } + return arrow(args, start, true); + } + } + return is("punc", "=>") ? arrow([ sym ], start) : subscripts(sym, allow_calls); + } + if (ATOMIC_START_TOKEN[S.token.type]) { + return subscripts(as_atom_node(), allow_calls); + } + unexpected(); + }; + + function expr_list(closing, allow_trailing_comma, allow_empty, parser) { + if (!parser) parser = maybe_assign; + var first = true, a = []; + while (!is("punc", closing)) { + if (first) first = false; else expect(","); + if (allow_trailing_comma && is("punc", closing)) break; + if (allow_empty && is("punc", ",")) { + a.push(new AST_Hole({ start: S.token, end: S.token })); + } else if (!is("operator", "...")) { + a.push(parser()); + } else if (parser === maybe_assign) { + a.push(new AST_Spread({ + start: S.token, + expression: (next(), parser()), + end: prev(), + })); + } else { + next(); + a.rest = parser(); + if (a.rest instanceof AST_DefaultValue) token_error(a.rest.start, "Invalid rest parameter"); + break; + } + } + expect(closing); + return a; + } + + var array_ = embed_tokens(function() { + expect("["); + return new AST_Array({ + elements: expr_list("]", !options.strict, true) + }); + }); + + var create_accessor = embed_tokens(function() { + return function_(AST_Accessor); + }); + + var object_ = embed_tokens(function() { + expect("{"); + var first = true, a = []; + while (!is("punc", "}")) { + if (first) first = false; else expect(","); + // allow trailing comma + if (!options.strict && is("punc", "}")) break; + var start = S.token; + if (is("operator", "*")) { + next(); + var key = as_property_key(); + var gen_start = S.token; + var gen = function_(AST_GeneratorFunction); + gen.start = gen_start; + gen.end = prev(); + a.push(new AST_ObjectMethod({ + start: start, + key: key, + value: gen, + end: prev(), + })); + continue; + } + if (is("operator", "...")) { + next(); + a.push(new AST_Spread({ + start: start, + expression: maybe_assign(), + end: prev(), + })); + continue; + } + if (is_token(peek(), "operator", "=")) { + var name = as_symbol(AST_SymbolRef); + next(); + a.push(new AST_ObjectKeyVal({ + start: start, + key: start.value, + value: new AST_Assign({ + start: start, + left: name, + operator: "=", + right: maybe_assign(), + end: prev(), + }), + end: prev(), + })); + continue; + } + if (is_token(peek(), "punc", ",") || is_token(peek(), "punc", "}")) { + a.push(new AST_ObjectKeyVal({ + start: start, + key: start.value, + value: as_symbol(AST_SymbolRef), + end: prev(), + })); + continue; + } + var key = as_property_key(); + if (is("punc", "(")) { + var func_start = S.token; + var func = function_(AST_Function); + func.start = func_start; + func.end = prev(); + a.push(new AST_ObjectMethod({ + start: start, + key: key, + value: func, + end: prev(), + })); + continue; + } + if (is("punc", ":")) { + next(); + a.push(new AST_ObjectKeyVal({ + start: start, + key: key, + value: maybe_assign(), + end: prev(), + })); + continue; + } + if (start.type == "name") switch (key) { + case "async": + var is_gen = is("operator", "*") && next(); + key = as_property_key(); + var func_start = S.token; + var func = function_(is_gen ? AST_AsyncGeneratorFunction : AST_AsyncFunction); + func.start = func_start; + func.end = prev(); + a.push(new AST_ObjectMethod({ + start: start, + key: key, + value: func, + end: prev(), + })); + continue; + case "get": + a.push(new AST_ObjectGetter({ + start: start, + key: as_property_key(), + value: create_accessor(), + end: prev(), + })); + continue; + case "set": + a.push(new AST_ObjectSetter({ + start: start, + key: as_property_key(), + value: create_accessor(), + end: prev(), + })); + continue; + } + unexpected(); + } + next(); + return new AST_Object({ properties: a }); + }); + + function as_property_key() { + var tmp = S.token; + switch (tmp.type) { + case "operator": + if (!KEYWORDS[tmp.value]) unexpected(); + case "num": + case "string": + case "name": + case "keyword": + case "atom": + next(); + return "" + tmp.value; + case "punc": + expect("["); + var key = maybe_assign(); + expect("]"); + return key; + default: + unexpected(); + } + } + + function as_name() { + var name = S.token.value; + expect_token("name"); + return name; + } + + function _make_symbol(type, token) { + var name = token.value; + switch (name) { + case "await": + if (S.in_async) unexpected(token); + break; + case "super": + type = AST_Super; + break; + case "this": + type = AST_This; + break; + case "yield": + if (S.in_generator) unexpected(token); + break; + } + return new type({ + name: "" + name, + start: token, + end: token, + }); + } + + function strict_verify_symbol(sym) { + if (sym.name == "arguments" || sym.name == "eval" || sym.name == "let") + token_error(sym.start, "Unexpected " + sym.name + " in strict mode"); + } + + function as_symbol(type, no_error) { + if (!is("name")) { + if (!no_error) croak("Name expected"); + return null; + } + var sym = _make_symbol(type, S.token); + if (S.input.has_directive("use strict") && sym instanceof AST_SymbolDeclaration) { + strict_verify_symbol(sym); + } + next(); + return sym; + } + + function maybe_destructured(type) { + var start = S.token; + if (is("punc", "[")) { + next(); + var elements = expr_list("]", !options.strict, true, function() { + return maybe_default(type); + }); + return new AST_DestructuredArray({ + start: start, + elements: elements, + rest: elements.rest || null, + end: prev(), + }); + } + if (is("punc", "{")) { + next(); + var first = true, a = [], rest = null; + while (!is("punc", "}")) { + if (first) first = false; else expect(","); + // allow trailing comma + if (!options.strict && is("punc", "}")) break; + var key_start = S.token; + if (is("punc", "[") || is_token(peek(), "punc", ":")) { + var key = as_property_key(); + expect(":"); + a.push(new AST_DestructuredKeyVal({ + start: key_start, + key: key, + value: maybe_default(type), + end: prev(), + })); + continue; + } + if (is("operator", "...")) { + next(); + rest = maybe_destructured(type); + break; + } + var name = as_symbol(type); + if (is("operator", "=")) { + next(); + name = new AST_DefaultValue({ + start: name.start, + name: name, + value: maybe_assign(), + end: prev(), + }); + } + a.push(new AST_DestructuredKeyVal({ + start: key_start, + key: key_start.value, + value: name, + end: prev(), + })); + } + expect("}"); + return new AST_DestructuredObject({ + start: start, + properties: a, + rest: rest, + end: prev(), + }); + } + return as_symbol(type); + } + + function maybe_default(type) { + var start = S.token; + var name = maybe_destructured(type); + if (!is("operator", "=")) return name; + next(); + return new AST_DefaultValue({ + start: start, + name: name, + value: maybe_assign(), + end: prev(), + }); + } + + function template(tag) { + var start = tag ? tag.start : S.token; + var read = S.input.context().read_template; + var strings = []; + var expressions = []; + while (read(strings)) { + next(); + expressions.push(expression()); + if (!is("punc", "}")) unexpected(); + } + next(); + return new AST_Template({ + start: start, + expressions: expressions, + strings: strings, + tag: tag, + end: prev(), + }); + } + + function subscripts(expr, allow_calls) { + var start = expr.start; + var optional = null; + while (true) { + if (is("operator", "?") && is_token(peek(), "punc", ".")) { + next(); + next(); + optional = expr; + } + if (is("punc", "[")) { + next(); + var prop = expression(); + expect("]"); + expr = new AST_Sub({ + start: start, + optional: optional === expr, + expression: expr, + property: prop, + end: prev(), + }); + } else if (allow_calls && is("punc", "(")) { + next(); + expr = new AST_Call({ + start: start, + optional: optional === expr, + expression: expr, + args: expr_list(")", !options.strict), + end: prev(), + }); + } else if (optional === expr || is("punc", ".")) { + if (optional !== expr) next(); + expr = new AST_Dot({ + start: start, + optional: optional === expr, + expression: expr, + property: as_name(), + end: prev(), + }); + } else if (is("punc", "`")) { + if (optional) croak("Invalid template on optional chain"); + expr = template(expr); + } else { + break; + } + } + if (optional) expr.terminal = true; + if (expr instanceof AST_Call && !expr.pure) { + var start = expr.start; + var comments = start.comments_before; + var i = HOP(start, "comments_before_length") ? start.comments_before_length : comments.length; + while (--i >= 0) { + if (/[@#]__PURE__/.test(comments[i].value)) { + expr.pure = true; + break; + } + } + } + return expr; + } + + function maybe_unary(no_in) { + var start = S.token; + if (S.in_async && is("name", "await")) { + if (S.in_funarg === S.in_function) croak("Invalid use of await in function argument"); + S.input.context().regex_allowed = true; + next(); + return new AST_Await({ + start: start, + expression: maybe_unary(no_in), + end: prev(), + }); + } + if (S.in_generator && is("name", "yield")) { + if (S.in_funarg === S.in_function) croak("Invalid use of yield in function argument"); + S.input.context().regex_allowed = true; + next(); + var exp = null; + var nested = false; + if (is("operator", "*")) { + next(); + exp = maybe_assign(no_in); + nested = true; + } else if (is("punc") ? !PUNC_AFTER_EXPRESSION[S.token.value] : !can_insert_semicolon()) { + exp = maybe_assign(no_in); + } + return new AST_Yield({ + start: start, + expression: exp, + nested: nested, + end: prev(), + }); + } + if (is("operator") && UNARY_PREFIX[start.value]) { + next(); + handle_regexp(); + var ex = make_unary(AST_UnaryPrefix, start, maybe_unary(no_in)); + ex.start = start; + ex.end = prev(); + return ex; + } + var val = expr_atom(true); + while (is("operator") && UNARY_POSTFIX[S.token.value] && !has_newline_before(S.token)) { + val = make_unary(AST_UnaryPostfix, S.token, val); + val.start = start; + val.end = S.token; + next(); + } + return val; + } + + function make_unary(ctor, token, expr) { + var op = token.value; + switch (op) { + case "++": + case "--": + if (!is_assignable(expr)) + token_error(token, "Invalid use of " + op + " operator"); + break; + case "delete": + if (expr instanceof AST_SymbolRef && S.input.has_directive("use strict")) + token_error(expr.start, "Calling delete on expression not allowed in strict mode"); + break; + } + return new ctor({ operator: op, expression: expr }); + } + + var expr_op = function(left, min_precision, no_in) { + var op = is("operator") ? S.token.value : null; + if (op == "in" && no_in) op = null; + var precision = op != null ? PRECEDENCE[op] : null; + if (precision != null && precision > min_precision) { + next(); + var right = expr_op(maybe_unary(no_in), op == "**" ? precision - 1 : precision, no_in); + return expr_op(new AST_Binary({ + start : left.start, + left : left, + operator : op, + right : right, + end : right.end, + }), min_precision, no_in); + } + return left; + }; + + function expr_ops(no_in) { + return expr_op(maybe_unary(no_in), 0, no_in); + } + + var maybe_conditional = function(no_in) { + var start = S.token; + var expr = expr_ops(no_in); + if (is("operator", "?")) { + next(); + var yes = maybe_assign(); + expect(":"); + return new AST_Conditional({ + start : start, + condition : expr, + consequent : yes, + alternative : maybe_assign(no_in), + end : prev() + }); + } + return expr; + }; + + function is_assignable(expr) { + return expr instanceof AST_PropAccess && !expr.optional || expr instanceof AST_SymbolRef; + } + + function to_destructured(node) { + if (node instanceof AST_Array) { + var rest = null; + if (node.elements[node.elements.length - 1] instanceof AST_Spread) { + rest = to_destructured(node.elements.pop().expression); + if (!(rest instanceof AST_Destructured || is_assignable(rest))) return node; + } + var elements = node.elements.map(to_destructured); + return all(elements, function(node) { + return node instanceof AST_DefaultValue + || node instanceof AST_Destructured + || node instanceof AST_Hole + || is_assignable(node); + }) ? new AST_DestructuredArray({ + start: node.start, + elements: elements, + rest: rest, + end: node.end, + }) : node; + } + if (node instanceof AST_Assign) { + var name = to_destructured(node.left); + return name instanceof AST_Destructured || is_assignable(name) ? new AST_DefaultValue({ + start: node.start, + name: name, + value: node.right, + end: node.end, + }) : node; + } + if (!(node instanceof AST_Object)) return node; + var rest = null; + if (node.properties[node.properties.length - 1] instanceof AST_Spread) { + rest = to_destructured(node.properties.pop().expression); + if (!(rest instanceof AST_Destructured || is_assignable(rest))) return node; + } + var props = []; + for (var i = 0; i < node.properties.length; i++) { + var prop = node.properties[i]; + if (!(prop instanceof AST_ObjectKeyVal)) return node; + var value = to_destructured(prop.value); + if (!(value instanceof AST_DefaultValue || value instanceof AST_Destructured || is_assignable(value))) { + return node; + } + props.push(new AST_DestructuredKeyVal({ + start: prop.start, + key: prop.key, + value: value, + end: prop.end, + })); + } + return new AST_DestructuredObject({ + start: node.start, + properties: props, + rest: rest, + end: node.end, + }); + } + + function maybe_assign(no_in) { + var start = S.token; + var left = maybe_conditional(no_in), val = S.token.value; + if (is("operator") && ASSIGNMENT[val]) { + if (is_assignable(left) || val == "=" && (left = to_destructured(left)) instanceof AST_Destructured) { + next(); + return new AST_Assign({ + start : start, + left : left, + operator : val, + right : maybe_assign(no_in), + end : prev() + }); + } + croak("Invalid assignment"); + } + return left; + } + + function expression(no_in, maybe_arrow) { + var start = S.token; + var exprs = []; + while (true) { + if (maybe_arrow && is("operator", "...")) { + next(); + exprs.rest = maybe_destructured(AST_SymbolFunarg); + break; + } + exprs.push(maybe_assign(no_in)); + if (!is("punc", ",")) break; + next(); + if (maybe_arrow && is("punc", ")") && is_token(peek(), "punc", "=>")) break; + } + return exprs.length == 1 && !exprs.rest ? exprs[0] : new AST_Sequence({ + start: start, + expressions: exprs, + end: prev(), + }); + } + + function in_loop(cont) { + ++S.in_loop; + var ret = cont(); + --S.in_loop; + return ret; + } + + if (options.expression) { + handle_regexp(); + var exp = expression(); + expect_token("eof"); + return exp; + } + + return function() { + var start = S.token; + var body = []; + if (options.module) { + S.in_async = true; + S.input.add_directive("use strict"); + } + S.input.push_directives_stack(); + while (!is("eof")) + body.push(statement(true)); + S.input.pop_directives_stack(); + var end = prev() || start; + var toplevel = options.toplevel; + if (toplevel) { + toplevel.body = toplevel.body.concat(body); + toplevel.end = end; + } else { + toplevel = new AST_Toplevel({ start: start, body: body, end: end }); + } + return toplevel; + }(); +} diff --git a/node_modules/uglify-js/lib/propmangle.js b/node_modules/uglify-js/lib/propmangle.js new file mode 100644 index 0000000..3e71b68 --- /dev/null +++ b/node_modules/uglify-js/lib/propmangle.js @@ -0,0 +1,328 @@ +/*********************************************************************** + + A JavaScript tokenizer / parser / beautifier / compressor. + https://github.com/mishoo/UglifyJS + + -------------------------------- (C) --------------------------------- + + Author: Mihai Bazon + + http://mihai.bazon.net/blog + + Distributed under the BSD license: + + Copyright 2012 (c) Mihai Bazon + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + ***********************************************************************/ + +"use strict"; + +function get_builtins() { + var names = new Dictionary(); + // constants + [ + "NaN", + "null", + "true", + "false", + "Infinity", + "-Infinity", + "undefined", + ].forEach(add); + // global functions + [ + "encodeURI", + "encodeURIComponent", + "escape", + "eval", + "decodeURI", + "decodeURIComponent", + "isFinite", + "isNaN", + "parseFloat", + "parseInt", + "unescape", + ].forEach(add); + // global constructors & objects + var global = Function("return this")(); + [ + "Array", + "ArrayBuffer", + "Atomics", + "BigInt", + "Boolean", + "console", + "DataView", + "Date", + "Error", + "Function", + "Int8Array", + "Intl", + "JSON", + "Map", + "Math", + "Number", + "Object", + "Promise", + "Proxy", + "Reflect", + "RegExp", + "Set", + "String", + "Symbol", + "WebAssembly", + ].forEach(function(name) { + add(name); + var ctor = global[name]; + if (!ctor) return; + Object.getOwnPropertyNames(ctor).map(add); + if (typeof ctor != "function") return; + if (ctor.__proto__) Object.getOwnPropertyNames(ctor.__proto__).map(add); + if (ctor.prototype) Object.getOwnPropertyNames(ctor.prototype).map(add); + try { + Object.getOwnPropertyNames(new ctor()).map(add); + } catch (e) { + try { + Object.getOwnPropertyNames(ctor()).map(add); + } catch (e) {} + } + }); + return (get_builtins = function() { + return names.clone(); + })(); + + function add(name) { + names.set(name, true); + } +} + +function reserve_quoted_keys(ast, reserved) { + ast.walk(new TreeWalker(function(node) { + if (node instanceof AST_ClassProperty + || node instanceof AST_DestructuredKeyVal + || node instanceof AST_ObjectProperty) { + if (node.key instanceof AST_Node) { + addStrings(node.key, add); + } else if (node.start && node.start.quote) { + add(node.key); + } + } else if (node instanceof AST_Dot) { + if (node.quoted) add(node.property); + } else if (node instanceof AST_Sub) { + addStrings(node.property, add); + } + })); + + function add(name) { + push_uniq(reserved, name); + } +} + +function addStrings(node, add) { + if (node instanceof AST_Conditional) { + addStrings(node.consequent, add); + addStrings(node.alternative, add); + } else if (node instanceof AST_Sequence) { + addStrings(node.tail_node(), add); + } else if (node instanceof AST_String) { + add(node.value); + } +} + +function mangle_properties(ast, options) { + options = defaults(options, { + builtins: false, + cache: null, + debug: false, + domprops: false, + keep_quoted: false, + regex: null, + reserved: null, + }, true); + + var reserved = options.builtins ? new Dictionary() : get_builtins(); + if (!options.domprops && typeof domprops !== "undefined") domprops.forEach(function(name) { + reserved.set(name, true); + }); + if (Array.isArray(options.reserved)) options.reserved.forEach(function(name) { + reserved.set(name, true); + }); + + var cname = -1; + var cache; + if (options.cache) { + cache = options.cache.props; + cache.each(function(name) { + reserved.set(name, true); + }); + } else { + cache = new Dictionary(); + } + + var regex = options.regex; + + // note debug is either false (disabled), or a string of the debug suffix to use (enabled). + // note debug may be enabled as an empty string, which is falsy. Also treat passing 'true' + // the same as passing an empty string. + var debug = options.debug !== false; + var debug_suffix; + if (debug) debug_suffix = options.debug === true ? "" : options.debug; + + var names_to_mangle = new Dictionary(); + var unmangleable = reserved.clone(); + + // step 1: find candidates to mangle + ast.walk(new TreeWalker(function(node) { + if (node.TYPE == "Call") { + var exp = node.expression; + if (exp instanceof AST_Dot) switch (exp.property) { + case "defineProperty": + case "getOwnPropertyDescriptor": + if (node.args.length < 2) break; + exp = exp.expression; + if (!(exp instanceof AST_SymbolRef)) break; + if (exp.name != "Object") break; + if (!exp.definition().undeclared) break; + addStrings(node.args[1], add); + break; + case "hasOwnProperty": + if (node.args.length < 1) break; + addStrings(node.args[0], add); + break; + } + } else if (node instanceof AST_ClassProperty + || node instanceof AST_DestructuredKeyVal + || node instanceof AST_ObjectProperty) { + if (node.key instanceof AST_Node) { + addStrings(node.key, add); + } else { + add(node.key); + } + } else if (node instanceof AST_Dot) { + if (is_lhs(node, this.parent())) add(node.property); + } else if (node instanceof AST_Sub) { + if (is_lhs(node, this.parent())) addStrings(node.property, add); + } + })); + + // step 2: renaming properties + ast.walk(new TreeWalker(function(node) { + if (node instanceof AST_Binary) { + if (node.operator == "in") mangleStrings(node.left); + } else if (node.TYPE == "Call") { + var exp = node.expression; + if (exp instanceof AST_Dot) switch (exp.property) { + case "defineProperty": + case "getOwnPropertyDescriptor": + if (node.args.length < 2) break; + exp = exp.expression; + if (!(exp instanceof AST_SymbolRef)) break; + if (exp.name != "Object") break; + if (!exp.definition().undeclared) break; + mangleStrings(node.args[1]); + break; + case "hasOwnProperty": + if (node.args.length < 1) break; + mangleStrings(node.args[0]); + break; + } + } else if (node instanceof AST_ClassProperty + || node instanceof AST_DestructuredKeyVal + || node instanceof AST_ObjectProperty) { + if (node.key instanceof AST_Node) { + mangleStrings(node.key); + } else { + node.key = mangle(node.key); + } + } else if (node instanceof AST_Dot) { + node.property = mangle(node.property); + } else if (node instanceof AST_Sub) { + if (!options.keep_quoted) mangleStrings(node.property); + } + })); + + // only function declarations after this line + + function can_mangle(name) { + if (unmangleable.has(name)) return false; + if (/^-?[0-9]+(\.[0-9]+)?(e[+-][0-9]+)?$/.test(name)) return false; + return true; + } + + function should_mangle(name) { + if (reserved.has(name)) { + AST_Node.info("Preserving reserved property {this}", name); + return false; + } + if (regex && !regex.test(name)) { + AST_Node.info("Preserving excluded property {this}", name); + return false; + } + return cache.has(name) || names_to_mangle.has(name); + } + + function add(name) { + if (can_mangle(name)) names_to_mangle.set(name, true); + if (!should_mangle(name)) unmangleable.set(name, true); + } + + function mangle(name) { + if (!should_mangle(name)) return name; + var mangled = cache.get(name); + if (!mangled) { + if (debug) { + // debug mode: use a prefix and suffix to preserve readability, e.g. o.foo ---> o._$foo$NNN_. + var debug_mangled = "_$" + name + "$" + debug_suffix + "_"; + if (can_mangle(debug_mangled)) mangled = debug_mangled; + } + // either debug mode is off, or it is on and we could not use the mangled name + if (!mangled) do { + mangled = base54(++cname); + } while (!can_mangle(mangled)); + if (/^#/.test(name)) mangled = "#" + mangled; + cache.set(name, mangled); + } + AST_Node.info("Mapping property {name} to {mangled}", { + mangled: mangled, + name: name, + }); + return mangled; + } + + function mangleStrings(node) { + if (node instanceof AST_Sequence) { + mangleStrings(node.tail_node()); + } else if (node instanceof AST_String) { + node.value = mangle(node.value); + } else if (node instanceof AST_Conditional) { + mangleStrings(node.consequent); + mangleStrings(node.alternative); + } + } +} diff --git a/node_modules/uglify-js/lib/scope.js b/node_modules/uglify-js/lib/scope.js new file mode 100644 index 0000000..c2108c5 --- /dev/null +++ b/node_modules/uglify-js/lib/scope.js @@ -0,0 +1,866 @@ +/*********************************************************************** + + A JavaScript tokenizer / parser / beautifier / compressor. + https://github.com/mishoo/UglifyJS + + -------------------------------- (C) --------------------------------- + + Author: Mihai Bazon + + http://mihai.bazon.net/blog + + Distributed under the BSD license: + + Copyright 2012 (c) Mihai Bazon + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + ***********************************************************************/ + +"use strict"; + +function SymbolDef(id, scope, orig, init) { + this._bits = 0; + this.defun = undefined; + this.eliminated = 0; + this.id = id; + this.init = init; + this.mangled_name = null; + this.name = orig.name; + this.orig = [ orig ]; + this.references = []; + this.replaced = 0; + this.safe_ids = undefined; + this.scope = scope; +} + +SymbolDef.prototype = { + forEach: function(fn) { + this.orig.forEach(fn); + this.references.forEach(fn); + }, + mangle: function(options) { + if (this.mangled_name) return; + var cache = this.global && options.cache && options.cache.props; + if (cache && cache.has(this.name)) { + this.mangled_name = cache.get(this.name); + } else if (this.unmangleable(options)) { + names_in_use(this.scope, options).set(this.name, true); + } else { + var def = this.redefined(); + if (def) { + this.mangled_name = def.mangled_name || def.name; + } else { + this.mangled_name = next_mangled_name(this, options); + } + if (cache) cache.set(this.name, this.mangled_name); + } + }, + redefined: function() { + var self = this; + var scope = self.defun; + if (!scope) return; + var name = self.name; + var def = scope.variables.get(name) + || scope instanceof AST_Toplevel && scope.globals.get(name) + || self.orig[0] instanceof AST_SymbolConst && find_if(function(def) { + return def.name == name; + }, scope.enclosed); + if (def && def !== self) return def.redefined() || def; + }, + unmangleable: function(options) { + if (this.exported) return true; + if (this.undeclared) return true; + if (!options.eval && this.scope.pinned()) return true; + if (options.keep_fargs && is_funarg(this)) return true; + if (options.keep_fnames) { + var sym = this.orig[0]; + if (sym instanceof AST_SymbolClass) return true; + if (sym instanceof AST_SymbolDefClass) return true; + if (sym instanceof AST_SymbolDefun) return true; + if (sym instanceof AST_SymbolLambda) return true; + } + if (!options.toplevel && this.global) return true; + return false; + }, +}; + +DEF_BITPROPS(SymbolDef, [ + "const_redefs", + "cross_loop", + "direct_access", + "exported", + "global", + "undeclared", +]); + +function is_funarg(def) { + return def.orig[0] instanceof AST_SymbolFunarg || def.orig[1] instanceof AST_SymbolFunarg; +} + +var unary_side_effects = makePredicate("delete ++ --"); + +function is_lhs(node, parent) { + if (parent instanceof AST_Assign) return parent.left === node && node; + if (parent instanceof AST_DefaultValue) return parent.name === node && node; + if (parent instanceof AST_Destructured) return node; + if (parent instanceof AST_DestructuredKeyVal) return node; + if (parent instanceof AST_ForEnumeration) return parent.init === node && node; + if (parent instanceof AST_Unary) return unary_side_effects[parent.operator] && parent.expression; +} + +AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) { + options = defaults(options, { + cache: null, + ie: false, + }); + + // pass 1: setup scope chaining and handle definitions + var self = this; + var defun = null; + var exported = false; + var next_def_id = 0; + var scope = self.parent_scope = null; + var tw = new TreeWalker(function(node, descend) { + if (node instanceof AST_DefClass) { + var save_exported = exported; + exported = tw.parent() instanceof AST_ExportDeclaration; + node.name.walk(tw); + exported = save_exported; + walk_scope(function() { + if (node.extends) node.extends.walk(tw); + node.properties.forEach(function(prop) { + prop.walk(tw); + }); + }); + return true; + } + if (node instanceof AST_Definitions) { + var save_exported = exported; + exported = tw.parent() instanceof AST_ExportDeclaration; + descend(); + exported = save_exported; + return true; + } + if (node instanceof AST_LambdaDefinition) { + var save_exported = exported; + exported = tw.parent() instanceof AST_ExportDeclaration; + node.name.walk(tw); + exported = save_exported; + walk_scope(function() { + node.argnames.forEach(function(argname) { + argname.walk(tw); + }); + if (node.rest) node.rest.walk(tw); + walk_body(node, tw); + }); + return true; + } + if (node instanceof AST_SwitchBranch) { + node.init_vars(scope); + descend(); + return true; + } + if (node instanceof AST_Try) { + walk_scope(function() { + walk_body(node, tw); + }); + if (node.bcatch) node.bcatch.walk(tw); + if (node.bfinally) node.bfinally.walk(tw); + return true; + } + if (node instanceof AST_With) { + var s = scope; + do { + s = s.resolve(); + if (s.uses_with) break; + s.uses_with = true; + } while (s = s.parent_scope); + walk_scope(descend); + return true; + } + if (node instanceof AST_BlockScope) { + walk_scope(descend); + return true; + } + if (node instanceof AST_Symbol) { + node.scope = scope; + } + if (node instanceof AST_Label) { + node.thedef = node; + node.references = []; + } + if (node instanceof AST_SymbolCatch) { + scope.def_variable(node).defun = defun; + } else if (node instanceof AST_SymbolConst) { + var def = scope.def_variable(node); + def.defun = defun; + if (exported) def.exported = true; + } else if (node instanceof AST_SymbolDefun) { + var def = defun.def_function(node, tw.parent()); + if (exported) def.exported = true; + } else if (node instanceof AST_SymbolFunarg) { + defun.def_variable(node); + } else if (node instanceof AST_SymbolLambda) { + var def = defun.def_function(node, node.name == "arguments" ? undefined : defun); + if (options.ie && node.name != "arguments") def.defun = defun.parent_scope.resolve(); + } else if (node instanceof AST_SymbolLet) { + var def = scope.def_variable(node); + if (exported) def.exported = true; + } else if (node instanceof AST_SymbolVar) { + var def = defun.def_variable(node, node instanceof AST_SymbolImport ? undefined : null); + if (exported) def.exported = true; + } + + function walk_scope(descend) { + node.init_vars(scope); + var save_defun = defun; + var save_scope = scope; + if (node instanceof AST_Scope) defun = node; + scope = node; + descend(); + scope = save_scope; + defun = save_defun; + } + }); + self.make_def = function(orig, init) { + return new SymbolDef(++next_def_id, this, orig, init); + }; + self.walk(tw); + + // pass 2: find back references and eval + self.globals = new Dictionary(); + var in_arg = []; + var tw = new TreeWalker(function(node) { + if (node instanceof AST_Catch) { + if (!(node.argname instanceof AST_Destructured)) return; + in_arg.push(node); + node.argname.walk(tw); + in_arg.pop(); + walk_body(node, tw); + return true; + } + if (node instanceof AST_Lambda) { + in_arg.push(node); + if (node.name) node.name.walk(tw); + node.argnames.forEach(function(argname) { + argname.walk(tw); + }); + if (node.rest) node.rest.walk(tw); + in_arg.pop(); + walk_lambda(node, tw); + return true; + } + if (node instanceof AST_LoopControl) { + if (node.label) node.label.thedef.references.push(node); + return true; + } + if (node instanceof AST_SymbolDeclaration) { + var def = node.definition(); + def.preinit = def.references.length; + if (node instanceof AST_SymbolCatch) { + // ensure mangling works if `catch` reuses a scope variable + var redef = def.redefined(); + if (redef) for (var s = node.scope; s; s = s.parent_scope) { + if (!push_uniq(s.enclosed, redef)) break; + if (s === redef.scope) break; + } + } else if (node instanceof AST_SymbolConst) { + // ensure compression works if `const` reuses a scope variable + var redef = def.redefined(); + if (redef) redef.const_redefs = true; + } else if (def.scope !== node.scope && (node instanceof AST_SymbolDefun + || node instanceof AST_SymbolFunarg + || node instanceof AST_SymbolVar)) { + node.mark_enclosed(options); + var redef = node.scope.find_variable(node.name); + if (node.thedef !== redef) { + node.thedef = redef; + redef.orig.push(node); + node.mark_enclosed(options); + } + } + if (node.name != "arguments") return true; + var parent = node instanceof AST_SymbolVar && tw.parent(); + if (parent instanceof AST_VarDef && !parent.value) return true; + var sym = node.scope.resolve().find_variable("arguments"); + if (sym && is_arguments(sym)) sym.scope.uses_arguments = 3; + return true; + } + if (node instanceof AST_SymbolRef) { + var name = node.name; + var sym = node.scope.find_variable(name); + for (var i = in_arg.length; i > 0 && sym;) { + i = in_arg.lastIndexOf(sym.scope, i - 1); + if (i < 0) break; + var decl = sym.orig[0]; + if (decl instanceof AST_SymbolCatch + || decl instanceof AST_SymbolFunarg + || decl instanceof AST_SymbolLambda) { + node.in_arg = true; + break; + } + sym = sym.scope.parent_scope.find_variable(name); + } + if (!sym) { + sym = self.def_global(node); + } else if (name == "arguments" && is_arguments(sym)) { + var parent = tw.parent(); + if (is_lhs(node, parent)) { + sym.scope.uses_arguments = 3; + } else if (sym.scope.uses_arguments < 2 + && !(parent instanceof AST_PropAccess && parent.expression === node)) { + sym.scope.uses_arguments = 2; + } else if (!sym.scope.uses_arguments) { + sym.scope.uses_arguments = true; + } + } + if (name == "eval") { + var parent = tw.parent(); + if (parent.TYPE == "Call" && parent.expression === node) { + var s = node.scope; + do { + s = s.resolve(); + if (s.uses_eval) break; + s.uses_eval = true; + } while (s = s.parent_scope); + } else if (sym.undeclared) { + self.uses_eval = true; + } + } + if (sym.init instanceof AST_LambdaDefinition && sym.scope !== sym.init.name.scope) { + var scope = node.scope; + do { + if (scope === sym.init.name.scope) break; + } while (scope = scope.parent_scope); + if (!scope) sym.init = undefined; + } + node.thedef = sym; + node.reference(options); + return true; + } + }); + self.walk(tw); + + // pass 3: fix up any scoping issue with IE8 + if (options.ie) self.walk(new TreeWalker(function(node) { + if (node instanceof AST_SymbolCatch) { + var def = node.thedef; + var scope = def.defun; + if (def.name != "arguments" && scope.name instanceof AST_SymbolLambda && scope.name.name == def.name) { + scope = scope.parent_scope.resolve(); + } + redefine(node, scope); + return true; + } + if (node instanceof AST_SymbolLambda) { + var def = node.thedef; + if (!redefine(node, node.scope.parent_scope.resolve())) { + def.defun = undefined; + } else if (typeof node.thedef.init !== "undefined") { + node.thedef.init = false; + } else if (def.init) { + node.thedef.init = def.init; + } + return true; + } + })); + + function is_arguments(sym) { + return sym.orig[0] instanceof AST_SymbolFunarg + && !(sym.orig[1] instanceof AST_SymbolFunarg || sym.orig[2] instanceof AST_SymbolFunarg) + && !is_arrow(sym.scope); + } + + function redefine(node, scope) { + var name = node.name; + var old_def = node.thedef; + if (!all(old_def.orig, function(sym) { + return !(sym instanceof AST_SymbolConst || sym instanceof AST_SymbolLet); + })) return false; + var new_def = scope.find_variable(name); + if (new_def) { + var redef = new_def.redefined(); + if (redef) new_def = redef; + } else { + new_def = self.globals.get(name); + } + if (new_def) { + new_def.orig.push(node); + } else { + new_def = scope.def_variable(node); + } + if (new_def.undeclared) self.variables.set(name, new_def); + if (name == "arguments" && is_arguments(old_def) && node instanceof AST_SymbolLambda) return true; + old_def.defun = new_def.scope; + old_def.forEach(function(node) { + node.redef = old_def; + node.thedef = new_def; + node.reference(options); + }); + return true; + } +}); + +AST_Toplevel.DEFMETHOD("def_global", function(node) { + var globals = this.globals, name = node.name; + if (globals.has(name)) { + return globals.get(name); + } else { + var g = this.make_def(node); + g.undeclared = true; + g.global = true; + globals.set(name, g); + return g; + } +}); + +function init_block_vars(scope, parent) { + scope.enclosed = []; // variables from this or outer scope(s) that are referenced from this or inner scopes + scope.parent_scope = parent; // the parent scope (null if this is the top level) + scope.functions = new Dictionary(); // map name to AST_SymbolDefun (functions defined in this scope) + scope.variables = new Dictionary(); // map name to AST_SymbolVar (variables defined in this scope; includes functions) + if (parent) scope.make_def = parent.make_def; // top-level tracking of SymbolDef instances +} + +function init_scope_vars(scope, parent) { + init_block_vars(scope, parent); + scope.uses_eval = false; // will be set to true if this or nested scope uses the global `eval` + scope.uses_with = false; // will be set to true if this or some nested scope uses the `with` statement +} + +AST_BlockScope.DEFMETHOD("init_vars", function(parent_scope) { + init_block_vars(this, parent_scope); +}); +AST_Scope.DEFMETHOD("init_vars", function(parent_scope) { + init_scope_vars(this, parent_scope); +}); +AST_Arrow.DEFMETHOD("init_vars", function(parent_scope) { + init_scope_vars(this, parent_scope); + return this; +}); +AST_AsyncArrow.DEFMETHOD("init_vars", function(parent_scope) { + init_scope_vars(this, parent_scope); +}); +AST_Lambda.DEFMETHOD("init_vars", function(parent_scope) { + init_scope_vars(this, parent_scope); + this.uses_arguments = false; + this.def_variable(new AST_SymbolFunarg({ + name: "arguments", + scope: this, + start: this.start, + end: this.end, + })); + return this; +}); + +AST_Symbol.DEFMETHOD("mark_enclosed", function(options) { + var def = this.definition(); + for (var s = this.scope; s; s = s.parent_scope) { + if (!push_uniq(s.enclosed, def)) break; + if (!options) { + s._var_names = undefined; + } else { + if (options.keep_fargs && s instanceof AST_Lambda) s.each_argname(function(arg) { + push_uniq(def.scope.enclosed, arg.definition()); + }); + if (options.keep_fnames) s.functions.each(function(d) { + push_uniq(def.scope.enclosed, d); + }); + } + if (s === def.scope) break; + } +}); + +AST_Symbol.DEFMETHOD("reference", function(options) { + this.definition().references.push(this); + this.mark_enclosed(options); +}); + +AST_BlockScope.DEFMETHOD("find_variable", function(name) { + return this.variables.get(name) + || this.parent_scope && this.parent_scope.find_variable(name); +}); + +AST_BlockScope.DEFMETHOD("def_function", function(symbol, init) { + var def = this.def_variable(symbol, init); + if (!def.init || def.init instanceof AST_LambdaDefinition) def.init = init; + this.functions.set(symbol.name, def); + return def; +}); + +AST_BlockScope.DEFMETHOD("def_variable", function(symbol, init) { + var def = this.variables.get(symbol.name); + if (def) { + def.orig.push(symbol); + if (def.init instanceof AST_LambdaExpression) def.init = init; + } else { + def = this.make_def(symbol, init); + this.variables.set(symbol.name, def); + def.global = !this.parent_scope; + } + return symbol.thedef = def; +}); + +function names_in_use(scope, options) { + var names = scope.names_in_use; + if (!names) { + scope.cname = -1; + scope.cname_holes = []; + scope.names_in_use = names = new Dictionary(); + var cache = options.cache && options.cache.props; + scope.enclosed.forEach(function(def) { + if (def.unmangleable(options)) names.set(def.name, true); + if (def.global && cache && cache.has(def.name)) { + names.set(cache.get(def.name), true); + } + }); + } + return names; +} + +function next_mangled_name(def, options) { + var scope = def.scope; + var in_use = names_in_use(scope, options); + var holes = scope.cname_holes; + var names = new Dictionary(); + var scopes = [ scope ]; + def.forEach(function(sym) { + var scope = sym.scope; + do { + if (member(scope, scopes)) break; + names_in_use(scope, options).each(function(marker, name) { + names.set(name, marker); + }); + scopes.push(scope); + } while (scope = scope.parent_scope); + }); + var name; + for (var i = 0; i < holes.length; i++) { + name = base54(holes[i]); + if (names.has(name)) continue; + holes.splice(i, 1); + in_use.set(name, true); + return name; + } + while (true) { + name = base54(++scope.cname); + if (in_use.has(name) || RESERVED_WORDS[name] || options.reserved.has[name]) continue; + if (!names.has(name)) break; + holes.push(scope.cname); + } + in_use.set(name, true); + return name; +} + +AST_Symbol.DEFMETHOD("unmangleable", function(options) { + var def = this.definition(); + return !def || def.unmangleable(options); +}); + +// labels are always mangleable +AST_Label.DEFMETHOD("unmangleable", return_false); + +AST_Symbol.DEFMETHOD("definition", function() { + return this.thedef; +}); + +function _default_mangler_options(options) { + options = defaults(options, { + eval : false, + ie : false, + keep_fargs : false, + keep_fnames : false, + reserved : [], + toplevel : false, + v8 : false, + webkit : false, + }); + if (!Array.isArray(options.reserved)) options.reserved = []; + // Never mangle `arguments` + push_uniq(options.reserved, "arguments"); + options.reserved.has = makePredicate(options.reserved); + return options; +} + +// We only need to mangle declaration nodes. Special logic wired into the code +// generator will display the mangled name if it is present (and for +// `AST_SymbolRef`s it will use the mangled name of the `AST_SymbolDeclaration` +// that it points to). +AST_Toplevel.DEFMETHOD("mangle_names", function(options) { + options = _default_mangler_options(options); + if (options.cache && options.cache.props) { + var mangled_names = names_in_use(this, options); + options.cache.props.each(function(mangled_name) { + mangled_names.set(mangled_name, true); + }); + } + var cutoff = 36; + var lname = -1; + var redefined = []; + var tw = new TreeWalker(function(node, descend) { + var save_nesting; + if (node instanceof AST_BlockScope) { + // `lname` is incremented when we get to the `AST_Label` + if (node instanceof AST_LabeledStatement) save_nesting = lname; + if (options.webkit && node instanceof AST_IterationStatement && node.init instanceof AST_Let) { + node.init.definitions.forEach(function(defn) { + defn.name.match_symbol(function(sym) { + if (!(sym instanceof AST_SymbolLet)) return; + var def = sym.definition(); + var scope = sym.scope.parent_scope; + var redef = scope.def_variable(sym); + sym.thedef = def; + scope.to_mangle.push(redef); + def.redefined = function() { + return redef; + }; + }); + }, true); + } + var to_mangle = node.to_mangle = []; + node.variables.each(function(def) { + if (!defer_redef(def)) to_mangle.push(def); + }); + descend(); + if (options.cache && node instanceof AST_Toplevel) { + node.globals.each(mangle); + } + if (node instanceof AST_Defun && tw.has_directive("use asm")) { + var sym = new AST_SymbolRef(node.name); + sym.scope = node; + sym.reference(options); + } + if (to_mangle.length > cutoff) { + var indices = to_mangle.map(function(def, index) { + return index; + }).sort(function(i, j) { + return to_mangle[j].references.length - to_mangle[i].references.length || i - j; + }); + to_mangle = indices.slice(0, cutoff).sort(function(i, j) { + return i - j; + }).map(function(index) { + return to_mangle[index]; + }).concat(indices.slice(cutoff).sort(function(i, j) { + return i - j; + }).map(function(index) { + return to_mangle[index]; + })); + } + to_mangle.forEach(mangle); + if (node instanceof AST_LabeledStatement && !(options.v8 && in_label(tw))) lname = save_nesting; + return true; + } + if (node instanceof AST_Label) { + var name; + do { + name = base54(++lname); + } while (RESERVED_WORDS[name]); + node.mangled_name = name; + return true; + } + }); + this.walk(tw); + redefined.forEach(mangle); + + function mangle(def) { + if (options.reserved.has[def.name]) return; + def.mangle(options); + } + + function defer_redef(def) { + var sym = def.orig[0]; + var redef = def.redefined(); + if (!redef) { + if (!(sym instanceof AST_SymbolConst)) return false; + var scope = def.scope.resolve(); + if (def.scope === scope) return false; + if (def.scope.parent_scope.find_variable(sym.name)) return false; + redef = scope.def_variable(sym); + scope.to_mangle.push(redef); + } + redefined.push(def); + def.references.forEach(reference); + if (sym instanceof AST_SymbolCatch || sym instanceof AST_SymbolConst) { + reference(sym); + def.redefined = function() { + return redef; + }; + } + return true; + + function reference(sym) { + sym.thedef = redef; + sym.reference(options); + sym.thedef = def; + } + } + + function in_label(tw) { + var level = 0, parent; + while (parent = tw.parent(level++)) { + if (parent instanceof AST_Block) return parent instanceof AST_Toplevel && !options.toplevel; + if (parent instanceof AST_LabeledStatement) return true; + } + } +}); + +AST_Toplevel.DEFMETHOD("find_colliding_names", function(options) { + var cache = options.cache && options.cache.props; + var avoid = Object.create(RESERVED_WORDS); + options.reserved.forEach(to_avoid); + this.globals.each(add_def); + this.walk(new TreeWalker(function(node) { + if (node instanceof AST_BlockScope) node.variables.each(add_def); + })); + return avoid; + + function to_avoid(name) { + avoid[name] = true; + } + + function add_def(def) { + var name = def.name; + if (def.global && cache && cache.has(name)) name = cache.get(name); + else if (!def.unmangleable(options)) return; + to_avoid(name); + } +}); + +AST_Toplevel.DEFMETHOD("expand_names", function(options) { + base54.reset(); + base54.sort(); + options = _default_mangler_options(options); + var avoid = this.find_colliding_names(options); + var cname = 0; + this.globals.each(rename); + this.walk(new TreeWalker(function(node) { + if (node instanceof AST_BlockScope) node.variables.each(rename); + })); + + function next_name() { + var name; + do { + name = base54(cname++); + } while (avoid[name]); + return name; + } + + function rename(def) { + if (def.global && options.cache) return; + if (def.unmangleable(options)) return; + if (options.reserved.has[def.name]) return; + var redef = def.redefined(); + var name = redef ? redef.rename || redef.name : next_name(); + def.rename = name; + def.forEach(function(sym) { + if (sym.definition() === def) sym.name = name; + }); + } +}); + +AST_Node.DEFMETHOD("tail_node", return_this); +AST_Sequence.DEFMETHOD("tail_node", function() { + return this.expressions[this.expressions.length - 1]; +}); + +AST_Toplevel.DEFMETHOD("compute_char_frequency", function(options) { + options = _default_mangler_options(options); + base54.reset(); + var fn = AST_Symbol.prototype.add_source_map; + try { + AST_Symbol.prototype.add_source_map = function() { + if (!this.unmangleable(options)) base54.consider(this.name, -1); + }; + if (options.properties) { + AST_Dot.prototype.add_source_map = function() { + base54.consider(this.property, -1); + }; + AST_Sub.prototype.add_source_map = function() { + skip_string(this.property); + }; + } + base54.consider(this.print_to_string(), 1); + } finally { + AST_Symbol.prototype.add_source_map = fn; + delete AST_Dot.prototype.add_source_map; + delete AST_Sub.prototype.add_source_map; + } + base54.sort(); + + function skip_string(node) { + if (node instanceof AST_String) { + base54.consider(node.value, -1); + } else if (node instanceof AST_Conditional) { + skip_string(node.consequent); + skip_string(node.alternative); + } else if (node instanceof AST_Sequence) { + skip_string(node.tail_node()); + } + } +}); + +var base54 = (function() { + var freq = Object.create(null); + function init(chars) { + var array = []; + for (var i = 0; i < chars.length; i++) { + var ch = chars[i]; + array.push(ch); + freq[ch] = -1e-2 * i; + } + return array; + } + var digits = init("0123456789"); + var leading = init("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_"); + var chars, frequency; + function reset() { + chars = null; + frequency = Object.create(freq); + } + base54.consider = function(str, delta) { + for (var i = str.length; --i >= 0;) { + frequency[str[i]] += delta; + } + }; + function compare(a, b) { + return frequency[b] - frequency[a]; + } + base54.sort = function() { + chars = leading.sort(compare).concat(digits).sort(compare); + }; + base54.reset = reset; + reset(); + function base54(num) { + var ret = leading[num % 54]; + for (num = Math.floor(num / 54); --num >= 0; num >>= 6) { + ret += chars[num & 0x3F]; + } + return ret; + } + return base54; +})(); diff --git a/node_modules/uglify-js/lib/sourcemap.js b/node_modules/uglify-js/lib/sourcemap.js new file mode 100644 index 0000000..a230a44 --- /dev/null +++ b/node_modules/uglify-js/lib/sourcemap.js @@ -0,0 +1,195 @@ +/*********************************************************************** + + A JavaScript tokenizer / parser / beautifier / compressor. + https://github.com/mishoo/UglifyJS + + -------------------------------- (C) --------------------------------- + + Author: Mihai Bazon + + http://mihai.bazon.net/blog + + Distributed under the BSD license: + + Copyright 2012 (c) Mihai Bazon + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + ***********************************************************************/ + +"use strict"; + +var vlq_char = characters("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); +var vlq_bits = vlq_char.reduce(function(map, ch, bits) { + map[ch] = bits; + return map; +}, Object.create(null)); + +function vlq_decode(indices, str) { + var value = 0; + var shift = 0; + for (var i = 0, j = 0; i < str.length; i++) { + var bits = vlq_bits[str[i]]; + value += (bits & 31) << shift; + if (bits & 32) { + shift += 5; + } else { + indices[j++] += value & 1 ? 0x80000000 | -(value >> 1) : value >> 1; + value = shift = 0; + } + } + return j; +} + +function vlq_encode(num) { + var result = ""; + num = Math.abs(num) << 1 | num >>> 31; + do { + var bits = num & 31; + if (num >>>= 5) bits |= 32; + result += vlq_char[bits]; + } while (num); + return result; +} + +function create_array_map() { + var map = new Dictionary(); + var array = []; + array.index = function(name) { + var index = map.get(name); + if (!(index >= 0)) { + index = array.length; + array.push(name); + map.set(name, index); + } + return index; + }; + return array; +} + +function SourceMap(options) { + var sources = create_array_map(); + var sources_content = options.includeSources && new Dictionary(); + var names = create_array_map(); + var mappings = ""; + if (options.orig) Object.keys(options.orig).forEach(function(name) { + var map = options.orig[name]; + var indices = [ 0, 0, 1, 0, 0 ]; + options.orig[name] = { + names: map.names, + mappings: map.mappings.split(/;/).map(function(line) { + indices[0] = 0; + return line.split(/,/).map(function(segment) { + return indices.slice(0, vlq_decode(indices, segment)); + }); + }), + sources: map.sources, + }; + if (!sources_content || !map.sourcesContent) return; + for (var i = 0; i < map.sources.length; i++) { + var content = map.sourcesContent[i]; + if (content) sources_content.set(map.sources[i], content); + } + }); + var prev_source; + var generated_line = 1; + var generated_column = 0; + var source_index = 0; + var original_line = 1; + var original_column = 0; + var name_index = 0; + return { + add: options.orig ? function(source, gen_line, gen_col, orig_line, orig_col, name) { + var map = options.orig[source]; + if (map) { + var segments = map.mappings[orig_line - 1]; + if (!segments) return; + var indices; + for (var i = 0; i < segments.length; i++) { + var col = segments[i][0]; + if (orig_col >= col) indices = segments[i]; + if (orig_col <= col) break; + } + if (!indices || indices.length < 4) { + source = null; + } else { + source = map.sources[indices[1]]; + orig_line = indices[2]; + orig_col = indices[3]; + if (indices.length > 4) name = map.names[indices[4]]; + } + } + add(source, gen_line, gen_col, orig_line, orig_col, name); + } : add, + setSourceContent: sources_content ? function(source, content) { + if (!sources_content.has(source)) { + sources_content.set(source, content); + } + } : noop, + toString: function() { + return JSON.stringify({ + version: 3, + file: options.filename || undefined, + sourceRoot: options.root || undefined, + sources: sources, + sourcesContent: sources_content ? sources.map(function(source) { + return sources_content.get(source) || null; + }) : undefined, + names: names, + mappings: mappings, + }); + } + }; + + function add(source, gen_line, gen_col, orig_line, orig_col, name) { + if (prev_source == null && source == null) return; + prev_source = source; + if (generated_line < gen_line) { + generated_column = 0; + do { + mappings += ";"; + } while (++generated_line < gen_line); + } else if (mappings) { + mappings += ","; + } + mappings += vlq_encode(gen_col - generated_column); + generated_column = gen_col; + if (source == null) return; + var src_idx = sources.index(source); + mappings += vlq_encode(src_idx - source_index); + source_index = src_idx; + mappings += vlq_encode(orig_line - original_line); + original_line = orig_line; + mappings += vlq_encode(orig_col - original_column); + original_column = orig_col; + if (options.names && name != null) { + var name_idx = names.index(name); + mappings += vlq_encode(name_idx - name_index); + name_index = name_idx; + } + } +} diff --git a/node_modules/uglify-js/lib/transform.js b/node_modules/uglify-js/lib/transform.js new file mode 100644 index 0000000..dcf90df --- /dev/null +++ b/node_modules/uglify-js/lib/transform.js @@ -0,0 +1,250 @@ +/*********************************************************************** + + A JavaScript tokenizer / parser / beautifier / compressor. + https://github.com/mishoo/UglifyJS + + -------------------------------- (C) --------------------------------- + + Author: Mihai Bazon + + http://mihai.bazon.net/blog + + Distributed under the BSD license: + + Copyright 2012 (c) Mihai Bazon + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + ***********************************************************************/ + +"use strict"; + +function TreeTransformer(before, after) { + TreeWalker.call(this); + this.before = before; + this.after = after; +} +TreeTransformer.prototype = new TreeWalker; + +(function(DEF) { + function do_list(list, tw) { + return List(list, function(node) { + return node.transform(tw, true); + }); + } + + DEF(AST_Node, noop); + DEF(AST_LabeledStatement, function(self, tw) { + self.label = self.label.transform(tw); + self.body = self.body.transform(tw); + }); + DEF(AST_SimpleStatement, function(self, tw) { + self.body = self.body.transform(tw); + }); + DEF(AST_Block, function(self, tw) { + self.body = do_list(self.body, tw); + }); + DEF(AST_Do, function(self, tw) { + self.body = self.body.transform(tw); + self.condition = self.condition.transform(tw); + }); + DEF(AST_While, function(self, tw) { + self.condition = self.condition.transform(tw); + self.body = self.body.transform(tw); + }); + DEF(AST_For, function(self, tw) { + if (self.init) self.init = self.init.transform(tw); + if (self.condition) self.condition = self.condition.transform(tw); + if (self.step) self.step = self.step.transform(tw); + self.body = self.body.transform(tw); + }); + DEF(AST_ForEnumeration, function(self, tw) { + self.init = self.init.transform(tw); + self.object = self.object.transform(tw); + self.body = self.body.transform(tw); + }); + DEF(AST_With, function(self, tw) { + self.expression = self.expression.transform(tw); + self.body = self.body.transform(tw); + }); + DEF(AST_Exit, function(self, tw) { + if (self.value) self.value = self.value.transform(tw); + }); + DEF(AST_LoopControl, function(self, tw) { + if (self.label) self.label = self.label.transform(tw); + }); + DEF(AST_If, function(self, tw) { + self.condition = self.condition.transform(tw); + self.body = self.body.transform(tw); + if (self.alternative) self.alternative = self.alternative.transform(tw); + }); + DEF(AST_Switch, function(self, tw) { + self.expression = self.expression.transform(tw); + self.body = do_list(self.body, tw); + }); + DEF(AST_Case, function(self, tw) { + self.expression = self.expression.transform(tw); + self.body = do_list(self.body, tw); + }); + DEF(AST_Try, function(self, tw) { + self.body = do_list(self.body, tw); + if (self.bcatch) self.bcatch = self.bcatch.transform(tw); + if (self.bfinally) self.bfinally = self.bfinally.transform(tw); + }); + DEF(AST_Catch, function(self, tw) { + if (self.argname) self.argname = self.argname.transform(tw); + self.body = do_list(self.body, tw); + }); + DEF(AST_Definitions, function(self, tw) { + self.definitions = do_list(self.definitions, tw); + }); + DEF(AST_VarDef, function(self, tw) { + self.name = self.name.transform(tw); + if (self.value) self.value = self.value.transform(tw); + }); + DEF(AST_DefaultValue, function(self, tw) { + self.name = self.name.transform(tw); + self.value = self.value.transform(tw); + }); + DEF(AST_Lambda, function(self, tw) { + if (self.name) self.name = self.name.transform(tw); + self.argnames = do_list(self.argnames, tw); + if (self.rest) self.rest = self.rest.transform(tw); + self.body = do_list(self.body, tw); + }); + function transform_arrow(self, tw) { + self.argnames = do_list(self.argnames, tw); + if (self.rest) self.rest = self.rest.transform(tw); + if (self.value) { + self.value = self.value.transform(tw); + } else { + self.body = do_list(self.body, tw); + } + } + DEF(AST_Arrow, transform_arrow); + DEF(AST_AsyncArrow, transform_arrow); + DEF(AST_Class, function(self, tw) { + if (self.name) self.name = self.name.transform(tw); + if (self.extends) self.extends = self.extends.transform(tw); + self.properties = do_list(self.properties, tw); + }); + DEF(AST_ClassProperty, function(self, tw) { + if (self.key instanceof AST_Node) self.key = self.key.transform(tw); + if (self.value) self.value = self.value.transform(tw); + }); + DEF(AST_Call, function(self, tw) { + self.expression = self.expression.transform(tw); + self.args = do_list(self.args, tw); + }); + DEF(AST_Sequence, function(self, tw) { + self.expressions = do_list(self.expressions, tw); + }); + DEF(AST_Await, function(self, tw) { + self.expression = self.expression.transform(tw); + }); + DEF(AST_Yield, function(self, tw) { + if (self.expression) self.expression = self.expression.transform(tw); + }); + DEF(AST_Dot, function(self, tw) { + self.expression = self.expression.transform(tw); + }); + DEF(AST_Sub, function(self, tw) { + self.expression = self.expression.transform(tw); + self.property = self.property.transform(tw); + }); + DEF(AST_Spread, function(self, tw) { + self.expression = self.expression.transform(tw); + }); + DEF(AST_Unary, function(self, tw) { + self.expression = self.expression.transform(tw); + }); + DEF(AST_Binary, function(self, tw) { + self.left = self.left.transform(tw); + self.right = self.right.transform(tw); + }); + DEF(AST_Conditional, function(self, tw) { + self.condition = self.condition.transform(tw); + self.consequent = self.consequent.transform(tw); + self.alternative = self.alternative.transform(tw); + }); + DEF(AST_Array, function(self, tw) { + self.elements = do_list(self.elements, tw); + }); + DEF(AST_DestructuredArray, function(self, tw) { + self.elements = do_list(self.elements, tw); + if (self.rest) self.rest = self.rest.transform(tw); + }); + DEF(AST_DestructuredKeyVal, function(self, tw) { + if (self.key instanceof AST_Node) self.key = self.key.transform(tw); + self.value = self.value.transform(tw); + }); + DEF(AST_DestructuredObject, function(self, tw) { + self.properties = do_list(self.properties, tw); + if (self.rest) self.rest = self.rest.transform(tw); + }); + DEF(AST_Object, function(self, tw) { + self.properties = do_list(self.properties, tw); + }); + DEF(AST_ObjectProperty, function(self, tw) { + if (self.key instanceof AST_Node) self.key = self.key.transform(tw); + self.value = self.value.transform(tw); + }); + DEF(AST_ExportDeclaration, function(self, tw) { + self.body = self.body.transform(tw); + }); + DEF(AST_ExportDefault, function(self, tw) { + self.body = self.body.transform(tw); + }); + DEF(AST_ExportReferences, function(self, tw) { + self.properties = do_list(self.properties, tw); + }); + DEF(AST_Import, function(self, tw) { + if (self.all) self.all = self.all.transform(tw); + if (self.default) self.default = self.default.transform(tw); + if (self.properties) self.properties = do_list(self.properties, tw); + }); + DEF(AST_Template, function(self, tw) { + if (self.tag) self.tag = self.tag.transform(tw); + self.expressions = do_list(self.expressions, tw); + }); +})(function(node, descend) { + node.DEFMETHOD("transform", function(tw, in_list) { + var x, y; + tw.push(this); + if (tw.before) x = tw.before(this, descend, in_list); + if (typeof x === "undefined") { + x = this; + descend(x, tw); + if (tw.after) { + y = tw.after(x, in_list); + if (typeof y !== "undefined") x = y; + } + } + tw.pop(); + return x; + }); +}); diff --git a/node_modules/uglify-js/lib/utils.js b/node_modules/uglify-js/lib/utils.js new file mode 100644 index 0000000..6faaa15 --- /dev/null +++ b/node_modules/uglify-js/lib/utils.js @@ -0,0 +1,287 @@ +/*********************************************************************** + + A JavaScript tokenizer / parser / beautifier / compressor. + https://github.com/mishoo/UglifyJS + + -------------------------------- (C) --------------------------------- + + Author: Mihai Bazon + + http://mihai.bazon.net/blog + + Distributed under the BSD license: + + Copyright 2012 (c) Mihai Bazon + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + ***********************************************************************/ + +"use strict"; + +function characters(str) { + return str.split(""); +} + +function member(name, array) { + return array.indexOf(name) >= 0; +} + +function find_if(func, array) { + for (var i = array.length; --i >= 0;) if (func(array[i])) return array[i]; +} + +function configure_error_stack(fn) { + Object.defineProperty(fn.prototype, "stack", { + get: function() { + var err = new Error(this.message); + err.name = this.name; + try { + throw err; + } catch (e) { + return e.stack; + } + } + }); +} + +function DefaultsError(msg, defs) { + this.message = msg; + this.defs = defs; +} +DefaultsError.prototype = Object.create(Error.prototype); +DefaultsError.prototype.constructor = DefaultsError; +DefaultsError.prototype.name = "DefaultsError"; +configure_error_stack(DefaultsError); + +function defaults(args, defs, croak) { + if (croak) for (var i in args) { + if (HOP(args, i) && !HOP(defs, i)) throw new DefaultsError("`" + i + "` is not a supported option", defs); + } + for (var i in args) { + if (HOP(args, i)) defs[i] = args[i]; + } + return defs; +} + +function noop() {} +function return_false() { return false; } +function return_true() { return true; } +function return_this() { return this; } +function return_null() { return null; } + +var List = (function() { + function List(a, f) { + var ret = []; + for (var i = 0; i < a.length; i++) { + var val = f(a[i], i); + if (val === skip) continue; + if (val instanceof Splice) { + ret.push.apply(ret, val.v); + } else { + ret.push(val); + } + } + return ret; + } + List.is_op = function(val) { + return val === skip || val instanceof Splice; + }; + List.splice = function(val) { + return new Splice(val); + }; + var skip = List.skip = {}; + function Splice(val) { + this.v = val; + } + return List; +})(); + +function push_uniq(array, el) { + if (array.indexOf(el) < 0) return array.push(el); +} + +function string_template(text, props) { + return text.replace(/\{([^{}]+)\}/g, function(str, p) { + var value = p == "this" ? props : props[p]; + if (value instanceof AST_Node) return value.print_to_string(); + if (value instanceof AST_Token) return value.file + ":" + value.line + "," + value.col; + return value; + }); +} + +function remove(array, el) { + var index = array.indexOf(el); + if (index >= 0) array.splice(index, 1); +} + +function makePredicate(words) { + if (!Array.isArray(words)) words = words.split(" "); + var map = Object.create(null); + words.forEach(function(word) { + map[word] = true; + }); + return map; +} + +function all(array, predicate) { + for (var i = array.length; --i >= 0;) + if (!predicate(array[i], i)) + return false; + return true; +} + +function Dictionary() { + this.values = Object.create(null); +} +Dictionary.prototype = { + set: function(key, val) { + if (key == "__proto__") { + this.proto_value = val; + } else { + this.values[key] = val; + } + return this; + }, + add: function(key, val) { + var list = this.get(key); + if (list) { + list.push(val); + } else { + this.set(key, [ val ]); + } + return this; + }, + get: function(key) { + return key == "__proto__" ? this.proto_value : this.values[key]; + }, + del: function(key) { + if (key == "__proto__") { + delete this.proto_value; + } else { + delete this.values[key]; + } + return this; + }, + has: function(key) { + return key == "__proto__" ? "proto_value" in this : key in this.values; + }, + all: function(predicate) { + for (var i in this.values) + if (!predicate(this.values[i], i)) return false; + if ("proto_value" in this && !predicate(this.proto_value, "__proto__")) return false; + return true; + }, + each: function(f) { + for (var i in this.values) + f(this.values[i], i); + if ("proto_value" in this) f(this.proto_value, "__proto__"); + }, + size: function() { + return Object.keys(this.values).length + ("proto_value" in this); + }, + map: function(f) { + var ret = []; + for (var i in this.values) + ret.push(f(this.values[i], i)); + if ("proto_value" in this) ret.push(f(this.proto_value, "__proto__")); + return ret; + }, + clone: function() { + var ret = new Dictionary(); + this.each(function(value, i) { + ret.set(i, value); + }); + return ret; + }, + toObject: function() { + var obj = {}; + this.each(function(value, i) { + obj["$" + i] = value; + }); + return obj; + }, +}; +Dictionary.fromObject = function(obj) { + var dict = new Dictionary(); + for (var i in obj) + if (HOP(obj, i)) dict.set(i.slice(1), obj[i]); + return dict; +}; + +function HOP(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +// return true if the node at the top of the stack (that means the +// innermost node in the current output) is lexically the first in +// a statement. +function first_in_statement(stack, arrow, export_default) { + var node = stack.parent(-1); + for (var i = 0, p; p = stack.parent(i++); node = p) { + if (is_arrow(p)) { + return arrow && p.value === node; + } else if (p instanceof AST_Binary) { + if (p.left === node) continue; + } else if (p.TYPE == "Call") { + if (p.expression === node) continue; + } else if (p instanceof AST_Conditional) { + if (p.condition === node) continue; + } else if (p instanceof AST_ExportDefault) { + return export_default; + } else if (p instanceof AST_PropAccess) { + if (p.expression === node) continue; + } else if (p instanceof AST_Sequence) { + if (p.expressions[0] === node) continue; + } else if (p instanceof AST_SimpleStatement) { + return true; + } else if (p instanceof AST_Template) { + if (p.tag === node) continue; + } else if (p instanceof AST_UnaryPostfix) { + if (p.expression === node) continue; + } + return false; + } +} + +function DEF_BITPROPS(ctor, props) { + if (props.length > 31) throw new Error("Too many properties: " + props.length + "\n" + props.join(", ")); + props.forEach(function(name, pos) { + var mask = 1 << pos; + Object.defineProperty(ctor.prototype, name, { + get: function() { + return !!(this._bits & mask); + }, + set: function(val) { + if (val) + this._bits |= mask; + else + this._bits &= ~mask; + }, + }); + }); +} diff --git a/node_modules/uglify-js/package.json b/node_modules/uglify-js/package.json new file mode 100644 index 0000000..5776de1 --- /dev/null +++ b/node_modules/uglify-js/package.json @@ -0,0 +1,56 @@ +{ + "name": "uglify-js", + "description": "JavaScript parser, mangler/compressor and beautifier toolkit", + "author": "Mihai Bazon (http://lisperator.net/)", + "license": "BSD-2-Clause", + "version": "3.17.4", + "engines": { + "node": ">=0.8.0" + }, + "maintainers": [ + "Alex Lam ", + "Mihai Bazon (http://lisperator.net/)" + ], + "repository": "mishoo/UglifyJS", + "main": "tools/node.js", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "files": [ + "bin", + "lib", + "tools", + "LICENSE" + ], + "devDependencies": { + "acorn": "~8.7.1", + "semver": "~6.3.0" + }, + "scripts": { + "test": "node test/compress.js && node test/mocha.js" + }, + "keywords": [ + "cli", + "compress", + "compressor", + "ecma", + "ecmascript", + "es", + "es5", + "javascript", + "js", + "jsmin", + "min", + "minification", + "minifier", + "minify", + "optimize", + "optimizer", + "pack", + "packer", + "parse", + "parser", + "uglifier", + "uglify" + ] +} diff --git a/node_modules/uglify-js/tools/domprops.html b/node_modules/uglify-js/tools/domprops.html new file mode 100644 index 0000000..e217b17 --- /dev/null +++ b/node_modules/uglify-js/tools/domprops.html @@ -0,0 +1,456 @@ + + + + + + diff --git a/node_modules/uglify-js/tools/domprops.json b/node_modules/uglify-js/tools/domprops.json new file mode 100644 index 0000000..1045429 --- /dev/null +++ b/node_modules/uglify-js/tools/domprops.json @@ -0,0 +1,8325 @@ +[ + "$&", + "$'", + "$*", + "$+", + "$1", + "$2", + "$3", + "$4", + "$5", + "$6", + "$7", + "$8", + "$9", + "$_", + "$`", + "$input", + "-moz-animation", + "-moz-animation-delay", + "-moz-animation-direction", + "-moz-animation-duration", + "-moz-animation-fill-mode", + "-moz-animation-iteration-count", + "-moz-animation-name", + "-moz-animation-play-state", + "-moz-animation-timing-function", + "-moz-appearance", + "-moz-backface-visibility", + "-moz-binding", + "-moz-border-end", + "-moz-border-end-color", + "-moz-border-end-style", + "-moz-border-end-width", + "-moz-border-image", + "-moz-border-start", + "-moz-border-start-color", + "-moz-border-start-style", + "-moz-border-start-width", + "-moz-box-align", + "-moz-box-direction", + "-moz-box-flex", + "-moz-box-ordinal-group", + "-moz-box-orient", + "-moz-box-pack", + "-moz-box-sizing", + "-moz-column-count", + "-moz-column-fill", + "-moz-column-gap", + "-moz-column-rule", + "-moz-column-rule-color", + "-moz-column-rule-style", + "-moz-column-rule-width", + "-moz-column-width", + "-moz-columns", + "-moz-float-edge", + "-moz-font-feature-settings", + "-moz-font-language-override", + "-moz-force-broken-image-icon", + "-moz-hyphens", + "-moz-image-region", + "-moz-margin-end", + "-moz-margin-start", + "-moz-orient", + "-moz-outline-radius", + "-moz-outline-radius-bottomleft", + "-moz-outline-radius-bottomright", + "-moz-outline-radius-topleft", + "-moz-outline-radius-topright", + "-moz-padding-end", + "-moz-padding-start", + "-moz-perspective", + "-moz-perspective-origin", + "-moz-stack-sizing", + "-moz-tab-size", + "-moz-text-size-adjust", + "-moz-transform", + "-moz-transform-origin", + "-moz-transform-style", + "-moz-transition", + "-moz-transition-delay", + "-moz-transition-duration", + "-moz-transition-property", + "-moz-transition-timing-function", + "-moz-user-focus", + "-moz-user-input", + "-moz-user-modify", + "-moz-user-select", + "-moz-window-dragging", + "-webkit-align-content", + "-webkit-align-items", + "-webkit-align-self", + "-webkit-animation", + "-webkit-animation-delay", + "-webkit-animation-direction", + "-webkit-animation-duration", + "-webkit-animation-fill-mode", + "-webkit-animation-iteration-count", + "-webkit-animation-name", + "-webkit-animation-play-state", + "-webkit-animation-timing-function", + "-webkit-appearance", + "-webkit-backface-visibility", + "-webkit-background-clip", + "-webkit-background-origin", + "-webkit-background-size", + "-webkit-border-bottom-left-radius", + "-webkit-border-bottom-right-radius", + "-webkit-border-image", + "-webkit-border-radius", + "-webkit-border-top-left-radius", + "-webkit-border-top-right-radius", + "-webkit-box-align", + "-webkit-box-direction", + "-webkit-box-flex", + "-webkit-box-ordinal-group", + "-webkit-box-orient", + "-webkit-box-pack", + "-webkit-box-shadow", + "-webkit-box-sizing", + "-webkit-filter", + "-webkit-flex", + "-webkit-flex-basis", + "-webkit-flex-direction", + "-webkit-flex-flow", + "-webkit-flex-grow", + "-webkit-flex-shrink", + "-webkit-flex-wrap", + "-webkit-justify-content", + "-webkit-line-clamp", + "-webkit-mask", + "-webkit-mask-clip", + "-webkit-mask-composite", + "-webkit-mask-image", + "-webkit-mask-origin", + "-webkit-mask-position", + "-webkit-mask-position-x", + "-webkit-mask-position-y", + "-webkit-mask-repeat", + "-webkit-mask-size", + "-webkit-order", + "-webkit-perspective", + "-webkit-perspective-origin", + "-webkit-text-fill-color", + "-webkit-text-size-adjust", + "-webkit-text-stroke", + "-webkit-text-stroke-color", + "-webkit-text-stroke-width", + "-webkit-transform", + "-webkit-transform-origin", + "-webkit-transform-style", + "-webkit-transition", + "-webkit-transition-delay", + "-webkit-transition-duration", + "-webkit-transition-property", + "-webkit-transition-timing-function", + "-webkit-user-select", + "0", + "1", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "2", + "20", + "21", + "22", + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "3", + "30", + "31", + "32", + "33", + "34", + "35", + "36", + "37", + "38", + "39", + "4", + "40", + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "5", + "50", + "51", + "6", + "7", + "8", + "9", + "@@iterator", + "ABORT_ERR", + "ACTIVE", + "ACTIVE_ATTRIBUTES", + "ACTIVE_TEXTURE", + "ACTIVE_UNIFORMS", + "ACTIVE_UNIFORM_BLOCKS", + "ADDITION", + "ALIASED_LINE_WIDTH_RANGE", + "ALIASED_POINT_SIZE_RANGE", + "ALLOW_KEYBOARD_INPUT", + "ALLPASS", + "ALPHA", + "ALPHA_BITS", + "ALREADY_SIGNALED", + "ALT_MASK", + "ALWAYS", + "ANDROID", + "ANGLE_instanced_arrays", + "ANY_SAMPLES_PASSED", + "ANY_SAMPLES_PASSED_CONSERVATIVE", + "ANY_TYPE", + "ANY_UNORDERED_NODE_TYPE", + "APP_UPDATE", + "ARM", + "ARRAY_BUFFER", + "ARRAY_BUFFER_BINDING", + "ATTACHED_SHADERS", + "ATTRIBUTE_NODE", + "AT_TARGET", + "AbortController", + "AbortSignal", + "AbsoluteOrientationSensor", + "AbstractRange", + "Accelerometer", + "ActiveXObject", + "AddSearchProvider", + "AesGcmEncryptResult", + "AggregateError", + "AnalyserNode", + "Animation", + "AnimationEffect", + "AnimationEvent", + "AnimationPlaybackEvent", + "AnimationTimeline", + "AnonXMLHttpRequest", + "AppBannerPromptResult", + "ApplicationCache", + "ApplicationCacheErrorEvent", + "Array", + "ArrayBuffer", + "Atomics", + "Attr", + "Audio", + "AudioBuffer", + "AudioBufferSourceNode", + "AudioContext", + "AudioDestinationNode", + "AudioListener", + "AudioNode", + "AudioParam", + "AudioParamMap", + "AudioProcessingEvent", + "AudioScheduledSourceNode", + "AudioStreamTrack", + "AudioTrack", + "AudioTrackList", + "AudioWorklet", + "AudioWorkletNode", + "AuthenticatorAssertionResponse", + "AuthenticatorAttestationResponse", + "AuthenticatorResponse", + "AutocompleteErrorEvent", + "BACK", + "BAD_BOUNDARYPOINTS_ERR", + "BAD_REQUEST", + "BANDPASS", + "BLEND", + "BLEND_COLOR", + "BLEND_DST_ALPHA", + "BLEND_DST_RGB", + "BLEND_EQUATION", + "BLEND_EQUATION_ALPHA", + "BLEND_EQUATION_RGB", + "BLEND_SRC_ALPHA", + "BLEND_SRC_RGB", + "BLUE_BITS", + "BLUR", + "BOOL", + "BOOLEAN_TYPE", + "BOOL_VEC2", + "BOOL_VEC3", + "BOOL_VEC4", + "BOTH", + "BROWSER_DEFAULT_WEBGL", + "BUBBLING_PHASE", + "BUFFER_SIZE", + "BUFFER_USAGE", + "BYTE", + "BYTES_PER_ELEMENT", + "BackgroundFetchManager", + "BackgroundFetchRecord", + "BackgroundFetchRegistration", + "BarProp", + "BarcodeDetector", + "BaseAudioContext", + "BaseHref", + "BatteryManager", + "BeforeInstallPromptEvent", + "BeforeLoadEvent", + "BeforeUnloadEvent", + "BigInt", + "BigInt64Array", + "BigUint64Array", + "BiquadFilterNode", + "Blob", + "BlobEvent", + "Bluetooth", + "BluetoothCharacteristicProperties", + "BluetoothDevice", + "BluetoothRemoteGATTCharacteristic", + "BluetoothRemoteGATTDescriptor", + "BluetoothRemoteGATTServer", + "BluetoothRemoteGATTService", + "BluetoothUUID", + "BookmarkCollection", + "Boolean", + "BroadcastChannel", + "ByteLengthQueuingStrategy", + "CANNOT_RUN", + "CAPTURING_PHASE", + "CCW", + "CDATASection", + "CDATA_SECTION_NODE", + "CHANGE", + "CHARSET_RULE", + "CHECKING", + "CHROME_UPDATE", + "CLAMP_TO_EDGE", + "CLICK", + "CLOSED", + "CLOSING", + "COLOR", + "COLOR_ATTACHMENT0", + "COLOR_ATTACHMENT1", + "COLOR_ATTACHMENT10", + "COLOR_ATTACHMENT11", + "COLOR_ATTACHMENT12", + "COLOR_ATTACHMENT13", + "COLOR_ATTACHMENT14", + "COLOR_ATTACHMENT15", + "COLOR_ATTACHMENT2", + "COLOR_ATTACHMENT3", + "COLOR_ATTACHMENT4", + "COLOR_ATTACHMENT5", + "COLOR_ATTACHMENT6", + "COLOR_ATTACHMENT7", + "COLOR_ATTACHMENT8", + "COLOR_ATTACHMENT9", + "COLOR_BUFFER_BIT", + "COLOR_CLEAR_VALUE", + "COLOR_WRITEMASK", + "COMMENT_NODE", + "COMPARE_REF_TO_TEXTURE", + "COMPILE_STATUS", + "COMPRESSED_RGBA_S3TC_DXT1_EXT", + "COMPRESSED_RGBA_S3TC_DXT3_EXT", + "COMPRESSED_RGBA_S3TC_DXT5_EXT", + "COMPRESSED_RGB_S3TC_DXT1_EXT", + "COMPRESSED_TEXTURE_FORMATS", + "CONDITION_SATISFIED", + "CONFIGURATION_UNSUPPORTED", + "CONNECTING", + "CONSTANT_ALPHA", + "CONSTANT_COLOR", + "CONSTRAINT_ERR", + "CONTENT", + "CONTEXT_LOST_WEBGL", + "CONTROL_MASK", + "COPY_READ_BUFFER", + "COPY_READ_BUFFER_BINDING", + "COPY_WRITE_BUFFER", + "COPY_WRITE_BUFFER_BINDING", + "COUNTER_STYLE_RULE", + "CROS", + "CSS", + "CSS2Properties", + "CSSAnimation", + "CSSCharsetRule", + "CSSConditionRule", + "CSSCounterStyleRule", + "CSSFontFaceRule", + "CSSFontFeatureValuesRule", + "CSSGroupingRule", + "CSSImageValue", + "CSSImportRule", + "CSSKeyframeRule", + "CSSKeyframesRule", + "CSSKeywordValue", + "CSSMathInvert", + "CSSMathMax", + "CSSMathMin", + "CSSMathNegate", + "CSSMathProduct", + "CSSMathSum", + "CSSMathValue", + "CSSMatrixComponent", + "CSSMediaRule", + "CSSMozDocumentRule", + "CSSNameSpaceRule", + "CSSNamespaceRule", + "CSSNumericArray", + "CSSNumericValue", + "CSSPageRule", + "CSSPerspective", + "CSSPositionValue", + "CSSPrimitiveValue", + "CSSRotate", + "CSSRule", + "CSSRuleList", + "CSSScale", + "CSSSkew", + "CSSSkewX", + "CSSSkewY", + "CSSStyleDeclaration", + "CSSStyleRule", + "CSSStyleSheet", + "CSSStyleValue", + "CSSSupportsRule", + "CSSTransformComponent", + "CSSTransformValue", + "CSSTransition", + "CSSTranslate", + "CSSUnitValue", + "CSSUnknownRule", + "CSSUnparsedValue", + "CSSValue", + "CSSValueList", + "CSSVariableReferenceValue", + "CSSVariablesDeclaration", + "CSSVariablesRule", + "CSSViewportRule", + "CSS_ATTR", + "CSS_CM", + "CSS_COUNTER", + "CSS_CUSTOM", + "CSS_DEG", + "CSS_DIMENSION", + "CSS_EMS", + "CSS_EXS", + "CSS_FILTER_BLUR", + "CSS_FILTER_BRIGHTNESS", + "CSS_FILTER_CONTRAST", + "CSS_FILTER_CUSTOM", + "CSS_FILTER_DROP_SHADOW", + "CSS_FILTER_GRAYSCALE", + "CSS_FILTER_HUE_ROTATE", + "CSS_FILTER_INVERT", + "CSS_FILTER_OPACITY", + "CSS_FILTER_REFERENCE", + "CSS_FILTER_SATURATE", + "CSS_FILTER_SEPIA", + "CSS_GRAD", + "CSS_HZ", + "CSS_IDENT", + "CSS_IN", + "CSS_INHERIT", + "CSS_KHZ", + "CSS_MATRIX", + "CSS_MATRIX3D", + "CSS_MM", + "CSS_MS", + "CSS_NUMBER", + "CSS_PC", + "CSS_PERCENTAGE", + "CSS_PERSPECTIVE", + "CSS_PRIMITIVE_VALUE", + "CSS_PT", + "CSS_PX", + "CSS_RAD", + "CSS_RECT", + "CSS_RGBCOLOR", + "CSS_ROTATE", + "CSS_ROTATE3D", + "CSS_ROTATEX", + "CSS_ROTATEY", + "CSS_ROTATEZ", + "CSS_S", + "CSS_SCALE", + "CSS_SCALE3D", + "CSS_SCALEX", + "CSS_SCALEY", + "CSS_SCALEZ", + "CSS_SKEW", + "CSS_SKEWX", + "CSS_SKEWY", + "CSS_STRING", + "CSS_TRANSLATE", + "CSS_TRANSLATE3D", + "CSS_TRANSLATEX", + "CSS_TRANSLATEY", + "CSS_TRANSLATEZ", + "CSS_UNKNOWN", + "CSS_URI", + "CSS_VALUE_LIST", + "CSS_VH", + "CSS_VMAX", + "CSS_VMIN", + "CSS_VW", + "CULL_FACE", + "CULL_FACE_MODE", + "CURRENT_PROGRAM", + "CURRENT_QUERY", + "CURRENT_VERTEX_ATTRIB", + "CUSTOM", + "CW", + "Cache", + "CacheStorage", + "CanvasCaptureMediaStream", + "CanvasCaptureMediaStreamTrack", + "CanvasGradient", + "CanvasPattern", + "CanvasPixelArray", + "CanvasRenderingContext2D", + "CaretPosition", + "ChannelMergerNode", + "ChannelSplitterNode", + "CharacterData", + "Chrome PDF Plugin", + "Chrome PDF Viewer", + "ClientRect", + "ClientRectList", + "Clipboard", + "ClipboardEvent", + "ClipboardItem", + "CloseEvent", + "Collator", + "CollectGarbage", + "CommandEvent", + "Comment", + "CompileError", + "CompositionEvent", + "CompressionStream", + "Console", + "ConstantSourceNode", + "ControlRangeCollection", + "Controllers", + "ConvolverNode", + "Coordinates", + "CountQueuingStrategy", + "Counter", + "Credential", + "CredentialsContainer", + "Crypto", + "CryptoKey", + "CryptoOperation", + "CustomElementRegistry", + "CustomEvent", + "DATABASE_ERR", + "DATA_CLONE_ERR", + "DATA_ERR", + "DBLCLICK", + "DECR", + "DECR_WRAP", + "DELETE_STATUS", + "DEPTH", + "DEPTH24_STENCIL8", + "DEPTH32F_STENCIL8", + "DEPTH_ATTACHMENT", + "DEPTH_BITS", + "DEPTH_BUFFER_BIT", + "DEPTH_CLEAR_VALUE", + "DEPTH_COMPONENT", + "DEPTH_COMPONENT16", + "DEPTH_COMPONENT24", + "DEPTH_COMPONENT32F", + "DEPTH_FUNC", + "DEPTH_RANGE", + "DEPTH_STENCIL", + "DEPTH_STENCIL_ATTACHMENT", + "DEPTH_TEST", + "DEPTH_WRITEMASK", + "DEVICE_INELIGIBLE", + "DIRECTION_DOWN", + "DIRECTION_LEFT", + "DIRECTION_RIGHT", + "DIRECTION_UP", + "DISABLED", + "DISPATCH_REQUEST_ERR", + "DITHER", + "DOCUMENT_FRAGMENT_NODE", + "DOCUMENT_NODE", + "DOCUMENT_POSITION_CONTAINED_BY", + "DOCUMENT_POSITION_CONTAINS", + "DOCUMENT_POSITION_DISCONNECTED", + "DOCUMENT_POSITION_FOLLOWING", + "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC", + "DOCUMENT_POSITION_PRECEDING", + "DOCUMENT_TYPE_NODE", + "DOMCursor", + "DOMError", + "DOMException", + "DOMImplementation", + "DOMImplementationLS", + "DOMMatrix", + "DOMMatrixReadOnly", + "DOMParser", + "DOMPoint", + "DOMPointReadOnly", + "DOMQuad", + "DOMRect", + "DOMRectList", + "DOMRectReadOnly", + "DOMRequest", + "DOMSTRING_SIZE_ERR", + "DOMSettableTokenList", + "DOMStringList", + "DOMStringMap", + "DOMTokenList", + "DOMTransactionEvent", + "DOM_DELTA_LINE", + "DOM_DELTA_PAGE", + "DOM_DELTA_PIXEL", + "DOM_INPUT_METHOD_DROP", + "DOM_INPUT_METHOD_HANDWRITING", + "DOM_INPUT_METHOD_IME", + "DOM_INPUT_METHOD_KEYBOARD", + "DOM_INPUT_METHOD_MULTIMODAL", + "DOM_INPUT_METHOD_OPTION", + "DOM_INPUT_METHOD_PASTE", + "DOM_INPUT_METHOD_SCRIPT", + "DOM_INPUT_METHOD_UNKNOWN", + "DOM_INPUT_METHOD_VOICE", + "DOM_KEY_LOCATION_JOYSTICK", + "DOM_KEY_LOCATION_LEFT", + "DOM_KEY_LOCATION_MOBILE", + "DOM_KEY_LOCATION_NUMPAD", + "DOM_KEY_LOCATION_RIGHT", + "DOM_KEY_LOCATION_STANDARD", + "DOM_VK_0", + "DOM_VK_1", + "DOM_VK_2", + "DOM_VK_3", + "DOM_VK_4", + "DOM_VK_5", + "DOM_VK_6", + "DOM_VK_7", + "DOM_VK_8", + "DOM_VK_9", + "DOM_VK_A", + "DOM_VK_ACCEPT", + "DOM_VK_ADD", + "DOM_VK_ALT", + "DOM_VK_ALTGR", + "DOM_VK_AMPERSAND", + "DOM_VK_ASTERISK", + "DOM_VK_AT", + "DOM_VK_ATTN", + "DOM_VK_B", + "DOM_VK_BACKSPACE", + "DOM_VK_BACK_QUOTE", + "DOM_VK_BACK_SLASH", + "DOM_VK_BACK_SPACE", + "DOM_VK_C", + "DOM_VK_CANCEL", + "DOM_VK_CAPS_LOCK", + "DOM_VK_CIRCUMFLEX", + "DOM_VK_CLEAR", + "DOM_VK_CLOSE_BRACKET", + "DOM_VK_CLOSE_CURLY_BRACKET", + "DOM_VK_CLOSE_PAREN", + "DOM_VK_COLON", + "DOM_VK_COMMA", + "DOM_VK_CONTEXT_MENU", + "DOM_VK_CONTROL", + "DOM_VK_CONVERT", + "DOM_VK_CRSEL", + "DOM_VK_CTRL", + "DOM_VK_D", + "DOM_VK_DECIMAL", + "DOM_VK_DELETE", + "DOM_VK_DIVIDE", + "DOM_VK_DOLLAR", + "DOM_VK_DOUBLE_QUOTE", + "DOM_VK_DOWN", + "DOM_VK_E", + "DOM_VK_EISU", + "DOM_VK_END", + "DOM_VK_ENTER", + "DOM_VK_EQUALS", + "DOM_VK_EREOF", + "DOM_VK_ESCAPE", + "DOM_VK_EXCLAMATION", + "DOM_VK_EXECUTE", + "DOM_VK_EXSEL", + "DOM_VK_F", + "DOM_VK_F1", + "DOM_VK_F10", + "DOM_VK_F11", + "DOM_VK_F12", + "DOM_VK_F13", + "DOM_VK_F14", + "DOM_VK_F15", + "DOM_VK_F16", + "DOM_VK_F17", + "DOM_VK_F18", + "DOM_VK_F19", + "DOM_VK_F2", + "DOM_VK_F20", + "DOM_VK_F21", + "DOM_VK_F22", + "DOM_VK_F23", + "DOM_VK_F24", + "DOM_VK_F25", + "DOM_VK_F26", + "DOM_VK_F27", + "DOM_VK_F28", + "DOM_VK_F29", + "DOM_VK_F3", + "DOM_VK_F30", + "DOM_VK_F31", + "DOM_VK_F32", + "DOM_VK_F33", + "DOM_VK_F34", + "DOM_VK_F35", + "DOM_VK_F36", + "DOM_VK_F4", + "DOM_VK_F5", + "DOM_VK_F6", + "DOM_VK_F7", + "DOM_VK_F8", + "DOM_VK_F9", + "DOM_VK_FINAL", + "DOM_VK_FRONT", + "DOM_VK_G", + "DOM_VK_GREATER_THAN", + "DOM_VK_H", + "DOM_VK_HANGUL", + "DOM_VK_HANJA", + "DOM_VK_HASH", + "DOM_VK_HELP", + "DOM_VK_HK_TOGGLE", + "DOM_VK_HOME", + "DOM_VK_HYPHEN_MINUS", + "DOM_VK_I", + "DOM_VK_INSERT", + "DOM_VK_J", + "DOM_VK_JUNJA", + "DOM_VK_K", + "DOM_VK_KANA", + "DOM_VK_KANJI", + "DOM_VK_L", + "DOM_VK_LEFT", + "DOM_VK_LEFT_TAB", + "DOM_VK_LESS_THAN", + "DOM_VK_M", + "DOM_VK_META", + "DOM_VK_MODECHANGE", + "DOM_VK_MULTIPLY", + "DOM_VK_N", + "DOM_VK_NONCONVERT", + "DOM_VK_NUMPAD0", + "DOM_VK_NUMPAD1", + "DOM_VK_NUMPAD2", + "DOM_VK_NUMPAD3", + "DOM_VK_NUMPAD4", + "DOM_VK_NUMPAD5", + "DOM_VK_NUMPAD6", + "DOM_VK_NUMPAD7", + "DOM_VK_NUMPAD8", + "DOM_VK_NUMPAD9", + "DOM_VK_NUM_LOCK", + "DOM_VK_O", + "DOM_VK_OEM_1", + "DOM_VK_OEM_102", + "DOM_VK_OEM_2", + "DOM_VK_OEM_3", + "DOM_VK_OEM_4", + "DOM_VK_OEM_5", + "DOM_VK_OEM_6", + "DOM_VK_OEM_7", + "DOM_VK_OEM_8", + "DOM_VK_OEM_COMMA", + "DOM_VK_OEM_MINUS", + "DOM_VK_OEM_PERIOD", + "DOM_VK_OEM_PLUS", + "DOM_VK_OPEN_BRACKET", + "DOM_VK_OPEN_CURLY_BRACKET", + "DOM_VK_OPEN_PAREN", + "DOM_VK_P", + "DOM_VK_PA1", + "DOM_VK_PAGEDOWN", + "DOM_VK_PAGEUP", + "DOM_VK_PAGE_DOWN", + "DOM_VK_PAGE_UP", + "DOM_VK_PAUSE", + "DOM_VK_PERCENT", + "DOM_VK_PERIOD", + "DOM_VK_PIPE", + "DOM_VK_PLAY", + "DOM_VK_PLUS", + "DOM_VK_PRINT", + "DOM_VK_PRINTSCREEN", + "DOM_VK_PROCESSKEY", + "DOM_VK_PROPERITES", + "DOM_VK_Q", + "DOM_VK_QUESTION_MARK", + "DOM_VK_QUOTE", + "DOM_VK_R", + "DOM_VK_REDO", + "DOM_VK_RETURN", + "DOM_VK_RIGHT", + "DOM_VK_S", + "DOM_VK_SCROLL_LOCK", + "DOM_VK_SELECT", + "DOM_VK_SEMICOLON", + "DOM_VK_SEPARATOR", + "DOM_VK_SHIFT", + "DOM_VK_SLASH", + "DOM_VK_SLEEP", + "DOM_VK_SPACE", + "DOM_VK_SUBTRACT", + "DOM_VK_T", + "DOM_VK_TAB", + "DOM_VK_TILDE", + "DOM_VK_U", + "DOM_VK_UNDERSCORE", + "DOM_VK_UNDO", + "DOM_VK_UNICODE", + "DOM_VK_UP", + "DOM_VK_V", + "DOM_VK_VOLUME_DOWN", + "DOM_VK_VOLUME_MUTE", + "DOM_VK_VOLUME_UP", + "DOM_VK_W", + "DOM_VK_WIN", + "DOM_VK_WINDOW", + "DOM_VK_WIN_ICO_00", + "DOM_VK_WIN_ICO_CLEAR", + "DOM_VK_WIN_ICO_HELP", + "DOM_VK_WIN_OEM_ATTN", + "DOM_VK_WIN_OEM_AUTO", + "DOM_VK_WIN_OEM_BACKTAB", + "DOM_VK_WIN_OEM_CLEAR", + "DOM_VK_WIN_OEM_COPY", + "DOM_VK_WIN_OEM_CUSEL", + "DOM_VK_WIN_OEM_ENLW", + "DOM_VK_WIN_OEM_FINISH", + "DOM_VK_WIN_OEM_FJ_JISHO", + "DOM_VK_WIN_OEM_FJ_LOYA", + "DOM_VK_WIN_OEM_FJ_MASSHOU", + "DOM_VK_WIN_OEM_FJ_ROYA", + "DOM_VK_WIN_OEM_FJ_TOUROKU", + "DOM_VK_WIN_OEM_JUMP", + "DOM_VK_WIN_OEM_PA1", + "DOM_VK_WIN_OEM_PA2", + "DOM_VK_WIN_OEM_PA3", + "DOM_VK_WIN_OEM_RESET", + "DOM_VK_WIN_OEM_WSCTRL", + "DOM_VK_X", + "DOM_VK_XF86XK_ADD_FAVORITE", + "DOM_VK_XF86XK_APPLICATION_LEFT", + "DOM_VK_XF86XK_APPLICATION_RIGHT", + "DOM_VK_XF86XK_AUDIO_CYCLE_TRACK", + "DOM_VK_XF86XK_AUDIO_FORWARD", + "DOM_VK_XF86XK_AUDIO_LOWER_VOLUME", + "DOM_VK_XF86XK_AUDIO_MEDIA", + "DOM_VK_XF86XK_AUDIO_MUTE", + "DOM_VK_XF86XK_AUDIO_NEXT", + "DOM_VK_XF86XK_AUDIO_PAUSE", + "DOM_VK_XF86XK_AUDIO_PLAY", + "DOM_VK_XF86XK_AUDIO_PREV", + "DOM_VK_XF86XK_AUDIO_RAISE_VOLUME", + "DOM_VK_XF86XK_AUDIO_RANDOM_PLAY", + "DOM_VK_XF86XK_AUDIO_RECORD", + "DOM_VK_XF86XK_AUDIO_REPEAT", + "DOM_VK_XF86XK_AUDIO_REWIND", + "DOM_VK_XF86XK_AUDIO_STOP", + "DOM_VK_XF86XK_AWAY", + "DOM_VK_XF86XK_BACK", + "DOM_VK_XF86XK_BACK_FORWARD", + "DOM_VK_XF86XK_BATTERY", + "DOM_VK_XF86XK_BLUE", + "DOM_VK_XF86XK_BLUETOOTH", + "DOM_VK_XF86XK_BOOK", + "DOM_VK_XF86XK_BRIGHTNESS_ADJUST", + "DOM_VK_XF86XK_CALCULATOR", + "DOM_VK_XF86XK_CALENDAR", + "DOM_VK_XF86XK_CD", + "DOM_VK_XF86XK_CLOSE", + "DOM_VK_XF86XK_COMMUNITY", + "DOM_VK_XF86XK_CONTRAST_ADJUST", + "DOM_VK_XF86XK_COPY", + "DOM_VK_XF86XK_CUT", + "DOM_VK_XF86XK_CYCLE_ANGLE", + "DOM_VK_XF86XK_DISPLAY", + "DOM_VK_XF86XK_DOCUMENTS", + "DOM_VK_XF86XK_DOS", + "DOM_VK_XF86XK_EJECT", + "DOM_VK_XF86XK_EXCEL", + "DOM_VK_XF86XK_EXPLORER", + "DOM_VK_XF86XK_FAVORITES", + "DOM_VK_XF86XK_FINANCE", + "DOM_VK_XF86XK_FORWARD", + "DOM_VK_XF86XK_FRAME_BACK", + "DOM_VK_XF86XK_FRAME_FORWARD", + "DOM_VK_XF86XK_GAME", + "DOM_VK_XF86XK_GO", + "DOM_VK_XF86XK_GREEN", + "DOM_VK_XF86XK_HIBERNATE", + "DOM_VK_XF86XK_HISTORY", + "DOM_VK_XF86XK_HOME_PAGE", + "DOM_VK_XF86XK_HOT_LINKS", + "DOM_VK_XF86XK_I_TOUCH", + "DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN", + "DOM_VK_XF86XK_KBD_BRIGHTNESS_UP", + "DOM_VK_XF86XK_KBD_LIGHT_ON_OFF", + "DOM_VK_XF86XK_LAUNCH0", + "DOM_VK_XF86XK_LAUNCH1", + "DOM_VK_XF86XK_LAUNCH2", + "DOM_VK_XF86XK_LAUNCH3", + "DOM_VK_XF86XK_LAUNCH4", + "DOM_VK_XF86XK_LAUNCH5", + "DOM_VK_XF86XK_LAUNCH6", + "DOM_VK_XF86XK_LAUNCH7", + "DOM_VK_XF86XK_LAUNCH8", + "DOM_VK_XF86XK_LAUNCH9", + "DOM_VK_XF86XK_LAUNCH_A", + "DOM_VK_XF86XK_LAUNCH_B", + "DOM_VK_XF86XK_LAUNCH_C", + "DOM_VK_XF86XK_LAUNCH_D", + "DOM_VK_XF86XK_LAUNCH_E", + "DOM_VK_XF86XK_LAUNCH_F", + "DOM_VK_XF86XK_LIGHT_BULB", + "DOM_VK_XF86XK_LOG_OFF", + "DOM_VK_XF86XK_MAIL", + "DOM_VK_XF86XK_MAIL_FORWARD", + "DOM_VK_XF86XK_MARKET", + "DOM_VK_XF86XK_MEETING", + "DOM_VK_XF86XK_MEMO", + "DOM_VK_XF86XK_MENU_KB", + "DOM_VK_XF86XK_MENU_PB", + "DOM_VK_XF86XK_MESSENGER", + "DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN", + "DOM_VK_XF86XK_MON_BRIGHTNESS_UP", + "DOM_VK_XF86XK_MUSIC", + "DOM_VK_XF86XK_MY_COMPUTER", + "DOM_VK_XF86XK_MY_SITES", + "DOM_VK_XF86XK_NEW", + "DOM_VK_XF86XK_NEWS", + "DOM_VK_XF86XK_OFFICE_HOME", + "DOM_VK_XF86XK_OPEN", + "DOM_VK_XF86XK_OPEN_URL", + "DOM_VK_XF86XK_OPTION", + "DOM_VK_XF86XK_PASTE", + "DOM_VK_XF86XK_PHONE", + "DOM_VK_XF86XK_PICTURES", + "DOM_VK_XF86XK_POWER_DOWN", + "DOM_VK_XF86XK_POWER_OFF", + "DOM_VK_XF86XK_RED", + "DOM_VK_XF86XK_REFRESH", + "DOM_VK_XF86XK_RELOAD", + "DOM_VK_XF86XK_REPLY", + "DOM_VK_XF86XK_ROCKER_DOWN", + "DOM_VK_XF86XK_ROCKER_ENTER", + "DOM_VK_XF86XK_ROCKER_UP", + "DOM_VK_XF86XK_ROTATE_WINDOWS", + "DOM_VK_XF86XK_ROTATION_KB", + "DOM_VK_XF86XK_ROTATION_PB", + "DOM_VK_XF86XK_SAVE", + "DOM_VK_XF86XK_SCREEN_SAVER", + "DOM_VK_XF86XK_SCROLL_CLICK", + "DOM_VK_XF86XK_SCROLL_DOWN", + "DOM_VK_XF86XK_SCROLL_UP", + "DOM_VK_XF86XK_SEARCH", + "DOM_VK_XF86XK_SEND", + "DOM_VK_XF86XK_SHOP", + "DOM_VK_XF86XK_SPELL", + "DOM_VK_XF86XK_SPLIT_SCREEN", + "DOM_VK_XF86XK_STANDBY", + "DOM_VK_XF86XK_START", + "DOM_VK_XF86XK_STOP", + "DOM_VK_XF86XK_SUBTITLE", + "DOM_VK_XF86XK_SUPPORT", + "DOM_VK_XF86XK_SUSPEND", + "DOM_VK_XF86XK_TASK_PANE", + "DOM_VK_XF86XK_TERMINAL", + "DOM_VK_XF86XK_TIME", + "DOM_VK_XF86XK_TOOLS", + "DOM_VK_XF86XK_TOP_MENU", + "DOM_VK_XF86XK_TO_DO_LIST", + "DOM_VK_XF86XK_TRAVEL", + "DOM_VK_XF86XK_USER1KB", + "DOM_VK_XF86XK_USER2KB", + "DOM_VK_XF86XK_USER_PB", + "DOM_VK_XF86XK_UWB", + "DOM_VK_XF86XK_VENDOR_HOME", + "DOM_VK_XF86XK_VIDEO", + "DOM_VK_XF86XK_VIEW", + "DOM_VK_XF86XK_WAKE_UP", + "DOM_VK_XF86XK_WEB_CAM", + "DOM_VK_XF86XK_WHEEL_BUTTON", + "DOM_VK_XF86XK_WLAN", + "DOM_VK_XF86XK_WORD", + "DOM_VK_XF86XK_WWW", + "DOM_VK_XF86XK_XFER", + "DOM_VK_XF86XK_YELLOW", + "DOM_VK_XF86XK_ZOOM_IN", + "DOM_VK_XF86XK_ZOOM_OUT", + "DOM_VK_Y", + "DOM_VK_Z", + "DOM_VK_ZOOM", + "DONE", + "DONT_CARE", + "DOWNLOADING", + "DRAGDROP", + "DRAW_BUFFER0", + "DRAW_BUFFER1", + "DRAW_BUFFER10", + "DRAW_BUFFER11", + "DRAW_BUFFER12", + "DRAW_BUFFER13", + "DRAW_BUFFER14", + "DRAW_BUFFER15", + "DRAW_BUFFER2", + "DRAW_BUFFER3", + "DRAW_BUFFER4", + "DRAW_BUFFER5", + "DRAW_BUFFER6", + "DRAW_BUFFER7", + "DRAW_BUFFER8", + "DRAW_BUFFER9", + "DRAW_FRAMEBUFFER", + "DRAW_FRAMEBUFFER_BINDING", + "DST_ALPHA", + "DST_COLOR", + "DYNAMIC_COPY", + "DYNAMIC_DRAW", + "DYNAMIC_READ", + "DataChannel", + "DataCue", + "DataTransfer", + "DataTransferItem", + "DataTransferItemList", + "DataView", + "Database", + "Date", + "DateTimeFormat", + "Debug", + "DecompressionStream", + "Default Browser Helper", + "DelayNode", + "DesktopNotification", + "DesktopNotificationCenter", + "DeviceAcceleration", + "DeviceLightEvent", + "DeviceMotionEvent", + "DeviceMotionEventAcceleration", + "DeviceMotionEventRotationRate", + "DeviceOrientationEvent", + "DeviceProximityEvent", + "DeviceRotationRate", + "DeviceStorage", + "DeviceStorageChangeEvent", + "Directory", + "DisplayNames", + "Document", + "DocumentFragment", + "DocumentTimeline", + "DocumentType", + "DragEvent", + "DynamicsCompressorNode", + "E", + "ELEMENT_ARRAY_BUFFER", + "ELEMENT_ARRAY_BUFFER_BINDING", + "ELEMENT_NODE", + "EMPTY", + "ENCODING_ERR", + "ENDED", + "END_TO_END", + "END_TO_START", + "ENTITY_NODE", + "ENTITY_REFERENCE_NODE", + "EPSILON", + "EQUAL", + "EQUALPOWER", + "ERROR", + "EXPONENTIAL_DISTANCE", + "EXT_texture_filter_anisotropic", + "Element", + "ElementInternals", + "ElementQuery", + "EnterPictureInPictureEvent", + "Entity", + "EntityReference", + "Enumerator", + "Error", + "ErrorEvent", + "EvalError", + "Event", + "EventException", + "EventSource", + "EventTarget", + "External", + "FASTEST", + "FIDOSDK", + "FILTER_ACCEPT", + "FILTER_INTERRUPT", + "FILTER_REJECT", + "FILTER_SKIP", + "FINISHED_STATE", + "FIRST_ORDERED_NODE_TYPE", + "FLOAT", + "FLOAT_32_UNSIGNED_INT_24_8_REV", + "FLOAT_MAT2", + "FLOAT_MAT2x3", + "FLOAT_MAT2x4", + "FLOAT_MAT3", + "FLOAT_MAT3x2", + "FLOAT_MAT3x4", + "FLOAT_MAT4", + "FLOAT_MAT4x2", + "FLOAT_MAT4x3", + "FLOAT_VEC2", + "FLOAT_VEC3", + "FLOAT_VEC4", + "FOCUS", + "FONT_FACE_RULE", + "FONT_FEATURE_VALUES_RULE", + "FRAGMENT_SHADER", + "FRAGMENT_SHADER_DERIVATIVE_HINT", + "FRAGMENT_SHADER_DERIVATIVE_HINT_OES", + "FRAMEBUFFER", + "FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE", + "FRAMEBUFFER_ATTACHMENT_BLUE_SIZE", + "FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING", + "FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE", + "FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE", + "FRAMEBUFFER_ATTACHMENT_GREEN_SIZE", + "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", + "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", + "FRAMEBUFFER_ATTACHMENT_RED_SIZE", + "FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE", + "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", + "FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER", + "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", + "FRAMEBUFFER_BINDING", + "FRAMEBUFFER_COMPLETE", + "FRAMEBUFFER_DEFAULT", + "FRAMEBUFFER_INCOMPLETE_ATTACHMENT", + "FRAMEBUFFER_INCOMPLETE_DIMENSIONS", + "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", + "FRAMEBUFFER_INCOMPLETE_MULTISAMPLE", + "FRAMEBUFFER_UNSUPPORTED", + "FRONT", + "FRONT_AND_BACK", + "FRONT_FACE", + "FUNC_ADD", + "FUNC_REVERSE_SUBTRACT", + "FUNC_SUBTRACT", + "FeaturePolicy", + "FederatedCredential", + "Feed", + "FeedEntry", + "File", + "FileError", + "FileList", + "FileReader", + "FileSystem", + "FileSystemDirectoryEntry", + "FileSystemDirectoryReader", + "FileSystemEntry", + "FileSystemFileEntry", + "FinalizationRegistry", + "FindInPage", + "Float32Array", + "Float64Array", + "FocusEvent", + "FontFace", + "FontFaceSet", + "FontFaceSetLoadEvent", + "FormData", + "FormDataEvent", + "FragmentDirective", + "Function", + "GENERATE_MIPMAP_HINT", + "GEQUAL", + "GREATER", + "GREEN_BITS", + "GainNode", + "Gamepad", + "GamepadButton", + "GamepadEvent", + "GamepadHapticActuator", + "GamepadPose", + "Geolocation", + "GeolocationCoordinates", + "GeolocationPosition", + "GeolocationPositionError", + "GestureEvent", + "Global", + "Gyroscope", + "HALF_FLOAT", + "HAVE_CURRENT_DATA", + "HAVE_ENOUGH_DATA", + "HAVE_FUTURE_DATA", + "HAVE_METADATA", + "HAVE_NOTHING", + "HEADERS_RECEIVED", + "HIDDEN", + "HIERARCHY_REQUEST_ERR", + "HIGHPASS", + "HIGHSHELF", + "HIGH_FLOAT", + "HIGH_INT", + "HORIZONTAL", + "HORIZONTAL_AXIS", + "HRTF", + "HTMLAllCollection", + "HTMLAnchorElement", + "HTMLAppletElement", + "HTMLAreaElement", + "HTMLAreasCollection", + "HTMLAudioElement", + "HTMLBGSoundElement", + "HTMLBRElement", + "HTMLBaseElement", + "HTMLBaseFontElement", + "HTMLBlockElement", + "HTMLBlockquoteElement", + "HTMLBodyElement", + "HTMLButtonElement", + "HTMLCanvasElement", + "HTMLCollection", + "HTMLCommandElement", + "HTMLContentElement", + "HTMLDDElement", + "HTMLDListElement", + "HTMLDTElement", + "HTMLDataElement", + "HTMLDataListElement", + "HTMLDetailsElement", + "HTMLDialogElement", + "HTMLDirectoryElement", + "HTMLDivElement", + "HTMLDocument", + "HTMLElement", + "HTMLEmbedElement", + "HTMLFieldSetElement", + "HTMLFontElement", + "HTMLFormControlsCollection", + "HTMLFormElement", + "HTMLFrameElement", + "HTMLFrameSetElement", + "HTMLHRElement", + "HTMLHeadElement", + "HTMLHeadingElement", + "HTMLHtmlElement", + "HTMLIFrameElement", + "HTMLImageElement", + "HTMLInputElement", + "HTMLIsIndexElement", + "HTMLKeygenElement", + "HTMLLIElement", + "HTMLLabelElement", + "HTMLLegendElement", + "HTMLLinkElement", + "HTMLMapElement", + "HTMLMarqueeElement", + "HTMLMediaElement", + "HTMLMenuElement", + "HTMLMenuItemElement", + "HTMLMetaElement", + "HTMLMeterElement", + "HTMLModElement", + "HTMLNextIdElement", + "HTMLOListElement", + "HTMLObjectElement", + "HTMLOptGroupElement", + "HTMLOptionElement", + "HTMLOptionsCollection", + "HTMLOutputElement", + "HTMLParagraphElement", + "HTMLParamElement", + "HTMLPhraseElement", + "HTMLPictureElement", + "HTMLPreElement", + "HTMLProgressElement", + "HTMLPropertiesCollection", + "HTMLQuoteElement", + "HTMLScriptElement", + "HTMLSelectElement", + "HTMLShadowElement", + "HTMLSlotElement", + "HTMLSourceElement", + "HTMLSpanElement", + "HTMLStyleElement", + "HTMLTableCaptionElement", + "HTMLTableCellElement", + "HTMLTableColElement", + "HTMLTableDataCellElement", + "HTMLTableElement", + "HTMLTableHeaderCellElement", + "HTMLTableRowElement", + "HTMLTableSectionElement", + "HTMLTemplateElement", + "HTMLTextAreaElement", + "HTMLTimeElement", + "HTMLTitleElement", + "HTMLTrackElement", + "HTMLUListElement", + "HTMLUnknownElement", + "HTMLVideoElement", + "HashChangeEvent", + "Headers", + "History", + "Hz", + "ICE_CHECKING", + "ICE_CLOSED", + "ICE_COMPLETED", + "ICE_CONNECTED", + "ICE_FAILED", + "ICE_GATHERING", + "ICE_WAITING", + "IDBCursor", + "IDBCursorWithValue", + "IDBDatabase", + "IDBDatabaseException", + "IDBFactory", + "IDBFileHandle", + "IDBFileRequest", + "IDBIndex", + "IDBKeyRange", + "IDBMutableFile", + "IDBObjectStore", + "IDBOpenDBRequest", + "IDBRequest", + "IDBTransaction", + "IDBVersionChangeEvent", + "IDLE", + "IIRFilterNode", + "IMPLEMENTATION_COLOR_READ_FORMAT", + "IMPLEMENTATION_COLOR_READ_TYPE", + "IMPORT_RULE", + "INCR", + "INCR_WRAP", + "INDEX_SIZE_ERR", + "INSTALL", + "INSTALLED", + "INT", + "INTERLEAVED_ATTRIBS", + "INT_2_10_10_10_REV", + "INT_SAMPLER_2D", + "INT_SAMPLER_2D_ARRAY", + "INT_SAMPLER_3D", + "INT_SAMPLER_CUBE", + "INT_VEC2", + "INT_VEC3", + "INT_VEC4", + "INUSE_ATTRIBUTE_ERR", + "INVALID_ACCESS_ERR", + "INVALID_CHARACTER_ERR", + "INVALID_ENUM", + "INVALID_EXPRESSION_ERR", + "INVALID_FRAMEBUFFER_OPERATION", + "INVALID_INDEX", + "INVALID_MODIFICATION_ERR", + "INVALID_NODE_TYPE_ERR", + "INVALID_OPERATION", + "INVALID_STATE_ERR", + "INVALID_VALUE", + "INVERSE_DISTANCE", + "INVERT", + "IceCandidate", + "IdleDeadline", + "Image", + "ImageBitmap", + "ImageBitmapRenderingContext", + "ImageCapture", + "ImageData", + "Infinity", + "InputDeviceCapabilities", + "InputDeviceInfo", + "InputEvent", + "InputMethodContext", + "InstallState", + "InstallTrigger", + "Instance", + "Int16Array", + "Int32Array", + "Int8Array", + "Intent", + "InternalError", + "IntersectionObserver", + "IntersectionObserverEntry", + "Intl", + "IsSearchProviderInstalled", + "Iterator", + "JSON", + "Java Deployment Toolkit 7.0.250.17", + "Java(TM) Platform SE 7 U25", + "KEEP", + "KEYDOWN", + "KEYFRAMES_RULE", + "KEYFRAME_RULE", + "KEYPRESS", + "KEYUP", + "Key", + "KeyEvent", + "KeyOperation", + "KeyPair", + "Keyboard", + "KeyboardEvent", + "KeyboardLayoutMap", + "KeyframeEffect", + "LENGTHADJUST_SPACING", + "LENGTHADJUST_SPACINGANDGLYPHS", + "LENGTHADJUST_UNKNOWN", + "LEQUAL", + "LESS", + "LINEAR", + "LINEAR_DISTANCE", + "LINEAR_MIPMAP_LINEAR", + "LINEAR_MIPMAP_NEAREST", + "LINES", + "LINE_LOOP", + "LINE_STRIP", + "LINE_WIDTH", + "LINK_STATUS", + "LINUX", + "LIVE", + "LN10", + "LN2", + "LOADED", + "LOADING", + "LOCALE", + "LOG10E", + "LOG2E", + "LOWPASS", + "LOWSHELF", + "LOW_FLOAT", + "LOW_INT", + "LSException", + "LSParserFilter", + "LUMINANCE", + "LUMINANCE_ALPHA", + "LargestContentfulPaint", + "LayoutShift", + "LayoutShiftAttribution", + "LinearAccelerationSensor", + "LinkError", + "ListFormat", + "LocalMediaStream", + "Locale", + "Location", + "Lock", + "LockManager", + "MAC", + "MAX", + "MAX_3D_TEXTURE_SIZE", + "MAX_ARRAY_TEXTURE_LAYERS", + "MAX_CLIENT_WAIT_TIMEOUT_WEBGL", + "MAX_COLOR_ATTACHMENTS", + "MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS", + "MAX_COMBINED_TEXTURE_IMAGE_UNITS", + "MAX_COMBINED_UNIFORM_BLOCKS", + "MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS", + "MAX_CUBE_MAP_TEXTURE_SIZE", + "MAX_DRAW_BUFFERS", + "MAX_ELEMENTS_INDICES", + "MAX_ELEMENTS_VERTICES", + "MAX_ELEMENT_INDEX", + "MAX_FRAGMENT_INPUT_COMPONENTS", + "MAX_FRAGMENT_UNIFORM_BLOCKS", + "MAX_FRAGMENT_UNIFORM_COMPONENTS", + "MAX_FRAGMENT_UNIFORM_VECTORS", + "MAX_PROGRAM_TEXEL_OFFSET", + "MAX_RENDERBUFFER_SIZE", + "MAX_SAFE_INTEGER", + "MAX_SAMPLES", + "MAX_SERVER_WAIT_TIMEOUT", + "MAX_TEXTURE_IMAGE_UNITS", + "MAX_TEXTURE_LOD_BIAS", + "MAX_TEXTURE_MAX_ANISOTROPY_EXT", + "MAX_TEXTURE_SIZE", + "MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS", + "MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS", + "MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS", + "MAX_UNIFORM_BLOCK_SIZE", + "MAX_UNIFORM_BUFFER_BINDINGS", + "MAX_VALUE", + "MAX_VARYING_COMPONENTS", + "MAX_VARYING_VECTORS", + "MAX_VERTEX_ATTRIBS", + "MAX_VERTEX_OUTPUT_COMPONENTS", + "MAX_VERTEX_TEXTURE_IMAGE_UNITS", + "MAX_VERTEX_UNIFORM_BLOCKS", + "MAX_VERTEX_UNIFORM_COMPONENTS", + "MAX_VERTEX_UNIFORM_VECTORS", + "MAX_VIEWPORT_DIMS", + "MEDIA_ERR_ABORTED", + "MEDIA_ERR_DECODE", + "MEDIA_ERR_ENCRYPTED", + "MEDIA_ERR_NETWORK", + "MEDIA_ERR_SRC_NOT_SUPPORTED", + "MEDIA_KEYERR_CLIENT", + "MEDIA_KEYERR_DOMAIN", + "MEDIA_KEYERR_HARDWARECHANGE", + "MEDIA_KEYERR_OUTPUT", + "MEDIA_KEYERR_SERVICE", + "MEDIA_KEYERR_UNKNOWN", + "MEDIA_RULE", + "MEDIUM_FLOAT", + "MEDIUM_INT", + "META_MASK", + "MIDIAccess", + "MIDIConnectionEvent", + "MIDIInput", + "MIDIInputMap", + "MIDIMessageEvent", + "MIDIOutput", + "MIDIOutputMap", + "MIDIPort", + "MIN", + "MIN_PROGRAM_TEXEL_OFFSET", + "MIN_SAFE_INTEGER", + "MIN_VALUE", + "MIRRORED_REPEAT", + "MODE_ASYNCHRONOUS", + "MODE_SYNCHRONOUS", + "MODIFICATION", + "MOUSEDOWN", + "MOUSEDRAG", + "MOUSEMOVE", + "MOUSEOUT", + "MOUSEOVER", + "MOUSEUP", + "MOZ_KEYFRAMES_RULE", + "MOZ_KEYFRAME_RULE", + "MOZ_SOURCE_CURSOR", + "MOZ_SOURCE_ERASER", + "MOZ_SOURCE_KEYBOARD", + "MOZ_SOURCE_MOUSE", + "MOZ_SOURCE_PEN", + "MOZ_SOURCE_TOUCH", + "MOZ_SOURCE_UNKNOWN", + "MSBehaviorUrnsCollection", + "MSBlobBuilder", + "MSCSSMatrix", + "MSCSSProperties", + "MSCSSRuleList", + "MSCompatibleInfo", + "MSCompatibleInfoCollection", + "MSCurrentStyleCSSProperties", + "MSEventObj", + "MSGESTURE_FLAG_BEGIN", + "MSGESTURE_FLAG_CANCEL", + "MSGESTURE_FLAG_END", + "MSGESTURE_FLAG_INERTIA", + "MSGESTURE_FLAG_NONE", + "MSGesture", + "MSGestureEvent", + "MSGraphicsTrust", + "MSInputMethodContext", + "MSManipulationEvent", + "MSMediaKeyError", + "MSMediaKeyMessageEvent", + "MSMediaKeyNeededEvent", + "MSMediaKeySession", + "MSMediaKeys", + "MSMimeTypesCollection", + "MSPOINTER_TYPE_MOUSE", + "MSPOINTER_TYPE_PEN", + "MSPOINTER_TYPE_TOUCH", + "MSPluginsCollection", + "MSPointerEvent", + "MSRangeCollection", + "MSSiteModeEvent", + "MSStream", + "MSStreamReader", + "MSStyleCSSProperties", + "MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE", + "MS_ASYNC_CALLBACK_STATUS_CANCEL", + "MS_ASYNC_CALLBACK_STATUS_CHOOSEANY", + "MS_ASYNC_CALLBACK_STATUS_ERROR", + "MS_ASYNC_CALLBACK_STATUS_JOIN", + "MS_ASYNC_OP_STATUS_CANCELED", + "MS_ASYNC_OP_STATUS_ERROR", + "MS_ASYNC_OP_STATUS_SUCCESS", + "MS_MANIPULATION_STATE_ACTIVE", + "MS_MANIPULATION_STATE_CANCELLED", + "MS_MANIPULATION_STATE_COMMITTED", + "MS_MANIPULATION_STATE_DRAGGING", + "MS_MANIPULATION_STATE_INERTIA", + "MS_MANIPULATION_STATE_PRESELECT", + "MS_MANIPULATION_STATE_SELECTING", + "MS_MANIPULATION_STATE_STOPPED", + "MS_MEDIA_ERR_ENCRYPTED", + "MS_MEDIA_KEYERR_CLIENT", + "MS_MEDIA_KEYERR_DOMAIN", + "MS_MEDIA_KEYERR_HARDWARECHANGE", + "MS_MEDIA_KEYERR_OUTPUT", + "MS_MEDIA_KEYERR_SERVICE", + "MS_MEDIA_KEYERR_UNKNOWN", + "Map", + "Math", + "MathMLElement", + "MediaCapabilities", + "MediaCapabilitiesInfo", + "MediaController", + "MediaDeviceInfo", + "MediaDevices", + "MediaElementAudioSourceNode", + "MediaEncryptedEvent", + "MediaError", + "MediaKeyError", + "MediaKeyEvent", + "MediaKeyMessageEvent", + "MediaKeyNeededEvent", + "MediaKeySession", + "MediaKeyStatusMap", + "MediaKeySystemAccess", + "MediaKeys", + "MediaList", + "MediaMetadata", + "MediaQueryList", + "MediaQueryListEvent", + "MediaRecorder", + "MediaRecorderErrorEvent", + "MediaSession", + "MediaSettingsRange", + "MediaSource", + "MediaStream", + "MediaStreamAudioDestinationNode", + "MediaStreamAudioSourceNode", + "MediaStreamEvent", + "MediaStreamTrack", + "MediaStreamTrackAudioSourceNode", + "MediaStreamTrackEvent", + "Memory", + "MessageChannel", + "MessageEvent", + "MessagePort", + "Methods", + "Microsoft® DRM", + "MimeType", + "MimeTypeArray", + "Module", + "MouseEvent", + "MouseScrollEvent", + "MouseWheelEvent", + "MozAnimation", + "MozAnimationDelay", + "MozAnimationDirection", + "MozAnimationDuration", + "MozAnimationFillMode", + "MozAnimationIterationCount", + "MozAnimationName", + "MozAnimationPlayState", + "MozAnimationTimingFunction", + "MozAppearance", + "MozBackfaceVisibility", + "MozBinding", + "MozBorderBottomColors", + "MozBorderEnd", + "MozBorderEndColor", + "MozBorderEndStyle", + "MozBorderEndWidth", + "MozBorderImage", + "MozBorderLeftColors", + "MozBorderRightColors", + "MozBorderStart", + "MozBorderStartColor", + "MozBorderStartStyle", + "MozBorderStartWidth", + "MozBorderTopColors", + "MozBoxAlign", + "MozBoxDirection", + "MozBoxFlex", + "MozBoxOrdinalGroup", + "MozBoxOrient", + "MozBoxPack", + "MozBoxSizing", + "MozCSSKeyframeRule", + "MozCSSKeyframesRule", + "MozColumnCount", + "MozColumnFill", + "MozColumnGap", + "MozColumnRule", + "MozColumnRuleColor", + "MozColumnRuleStyle", + "MozColumnRuleWidth", + "MozColumnWidth", + "MozColumns", + "MozContactChangeEvent", + "MozFloatEdge", + "MozFontFeatureSettings", + "MozFontLanguageOverride", + "MozForceBrokenImageIcon", + "MozHyphens", + "MozImageRegion", + "MozMarginEnd", + "MozMarginStart", + "MozMmsEvent", + "MozMmsMessage", + "MozMobileMessageThread", + "MozOSXFontSmoothing", + "MozOrient", + "MozOutlineRadius", + "MozOutlineRadiusBottomleft", + "MozOutlineRadiusBottomright", + "MozOutlineRadiusTopleft", + "MozOutlineRadiusTopright", + "MozPaddingEnd", + "MozPaddingStart", + "MozPerspective", + "MozPerspectiveOrigin", + "MozPowerManager", + "MozSettingsEvent", + "MozSmsEvent", + "MozSmsMessage", + "MozStackSizing", + "MozTabSize", + "MozTextAlignLast", + "MozTextDecorationColor", + "MozTextDecorationLine", + "MozTextDecorationStyle", + "MozTextSizeAdjust", + "MozTransform", + "MozTransformOrigin", + "MozTransformStyle", + "MozTransition", + "MozTransitionDelay", + "MozTransitionDuration", + "MozTransitionProperty", + "MozTransitionTimingFunction", + "MozUserFocus", + "MozUserInput", + "MozUserModify", + "MozUserSelect", + "MozWindowDragging", + "MozWindowShadow", + "MutationEvent", + "MutationObserver", + "MutationRecord", + "NAMESPACE_ERR", + "NAMESPACE_RULE", + "NEAREST", + "NEAREST_MIPMAP_LINEAR", + "NEAREST_MIPMAP_NEAREST", + "NEGATIVE_INFINITY", + "NETWORK_EMPTY", + "NETWORK_ERR", + "NETWORK_IDLE", + "NETWORK_LOADED", + "NETWORK_LOADING", + "NETWORK_NO_SOURCE", + "NEVER", + "NEW", + "NEXT", + "NEXT_NO_DUPLICATE", + "NICEST", + "NODE_AFTER", + "NODE_BEFORE", + "NODE_BEFORE_AND_AFTER", + "NODE_INSIDE", + "NONE", + "NON_TRANSIENT_ERR", + "NOTATION_NODE", + "NOTCH", + "NOTEQUAL", + "NOT_ALLOWED_ERR", + "NOT_FOUND_ERR", + "NOT_INSTALLED", + "NOT_READABLE_ERR", + "NOT_SUPPORTED_ERR", + "NO_DATA_ALLOWED_ERR", + "NO_ERR", + "NO_ERROR", + "NO_MODIFICATION_ALLOWED_ERR", + "NO_UPDATE", + "NUMBER_TYPE", + "NUM_COMPRESSED_TEXTURE_FORMATS", + "NaN", + "NamedNodeMap", + "Native Client", + "NavigationPreloadManager", + "Navigator", + "NearbyLinks", + "NetworkInformation", + "Node", + "NodeFilter", + "NodeIterator", + "NodeList", + "Notation", + "Notification", + "NotifyPaintEvent", + "Number", + "NumberFormat", + "OBJECT_TYPE", + "OBSOLETE", + "OES_element_index_uint", + "OES_standard_derivatives", + "OES_texture_float", + "OES_texture_float_linear", + "OK", + "ONE", + "ONE_MINUS_CONSTANT_ALPHA", + "ONE_MINUS_CONSTANT_COLOR", + "ONE_MINUS_DST_ALPHA", + "ONE_MINUS_DST_COLOR", + "ONE_MINUS_SRC_ALPHA", + "ONE_MINUS_SRC_COLOR", + "OPEN", + "OPENBSD", + "OPENED", + "OPENING", + "ORDERED_NODE_ITERATOR_TYPE", + "ORDERED_NODE_SNAPSHOT_TYPE", + "OS_UPDATE", + "OTHER_ERROR", + "OUT_OF_MEMORY", + "Object", + "OfflineAudioCompletionEvent", + "OfflineAudioContext", + "OfflineResourceList", + "OffscreenCanvas", + "OffscreenCanvasRenderingContext2D", + "OnInstalledReason", + "OnRestartRequiredReason", + "Option", + "OrientationSensor", + "OscillatorNode", + "OverconstrainedError", + "OverconstrainedErrorEvent", + "OverflowEvent", + "PACKAGE", + "PACK_ALIGNMENT", + "PACK_ROW_LENGTH", + "PACK_SKIP_PIXELS", + "PACK_SKIP_ROWS", + "PAGE_RULE", + "PARSE_ERR", + "PATHSEG_ARC_ABS", + "PATHSEG_ARC_REL", + "PATHSEG_CLOSEPATH", + "PATHSEG_CURVETO_CUBIC_ABS", + "PATHSEG_CURVETO_CUBIC_REL", + "PATHSEG_CURVETO_CUBIC_SMOOTH_ABS", + "PATHSEG_CURVETO_CUBIC_SMOOTH_REL", + "PATHSEG_CURVETO_QUADRATIC_ABS", + "PATHSEG_CURVETO_QUADRATIC_REL", + "PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS", + "PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL", + "PATHSEG_LINETO_ABS", + "PATHSEG_LINETO_HORIZONTAL_ABS", + "PATHSEG_LINETO_HORIZONTAL_REL", + "PATHSEG_LINETO_REL", + "PATHSEG_LINETO_VERTICAL_ABS", + "PATHSEG_LINETO_VERTICAL_REL", + "PATHSEG_MOVETO_ABS", + "PATHSEG_MOVETO_REL", + "PATHSEG_UNKNOWN", + "PATH_EXISTS_ERR", + "PEAKING", + "PERIODIC", + "PERMISSION_DENIED", + "PERSISTENT", + "PI", + "PIXEL_PACK_BUFFER", + "PIXEL_PACK_BUFFER_BINDING", + "PIXEL_UNPACK_BUFFER", + "PIXEL_UNPACK_BUFFER_BINDING", + "PLAYING_STATE", + "POINTS", + "POLYGON_OFFSET_FACTOR", + "POLYGON_OFFSET_FILL", + "POLYGON_OFFSET_UNITS", + "POSITION_UNAVAILABLE", + "POSITIVE_INFINITY", + "PREV", + "PREV_NO_DUPLICATE", + "PROCESSING_INSTRUCTION_NODE", + "PageChangeEvent", + "PageTransitionEvent", + "PaintRequest", + "PaintRequestList", + "PannerNode", + "PasswordCredential", + "Path2D", + "PaymentAddress", + "PaymentInstruments", + "PaymentManager", + "PaymentMethodChangeEvent", + "PaymentRequest", + "PaymentRequestUpdateEvent", + "PaymentResponse", + "Performance", + "PerformanceElementTiming", + "PerformanceEntry", + "PerformanceEventTiming", + "PerformanceLongTaskTiming", + "PerformanceMark", + "PerformanceMeasure", + "PerformanceNavigation", + "PerformanceNavigationTiming", + "PerformanceObserver", + "PerformanceObserverEntryList", + "PerformancePaintTiming", + "PerformanceResourceTiming", + "PerformanceServerTiming", + "PerformanceTiming", + "PeriodicSyncManager", + "PeriodicWave", + "PermissionStatus", + "Permissions", + "PhotoCapabilities", + "PictureInPictureWindow", + "PlatformArch", + "PlatformNaclArch", + "PlatformOs", + "Plugin", + "PluginArray", + "PluralRules", + "PointerEvent", + "PopStateEvent", + "PopupBlockedEvent", + "Position", + "PositionError", + "Presentation", + "PresentationAvailability", + "PresentationConnection", + "PresentationConnectionAvailableEvent", + "PresentationConnectionCloseEvent", + "PresentationConnectionList", + "PresentationReceiver", + "PresentationRequest", + "ProcessingInstruction", + "ProgressEvent", + "Promise", + "PromiseRejectionEvent", + "PropertyNodeList", + "Proxy", + "PublicKeyCredential", + "PushManager", + "PushSubscription", + "PushSubscriptionOptions", + "Q", + "QUERY_RESULT", + "QUERY_RESULT_AVAILABLE", + "QUOTA_ERR", + "QUOTA_EXCEEDED_ERR", + "QueryInterface", + "R11F_G11F_B10F", + "R16F", + "R16I", + "R16UI", + "R32F", + "R32I", + "R32UI", + "R8", + "R8I", + "R8UI", + "R8_SNORM", + "RASTERIZER_DISCARD", + "READY_TO_RUN", + "READ_BUFFER", + "READ_FRAMEBUFFER", + "READ_FRAMEBUFFER_BINDING", + "READ_ONLY", + "READ_ONLY_ERR", + "READ_WRITE", + "RED", + "RED_BITS", + "RED_INTEGER", + "REMOVAL", + "RENDERBUFFER", + "RENDERBUFFER_ALPHA_SIZE", + "RENDERBUFFER_BINDING", + "RENDERBUFFER_BLUE_SIZE", + "RENDERBUFFER_DEPTH_SIZE", + "RENDERBUFFER_GREEN_SIZE", + "RENDERBUFFER_HEIGHT", + "RENDERBUFFER_INTERNAL_FORMAT", + "RENDERBUFFER_RED_SIZE", + "RENDERBUFFER_SAMPLES", + "RENDERBUFFER_STENCIL_SIZE", + "RENDERBUFFER_WIDTH", + "RENDERER", + "RENDERING_INTENT_ABSOLUTE_COLORIMETRIC", + "RENDERING_INTENT_AUTO", + "RENDERING_INTENT_PERCEPTUAL", + "RENDERING_INTENT_RELATIVE_COLORIMETRIC", + "RENDERING_INTENT_SATURATION", + "RENDERING_INTENT_UNKNOWN", + "REPEAT", + "REPLACE", + "RG", + "RG16F", + "RG16I", + "RG16UI", + "RG32F", + "RG32I", + "RG32UI", + "RG8", + "RG8I", + "RG8UI", + "RG8_SNORM", + "RGB", + "RGB10_A2", + "RGB10_A2UI", + "RGB16F", + "RGB16I", + "RGB16UI", + "RGB32F", + "RGB32I", + "RGB32UI", + "RGB565", + "RGB5_A1", + "RGB8", + "RGB8I", + "RGB8UI", + "RGB8_SNORM", + "RGB9_E5", + "RGBA", + "RGBA16F", + "RGBA16I", + "RGBA16UI", + "RGBA32F", + "RGBA32I", + "RGBA32UI", + "RGBA4", + "RGBA8", + "RGBA8I", + "RGBA8UI", + "RGBA8_SNORM", + "RGBA_INTEGER", + "RGBColor", + "RGB_INTEGER", + "RG_INTEGER", + "ROTATION_CLOCKWISE", + "ROTATION_COUNTERCLOCKWISE", + "RTCCertificate", + "RTCDTMFSender", + "RTCDTMFToneChangeEvent", + "RTCDataChannel", + "RTCDataChannelEvent", + "RTCDtlsTransport", + "RTCError", + "RTCErrorEvent", + "RTCIceCandidate", + "RTCIceTransport", + "RTCPeerConnection", + "RTCPeerConnectionIceErrorEvent", + "RTCPeerConnectionIceEvent", + "RTCRtpReceiver", + "RTCRtpSender", + "RTCRtpTransceiver", + "RTCSctpTransport", + "RTCSessionDescription", + "RTCStatsReport", + "RTCTrackEvent", + "RUNNING", + "RadioNodeList", + "Range", + "RangeError", + "RangeException", + "ReadableByteStream", + "ReadableStream", + "ReadableStreamDefaultReader", + "RecordErrorEvent", + "Rect", + "ReferenceError", + "Reflect", + "RegExp", + "RelativeOrientationSensor", + "RelativeTimeFormat", + "RemotePlayback", + "ReportingObserver", + "Request", + "RequestUpdateCheckStatus", + "ResizeObserver", + "ResizeObserverEntry", + "ResizeObserverSize", + "Response", + "RunningState", + "RuntimeError", + "SAMPLER_2D", + "SAMPLER_2D_ARRAY", + "SAMPLER_2D_ARRAY_SHADOW", + "SAMPLER_2D_SHADOW", + "SAMPLER_3D", + "SAMPLER_BINDING", + "SAMPLER_CUBE", + "SAMPLER_CUBE_SHADOW", + "SAMPLES", + "SAMPLE_ALPHA_TO_COVERAGE", + "SAMPLE_BUFFERS", + "SAMPLE_COVERAGE", + "SAMPLE_COVERAGE_INVERT", + "SAMPLE_COVERAGE_VALUE", + "SAWTOOTH", + "SCHEDULED_STATE", + "SCISSOR_BOX", + "SCISSOR_TEST", + "SCROLL_PAGE_DOWN", + "SCROLL_PAGE_UP", + "SDP_ANSWER", + "SDP_OFFER", + "SDP_PRANSWER", + "SECURITY_ERR", + "SELECT", + "SEPARATE_ATTRIBS", + "SERIALIZE_ERR", + "SEVERITY_ERROR", + "SEVERITY_FATAL_ERROR", + "SEVERITY_WARNING", + "SHADER_COMPILER", + "SHADER_TYPE", + "SHADING_LANGUAGE_VERSION", + "SHARED_MODULE_UPDATE", + "SHIFT_MASK", + "SHORT", + "SHOWING", + "SHOW_ALL", + "SHOW_ATTRIBUTE", + "SHOW_CDATA_SECTION", + "SHOW_COMMENT", + "SHOW_DOCUMENT", + "SHOW_DOCUMENT_FRAGMENT", + "SHOW_DOCUMENT_TYPE", + "SHOW_ELEMENT", + "SHOW_ENTITY", + "SHOW_ENTITY_REFERENCE", + "SHOW_NOTATION", + "SHOW_PROCESSING_INSTRUCTION", + "SHOW_TEXT", + "SIGNALED", + "SIGNED_NORMALIZED", + "SINE", + "SKIN", + "SOUNDFIELD", + "SQLError", + "SQLException", + "SQLResultSet", + "SQLResultSetRowList", + "SQLTransaction", + "SQRT1_2", + "SQRT2", + "SQUARE", + "SRC_ALPHA", + "SRC_ALPHA_SATURATE", + "SRC_COLOR", + "SRGB", + "SRGB8", + "SRGB8_ALPHA8", + "START_TO_END", + "START_TO_START", + "STATIC_COPY", + "STATIC_DRAW", + "STATIC_READ", + "STENCIL", + "STENCIL_ATTACHMENT", + "STENCIL_BACK_FAIL", + "STENCIL_BACK_FUNC", + "STENCIL_BACK_PASS_DEPTH_FAIL", + "STENCIL_BACK_PASS_DEPTH_PASS", + "STENCIL_BACK_REF", + "STENCIL_BACK_VALUE_MASK", + "STENCIL_BACK_WRITEMASK", + "STENCIL_BITS", + "STENCIL_BUFFER_BIT", + "STENCIL_CLEAR_VALUE", + "STENCIL_FAIL", + "STENCIL_FUNC", + "STENCIL_INDEX", + "STENCIL_INDEX8", + "STENCIL_PASS_DEPTH_FAIL", + "STENCIL_PASS_DEPTH_PASS", + "STENCIL_REF", + "STENCIL_TEST", + "STENCIL_VALUE_MASK", + "STENCIL_WRITEMASK", + "STREAM_COPY", + "STREAM_DRAW", + "STREAM_READ", + "STRING_TYPE", + "STYLE_RULE", + "SUBPIXEL_BITS", + "SUPPORTS_RULE", + "SVGAElement", + "SVGAltGlyphDefElement", + "SVGAltGlyphElement", + "SVGAltGlyphItemElement", + "SVGAngle", + "SVGAnimateColorElement", + "SVGAnimateElement", + "SVGAnimateMotionElement", + "SVGAnimateTransformElement", + "SVGAnimatedAngle", + "SVGAnimatedBoolean", + "SVGAnimatedEnumeration", + "SVGAnimatedInteger", + "SVGAnimatedLength", + "SVGAnimatedLengthList", + "SVGAnimatedNumber", + "SVGAnimatedNumberList", + "SVGAnimatedPreserveAspectRatio", + "SVGAnimatedRect", + "SVGAnimatedString", + "SVGAnimatedTransformList", + "SVGAnimationElement", + "SVGCircleElement", + "SVGClipPathElement", + "SVGColor", + "SVGComponentTransferFunctionElement", + "SVGCursorElement", + "SVGDefsElement", + "SVGDescElement", + "SVGDiscardElement", + "SVGDocument", + "SVGElement", + "SVGElementInstance", + "SVGElementInstanceList", + "SVGEllipseElement", + "SVGException", + "SVGFEBlendElement", + "SVGFEColorMatrixElement", + "SVGFEComponentTransferElement", + "SVGFECompositeElement", + "SVGFEConvolveMatrixElement", + "SVGFEDiffuseLightingElement", + "SVGFEDisplacementMapElement", + "SVGFEDistantLightElement", + "SVGFEDropShadowElement", + "SVGFEFloodElement", + "SVGFEFuncAElement", + "SVGFEFuncBElement", + "SVGFEFuncGElement", + "SVGFEFuncRElement", + "SVGFEGaussianBlurElement", + "SVGFEImageElement", + "SVGFEMergeElement", + "SVGFEMergeNodeElement", + "SVGFEMorphologyElement", + "SVGFEOffsetElement", + "SVGFEPointLightElement", + "SVGFESpecularLightingElement", + "SVGFESpotLightElement", + "SVGFETileElement", + "SVGFETurbulenceElement", + "SVGFilterElement", + "SVGFontElement", + "SVGFontFaceElement", + "SVGFontFaceFormatElement", + "SVGFontFaceNameElement", + "SVGFontFaceSrcElement", + "SVGFontFaceUriElement", + "SVGForeignObjectElement", + "SVGGElement", + "SVGGeometryElement", + "SVGGlyphElement", + "SVGGlyphRefElement", + "SVGGradientElement", + "SVGGraphicsElement", + "SVGHKernElement", + "SVGImageElement", + "SVGLength", + "SVGLengthList", + "SVGLineElement", + "SVGLinearGradientElement", + "SVGMPathElement", + "SVGMarkerElement", + "SVGMaskElement", + "SVGMatrix", + "SVGMetadataElement", + "SVGMissingGlyphElement", + "SVGNumber", + "SVGNumberList", + "SVGPaint", + "SVGPathElement", + "SVGPathSeg", + "SVGPathSegArcAbs", + "SVGPathSegArcRel", + "SVGPathSegClosePath", + "SVGPathSegCurvetoCubicAbs", + "SVGPathSegCurvetoCubicRel", + "SVGPathSegCurvetoCubicSmoothAbs", + "SVGPathSegCurvetoCubicSmoothRel", + "SVGPathSegCurvetoQuadraticAbs", + "SVGPathSegCurvetoQuadraticRel", + "SVGPathSegCurvetoQuadraticSmoothAbs", + "SVGPathSegCurvetoQuadraticSmoothRel", + "SVGPathSegLinetoAbs", + "SVGPathSegLinetoHorizontalAbs", + "SVGPathSegLinetoHorizontalRel", + "SVGPathSegLinetoRel", + "SVGPathSegLinetoVerticalAbs", + "SVGPathSegLinetoVerticalRel", + "SVGPathSegList", + "SVGPathSegMovetoAbs", + "SVGPathSegMovetoRel", + "SVGPatternElement", + "SVGPoint", + "SVGPointList", + "SVGPolygonElement", + "SVGPolylineElement", + "SVGPreserveAspectRatio", + "SVGRadialGradientElement", + "SVGRect", + "SVGRectElement", + "SVGRenderingIntent", + "SVGSVGElement", + "SVGScriptElement", + "SVGSetElement", + "SVGStopElement", + "SVGStringList", + "SVGStyleElement", + "SVGSwitchElement", + "SVGSymbolElement", + "SVGTRefElement", + "SVGTSpanElement", + "SVGTextContentElement", + "SVGTextElement", + "SVGTextPathElement", + "SVGTextPositioningElement", + "SVGTitleElement", + "SVGTransform", + "SVGTransformList", + "SVGUnitTypes", + "SVGUseElement", + "SVGVKernElement", + "SVGViewElement", + "SVGViewSpec", + "SVGZoomAndPan", + "SVGZoomEvent", + "SVG_ANGLETYPE_DEG", + "SVG_ANGLETYPE_GRAD", + "SVG_ANGLETYPE_RAD", + "SVG_ANGLETYPE_UNKNOWN", + "SVG_ANGLETYPE_UNSPECIFIED", + "SVG_CHANNEL_A", + "SVG_CHANNEL_B", + "SVG_CHANNEL_G", + "SVG_CHANNEL_R", + "SVG_CHANNEL_UNKNOWN", + "SVG_COLORTYPE_CURRENTCOLOR", + "SVG_COLORTYPE_RGBCOLOR", + "SVG_COLORTYPE_RGBCOLOR_ICCCOLOR", + "SVG_COLORTYPE_UNKNOWN", + "SVG_EDGEMODE_DUPLICATE", + "SVG_EDGEMODE_NONE", + "SVG_EDGEMODE_UNKNOWN", + "SVG_EDGEMODE_WRAP", + "SVG_FEBLEND_MODE_COLOR", + "SVG_FEBLEND_MODE_COLOR_BURN", + "SVG_FEBLEND_MODE_COLOR_DODGE", + "SVG_FEBLEND_MODE_DARKEN", + "SVG_FEBLEND_MODE_DIFFERENCE", + "SVG_FEBLEND_MODE_EXCLUSION", + "SVG_FEBLEND_MODE_HARD_LIGHT", + "SVG_FEBLEND_MODE_HUE", + "SVG_FEBLEND_MODE_LIGHTEN", + "SVG_FEBLEND_MODE_LUMINOSITY", + "SVG_FEBLEND_MODE_MULTIPLY", + "SVG_FEBLEND_MODE_NORMAL", + "SVG_FEBLEND_MODE_OVERLAY", + "SVG_FEBLEND_MODE_SATURATION", + "SVG_FEBLEND_MODE_SCREEN", + "SVG_FEBLEND_MODE_SOFT_LIGHT", + "SVG_FEBLEND_MODE_UNKNOWN", + "SVG_FECOLORMATRIX_TYPE_HUEROTATE", + "SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA", + "SVG_FECOLORMATRIX_TYPE_MATRIX", + "SVG_FECOLORMATRIX_TYPE_SATURATE", + "SVG_FECOLORMATRIX_TYPE_UNKNOWN", + "SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE", + "SVG_FECOMPONENTTRANSFER_TYPE_GAMMA", + "SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY", + "SVG_FECOMPONENTTRANSFER_TYPE_LINEAR", + "SVG_FECOMPONENTTRANSFER_TYPE_TABLE", + "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN", + "SVG_FECOMPOSITE_OPERATOR_ARITHMETIC", + "SVG_FECOMPOSITE_OPERATOR_ATOP", + "SVG_FECOMPOSITE_OPERATOR_IN", + "SVG_FECOMPOSITE_OPERATOR_OUT", + "SVG_FECOMPOSITE_OPERATOR_OVER", + "SVG_FECOMPOSITE_OPERATOR_UNKNOWN", + "SVG_FECOMPOSITE_OPERATOR_XOR", + "SVG_INVALID_VALUE_ERR", + "SVG_LENGTHTYPE_CM", + "SVG_LENGTHTYPE_EMS", + "SVG_LENGTHTYPE_EXS", + "SVG_LENGTHTYPE_IN", + "SVG_LENGTHTYPE_MM", + "SVG_LENGTHTYPE_NUMBER", + "SVG_LENGTHTYPE_PC", + "SVG_LENGTHTYPE_PERCENTAGE", + "SVG_LENGTHTYPE_PT", + "SVG_LENGTHTYPE_PX", + "SVG_LENGTHTYPE_UNKNOWN", + "SVG_MARKERUNITS_STROKEWIDTH", + "SVG_MARKERUNITS_UNKNOWN", + "SVG_MARKERUNITS_USERSPACEONUSE", + "SVG_MARKER_ORIENT_ANGLE", + "SVG_MARKER_ORIENT_AUTO", + "SVG_MARKER_ORIENT_UNKNOWN", + "SVG_MASKTYPE_ALPHA", + "SVG_MASKTYPE_LUMINANCE", + "SVG_MATRIX_NOT_INVERTABLE", + "SVG_MEETORSLICE_MEET", + "SVG_MEETORSLICE_SLICE", + "SVG_MEETORSLICE_UNKNOWN", + "SVG_MORPHOLOGY_OPERATOR_DILATE", + "SVG_MORPHOLOGY_OPERATOR_ERODE", + "SVG_MORPHOLOGY_OPERATOR_UNKNOWN", + "SVG_PAINTTYPE_CURRENTCOLOR", + "SVG_PAINTTYPE_NONE", + "SVG_PAINTTYPE_RGBCOLOR", + "SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR", + "SVG_PAINTTYPE_UNKNOWN", + "SVG_PAINTTYPE_URI", + "SVG_PAINTTYPE_URI_CURRENTCOLOR", + "SVG_PAINTTYPE_URI_NONE", + "SVG_PAINTTYPE_URI_RGBCOLOR", + "SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR", + "SVG_PRESERVEASPECTRATIO_NONE", + "SVG_PRESERVEASPECTRATIO_UNKNOWN", + "SVG_PRESERVEASPECTRATIO_XMAXYMAX", + "SVG_PRESERVEASPECTRATIO_XMAXYMID", + "SVG_PRESERVEASPECTRATIO_XMAXYMIN", + "SVG_PRESERVEASPECTRATIO_XMIDYMAX", + "SVG_PRESERVEASPECTRATIO_XMIDYMID", + "SVG_PRESERVEASPECTRATIO_XMIDYMIN", + "SVG_PRESERVEASPECTRATIO_XMINYMAX", + "SVG_PRESERVEASPECTRATIO_XMINYMID", + "SVG_PRESERVEASPECTRATIO_XMINYMIN", + "SVG_SPREADMETHOD_PAD", + "SVG_SPREADMETHOD_REFLECT", + "SVG_SPREADMETHOD_REPEAT", + "SVG_SPREADMETHOD_UNKNOWN", + "SVG_STITCHTYPE_NOSTITCH", + "SVG_STITCHTYPE_STITCH", + "SVG_STITCHTYPE_UNKNOWN", + "SVG_TRANSFORM_MATRIX", + "SVG_TRANSFORM_ROTATE", + "SVG_TRANSFORM_SCALE", + "SVG_TRANSFORM_SKEWX", + "SVG_TRANSFORM_SKEWY", + "SVG_TRANSFORM_TRANSLATE", + "SVG_TRANSFORM_UNKNOWN", + "SVG_TURBULENCE_TYPE_FRACTALNOISE", + "SVG_TURBULENCE_TYPE_TURBULENCE", + "SVG_TURBULENCE_TYPE_UNKNOWN", + "SVG_UNIT_TYPE_OBJECTBOUNDINGBOX", + "SVG_UNIT_TYPE_UNKNOWN", + "SVG_UNIT_TYPE_USERSPACEONUSE", + "SVG_WRONG_TYPE_ERR", + "SVG_ZOOMANDPAN_DISABLE", + "SVG_ZOOMANDPAN_MAGNIFY", + "SVG_ZOOMANDPAN_UNKNOWN", + "SYNC_CONDITION", + "SYNC_FENCE", + "SYNC_FLAGS", + "SYNC_FLUSH_COMMANDS_BIT", + "SYNC_GPU_COMMANDS_COMPLETE", + "SYNC_STATUS", + "SYNTAX_ERR", + "SavedPages", + "Screen", + "ScreenOrientation", + "Script", + "ScriptEngine", + "ScriptEngineBuildVersion", + "ScriptEngineMajorVersion", + "ScriptEngineMinorVersion", + "ScriptProcessorNode", + "ScrollAreaEvent", + "SecurityPolicyViolationEvent", + "Selection", + "Sensor", + "SensorErrorEvent", + "ServiceWorker", + "ServiceWorkerContainer", + "ServiceWorkerMessageEvent", + "ServiceWorkerRegistration", + "SessionDescription", + "Set", + "ShadowRoot", + "SharedArrayBuffer", + "SharedWorker", + "SimpleGestureEvent", + "SourceBuffer", + "SourceBufferList", + "SpeechSynthesis", + "SpeechSynthesisErrorEvent", + "SpeechSynthesisEvent", + "SpeechSynthesisUtterance", + "SpeechSynthesisVoice", + "StaticRange", + "StereoPannerNode", + "StopIteration", + "Storage", + "StorageEvent", + "StorageManager", + "String", + "StyleMedia", + "StylePropertyMap", + "StylePropertyMapReadOnly", + "StyleSheet", + "StyleSheetList", + "StyleSheetPageList", + "SubmitEvent", + "SubtleCrypto", + "Symbol", + "SyncManager", + "SyntaxError", + "TEMPORARY", + "TEXTPATH_METHODTYPE_ALIGN", + "TEXTPATH_METHODTYPE_STRETCH", + "TEXTPATH_METHODTYPE_UNKNOWN", + "TEXTPATH_SPACINGTYPE_AUTO", + "TEXTPATH_SPACINGTYPE_EXACT", + "TEXTPATH_SPACINGTYPE_UNKNOWN", + "TEXTURE", + "TEXTURE0", + "TEXTURE1", + "TEXTURE10", + "TEXTURE11", + "TEXTURE12", + "TEXTURE13", + "TEXTURE14", + "TEXTURE15", + "TEXTURE16", + "TEXTURE17", + "TEXTURE18", + "TEXTURE19", + "TEXTURE2", + "TEXTURE20", + "TEXTURE21", + "TEXTURE22", + "TEXTURE23", + "TEXTURE24", + "TEXTURE25", + "TEXTURE26", + "TEXTURE27", + "TEXTURE28", + "TEXTURE29", + "TEXTURE3", + "TEXTURE30", + "TEXTURE31", + "TEXTURE4", + "TEXTURE5", + "TEXTURE6", + "TEXTURE7", + "TEXTURE8", + "TEXTURE9", + "TEXTURE_2D", + "TEXTURE_2D_ARRAY", + "TEXTURE_3D", + "TEXTURE_BASE_LEVEL", + "TEXTURE_BINDING_2D", + "TEXTURE_BINDING_2D_ARRAY", + "TEXTURE_BINDING_3D", + "TEXTURE_BINDING_CUBE_MAP", + "TEXTURE_COMPARE_FUNC", + "TEXTURE_COMPARE_MODE", + "TEXTURE_CUBE_MAP", + "TEXTURE_CUBE_MAP_NEGATIVE_X", + "TEXTURE_CUBE_MAP_NEGATIVE_Y", + "TEXTURE_CUBE_MAP_NEGATIVE_Z", + "TEXTURE_CUBE_MAP_POSITIVE_X", + "TEXTURE_CUBE_MAP_POSITIVE_Y", + "TEXTURE_CUBE_MAP_POSITIVE_Z", + "TEXTURE_IMMUTABLE_FORMAT", + "TEXTURE_IMMUTABLE_LEVELS", + "TEXTURE_MAG_FILTER", + "TEXTURE_MAX_ANISOTROPY_EXT", + "TEXTURE_MAX_LEVEL", + "TEXTURE_MAX_LOD", + "TEXTURE_MIN_FILTER", + "TEXTURE_MIN_LOD", + "TEXTURE_WRAP_R", + "TEXTURE_WRAP_S", + "TEXTURE_WRAP_T", + "TEXT_NODE", + "THROTTLED", + "TIMEOUT", + "TIMEOUT_ERR", + "TIMEOUT_EXPIRED", + "TIMEOUT_IGNORED", + "TOO_LARGE_ERR", + "TRANSACTION_INACTIVE_ERR", + "TRANSFORM_FEEDBACK", + "TRANSFORM_FEEDBACK_ACTIVE", + "TRANSFORM_FEEDBACK_BINDING", + "TRANSFORM_FEEDBACK_BUFFER", + "TRANSFORM_FEEDBACK_BUFFER_BINDING", + "TRANSFORM_FEEDBACK_BUFFER_MODE", + "TRANSFORM_FEEDBACK_BUFFER_SIZE", + "TRANSFORM_FEEDBACK_BUFFER_START", + "TRANSFORM_FEEDBACK_PAUSED", + "TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN", + "TRANSFORM_FEEDBACK_VARYINGS", + "TRIANGLE", + "TRIANGLES", + "TRIANGLE_FAN", + "TRIANGLE_STRIP", + "TYPE_BACK_FORWARD", + "TYPE_ERR", + "TYPE_MISMATCH_ERR", + "TYPE_NAVIGATE", + "TYPE_RELOAD", + "TYPE_RESERVED", + "Table", + "TaskAttributionTiming", + "Text", + "TextDecoder", + "TextDecoderStream", + "TextEncoder", + "TextEncoderStream", + "TextEvent", + "TextMetrics", + "TextRange", + "TextRangeCollection", + "TextTrack", + "TextTrackCue", + "TextTrackCueList", + "TextTrackList", + "TimeEvent", + "TimeRanges", + "Touch", + "TouchEvent", + "TouchList", + "TrackEvent", + "TransformStream", + "TransitionEvent", + "TreeWalker", + "TrustedHTML", + "TrustedScript", + "TrustedScriptURL", + "TrustedTypePolicy", + "TrustedTypePolicyFactory", + "TypeError", + "U2F", + "UIEvent", + "UNCACHED", + "UNIFORM_ARRAY_STRIDE", + "UNIFORM_BLOCK_ACTIVE_UNIFORMS", + "UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES", + "UNIFORM_BLOCK_BINDING", + "UNIFORM_BLOCK_DATA_SIZE", + "UNIFORM_BLOCK_INDEX", + "UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER", + "UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER", + "UNIFORM_BUFFER", + "UNIFORM_BUFFER_BINDING", + "UNIFORM_BUFFER_OFFSET_ALIGNMENT", + "UNIFORM_BUFFER_SIZE", + "UNIFORM_BUFFER_START", + "UNIFORM_IS_ROW_MAJOR", + "UNIFORM_MATRIX_STRIDE", + "UNIFORM_OFFSET", + "UNIFORM_SIZE", + "UNIFORM_TYPE", + "UNKNOWN_ERR", + "UNKNOWN_RULE", + "UNMASKED_RENDERER_WEBGL", + "UNMASKED_VENDOR_WEBGL", + "UNORDERED_NODE_ITERATOR_TYPE", + "UNORDERED_NODE_SNAPSHOT_TYPE", + "UNPACK_ALIGNMENT", + "UNPACK_COLORSPACE_CONVERSION_WEBGL", + "UNPACK_FLIP_Y_WEBGL", + "UNPACK_IMAGE_HEIGHT", + "UNPACK_PREMULTIPLY_ALPHA_WEBGL", + "UNPACK_ROW_LENGTH", + "UNPACK_SKIP_IMAGES", + "UNPACK_SKIP_PIXELS", + "UNPACK_SKIP_ROWS", + "UNSCHEDULED_STATE", + "UNSENT", + "UNSIGNALED", + "UNSIGNED_BYTE", + "UNSIGNED_INT", + "UNSIGNED_INT_10F_11F_11F_REV", + "UNSIGNED_INT_24_8", + "UNSIGNED_INT_2_10_10_10_REV", + "UNSIGNED_INT_5_9_9_9_REV", + "UNSIGNED_INT_SAMPLER_2D", + "UNSIGNED_INT_SAMPLER_2D_ARRAY", + "UNSIGNED_INT_SAMPLER_3D", + "UNSIGNED_INT_SAMPLER_CUBE", + "UNSIGNED_INT_VEC2", + "UNSIGNED_INT_VEC3", + "UNSIGNED_INT_VEC4", + "UNSIGNED_NORMALIZED", + "UNSIGNED_SHORT", + "UNSIGNED_SHORT_4_4_4_4", + "UNSIGNED_SHORT_5_5_5_1", + "UNSIGNED_SHORT_5_6_5", + "UNSPECIFIED_EVENT_TYPE_ERR", + "UPDATE", + "UPDATEREADY", + "UPDATE_AVAILABLE", + "URIError", + "URL", + "URLSearchParams", + "URLUnencoded", + "URL_MISMATCH_ERR", + "USB", + "USBAlternateInterface", + "USBConfiguration", + "USBConnectionEvent", + "USBDevice", + "USBEndpoint", + "USBInTransferResult", + "USBInterface", + "USBIsochronousInTransferPacket", + "USBIsochronousInTransferResult", + "USBIsochronousOutTransferPacket", + "USBIsochronousOutTransferResult", + "USBOutTransferResult", + "UTC", + "Uint16Array", + "Uint32Array", + "Uint8Array", + "Uint8ClampedArray", + "UserActivation", + "UserMessageHandler", + "UserMessageHandlersNamespace", + "UserProximityEvent", + "VALIDATE_STATUS", + "VALIDATION_ERR", + "VARIABLES_RULE", + "VBArray", + "VENDOR", + "VERSION", + "VERSION_CHANGE", + "VERSION_ERR", + "VERTEX_ARRAY_BINDING", + "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", + "VERTEX_ATTRIB_ARRAY_DIVISOR", + "VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE", + "VERTEX_ATTRIB_ARRAY_ENABLED", + "VERTEX_ATTRIB_ARRAY_INTEGER", + "VERTEX_ATTRIB_ARRAY_NORMALIZED", + "VERTEX_ATTRIB_ARRAY_POINTER", + "VERTEX_ATTRIB_ARRAY_SIZE", + "VERTEX_ATTRIB_ARRAY_STRIDE", + "VERTEX_ATTRIB_ARRAY_TYPE", + "VERTEX_SHADER", + "VERTICAL", + "VERTICAL_AXIS", + "VER_ERR", + "VIEWPORT", + "VIEWPORT_RULE", + "VRDisplay", + "VRDisplayCapabilities", + "VRDisplayEvent", + "VREyeParameters", + "VRFieldOfView", + "VRFrameData", + "VRPose", + "VRStageParameters", + "VTTCue", + "VTTRegion", + "ValidityState", + "VideoPlaybackQuality", + "VideoStreamTrack", + "VideoTrack", + "VideoTrackList", + "VisualViewport", + "WAIT_FAILED", + "WEBGL_compressed_texture_s3tc", + "WEBGL_debug_renderer_info", + "WEBKIT_FILTER_RULE", + "WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN", + "WEBKIT_FORCE_AT_MOUSE_DOWN", + "WEBKIT_KEYFRAMES_RULE", + "WEBKIT_KEYFRAME_RULE", + "WEBKIT_REGION_RULE", + "WIN", + "WRONG_DOCUMENT_ERR", + "WakeLock", + "WakeLockSentinel", + "WaveShaperNode", + "WeakMap", + "WeakRef", + "WeakSet", + "WebAssembly", + "WebGL2RenderingContext", + "WebGLActiveInfo", + "WebGLBuffer", + "WebGLContextEvent", + "WebGLFramebuffer", + "WebGLObject", + "WebGLProgram", + "WebGLQuery", + "WebGLRenderbuffer", + "WebGLRenderingContext", + "WebGLSampler", + "WebGLShader", + "WebGLShaderPrecisionFormat", + "WebGLSync", + "WebGLTexture", + "WebGLTransformFeedback", + "WebGLUniformLocation", + "WebGLVertexArray", + "WebGLVertexArrayObject", + "WebKit built-in PDF", + "WebKitAnimationEvent", + "WebKitBlobBuilder", + "WebKitCSSFilterRule", + "WebKitCSSFilterValue", + "WebKitCSSKeyframeRule", + "WebKitCSSKeyframesRule", + "WebKitCSSMatrix", + "WebKitCSSRegionRule", + "WebKitCSSTransformValue", + "WebKitDataCue", + "WebKitGamepad", + "WebKitMediaKeyError", + "WebKitMediaKeyMessageEvent", + "WebKitMediaKeyNeededEvent", + "WebKitMediaKeySession", + "WebKitMediaKeys", + "WebKitMediaSource", + "WebKitMutationObserver", + "WebKitNamespace", + "WebKitPlaybackTargetAvailabilityEvent", + "WebKitPoint", + "WebKitShadowRoot", + "WebKitSourceBuffer", + "WebKitSourceBufferList", + "WebKitTransitionEvent", + "WebSocket", + "WebkitAlignContent", + "WebkitAlignItems", + "WebkitAlignSelf", + "WebkitAnimation", + "WebkitAnimationDelay", + "WebkitAnimationDirection", + "WebkitAnimationDuration", + "WebkitAnimationFillMode", + "WebkitAnimationIterationCount", + "WebkitAnimationName", + "WebkitAnimationPlayState", + "WebkitAnimationTimingFunction", + "WebkitAppearance", + "WebkitBackfaceVisibility", + "WebkitBackgroundClip", + "WebkitBackgroundOrigin", + "WebkitBackgroundSize", + "WebkitBorderBottomLeftRadius", + "WebkitBorderBottomRightRadius", + "WebkitBorderImage", + "WebkitBorderRadius", + "WebkitBorderTopLeftRadius", + "WebkitBorderTopRightRadius", + "WebkitBoxAlign", + "WebkitBoxDirection", + "WebkitBoxFlex", + "WebkitBoxOrdinalGroup", + "WebkitBoxOrient", + "WebkitBoxPack", + "WebkitBoxShadow", + "WebkitBoxSizing", + "WebkitFilter", + "WebkitFlex", + "WebkitFlexBasis", + "WebkitFlexDirection", + "WebkitFlexFlow", + "WebkitFlexGrow", + "WebkitFlexShrink", + "WebkitFlexWrap", + "WebkitJustifyContent", + "WebkitLineClamp", + "WebkitMask", + "WebkitMaskClip", + "WebkitMaskComposite", + "WebkitMaskImage", + "WebkitMaskOrigin", + "WebkitMaskPosition", + "WebkitMaskPositionX", + "WebkitMaskPositionY", + "WebkitMaskRepeat", + "WebkitMaskSize", + "WebkitOrder", + "WebkitPerspective", + "WebkitPerspectiveOrigin", + "WebkitTextFillColor", + "WebkitTextSizeAdjust", + "WebkitTextStroke", + "WebkitTextStrokeColor", + "WebkitTextStrokeWidth", + "WebkitTransform", + "WebkitTransformOrigin", + "WebkitTransformStyle", + "WebkitTransition", + "WebkitTransitionDelay", + "WebkitTransitionDuration", + "WebkitTransitionProperty", + "WebkitTransitionTimingFunction", + "WebkitUserSelect", + "WheelEvent", + "Window", + "Windows Media Player Plug-in Dynamic Link Library", + "Windows Presentation Foundation", + "Worker", + "Worklet", + "WritableStream", + "WritableStreamDefaultWriter", + "X86_32", + "X86_64", + "XMLDocument", + "XMLHttpRequest", + "XMLHttpRequestEventTarget", + "XMLHttpRequestException", + "XMLHttpRequestProgressEvent", + "XMLHttpRequestUpload", + "XMLSerializer", + "XMLStylesheetProcessingInstruction", + "XPathEvaluator", + "XPathException", + "XPathExpression", + "XPathNSResolver", + "XPathResult", + "XR", + "XRBoundedReferenceSpace", + "XRDOMOverlayState", + "XRFrame", + "XRHitTestResult", + "XRHitTestSource", + "XRInputSource", + "XRInputSourceArray", + "XRInputSourceEvent", + "XRInputSourcesChangeEvent", + "XRLayer", + "XRPose", + "XRRay", + "XRReferenceSpace", + "XRReferenceSpaceEvent", + "XRRenderState", + "XRRigidTransform", + "XRSession", + "XRSessionEvent", + "XRSpace", + "XRSystem", + "XRTransientInputHitTestResult", + "XRTransientInputHitTestSource", + "XRView", + "XRViewerPose", + "XRViewport", + "XRWebGLLayer", + "XSLTProcessor", + "ZERO", + "_XD0M_", + "_YD0M_", + "__defineGetter__", + "__defineSetter__", + "__lookupGetter__", + "__lookupSetter__", + "__opera", + "__proto__", + "__relevantExtensionKeys", + "_browserjsran", + "a", + "aLink", + "abbr", + "abort", + "aborted", + "abs", + "absolute", + "acceleration", + "accelerationIncludingGravity", + "accelerator", + "accept", + "acceptCharset", + "acceptNode", + "accessKey", + "accessKeyLabel", + "accuracy", + "acos", + "acosh", + "action", + "actionURL", + "actions", + "activated", + "active", + "activeCues", + "activeElement", + "activeSourceBuffers", + "activeSourceCount", + "activeTexture", + "activeVRDisplays", + "actualBoundingBoxAscent", + "actualBoundingBoxDescent", + "actualBoundingBoxLeft", + "actualBoundingBoxRight", + "add", + "addAll", + "addBehavior", + "addCandidate", + "addColorStop", + "addCue", + "addElement", + "addEventListener", + "addFilter", + "addFromString", + "addFromUri", + "addIceCandidate", + "addImport", + "addListener", + "addModule", + "addNamed", + "addPageRule", + "addPath", + "addPointer", + "addRange", + "addRegion", + "addRule", + "addRules", + "addSearchEngine", + "addSourceBuffer", + "addStream", + "addTextTrack", + "addTrack", + "addTransceiver", + "addWakeLockListener", + "added", + "addedNodes", + "additionalName", + "additiveSymbols", + "addons", + "address", + "addressLine", + "adoptNode", + "adoptText", + "adoptedCallback", + "adoptedStyleSheets", + "adr", + "advance", + "after", + "album", + "alert", + "algorithm", + "align", + "align-content", + "align-items", + "align-self", + "alignContent", + "alignItems", + "alignSelf", + "alignmentBaseline", + "alinkColor", + "all", + "allSettled", + "allow", + "allowFullscreen", + "allowPaymentRequest", + "allowTransparency", + "allowedDirections", + "allowedFeatures", + "allowsFeature", + "alpha", + "alphabeticBaseline", + "alt", + "altGraphKey", + "altHtml", + "altKey", + "altLeft", + "alternate", + "alternateSetting", + "alternates", + "altitude", + "altitudeAccuracy", + "amplitude", + "ancestorOrigins", + "anchor", + "anchorNode", + "anchorOffset", + "anchors", + "and", + "angle", + "angularAcceleration", + "angularVelocity", + "animVal", + "animate", + "animatedInstanceRoot", + "animatedNormalizedPathSegList", + "animatedPathSegList", + "animatedPoints", + "animation", + "animation-delay", + "animation-direction", + "animation-duration", + "animation-fill-mode", + "animation-iteration-count", + "animation-name", + "animation-play-state", + "animation-timing-function", + "animationDelay", + "animationDirection", + "animationDuration", + "animationFillMode", + "animationIterationCount", + "animationName", + "animationPlayState", + "animationStartTime", + "animationTimingFunction", + "animationsPaused", + "anniversary", + "antialias", + "any", + "app", + "appCodeName", + "appMinorVersion", + "appName", + "appNotifications", + "appVersion", + "appearance", + "append", + "appendBuffer", + "appendChild", + "appendData", + "appendItem", + "appendMedium", + "appendNamed", + "appendRule", + "appendStream", + "appendWindowEnd", + "appendWindowStart", + "appleTrailingWord", + "applets", + "application/apple-default-browser", + "application/asx", + "application/java-deployment-toolkit", + "application/pdf", + "application/postscript", + "application/x-drm", + "application/x-drm-v2", + "application/x-google-chrome-pdf", + "application/x-java-applet", + "application/x-java-applet;deploy=10.25.2", + "application/x-java-applet;javafx=2.2.25", + "application/x-java-applet;jpi-version=1.7.0_25", + "application/x-java-applet;version=1.1", + "application/x-java-applet;version=1.1.1", + "application/x-java-applet;version=1.1.2", + "application/x-java-applet;version=1.1.3", + "application/x-java-applet;version=1.2", + "application/x-java-applet;version=1.2.1", + "application/x-java-applet;version=1.2.2", + "application/x-java-applet;version=1.3", + "application/x-java-applet;version=1.3.1", + "application/x-java-applet;version=1.4", + "application/x-java-applet;version=1.4.1", + "application/x-java-applet;version=1.4.2", + "application/x-java-applet;version=1.5", + "application/x-java-applet;version=1.6", + "application/x-java-applet;version=1.7", + "application/x-java-bean", + "application/x-java-bean;jpi-version=1.7.0_25", + "application/x-java-bean;version=1.1", + "application/x-java-bean;version=1.1.1", + "application/x-java-bean;version=1.1.2", + "application/x-java-bean;version=1.1.3", + "application/x-java-bean;version=1.2", + "application/x-java-bean;version=1.2.1", + "application/x-java-bean;version=1.2.2", + "application/x-java-bean;version=1.3", + "application/x-java-bean;version=1.3.1", + "application/x-java-bean;version=1.4", + "application/x-java-bean;version=1.4.1", + "application/x-java-bean;version=1.4.2", + "application/x-java-bean;version=1.5", + "application/x-java-bean;version=1.6", + "application/x-java-bean;version=1.7", + "application/x-java-vm", + "application/x-java-vm-npruntime", + "application/x-mplayer2", + "application/x-ms-xbap", + "application/x-nacl", + "application/x-pnacl", + "application/xaml+xml", + "applicationCache", + "applicationServerKey", + "apply", + "applyConstraints", + "applyElement", + "arc", + "arcTo", + "archive", + "areas", + "arguments", + "aria-activedescendant", + "aria-busy", + "aria-checked", + "aria-controls", + "aria-describedby", + "aria-disabled", + "aria-expanded", + "aria-flowto", + "aria-haspopup", + "aria-hidden", + "aria-invalid", + "aria-labelledby", + "aria-level", + "aria-live", + "aria-multiselectable", + "aria-owns", + "aria-posinset", + "aria-pressed", + "aria-readonly", + "aria-relevant", + "aria-required", + "aria-secret", + "aria-selected", + "aria-setsize", + "aria-valuemax", + "aria-valuemin", + "aria-valuenow", + "ariaAtomic", + "ariaAutoComplete", + "ariaBusy", + "ariaChecked", + "ariaColCount", + "ariaColIndex", + "ariaColSpan", + "ariaCurrent", + "ariaDescription", + "ariaDisabled", + "ariaExpanded", + "ariaHasPopup", + "ariaHidden", + "ariaKeyShortcuts", + "ariaLabel", + "ariaLevel", + "ariaLive", + "ariaModal", + "ariaMultiLine", + "ariaMultiSelectable", + "ariaOrientation", + "ariaPlaceholder", + "ariaPosInSet", + "ariaPressed", + "ariaReadOnly", + "ariaRelevant", + "ariaRequired", + "ariaRoleDescription", + "ariaRowCount", + "ariaRowIndex", + "ariaRowSpan", + "ariaSelected", + "ariaSetSize", + "ariaSort", + "ariaValueMax", + "ariaValueMin", + "ariaValueNow", + "ariaValueText", + "arrayBuffer", + "artist", + "artwork", + "as", + "asIntN", + "asUintN", + "asin", + "asinh", + "assert", + "assign", + "assignedElements", + "assignedNodes", + "assignedSlot", + "async", + "asyncIterator", + "atEnd", + "atan", + "atan2", + "atanh", + "atob", + "atomic", + "attachEvent", + "attachInternals", + "attachShader", + "attachShadow", + "attachments", + "attack", + "attestationObject", + "attrChange", + "attrName", + "attributeChangedCallback", + "attributeFilter", + "attributeName", + "attributeNamespace", + "attributeOldValue", + "attributeStyleMap", + "attributes", + "attribution", + "audio/x-ms-wax", + "audio/x-ms-wma", + "audioBitsPerSecond", + "audioTracks", + "audioWorklet", + "authenticatedSignedWrites", + "authenticatorData", + "autoIncrement", + "autobuffer", + "autocapitalize", + "autocomplete", + "autocorrect", + "autofocus", + "automationRate", + "autoplay", + "availHeight", + "availLeft", + "availTop", + "availWidth", + "availability", + "available", + "aversion", + "ax", + "axes", + "axis", + "ay", + "azimuth", + "b", + "back", + "backdropFilter", + "backface-visibility", + "backfaceVisibility", + "background", + "background-attachment", + "background-blend-mode", + "background-clip", + "background-color", + "background-image", + "background-origin", + "background-position", + "background-position-x", + "background-position-y", + "background-repeat", + "background-size", + "backgroundAttachment", + "backgroundBlendMode", + "backgroundClip", + "backgroundColor", + "backgroundFetch", + "backgroundImage", + "backgroundOrigin", + "backgroundPosition", + "backgroundPositionX", + "backgroundPositionY", + "backgroundRepeat", + "backgroundRepeatX", + "backgroundRepeatY", + "backgroundSize", + "badInput", + "badge", + "balance", + "baseFrequencyX", + "baseFrequencyY", + "baseLatency", + "baseLayer", + "baseName", + "baseNode", + "baseOffset", + "baseURI", + "baseVal", + "baselineShift", + "battery", + "bday", + "before", + "beginElement", + "beginElementAt", + "beginPath", + "beginQuery", + "beginTransformFeedback", + "behavior", + "behaviorCookie", + "behaviorPart", + "behaviorUrns", + "beta", + "bezierCurveTo", + "bgColor", + "bgProperties", + "bias", + "big", + "binaryType", + "bind", + "bindAttribLocation", + "bindBuffer", + "bindBufferBase", + "bindBufferRange", + "bindFramebuffer", + "bindRenderbuffer", + "bindSampler", + "bindTexture", + "bindTransformFeedback", + "bindVertexArray", + "blendColor", + "blendEquation", + "blendEquationSeparate", + "blendFunc", + "blendFuncSeparate", + "blink", + "blitFramebuffer", + "blob", + "block-size", + "blockDirection", + "blockSize", + "blockedURI", + "blue", + "bluetooth", + "blur", + "body", + "bodyUsed", + "bold", + "bookmarks", + "booleanValue", + "border", + "border-block", + "border-block-color", + "border-block-end", + "border-block-end-color", + "border-block-end-style", + "border-block-end-width", + "border-block-start", + "border-block-start-color", + "border-block-start-style", + "border-block-start-width", + "border-block-style", + "border-block-width", + "border-bottom", + "border-bottom-color", + "border-bottom-left-radius", + "border-bottom-right-radius", + "border-bottom-style", + "border-bottom-width", + "border-collapse", + "border-color", + "border-end-end-radius", + "border-end-start-radius", + "border-image", + "border-image-outset", + "border-image-repeat", + "border-image-slice", + "border-image-source", + "border-image-width", + "border-inline", + "border-inline-color", + "border-inline-end", + "border-inline-end-color", + "border-inline-end-style", + "border-inline-end-width", + "border-inline-start", + "border-inline-start-color", + "border-inline-start-style", + "border-inline-start-width", + "border-inline-style", + "border-inline-width", + "border-left", + "border-left-color", + "border-left-style", + "border-left-width", + "border-radius", + "border-right", + "border-right-color", + "border-right-style", + "border-right-width", + "border-spacing", + "border-start-end-radius", + "border-start-start-radius", + "border-style", + "border-top", + "border-top-color", + "border-top-left-radius", + "border-top-right-radius", + "border-top-style", + "border-top-width", + "border-width", + "borderBlock", + "borderBlockColor", + "borderBlockEnd", + "borderBlockEndColor", + "borderBlockEndStyle", + "borderBlockEndWidth", + "borderBlockStart", + "borderBlockStartColor", + "borderBlockStartStyle", + "borderBlockStartWidth", + "borderBlockStyle", + "borderBlockWidth", + "borderBottom", + "borderBottomColor", + "borderBottomLeftRadius", + "borderBottomRightRadius", + "borderBottomStyle", + "borderBottomWidth", + "borderBoxSize", + "borderCollapse", + "borderColor", + "borderColorDark", + "borderColorLight", + "borderEndEndRadius", + "borderEndStartRadius", + "borderImage", + "borderImageOutset", + "borderImageRepeat", + "borderImageSlice", + "borderImageSource", + "borderImageWidth", + "borderInline", + "borderInlineColor", + "borderInlineEnd", + "borderInlineEndColor", + "borderInlineEndStyle", + "borderInlineEndWidth", + "borderInlineStart", + "borderInlineStartColor", + "borderInlineStartStyle", + "borderInlineStartWidth", + "borderInlineStyle", + "borderInlineWidth", + "borderLeft", + "borderLeftColor", + "borderLeftStyle", + "borderLeftWidth", + "borderRadius", + "borderRight", + "borderRightColor", + "borderRightStyle", + "borderRightWidth", + "borderSpacing", + "borderStartEndRadius", + "borderStartStartRadius", + "borderStyle", + "borderTop", + "borderTopColor", + "borderTopLeftRadius", + "borderTopRightRadius", + "borderTopStyle", + "borderTopWidth", + "borderWidth", + "bottom", + "bottomMargin", + "bound", + "boundElements", + "boundingClientRect", + "boundingHeight", + "boundingLeft", + "boundingTop", + "boundingWidth", + "bounds", + "boundsGeometry", + "box-decoration-break", + "box-shadow", + "box-sizing", + "boxDecorationBreak", + "boxShadow", + "boxSizing", + "break-after", + "break-before", + "break-inside", + "breakAfter", + "breakBefore", + "breakInside", + "breakType", + "broadcast", + "browserLanguage", + "btoa", + "bubbles", + "buffer", + "bufferData", + "bufferDepth", + "bufferSize", + "bufferSubData", + "buffered", + "bufferedAmount", + "bufferedAmountLowThreshold", + "bufferedRendering", + "buildID", + "buildNumber", + "button", + "buttonID", + "buttons", + "byteLength", + "byteOffset", + "bytesWritten", + "c", + "cache", + "caches", + "calendar", + "call", + "caller", + "canBeFormatted", + "canBeMounted", + "canBeShared", + "canHaveChildren", + "canHaveHTML", + "canInsertDTMF", + "canMakePayment", + "canPlayType", + "canPresent", + "canTrickleIceCandidates", + "cancel", + "cancelAndHoldAtTime", + "cancelAnimationFrame", + "cancelBubble", + "cancelIdleCallback", + "cancelScheduledValues", + "cancelVideoFrameCallback", + "cancelWatchAvailability", + "cancelable", + "candidate", + "canonicalUUID", + "canvas", + "capabilities", + "caption", + "caption-side", + "captionSide", + "capture", + "captureEvents", + "captureStackTrace", + "captureStream", + "caret-color", + "caretBidiLevel", + "caretColor", + "caretPositionFromPoint", + "caretRangeFromPoint", + "caseFirst", + "cast", + "catch", + "category", + "cbrt", + "cd", + "ceil", + "cellIndex", + "cellPadding", + "cellSpacing", + "cells", + "ch", + "chOff", + "chain", + "challenge", + "changeType", + "changeVersion", + "changedTouches", + "channel", + "channelCount", + "channelCountMode", + "channelInterpretation", + "char", + "charAt", + "charCode", + "charCodeAt", + "charIndex", + "charLength", + "characterData", + "characterDataOldValue", + "characterSet", + "characteristic", + "charging", + "chargingTime", + "charset", + "check", + "checkEnclosure", + "checkFramebufferStatus", + "checkInstalled", + "checkIntersection", + "checkValidity", + "checked", + "childElementCount", + "childList", + "childNodes", + "children", + "chrome", + "ciphertext", + "cite", + "city", + "claimInterface", + "claimed", + "classList", + "className", + "classid", + "clear", + "clearAppBadge", + "clearAttributes", + "clearBufferfi", + "clearBufferfv", + "clearBufferiv", + "clearBufferuiv", + "clearColor", + "clearData", + "clearDepth", + "clearHalt", + "clearImmediate", + "clearInterval", + "clearLiveSeekableRange", + "clearMarks", + "clearMeasures", + "clearParameters", + "clearRect", + "clearResourceTimings", + "clearShadow", + "clearStencil", + "clearTimeout", + "clearWatch", + "click", + "clickCount", + "clientDataJSON", + "clientHeight", + "clientInformation", + "clientLeft", + "clientRect", + "clientRects", + "clientTop", + "clientWaitSync", + "clientWidth", + "clientX", + "clientY", + "clip", + "clip-path", + "clip-rule", + "clipBottom", + "clipLeft", + "clipPath", + "clipPathUnits", + "clipRight", + "clipRule", + "clipTop", + "clipboard", + "clipboardData", + "clone", + "cloneContents", + "cloneNode", + "cloneRange", + "close", + "closePath", + "closed", + "closest", + "clz", + "clz32", + "cm", + "cmp", + "code", + "codeBase", + "codePointAt", + "codeType", + "colSpan", + "collapse", + "collapseToEnd", + "collapseToStart", + "collapsed", + "collation", + "collect", + "colno", + "color", + "color-adjust", + "color-interpolation", + "color-interpolation-filters", + "colorAdjust", + "colorDepth", + "colorInterpolation", + "colorInterpolationFilters", + "colorMask", + "colorProfile", + "colorRendering", + "colorScheme", + "colorType", + "cols", + "column", + "column-count", + "column-fill", + "column-gap", + "column-rule", + "column-rule-color", + "column-rule-style", + "column-rule-width", + "column-span", + "column-width", + "columnCount", + "columnFill", + "columnGap", + "columnNumber", + "columnRule", + "columnRuleColor", + "columnRuleStyle", + "columnRuleWidth", + "columnSpan", + "columnWidth", + "columns", + "command", + "commit", + "commitLoadTime", + "commitPreferences", + "commitStyles", + "commonAncestorContainer", + "compact", + "compare", + "compareBoundaryPoints", + "compareDocumentPosition", + "compareEndPoints", + "compareExchange", + "compareNode", + "comparePoint", + "compatMode", + "compatible", + "compile", + "compileShader", + "compileStreaming", + "complete", + "component", + "componentFromPoint", + "composed", + "composedPath", + "composite", + "compositionEndOffset", + "compositionStartOffset", + "compressedTexImage2D", + "compressedTexImage3D", + "compressedTexSubImage2D", + "compressedTexSubImage3D", + "computedStyleMap", + "concat", + "conditionText", + "coneInnerAngle", + "coneOuterAngle", + "coneOuterGain", + "configuration", + "configurationName", + "configurationValue", + "configurations", + "confirm", + "confirmComposition", + "confirmSiteSpecificTrackingException", + "confirmWebWideTrackingException", + "connect", + "connectEnd", + "connectStart", + "connected", + "connectedCallback", + "connection", + "connectionInfo", + "connectionList", + "connectionSpeed", + "connectionState", + "connections", + "console", + "consoleHistory", + "consolidate", + "constraint", + "constrictionActive", + "construct", + "constructor", + "contactID", + "contain", + "containIntrinsicSize", + "containerId", + "containerName", + "containerSrc", + "containerType", + "contains", + "containsNode", + "content", + "contentBoxSize", + "contentDocument", + "contentEditable", + "contentHint", + "contentOverflow", + "contentRect", + "contentScriptType", + "contentStyleType", + "contentType", + "contentWindow", + "context", + "contextMenu", + "contextmenu", + "continue", + "continuePrimaryKey", + "continuous", + "control", + "controlTransferIn", + "controlTransferOut", + "controller", + "controls", + "controlsList", + "convertToBlob", + "convertToSpecifiedUnits", + "cookie", + "cookieEnabled", + "coords", + "copyBufferSubData", + "copyFromChannel", + "copyTexImage2D", + "copyTexSubImage2D", + "copyTexSubImage3D", + "copyToChannel", + "copyWithin", + "correspondingElement", + "correspondingUseElement", + "corruptedVideoFrames", + "cos", + "cosh", + "count", + "countReset", + "counter-increment", + "counter-reset", + "counter-set", + "counterIncrement", + "counterReset", + "counterSet", + "country", + "cpuClass", + "cpuSleepAllowed", + "create", + "createAnalyser", + "createAnswer", + "createAttribute", + "createAttributeNS", + "createBiquadFilter", + "createBuffer", + "createBufferSource", + "createCDATASection", + "createCSSStyleSheet", + "createCaption", + "createChannelMerger", + "createChannelSplitter", + "createComment", + "createConstantSource", + "createContextualFragment", + "createControlRange", + "createConvolver", + "createDTMFSender", + "createDataChannel", + "createDelay", + "createDelayNode", + "createDocument", + "createDocumentFragment", + "createDocumentType", + "createDynamicsCompressor", + "createElement", + "createElementNS", + "createEntityReference", + "createEvent", + "createEventObject", + "createExpression", + "createFramebuffer", + "createFunction", + "createGain", + "createGainNode", + "createHTML", + "createHTMLDocument", + "createIIRFilter", + "createImageBitmap", + "createImageData", + "createIndex", + "createJavaScriptNode", + "createLinearGradient", + "createMediaElementSource", + "createMediaKeys", + "createMediaStreamDestination", + "createMediaStreamSource", + "createMediaStreamTrackSource", + "createMutableFile", + "createNSResolver", + "createNodeIterator", + "createNotification", + "createObjectStore", + "createObjectURL", + "createOffer", + "createOscillator", + "createPanner", + "createPattern", + "createPeriodicWave", + "createPolicy", + "createPopup", + "createProcessingInstruction", + "createProgram", + "createQuery", + "createRadialGradient", + "createRange", + "createRangeCollection", + "createReader", + "createRenderbuffer", + "createSVGAngle", + "createSVGLength", + "createSVGMatrix", + "createSVGNumber", + "createSVGPathSegArcAbs", + "createSVGPathSegArcRel", + "createSVGPathSegClosePath", + "createSVGPathSegCurvetoCubicAbs", + "createSVGPathSegCurvetoCubicRel", + "createSVGPathSegCurvetoCubicSmoothAbs", + "createSVGPathSegCurvetoCubicSmoothRel", + "createSVGPathSegCurvetoQuadraticAbs", + "createSVGPathSegCurvetoQuadraticRel", + "createSVGPathSegCurvetoQuadraticSmoothAbs", + "createSVGPathSegCurvetoQuadraticSmoothRel", + "createSVGPathSegLinetoAbs", + "createSVGPathSegLinetoHorizontalAbs", + "createSVGPathSegLinetoHorizontalRel", + "createSVGPathSegLinetoRel", + "createSVGPathSegLinetoVerticalAbs", + "createSVGPathSegLinetoVerticalRel", + "createSVGPathSegMovetoAbs", + "createSVGPathSegMovetoRel", + "createSVGPoint", + "createSVGRect", + "createSVGTransform", + "createSVGTransformFromMatrix", + "createSampler", + "createScript", + "createScriptProcessor", + "createScriptURL", + "createSession", + "createShader", + "createShadowRoot", + "createStereoPanner", + "createStyleSheet", + "createTBody", + "createTFoot", + "createTHead", + "createTextNode", + "createTextRange", + "createTexture", + "createTouch", + "createTouchList", + "createTransformFeedback", + "createTreeWalker", + "createVertexArray", + "createWaveShaper", + "creationTime", + "credentials", + "crossOrigin", + "crossOriginIsolated", + "crypto", + "csi", + "csp", + "cssFloat", + "cssRules", + "cssText", + "cssValueType", + "ctrlKey", + "ctrlLeft", + "cues", + "cullFace", + "currency", + "currencyDisplay", + "current", + "currentDirection", + "currentLocalDescription", + "currentNode", + "currentPage", + "currentRect", + "currentRemoteDescription", + "currentScale", + "currentScript", + "currentSrc", + "currentState", + "currentStyle", + "currentTarget", + "currentTime", + "currentTranslate", + "currentView", + "cursor", + "curve", + "customElements", + "customError", + "customSections", + "cx", + "cy", + "d", + "data", + "dataFld", + "dataFormatAs", + "dataLoss", + "dataLossMessage", + "dataPageSize", + "dataSrc", + "dataTransfer", + "database", + "databases", + "dataset", + "dateTime", + "day", + "db", + "debug", + "debuggerEnabled", + "declare", + "decode", + "decodeAudioData", + "decodeURI", + "decodeURIComponent", + "decodedBodySize", + "decoding", + "decodingInfo", + "decrypt", + "default", + "defaultCharset", + "defaultChecked", + "defaultMuted", + "defaultPlaybackRate", + "defaultPolicy", + "defaultPrevented", + "defaultRequest", + "defaultSelected", + "defaultStatus", + "defaultURL", + "defaultValue", + "defaultView", + "defaultstatus", + "defer", + "define", + "defineMagicFunction", + "defineMagicVariable", + "defineProperties", + "defineProperty", + "deg", + "delay", + "delayTime", + "delegatesFocus", + "delete", + "deleteBuffer", + "deleteCaption", + "deleteCell", + "deleteContents", + "deleteData", + "deleteDatabase", + "deleteFramebuffer", + "deleteFromDocument", + "deleteIndex", + "deleteMedium", + "deleteObjectStore", + "deleteProgram", + "deleteProperty", + "deleteQuery", + "deleteRenderbuffer", + "deleteRow", + "deleteRule", + "deleteSampler", + "deleteShader", + "deleteSync", + "deleteTFoot", + "deleteTHead", + "deleteTexture", + "deleteTransformFeedback", + "deleteVertexArray", + "deliverChangeRecords", + "delivery", + "deliveryInfo", + "deliveryStatus", + "deliveryTimestamp", + "delta", + "deltaMode", + "deltaX", + "deltaY", + "deltaZ", + "dependentLocality", + "depthFar", + "depthFunc", + "depthMask", + "depthNear", + "depthRange", + "deref", + "deriveBits", + "deriveKey", + "description", + "deselectAll", + "designMode", + "desiredSize", + "destination", + "destinationURL", + "detach", + "detachEvent", + "detachShader", + "detail", + "details", + "detect", + "detune", + "device", + "deviceClass", + "deviceId", + "deviceMemory", + "devicePixelContentBoxSize", + "devicePixelRatio", + "deviceProtocol", + "deviceSessionId", + "deviceSubclass", + "deviceVersionMajor", + "deviceVersionMinor", + "deviceVersionSubminor", + "deviceXDPI", + "deviceYDPI", + "didTimeout", + "diffuseConstant", + "digest", + "dimensions", + "dir", + "dirName", + "dirXml", + "direction", + "dirxml", + "disable", + "disablePictureInPicture", + "disableRemotePlayback", + "disableVertexAttribArray", + "disabled", + "dischargingTime", + "disconnect", + "disconnectedCallback", + "dispatch", + "dispatchEvent", + "dispatchToListener", + "display", + "displayId", + "displayName", + "disposition", + "distanceModel", + "div", + "divisor", + "djsapi", + "djsproxy", + "doImport", + "doNotTrack", + "doScroll", + "doctype", + "document", + "documentElement", + "documentMode", + "documentURI", + "dolphin", + "dolphinGameCenter", + "dolphininfo", + "dolphinmeta", + "domComplete", + "domContentLoadedEventEnd", + "domContentLoadedEventStart", + "domInteractive", + "domLoading", + "domOverlayState", + "domain", + "domainLookupEnd", + "domainLookupStart", + "dominant-baseline", + "dominantBaseline", + "done", + "dopplerFactor", + "dotAll", + "downDegrees", + "downlink", + "download", + "downloadTotal", + "downloaded", + "dpcm", + "dpi", + "dppx", + "dragDrop", + "draggable", + "drawArrays", + "drawArraysInstanced", + "drawArraysInstancedANGLE", + "drawBuffers", + "drawCustomFocusRing", + "drawElements", + "drawElementsInstanced", + "drawElementsInstancedANGLE", + "drawFocusIfNeeded", + "drawImage", + "drawImageFromRect", + "drawRangeElements", + "drawSystemFocusRing", + "drawingBufferHeight", + "drawingBufferWidth", + "dropEffect", + "droppedVideoFrames", + "dropzone", + "dtmf", + "dump", + "duplicate", + "durability", + "duration", + "dvname", + "dvnum", + "dx", + "dy", + "dynsrc", + "e", + "edgeMode", + "effect", + "effectAllowed", + "effectiveDirective", + "effectiveType", + "elapsedTime", + "element", + "elementFromPoint", + "elementTiming", + "elements", + "elementsFromPoint", + "elevation", + "ellipse", + "em", + "emHeightAscent", + "emHeightDescent", + "email", + "embeds", + "emma", + "empty", + "empty-cells", + "emptyCells", + "emptyHTML", + "emptyScript", + "emulatedPosition", + "enable", + "enableBackground", + "enableDelegations", + "enableStyleSheetsForSet", + "enableVertexAttribArray", + "enabled", + "enabledPlugin", + "encode", + "encodeInto", + "encodeURI", + "encodeURIComponent", + "encodedBodySize", + "encoding", + "encodingInfo", + "encrypt", + "enctype", + "end", + "endContainer", + "endElement", + "endElementAt", + "endOfStream", + "endOffset", + "endQuery", + "endTime", + "endTransformFeedback", + "ended", + "endpoint", + "endpointNumber", + "endpoints", + "endsWith", + "enterKeyHint", + "entities", + "entries", + "entryType", + "enumerate", + "enumerateDevices", + "enumerateEditable", + "environmentBlendMode", + "epubCaptionSide", + "epubTextCombine", + "epubTextEmphasis", + "epubTextEmphasisColor", + "epubTextEmphasisStyle", + "epubTextOrientation", + "epubTextTransform", + "epubWordBreak", + "epubWritingMode", + "equals", + "era", + "error", + "errorCode", + "errorDetail", + "errorText", + "escape", + "estimate", + "eval", + "evaluate", + "event", + "eventPhase", + "every", + "ex", + "exception", + "exchange", + "exec", + "execCommand", + "execCommandShowHelp", + "execScript", + "executeSql", + "exitFullscreen", + "exitPictureInPicture", + "exitPointerLock", + "exitPresent", + "exp", + "expand", + "expandEntityReferences", + "expando", + "expansion", + "expiration", + "expirationTime", + "expires", + "expiryDate", + "explicitOriginalTarget", + "expm1", + "exponent", + "exponentialRampToValueAtTime", + "exportKey", + "exports", + "extend", + "extensions", + "extentNode", + "extentOffset", + "external", + "externalResourcesRequired", + "extractContents", + "extractable", + "eye", + "f", + "face", + "factoryReset", + "failureReason", + "fallback", + "family", + "familyName", + "farthestViewportElement", + "fastSeek", + "fatal", + "featurePolicy", + "featureSettings", + "features", + "fenceSync", + "fetch", + "fetchStart", + "fftSize", + "fgColor", + "fieldOfView", + "file", + "fileCreatedDate", + "fileHandle", + "fileModifiedDate", + "fileName", + "fileSize", + "fileUpdatedDate", + "filename", + "files", + "filesystem", + "fill", + "fill-opacity", + "fill-rule", + "fillLightMode", + "fillOpacity", + "fillRect", + "fillRule", + "fillStyle", + "fillText", + "filter", + "filterResX", + "filterResY", + "filterUnits", + "filters", + "finally", + "find", + "findIndex", + "findRule", + "findText", + "finish", + "finishDocumentLoadTime", + "finishLoadTime", + "finished", + "fireEvent", + "firesTouchEvents", + "first", + "firstChild", + "firstElementChild", + "firstPage", + "firstPaintAfterLoadTime", + "firstPaintTime", + "fixed", + "flags", + "flat", + "flatMap", + "flex", + "flex-basis", + "flex-direction", + "flex-flow", + "flex-grow", + "flex-shrink", + "flex-wrap", + "flexBasis", + "flexDirection", + "flexFlow", + "flexGrow", + "flexShrink", + "flexWrap", + "flipX", + "flipY", + "float", + "flood-color", + "flood-opacity", + "floodColor", + "floodOpacity", + "floor", + "flush", + "focus", + "focusNode", + "focusOffset", + "font", + "font-family", + "font-feature-settings", + "font-kerning", + "font-language-override", + "font-size", + "font-size-adjust", + "font-stretch", + "font-style", + "font-synthesis", + "font-variant", + "font-variant-alternates", + "font-variant-caps", + "font-variant-east-asian", + "font-variant-ligatures", + "font-variant-numeric", + "font-variant-position", + "font-weight", + "fontBoundingBoxAscent", + "fontBoundingBoxDescent", + "fontDisplay", + "fontFamily", + "fontFeatureSettings", + "fontKerning", + "fontLanguageOverride", + "fontOpticalSizing", + "fontSize", + "fontSizeAdjust", + "fontSmoothingEnabled", + "fontStretch", + "fontStyle", + "fontSynthesis", + "fontVariant", + "fontVariantAlternates", + "fontVariantCaps", + "fontVariantEastAsian", + "fontVariantLigatures", + "fontVariantNumeric", + "fontVariantPosition", + "fontVariationSettings", + "fontWeight", + "fontcolor", + "fontfaces", + "fonts", + "fontsize", + "for", + "forEach", + "force", + "forceRedraw", + "form", + "formAction", + "formData", + "formEnctype", + "formMethod", + "formNoValidate", + "formTarget", + "format", + "formatRange", + "formatRangeToParts", + "formatToParts", + "forms", + "forward", + "forwardX", + "forwardY", + "forwardZ", + "foundation", + "fr", + "fragmentDirective", + "frame", + "frameBorder", + "frameElement", + "frameSpacing", + "framebuffer", + "framebufferHeight", + "framebufferRenderbuffer", + "framebufferTexture2D", + "framebufferTextureLayer", + "framebufferWidth", + "frames", + "freeSpace", + "freeze", + "frequency", + "frequencyBinCount", + "from", + "fromCharCode", + "fromCodePoint", + "fromElement", + "fromEntries", + "fromFloat32Array", + "fromFloat64Array", + "fromMatrix", + "fromPoint", + "fromQuad", + "fromRect", + "frontFace", + "fround", + "fullPath", + "fullScreen", + "fullscreen", + "fullscreenElement", + "fullscreenEnabled", + "fx", + "fy", + "gain", + "gamepad", + "gamma", + "gap", + "gatheringState", + "gatt", + "genderIdentity", + "generateCertificate", + "generateKey", + "generateMipmap", + "generateRequest", + "geolocation", + "gestureObject", + "get", + "getActiveAttrib", + "getActiveUniform", + "getActiveUniformBlockName", + "getActiveUniformBlockParameter", + "getActiveUniforms", + "getAdditionalLanguages", + "getAdjacentText", + "getAll", + "getAllKeys", + "getAllResponseHeaders", + "getAllowlistForFeature", + "getAnimations", + "getAsFile", + "getAsString", + "getAttachedShaders", + "getAttribLocation", + "getAttribute", + "getAttributeNS", + "getAttributeNames", + "getAttributeNode", + "getAttributeNodeNS", + "getAttributeType", + "getAudioTracks", + "getAvailability", + "getBBox", + "getBattery", + "getBigInt64", + "getBigUint64", + "getBlob", + "getBookmark", + "getBoundingClientRect", + "getBounds", + "getBufferParameter", + "getBufferSubData", + "getByteFrequencyData", + "getByteTimeDomainData", + "getCSSCanvasContext", + "getCTM", + "getCandidateWindowClientRect", + "getCanonicalLocales", + "getCapabilities", + "getChannelData", + "getCharNumAtPosition", + "getCharacteristic", + "getCharacteristics", + "getClientExtensionResults", + "getClientRect", + "getClientRects", + "getCoalescedEvents", + "getCompositionAlternatives", + "getComputedStyle", + "getComputedTextLength", + "getComputedTiming", + "getConfiguration", + "getConstraints", + "getContext", + "getContextAttributes", + "getContributingSources", + "getCount", + "getCounterValue", + "getCueAsHTML", + "getCueById", + "getCurrentPosition", + "getCurrentTime", + "getData", + "getDatabaseNames", + "getDate", + "getDay", + "getDefaultComputedStyle", + "getDescriptor", + "getDescriptors", + "getDestinationInsertionPoints", + "getDetails", + "getDevices", + "getDirectory", + "getDisplayMedia", + "getDistributedNodes", + "getEditable", + "getElementById", + "getElementsByClassName", + "getElementsByName", + "getElementsByTagName", + "getElementsByTagNameNS", + "getEnclosureList", + "getEndPositionOfChar", + "getEntries", + "getEntriesByName", + "getEntriesByType", + "getError", + "getExtension", + "getExtentOfChar", + "getEyeParameters", + "getFeature", + "getFile", + "getFiles", + "getFilesAndDirectories", + "getFingerprints", + "getFloat32", + "getFloat64", + "getFloatFrequencyData", + "getFloatTimeDomainData", + "getFloatValue", + "getFragDataLocation", + "getFrameData", + "getFramebufferAttachmentParameter", + "getFrequencyResponse", + "getFullYear", + "getGamepads", + "getHitTestResults", + "getHitTestResultsForTransientInput", + "getHours", + "getIdentityAssertion", + "getIds", + "getImageData", + "getIndexedParameter", + "getInstalled", + "getInstalledRelatedApps", + "getInt16", + "getInt32", + "getInt8", + "getInternalformatParameter", + "getIntersectionList", + "getIsInstalled", + "getItem", + "getItems", + "getKey", + "getKeyframes", + "getLayers", + "getLayoutMap", + "getLineDash", + "getLocalCandidates", + "getLocalParameters", + "getLocalStreams", + "getLocalizationResource", + "getMarks", + "getMatchedCSSRules", + "getMeasures", + "getMetadata", + "getMilliseconds", + "getMinutes", + "getModifierState", + "getMonth", + "getNamedItem", + "getNamedItemNS", + "getNativeFramebufferScaleFactor", + "getNotifications", + "getNotifier", + "getNumberOfChars", + "getOffsetReferenceSpace", + "getOutputTimestamp", + "getOverrideHistoryNavigationMode", + "getOverrideStyle", + "getOwnPropertyDescriptor", + "getOwnPropertyDescriptors", + "getOwnPropertyNames", + "getOwnPropertySymbols", + "getParameter", + "getParameters", + "getParent", + "getPathSegAtLength", + "getPhotoCapabilities", + "getPhotoSettings", + "getPointAtLength", + "getPose", + "getPredictedEvents", + "getPreference", + "getPreferenceDefault", + "getPresentationAttribute", + "getPreventDefault", + "getPrimaryService", + "getPrimaryServices", + "getProgramInfoLog", + "getProgramParameter", + "getPropertyCSSValue", + "getPropertyPriority", + "getPropertyShorthand", + "getPropertyType", + "getPropertyValue", + "getPrototypeOf", + "getQuery", + "getQueryParameter", + "getRGBColorValue", + "getRandomValues", + "getRangeAt", + "getReader", + "getReceivers", + "getRectValue", + "getRegistration", + "getRegistrations", + "getRemoteCandidates", + "getRemoteCertificates", + "getRemoteParameters", + "getRemoteStreams", + "getRenderbufferParameter", + "getResponseHeader", + "getRevision", + "getRoot", + "getRootNode", + "getRotationOfChar", + "getRules", + "getSVGDocument", + "getSamplerParameter", + "getScreenCTM", + "getSeconds", + "getSelectedCandidatePair", + "getSelection", + "getSelf", + "getSenders", + "getService", + "getSettings", + "getShaderInfoLog", + "getShaderParameter", + "getShaderPrecisionFormat", + "getShaderSource", + "getSimpleDuration", + "getSiteIcons", + "getSources", + "getSpeculativeParserUrls", + "getStartDate", + "getStartPositionOfChar", + "getStartTime", + "getState", + "getStats", + "getStatusForPolicy", + "getStorageUpdates", + "getStreamById", + "getStringValue", + "getSubStringLength", + "getSubscription", + "getSupportedConstraints", + "getSupportedExtensions", + "getSupportedFormats", + "getSyncParameter", + "getSynchronizationSources", + "getTags", + "getTargetRanges", + "getTexParameter", + "getTime", + "getTimezoneOffset", + "getTiming", + "getTotalLength", + "getTrackById", + "getTracks", + "getTransceivers", + "getTransform", + "getTransformFeedbackVarying", + "getTransformToElement", + "getTransports", + "getType", + "getTypeMapping", + "getUTCDate", + "getUTCDay", + "getUTCFullYear", + "getUTCHours", + "getUTCMilliseconds", + "getUTCMinutes", + "getUTCMonth", + "getUTCSeconds", + "getUint16", + "getUint32", + "getUint8", + "getUniform", + "getUniformBlockIndex", + "getUniformIndices", + "getUniformLocation", + "getUserMedia", + "getVRDisplays", + "getValues", + "getVarDate", + "getVariableValue", + "getVertexAttrib", + "getVertexAttribOffset", + "getVideoPlaybackQuality", + "getVideoTracks", + "getViewerPose", + "getViewport", + "getVoices", + "getWakeLockState", + "getWriter", + "getYear", + "givenName", + "global", + "globalAlpha", + "globalCompositeOperation", + "globalThis", + "glyphOrientationHorizontal", + "glyphOrientationVertical", + "glyphRef", + "go", + "grabFrame", + "grad", + "gradientTransform", + "gradientUnits", + "grammars", + "green", + "grid", + "grid-area", + "grid-auto-columns", + "grid-auto-flow", + "grid-auto-rows", + "grid-column", + "grid-column-end", + "grid-column-gap", + "grid-column-start", + "grid-gap", + "grid-row", + "grid-row-end", + "grid-row-gap", + "grid-row-start", + "grid-template", + "grid-template-areas", + "grid-template-columns", + "grid-template-rows", + "gridArea", + "gridAutoColumns", + "gridAutoFlow", + "gridAutoRows", + "gridColumn", + "gridColumnEnd", + "gridColumnGap", + "gridColumnStart", + "gridGap", + "gridRow", + "gridRowEnd", + "gridRowGap", + "gridRowStart", + "gridTemplate", + "gridTemplateAreas", + "gridTemplateColumns", + "gridTemplateRows", + "gripSpace", + "group", + "groupCollapsed", + "groupEnd", + "groupId", + "grow", + "hadRecentInput", + "hand", + "handedness", + "hangingBaseline", + "hangingPunctuation", + "hapticActuators", + "hardwareConcurrency", + "has", + "hasAttribute", + "hasAttributeNS", + "hasAttributes", + "hasBeenActive", + "hasChildNodes", + "hasComposition", + "hasEnrolledInstrument", + "hasExtension", + "hasExternalDisplay", + "hasFeature", + "hasFocus", + "hasInstance", + "hasLayout", + "hasListener", + "hasListeners", + "hasOrientation", + "hasOwnProperty", + "hasPointerCapture", + "hasPosition", + "hasReading", + "hasStorageAccess", + "hash", + "head", + "headers", + "heading", + "height", + "hidden", + "hide", + "hideFocus", + "high", + "highWaterMark", + "hint", + "history", + "honorificPrefix", + "honorificSuffix", + "horizontalOverflow", + "host", + "hostCandidate", + "hostname", + "hour", + "hour12", + "hourCycle", + "href", + "hrefTranslate", + "hreflang", + "hspace", + "html5TagCheckInerface", + "htmlFor", + "htmlText", + "httpEquiv", + "httpRequestStatusCode", + "hwTimestamp", + "hyphens", + "hypot", + "iccId", + "iceConnectionState", + "iceGatheringState", + "iceTransport", + "icon", + "iconURL", + "id", + "identifier", + "identity", + "ideographicBaseline", + "idpLoginUrl", + "ignoreBOM", + "ignoreCase", + "ignoreDepthValues", + "ignoreMutedMedia", + "ignorePunctuation", + "image-orientation", + "image-rendering", + "imageHeight", + "imageOrientation", + "imageRendering", + "imageSizes", + "imageSmoothingEnabled", + "imageSmoothingQuality", + "imageSrcset", + "imageWidth", + "images", + "ime-mode", + "imeMode", + "implementation", + "import", + "importKey", + "importNode", + "importStylesheet", + "imports", + "impp", + "imul", + "in", + "in1", + "in2", + "inBandMetadataTrackDispatchType", + "inRange", + "includes", + "incremental", + "indeterminate", + "index", + "indexNames", + "indexOf", + "indexedDB", + "indicate", + "inertiaDestinationX", + "inertiaDestinationY", + "info", + "init", + "initAnimationEvent", + "initBeforeLoadEvent", + "initClipboardEvent", + "initCloseEvent", + "initCommandEvent", + "initCompositionEvent", + "initCustomEvent", + "initData", + "initDataType", + "initDeviceMotionEvent", + "initDeviceOrientationEvent", + "initDragEvent", + "initErrorEvent", + "initEvent", + "initFocusEvent", + "initGestureEvent", + "initHashChangeEvent", + "initKeyEvent", + "initKeyboardEvent", + "initMSManipulationEvent", + "initMessageEvent", + "initMouseEvent", + "initMouseScrollEvent", + "initMouseWheelEvent", + "initMutationEvent", + "initNSMouseEvent", + "initOverflowEvent", + "initPageEvent", + "initPageTransitionEvent", + "initPointerEvent", + "initPopStateEvent", + "initProgressEvent", + "initScrollAreaEvent", + "initSimpleGestureEvent", + "initStorageEvent", + "initTextEvent", + "initTimeEvent", + "initTouchEvent", + "initTransitionEvent", + "initUIEvent", + "initWebKitAnimationEvent", + "initWebKitTransitionEvent", + "initWebKitWheelEvent", + "initWheelEvent", + "initialTime", + "initialize", + "initiatorType", + "inline-size", + "inlineSize", + "inlineVerticalFieldOfView", + "inner", + "innerHTML", + "innerHeight", + "innerText", + "innerWidth", + "input", + "inputBuffer", + "inputEncoding", + "inputMethod", + "inputMode", + "inputSource", + "inputSources", + "inputType", + "inputs", + "insertAdjacentElement", + "insertAdjacentHTML", + "insertAdjacentText", + "insertBefore", + "insertCell", + "insertDTMF", + "insertData", + "insertId", + "insertItemBefore", + "insertNode", + "insertRow", + "insertRule", + "inset", + "inset-block", + "inset-block-end", + "inset-block-start", + "inset-inline", + "inset-inline-end", + "inset-inline-start", + "insetBlock", + "insetBlockEnd", + "insetBlockStart", + "insetInline", + "insetInlineEnd", + "insetInlineStart", + "install", + "installChrome", + "installPackage", + "installState", + "installing", + "instanceRoot", + "instantiate", + "instantiateStreaming", + "instruments", + "integrity", + "interactionMode", + "intercept", + "interfaceClass", + "interfaceName", + "interfaceNumber", + "interfaceProtocol", + "interfaceSubclass", + "interfaces", + "interimResults", + "internalSubset", + "interpretation", + "intersectionRatio", + "intersectionRect", + "intersectsNode", + "interval", + "invalidIteratorState", + "invalidateFramebuffer", + "invalidateSubFramebuffer", + "inverse", + "invertSelf", + "is", + "is2D", + "isActive", + "isAlternate", + "isArray", + "isBingCurrentSearchDefault", + "isBuffer", + "isCandidateWindowVisible", + "isChar", + "isCollapsed", + "isComposing", + "isConcatSpreadable", + "isConnected", + "isContentEditable", + "isContentHandlerRegistered", + "isContextLost", + "isDefaultNamespace", + "isDirectory", + "isDisabled", + "isEnabled", + "isEqual", + "isEqualNode", + "isExtensible", + "isExternalCTAP2SecurityKeySupported", + "isFile", + "isFinite", + "isFramebuffer", + "isFrozen", + "isGenerator", + "isHTML", + "isHistoryNavigation", + "isId", + "isIdentity", + "isInjected", + "isInstalled", + "isInteger", + "isIntersecting", + "isLockFree", + "isMap", + "isMultiLine", + "isNaN", + "isOpen", + "isPointInFill", + "isPointInPath", + "isPointInRange", + "isPointInStroke", + "isPrefAlternate", + "isPresenting", + "isPrimary", + "isProgram", + "isPropertyImplicit", + "isProtocolHandlerRegistered", + "isPrototypeOf", + "isQuery", + "isRenderbuffer", + "isSafeInteger", + "isSameNode", + "isSampler", + "isScript", + "isScriptURL", + "isSealed", + "isSecureContext", + "isSessionSupported", + "isShader", + "isSupported", + "isSync", + "isTextEdit", + "isTexture", + "isTransformFeedback", + "isTrusted", + "isTypeSupported", + "isTypeSupportedWithFeatures", + "isUserVerifyingPlatformAuthenticatorAvailable", + "isVertexArray", + "isView", + "isVisible", + "isochronousTransferIn", + "isochronousTransferOut", + "isolation", + "italics", + "item", + "itemId", + "itemProp", + "itemRef", + "itemScope", + "itemType", + "itemValue", + "items", + "iterateNext", + "iterator", + "javaEnabled", + "jobTitle", + "join", + "jsHeapSizeLimit", + "json", + "justify-content", + "justify-items", + "justify-self", + "justifyContent", + "justifyItems", + "justifySelf", + "k1", + "k2", + "k3", + "k4", + "kHz", + "keepalive", + "kernelMatrix", + "kernelUnitLengthX", + "kernelUnitLengthY", + "kerning", + "key", + "keyCode", + "keyFor", + "keyIdentifier", + "keyLightEnabled", + "keyLocation", + "keyPath", + "keyStatuses", + "keySystem", + "keyText", + "keyUsage", + "keyboard", + "keys", + "keytype", + "kind", + "knee", + "label", + "labels", + "lang", + "language", + "languages", + "largeArcFlag", + "lastActivePanel", + "lastChild", + "lastElementChild", + "lastEventId", + "lastIndex", + "lastIndexOf", + "lastInputTime", + "lastMatch", + "lastMessageSubject", + "lastMessageType", + "lastModified", + "lastModifiedDate", + "lastPage", + "lastParen", + "lastState", + "lastStyleSheetSet", + "latitude", + "layerX", + "layerY", + "layoutFlow", + "layoutGrid", + "layoutGridChar", + "layoutGridLine", + "layoutGridMode", + "layoutGridType", + "lbound", + "left", + "leftContext", + "leftDegrees", + "leftMargin", + "leftProjectionMatrix", + "leftViewMatrix", + "length", + "lengthAdjust", + "lengthComputable", + "letter-spacing", + "letterSpacing", + "level", + "lighting-color", + "lightingColor", + "limitingConeAngle", + "line", + "line-break", + "line-height", + "lineAlign", + "lineBreak", + "lineCap", + "lineDashOffset", + "lineHeight", + "lineJoin", + "lineNumber", + "lineTo", + "lineWidth", + "linearAcceleration", + "linearRampToValueAtTime", + "linearVelocity", + "lineno", + "lines", + "link", + "linkColor", + "linkProgram", + "links", + "list", + "list-style", + "list-style-image", + "list-style-position", + "list-style-type", + "listStyle", + "listStyleImage", + "listStylePosition", + "listStyleType", + "listener", + "load", + "loadEventEnd", + "loadEventStart", + "loadTime", + "loadTimes", + "loaded", + "loading", + "localDescription", + "localName", + "localService", + "localStorage", + "locale", + "localeCompare", + "location", + "locationbar", + "lock", + "locked", + "lockedFile", + "locks", + "log", + "log10", + "log1p", + "log2", + "logicalXDPI", + "logicalYDPI", + "longDesc", + "longitude", + "lookupNamespaceURI", + "lookupPrefix", + "loop", + "loopEnd", + "loopStart", + "looping", + "low", + "lower", + "lowerBound", + "lowerOpen", + "lowsrc", + "m11", + "m12", + "m13", + "m14", + "m21", + "m22", + "m23", + "m24", + "m31", + "m32", + "m33", + "m34", + "m41", + "m42", + "m43", + "m44", + "makeXRCompatible", + "manifest", + "manufacturer", + "manufacturerName", + "map", + "mapping", + "margin", + "margin-block", + "margin-block-end", + "margin-block-start", + "margin-bottom", + "margin-inline", + "margin-inline-end", + "margin-inline-start", + "margin-left", + "margin-right", + "margin-top", + "marginBlock", + "marginBlockEnd", + "marginBlockStart", + "marginBottom", + "marginHeight", + "marginInline", + "marginInlineEnd", + "marginInlineStart", + "marginLeft", + "marginRight", + "marginTop", + "marginWidth", + "mark", + "markTimeline", + "marker", + "marker-end", + "marker-mid", + "marker-offset", + "marker-start", + "markerEnd", + "markerHeight", + "markerMid", + "markerOffset", + "markerStart", + "markerUnits", + "markerWidth", + "marks", + "mask", + "mask-clip", + "mask-composite", + "mask-image", + "mask-mode", + "mask-origin", + "mask-position", + "mask-position-x", + "mask-position-y", + "mask-repeat", + "mask-size", + "mask-type", + "maskClip", + "maskComposite", + "maskContentUnits", + "maskImage", + "maskMode", + "maskOrigin", + "maskPosition", + "maskPositionX", + "maskPositionY", + "maskRepeat", + "maskSize", + "maskType", + "maskUnits", + "match", + "matchAll", + "matchMedia", + "matchMedium", + "matches", + "matrix", + "matrixTransform", + "max", + "max-block-size", + "max-height", + "max-inline-size", + "max-width", + "maxActions", + "maxAlternatives", + "maxBlockSize", + "maxChannelCount", + "maxChannels", + "maxConnectionsPerServer", + "maxDecibels", + "maxDistance", + "maxHeight", + "maxInlineSize", + "maxLayers", + "maxLength", + "maxMessageSize", + "maxPacketLifeTime", + "maxRetransmits", + "maxTouchPoints", + "maxValue", + "maxWidth", + "maxZoom", + "maximize", + "maximumFractionDigits", + "measure", + "measureText", + "media", + "mediaCapabilities", + "mediaDevices", + "mediaElement", + "mediaGroup", + "mediaKeys", + "mediaSession", + "mediaStream", + "mediaText", + "meetOrSlice", + "memory", + "menubar", + "mergeAttributes", + "message", + "messageClass", + "messageHandlers", + "messageType", + "metaKey", + "metadata", + "method", + "methodDetails", + "methodName", + "mid", + "mimeType", + "mimeTypes", + "min", + "min-block-size", + "min-height", + "min-inline-size", + "min-width", + "minBlockSize", + "minDecibels", + "minHeight", + "minInlineSize", + "minLength", + "minValue", + "minWidth", + "minZoom", + "minimize", + "minimumFractionDigits", + "minimumIntegerDigits", + "minute", + "miterLimit", + "mix-blend-mode", + "mixBlendMode", + "mm", + "mode", + "modify", + "month", + "motion", + "motionOffset", + "motionPath", + "motionRotation", + "mount", + "move", + "moveBy", + "moveEnd", + "moveFirst", + "moveFocusDown", + "moveFocusLeft", + "moveFocusRight", + "moveFocusUp", + "moveNext", + "moveRow", + "moveStart", + "moveTo", + "moveToBookmark", + "moveToElementText", + "moveToPoint", + "movementX", + "movementY", + "mozAdd", + "mozAnimationStartTime", + "mozAnon", + "mozApps", + "mozAudioCaptured", + "mozAudioChannelType", + "mozAutoplayEnabled", + "mozCancelAnimationFrame", + "mozCancelFullScreen", + "mozCancelRequestAnimationFrame", + "mozCaptureStream", + "mozCaptureStreamUntilEnded", + "mozClearDataAt", + "mozContact", + "mozContacts", + "mozCreateFileHandle", + "mozCurrentTransform", + "mozCurrentTransformInverse", + "mozCursor", + "mozDash", + "mozDashOffset", + "mozDecodedFrames", + "mozExitPointerLock", + "mozFillRule", + "mozFragmentEnd", + "mozFrameDelay", + "mozFullScreen", + "mozFullScreenElement", + "mozFullScreenEnabled", + "mozGetAll", + "mozGetAllKeys", + "mozGetAsFile", + "mozGetDataAt", + "mozGetMetadata", + "mozGetUserMedia", + "mozHasAudio", + "mozHasItem", + "mozHidden", + "mozImageSmoothingEnabled", + "mozIndexedDB", + "mozInnerScreenX", + "mozInnerScreenY", + "mozInputSource", + "mozIsTextField", + "mozItem", + "mozItemCount", + "mozItems", + "mozLength", + "mozLockOrientation", + "mozMatchesSelector", + "mozMovementX", + "mozMovementY", + "mozOpaque", + "mozOrientation", + "mozPaintCount", + "mozPaintedFrames", + "mozParsedFrames", + "mozPay", + "mozPointerLockElement", + "mozPresentedFrames", + "mozPreservesPitch", + "mozPressure", + "mozPrintCallback", + "mozRTCIceCandidate", + "mozRTCPeerConnection", + "mozRTCSessionDescription", + "mozRemove", + "mozRequestAnimationFrame", + "mozRequestFullScreen", + "mozRequestPointerLock", + "mozSetDataAt", + "mozSetImageElement", + "mozSourceNode", + "mozSrcObject", + "mozSystem", + "mozTCPSocket", + "mozTextStyle", + "mozTypesAt", + "mozUnlockOrientation", + "mozUserCancelled", + "mozVisibilityState", + "ms", + "msAnimation", + "msAnimationDelay", + "msAnimationDirection", + "msAnimationDuration", + "msAnimationFillMode", + "msAnimationIterationCount", + "msAnimationName", + "msAnimationPlayState", + "msAnimationStartTime", + "msAnimationTimingFunction", + "msBackfaceVisibility", + "msBlockProgression", + "msCSSOMElementFloatMetrics", + "msCaching", + "msCachingEnabled", + "msCancelRequestAnimationFrame", + "msCapsLockWarningOff", + "msClearImmediate", + "msClose", + "msContentZoomChaining", + "msContentZoomFactor", + "msContentZoomLimit", + "msContentZoomLimitMax", + "msContentZoomLimitMin", + "msContentZoomSnap", + "msContentZoomSnapPoints", + "msContentZoomSnapType", + "msContentZooming", + "msConvertURL", + "msCrypto", + "msDoNotTrack", + "msElementsFromPoint", + "msElementsFromRect", + "msExitFullscreen", + "msExtendedCode", + "msFillRule", + "msFirstPaint", + "msFlex", + "msFlexAlign", + "msFlexDirection", + "msFlexFlow", + "msFlexItemAlign", + "msFlexLinePack", + "msFlexNegative", + "msFlexOrder", + "msFlexPack", + "msFlexPositive", + "msFlexPreferredSize", + "msFlexWrap", + "msFlowFrom", + "msFlowInto", + "msFontFeatureSettings", + "msFullscreenElement", + "msFullscreenEnabled", + "msGetInputContext", + "msGetRegionContent", + "msGetUntransformedBounds", + "msGraphicsTrustStatus", + "msGridColumn", + "msGridColumnAlign", + "msGridColumnSpan", + "msGridColumns", + "msGridRow", + "msGridRowAlign", + "msGridRowSpan", + "msGridRows", + "msHidden", + "msHighContrastAdjust", + "msHyphenateLimitChars", + "msHyphenateLimitLines", + "msHyphenateLimitZone", + "msHyphens", + "msImageSmoothingEnabled", + "msImeAlign", + "msIndexedDB", + "msInterpolationMode", + "msIsStaticHTML", + "msKeySystem", + "msKeys", + "msLaunchUri", + "msLockOrientation", + "msManipulationViewsEnabled", + "msMatchMedia", + "msMatchesSelector", + "msMaxTouchPoints", + "msOrientation", + "msOverflowStyle", + "msPerspective", + "msPerspectiveOrigin", + "msPlayToDisabled", + "msPlayToPreferredSourceUri", + "msPlayToPrimary", + "msPointerEnabled", + "msRegionOverflow", + "msReleasePointerCapture", + "msRequestAnimationFrame", + "msRequestFullscreen", + "msSaveBlob", + "msSaveOrOpenBlob", + "msScrollChaining", + "msScrollLimit", + "msScrollLimitXMax", + "msScrollLimitXMin", + "msScrollLimitYMax", + "msScrollLimitYMin", + "msScrollRails", + "msScrollSnapPointsX", + "msScrollSnapPointsY", + "msScrollSnapType", + "msScrollSnapX", + "msScrollSnapY", + "msScrollTranslation", + "msSetImmediate", + "msSetMediaKeys", + "msSetPointerCapture", + "msTextCombineHorizontal", + "msTextSizeAdjust", + "msToBlob", + "msTouchAction", + "msTouchSelect", + "msTraceAsyncCallbackCompleted", + "msTraceAsyncCallbackStarting", + "msTraceAsyncOperationCompleted", + "msTraceAsyncOperationStarting", + "msTransform", + "msTransformOrigin", + "msTransformStyle", + "msTransition", + "msTransitionDelay", + "msTransitionDuration", + "msTransitionProperty", + "msTransitionTimingFunction", + "msUnlockOrientation", + "msUpdateAsyncCallbackRelation", + "msUserSelect", + "msVisibilityState", + "msWrapFlow", + "msWrapMargin", + "msWrapThrough", + "msWriteProfilerMark", + "msZoom", + "msZoomTo", + "mt", + "mul", + "multiEntry", + "multiSelectionObj", + "multiline", + "multiple", + "multiply", + "multiplySelf", + "mutableFile", + "muted", + "n", + "name", + "nameProp", + "namedItem", + "namedRecordset", + "names", + "namespaceURI", + "namespaces", + "naturalHeight", + "naturalWidth", + "navigate", + "navigation", + "navigationMode", + "navigationPreload", + "navigationStart", + "navigationType", + "navigator", + "near", + "nearestViewportElement", + "negative", + "negotiated", + "netscape", + "networkState", + "newScale", + "newTranslate", + "newURL", + "newValue", + "newValueSpecifiedUnits", + "newVersion", + "newhome", + "next", + "nextElementSibling", + "nextHopProtocol", + "nextNode", + "nextPage", + "nextSibling", + "nickname", + "noHref", + "noModule", + "noResize", + "noShade", + "noValidate", + "noWrap", + "node", + "nodeName", + "nodeType", + "nodeValue", + "nonce", + "normalize", + "normalizedPathSegList", + "notationName", + "notations", + "note", + "noteGrainOn", + "noteOff", + "noteOn", + "notify", + "now", + "npnNegotiatedProtocol", + "numOctaves", + "number", + "numberOfChannels", + "numberOfInputs", + "numberOfItems", + "numberOfOutputs", + "numberValue", + "numberingSystem", + "numeric", + "oMatchesSelector", + "object", + "object-fit", + "object-position", + "objectFit", + "objectPosition", + "objectStore", + "objectStoreNames", + "observe", + "observedAttributes", + "of", + "offscreenBuffering", + "offset", + "offset-anchor", + "offset-block-end", + "offset-block-start", + "offset-distance", + "offset-inline-end", + "offset-inline-start", + "offset-path", + "offset-rotate", + "offsetAnchor", + "offsetBlockEnd", + "offsetBlockStart", + "offsetDistance", + "offsetHeight", + "offsetInlineEnd", + "offsetInlineStart", + "offsetLeft", + "offsetNode", + "offsetParent", + "offsetPath", + "offsetRotate", + "offsetTop", + "offsetWidth", + "offsetX", + "offsetY", + "ok", + "oldURL", + "oldValue", + "oldVersion", + "olderShadowRoot", + "onDownloadProgress", + "onInstallStageChanged", + "onLine", + "onabort", + "onabsolutedeviceorientation", + "onactivate", + "onactive", + "onaddsourcebuffer", + "onaddstream", + "onaddtrack", + "onafterprint", + "onafterscriptexecute", + "onafterupdate", + "onanimationcancel", + "onanimationend", + "onanimationiteration", + "onanimationstart", + "onappinstalled", + "onaudioend", + "onaudioprocess", + "onaudiostart", + "onautocomplete", + "onautocompleteerror", + "onauxclick", + "onbeforeactivate", + "onbeforecopy", + "onbeforecut", + "onbeforedeactivate", + "onbeforeeditfocus", + "onbeforeinput", + "onbeforeinstallprompt", + "onbeforeload", + "onbeforepaste", + "onbeforeprint", + "onbeforescriptexecute", + "onbeforeunload", + "onbeforeupdate", + "onbeforexrselect", + "onbegin", + "onblocked", + "onblur", + "onbounce", + "onboundary", + "onbufferedamountlow", + "oncached", + "oncancel", + "oncandidatewindowhide", + "oncandidatewindowshow", + "oncandidatewindowupdate", + "oncanplay", + "oncanplaythrough", + "once", + "oncellchange", + "onchange", + "oncharacteristicvaluechanged", + "onchargingchange", + "onchargingtimechange", + "onchecking", + "onclick", + "onclose", + "onclosing", + "oncompassneedscalibration", + "oncomplete", + "onconnect", + "onconnecting", + "onconnectionavailable", + "onconnectionstatechange", + "oncontactchange", + "oncontextmenu", + "oncontrollerchange", + "oncontrolselect", + "oncopy", + "oncuechange", + "oncut", + "ondataavailable", + "ondatachannel", + "ondatasetchanged", + "ondatasetcomplete", + "ondblclick", + "ondeactivate", + "ondevicechange", + "ondevicelight", + "ondevicemotion", + "ondeviceorientation", + "ondeviceorientationabsolute", + "ondeviceproximity", + "ondischargingtimechange", + "ondisconnect", + "ondisplay", + "ondownloading", + "ondrag", + "ondragend", + "ondragenter", + "ondragexit", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onencrypted", + "onend", + "onended", + "onenter", + "onenterpictureinpicture", + "onerror", + "onerrorupdate", + "onexit", + "onfilterchange", + "onfinish", + "onfocus", + "onfocusin", + "onfocusout", + "onformdata", + "onfreeze", + "onfullscreenchange", + "onfullscreenerror", + "ongatheringstatechange", + "ongattserverdisconnected", + "ongesturechange", + "ongestureend", + "ongesturestart", + "ongotpointercapture", + "onhashchange", + "onhelp", + "onicecandidate", + "onicecandidateerror", + "oniceconnectionstatechange", + "onicegatheringstatechange", + "oninactive", + "oninput", + "oninputsourceschange", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeystatuseschange", + "onkeyup", + "onlanguagechange", + "onlayoutcomplete", + "onleavepictureinpicture", + "onlevelchange", + "onload", + "onloadT", + "onloadeddata", + "onloadedmetadata", + "onloadend", + "onloading", + "onloadingdone", + "onloadingerror", + "onloadstart", + "onlosecapture", + "onlostpointercapture", + "only", + "onmark", + "onmessage", + "onmessageerror", + "onmidimessage", + "onmousedown", + "onmouseenter", + "onmouseleave", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onmove", + "onmoveend", + "onmovestart", + "onmozfullscreenchange", + "onmozfullscreenerror", + "onmozorientationchange", + "onmozpointerlockchange", + "onmozpointerlockerror", + "onmscontentzoom", + "onmsfullscreenchange", + "onmsfullscreenerror", + "onmsgesturechange", + "onmsgesturedoubletap", + "onmsgestureend", + "onmsgesturehold", + "onmsgesturestart", + "onmsgesturetap", + "onmsgotpointercapture", + "onmsinertiastart", + "onmslostpointercapture", + "onmsmanipulationstatechanged", + "onmsneedkey", + "onmsorientationchange", + "onmspointercancel", + "onmspointerdown", + "onmspointerenter", + "onmspointerhover", + "onmspointerleave", + "onmspointermove", + "onmspointerout", + "onmspointerover", + "onmspointerup", + "onmssitemodejumplistitemremoved", + "onmsthumbnailclick", + "onmute", + "onnegotiationneeded", + "onnomatch", + "onnoupdate", + "onobsolete", + "onoffline", + "ononline", + "onopen", + "onorientationchange", + "onoverconstrained", + "onpage", + "onpagechange", + "onpagehide", + "onpageshow", + "onpaste", + "onpause", + "onpayerdetailchange", + "onpaymentmethodchange", + "onplay", + "onplaying", + "onpluginstreamstart", + "onpointercancel", + "onpointerdown", + "onpointerenter", + "onpointerleave", + "onpointerlockchange", + "onpointerlockerror", + "onpointermove", + "onpointerout", + "onpointerover", + "onpointerrawupdate", + "onpointerup", + "onpopstate", + "onprocessorerror", + "onprogress", + "onpropertychange", + "onratechange", + "onreading", + "onreadystatechange", + "onrejectionhandled", + "onrelease", + "onremove", + "onremovesourcebuffer", + "onremovestream", + "onremovetrack", + "onrepeat", + "onreset", + "onresize", + "onresizeend", + "onresizestart", + "onresourcetimingbufferfull", + "onresult", + "onresume", + "onrowenter", + "onrowexit", + "onrowsdelete", + "onrowsinserted", + "onscroll", + "onsearch", + "onsecuritypolicyviolation", + "onseeked", + "onseeking", + "onselect", + "onselectedcandidatepairchange", + "onselectend", + "onselectionchange", + "onselectstart", + "onshippingaddresschange", + "onshippingoptionchange", + "onshow", + "onsignalingstatechange", + "onsoundend", + "onsoundstart", + "onsourceclose", + "onsourceclosed", + "onsourceended", + "onsourceopen", + "onspeechend", + "onspeechstart", + "onsqueeze", + "onsqueezeend", + "onsqueezestart", + "onstalled", + "onstart", + "onstatechange", + "onstop", + "onstorage", + "onstoragecommit", + "onsubmit", + "onsuccess", + "onsuspend", + "onterminate", + "ontextinput", + "ontimeout", + "ontimeupdate", + "ontoggle", + "ontonechange", + "ontouchcancel", + "ontouchend", + "ontouchmove", + "ontouchstart", + "ontrack", + "ontransitioncancel", + "ontransitionend", + "ontransitionrun", + "ontransitionstart", + "onunhandledrejection", + "onunload", + "onunmute", + "onupdate", + "onupdateend", + "onupdatefound", + "onupdateready", + "onupdatestart", + "onupgradeneeded", + "onuserproximity", + "onversionchange", + "onvisibilitychange", + "onvoiceschanged", + "onvolumechange", + "onvrdisplayactivate", + "onvrdisplayconnect", + "onvrdisplaydeactivate", + "onvrdisplaydisconnect", + "onvrdisplaypresentchange", + "onwaiting", + "onwaitingforkey", + "onwarning", + "onwebkitanimationend", + "onwebkitanimationiteration", + "onwebkitanimationstart", + "onwebkitcurrentplaybacktargetiswirelesschanged", + "onwebkitfullscreenchange", + "onwebkitfullscreenerror", + "onwebkitkeyadded", + "onwebkitkeyerror", + "onwebkitkeymessage", + "onwebkitmouseforcechanged", + "onwebkitmouseforcedown", + "onwebkitmouseforceup", + "onwebkitmouseforcewillbegin", + "onwebkitneedkey", + "onwebkitorientationchange", + "onwebkitplaybacktargetavailabilitychanged", + "onwebkitpointerlockchange", + "onwebkitpointerlockerror", + "onwebkitresourcetimingbufferfull", + "onwebkittransitionend", + "onwheel", + "onzoom", + "opacity", + "open", + "openCursor", + "openDatabase", + "openKeyCursor", + "opened", + "opener", + "opera", + "operationType", + "operator", + "opr", + "opsProfile", + "optimum", + "options", + "or", + "order", + "orderX", + "orderY", + "ordered", + "org", + "organization", + "orient", + "orientAngle", + "orientType", + "orientation", + "orientationX", + "orientationY", + "orientationZ", + "origin", + "originalPolicy", + "originalTarget", + "orphans", + "oscpu", + "outcome", + "outerHTML", + "outerHeight", + "outerText", + "outerWidth", + "outline", + "outline-color", + "outline-offset", + "outline-style", + "outline-width", + "outlineColor", + "outlineOffset", + "outlineStyle", + "outlineWidth", + "outputBuffer", + "outputLatency", + "outputs", + "overflow", + "overflow-anchor", + "overflow-block", + "overflow-inline", + "overflow-wrap", + "overflow-x", + "overflow-y", + "overflowAnchor", + "overflowBlock", + "overflowInline", + "overflowWrap", + "overflowX", + "overflowY", + "overrideMimeType", + "oversample", + "overscroll-behavior", + "overscroll-behavior-block", + "overscroll-behavior-inline", + "overscroll-behavior-x", + "overscroll-behavior-y", + "overscrollBehavior", + "overscrollBehaviorBlock", + "overscrollBehaviorInline", + "overscrollBehaviorX", + "overscrollBehaviorY", + "ownKeys", + "ownerDocument", + "ownerElement", + "ownerNode", + "ownerRule", + "ownerSVGElement", + "owningElement", + "p1", + "p2", + "p3", + "p4", + "packetSize", + "packets", + "pad", + "padEnd", + "padStart", + "padding", + "padding-block", + "padding-block-end", + "padding-block-start", + "padding-bottom", + "padding-inline", + "padding-inline-end", + "padding-inline-start", + "padding-left", + "padding-right", + "padding-top", + "paddingBlock", + "paddingBlockEnd", + "paddingBlockStart", + "paddingBottom", + "paddingInline", + "paddingInlineEnd", + "paddingInlineStart", + "paddingLeft", + "paddingRight", + "paddingTop", + "page", + "page-break-after", + "page-break-before", + "page-break-inside", + "pageBreakAfter", + "pageBreakBefore", + "pageBreakInside", + "pageCount", + "pageLeft", + "pageT", + "pageTop", + "pageX", + "pageXOffset", + "pageY", + "pageYOffset", + "pages", + "paint-order", + "paintOrder", + "paintRequests", + "paintType", + "paintWorklet", + "palette", + "pan", + "panningModel", + "parameters", + "parent", + "parentElement", + "parentNode", + "parentRule", + "parentStyleSheet", + "parentTextEdit", + "parentWindow", + "parse", + "parseAll", + "parseFloat", + "parseFromString", + "parseInt", + "part", + "participants", + "passive", + "password", + "pasteHTML", + "path", + "pathLength", + "pathSegList", + "pathSegType", + "pathSegTypeAsLetter", + "pathname", + "pattern", + "patternContentUnits", + "patternMismatch", + "patternTransform", + "patternUnits", + "pause", + "pauseAnimations", + "pauseOnExit", + "pauseTransformFeedback", + "paused", + "payerEmail", + "payerName", + "payerPhone", + "paymentManager", + "pc", + "peerIdentity", + "pending", + "pendingLocalDescription", + "pendingRemoteDescription", + "percent", + "performance", + "periodicSync", + "permission", + "permissionState", + "permissions", + "persist", + "persisted", + "personalbar", + "perspective", + "perspective-origin", + "perspectiveOrigin", + "perspectiveOriginX", + "perspectiveOriginY", + "phone", + "phoneticFamilyName", + "phoneticGivenName", + "photo", + "pictureInPictureElement", + "pictureInPictureEnabled", + "pictureInPictureWindow", + "ping", + "pipeThrough", + "pipeTo", + "pitch", + "pixelBottom", + "pixelDepth", + "pixelHeight", + "pixelLeft", + "pixelRight", + "pixelStorei", + "pixelTop", + "pixelUnitToMillimeterX", + "pixelUnitToMillimeterY", + "pixelWidth", + "place-content", + "place-items", + "place-self", + "placeContent", + "placeItems", + "placeSelf", + "placeholder", + "platform", + "platforms", + "play", + "playEffect", + "playState", + "playbackRate", + "playbackState", + "playbackTime", + "played", + "playoutDelayHint", + "playsInline", + "plugins", + "pluginspage", + "pname", + "pointer-events", + "pointerBeforeReferenceNode", + "pointerEnabled", + "pointerEvents", + "pointerId", + "pointerLockElement", + "pointerType", + "points", + "pointsAtX", + "pointsAtY", + "pointsAtZ", + "polygonOffset", + "pop", + "populateMatrix", + "popupWindowFeatures", + "popupWindowName", + "popupWindowURI", + "port", + "port1", + "port2", + "ports", + "posBottom", + "posHeight", + "posLeft", + "posRight", + "posTop", + "posWidth", + "pose", + "position", + "positionAlign", + "positionX", + "positionY", + "positionZ", + "postError", + "postMessage", + "postalCode", + "poster", + "pow", + "powerEfficient", + "powerOff", + "preMultiplySelf", + "precision", + "preferredStyleSheetSet", + "preferredStylesheetSet", + "prefix", + "preload", + "prepend", + "presentation", + "preserveAlpha", + "preserveAspectRatio", + "preserveAspectRatioString", + "pressed", + "pressure", + "prevValue", + "preventDefault", + "preventExtensions", + "preventSilentAccess", + "previousElementSibling", + "previousNode", + "previousPage", + "previousRect", + "previousScale", + "previousSibling", + "previousTranslate", + "primaryKey", + "primitiveType", + "primitiveUnits", + "principals", + "print", + "priority", + "privateKey", + "probablySupportsContext", + "process", + "processIceMessage", + "processingEnd", + "processingStart", + "product", + "productId", + "productName", + "productSub", + "profile", + "profileEnd", + "profiles", + "projectionMatrix", + "promise", + "prompt", + "properties", + "propertyIsEnumerable", + "propertyName", + "protocol", + "protocolLong", + "prototype", + "provider", + "pseudoClass", + "pseudoElement", + "pt", + "publicId", + "publicKey", + "published", + "pulse", + "push", + "pushManager", + "pushNotification", + "pushState", + "put", + "putImageData", + "px", + "quadraticCurveTo", + "qualifier", + "quaternion", + "query", + "queryCommandEnabled", + "queryCommandIndeterm", + "queryCommandState", + "queryCommandSupported", + "queryCommandText", + "queryCommandValue", + "querySelector", + "querySelectorAll", + "queryUsageAndQuota", + "queueMicrotask", + "quote", + "quotes", + "r", + "r1", + "r2", + "race", + "rad", + "radiogroup", + "radiusX", + "radiusY", + "random", + "range", + "rangeCount", + "rangeMax", + "rangeMin", + "rangeOffset", + "rangeOverflow", + "rangeParent", + "rangeUnderflow", + "rate", + "ratio", + "raw", + "rawId", + "read", + "readAsArrayBuffer", + "readAsBinaryString", + "readAsBlob", + "readAsDataURL", + "readAsText", + "readBuffer", + "readEntries", + "readOnly", + "readPixels", + "readReportRequested", + "readText", + "readTransaction", + "readValue", + "readable", + "ready", + "readyState", + "reason", + "reboot", + "receivedAlert", + "receivedTime", + "receiver", + "receivers", + "recipient", + "reconnect", + "record", + "recordEnd", + "recordNumber", + "recordsAvailable", + "recordset", + "rect", + "red", + "redEyeReduction", + "redirect", + "redirectCount", + "redirectEnd", + "redirectStart", + "redirected", + "reduce", + "reduceRight", + "reduction", + "refDistance", + "refX", + "refY", + "referenceNode", + "referenceSpace", + "referrer", + "referrerPolicy", + "refresh", + "region", + "regionAnchorX", + "regionAnchorY", + "regionId", + "regions", + "register", + "registerContentHandler", + "registerElement", + "registerProperty", + "registerProtocolHandler", + "reject", + "rel", + "relList", + "relatedAddress", + "relatedNode", + "relatedPort", + "relatedTarget", + "release", + "releaseCapture", + "releaseEvents", + "releaseInterface", + "releaseLock", + "releasePointerCapture", + "releaseShaderCompiler", + "reliable", + "reliableWrite", + "reload", + "rem", + "remainingSpace", + "remote", + "remoteDescription", + "remove", + "removeAllRanges", + "removeAttribute", + "removeAttributeNS", + "removeAttributeNode", + "removeBehavior", + "removeChild", + "removeCue", + "removeEventListener", + "removeFilter", + "removeImport", + "removeItem", + "removeListener", + "removeNamedItem", + "removeNamedItemNS", + "removeNode", + "removeParameter", + "removeProperty", + "removeRange", + "removeRegion", + "removeRule", + "removeRules", + "removeSiteSpecificTrackingException", + "removeSourceBuffer", + "removeStream", + "removeTrack", + "removeVariable", + "removeWakeLockListener", + "removeWebWideTrackingException", + "removed", + "removedNodes", + "renderHeight", + "renderState", + "renderTime", + "renderWidth", + "renderbufferStorage", + "renderbufferStorageMultisample", + "renderedBuffer", + "renderingMode", + "renotify", + "repeat", + "replace", + "replaceAdjacentText", + "replaceAll", + "replaceChild", + "replaceChildren", + "replaceData", + "replaceId", + "replaceItem", + "replaceNode", + "replaceState", + "replaceSync", + "replaceTrack", + "replaceWholeText", + "replaceWith", + "reportValidity", + "request", + "requestAnimationFrame", + "requestAutocomplete", + "requestData", + "requestDevice", + "requestFrame", + "requestFullscreen", + "requestHitTestSource", + "requestHitTestSourceForTransientInput", + "requestId", + "requestIdleCallback", + "requestMIDIAccess", + "requestMediaKeySystemAccess", + "requestPermission", + "requestPictureInPicture", + "requestPointerLock", + "requestPresent", + "requestQuota", + "requestReferenceSpace", + "requestSession", + "requestStart", + "requestStorageAccess", + "requestSubmit", + "requestTime", + "requestVideoFrameCallback", + "requestedLocale", + "requestingWindow", + "requireInteraction", + "required", + "requiredExtensions", + "requiredFeatures", + "reset", + "resetPose", + "resetTransform", + "resize", + "resizeBy", + "resizeTo", + "resolve", + "resolved", + "resolvedOptions", + "resource-history", + "resourcesFramesExpanded", + "response", + "responseBody", + "responseEnd", + "responseReady", + "responseStart", + "responseText", + "responseType", + "responseURL", + "responseXML", + "restartIce", + "restore", + "result", + "resultIndex", + "resultType", + "results", + "resume", + "resumeTransformFeedback", + "retry", + "returnValue", + "rev", + "reverse", + "reversed", + "revocable", + "revokeObjectURL", + "rgbColor", + "right", + "rightContext", + "rightDegrees", + "rightMargin", + "rightProjectionMatrix", + "rightViewMatrix", + "role", + "rolloffFactor", + "root", + "rootBounds", + "rootElement", + "rootMargin", + "rotate", + "rotateAxisAngle", + "rotateAxisAngleSelf", + "rotateFromVector", + "rotateFromVectorSelf", + "rotateSelf", + "rotation", + "rotationAngle", + "rotationRate", + "round", + "row-gap", + "rowGap", + "rowIndex", + "rowSpan", + "rows", + "rowsAffected", + "rtcpTransport", + "rtt", + "ruby-align", + "ruby-position", + "rubyAlign", + "rubyOverhang", + "rubyPosition", + "rules", + "runningState", + "runtime", + "runtimeStyle", + "rx", + "ry", + "s", + "safari", + "sample", + "sampleCoverage", + "sampleRate", + "samplerParameterf", + "samplerParameteri", + "sandbox", + "save", + "saveData", + "scale", + "scale3d", + "scale3dSelf", + "scaleNonUniform", + "scaleNonUniformSelf", + "scaleSelf", + "scheme", + "scissor", + "scope", + "scopeName", + "scoped", + "screen", + "screenBrightness", + "screenEnabled", + "screenLeft", + "screenPixelToMillimeterX", + "screenPixelToMillimeterY", + "screenTop", + "screenX", + "screenY", + "script", + "scriptURL", + "scripts", + "scroll", + "scroll-behavior", + "scroll-margin", + "scroll-margin-block", + "scroll-margin-block-end", + "scroll-margin-block-start", + "scroll-margin-bottom", + "scroll-margin-inline", + "scroll-margin-inline-end", + "scroll-margin-inline-start", + "scroll-margin-left", + "scroll-margin-right", + "scroll-margin-top", + "scroll-padding", + "scroll-padding-block", + "scroll-padding-block-end", + "scroll-padding-block-start", + "scroll-padding-bottom", + "scroll-padding-inline", + "scroll-padding-inline-end", + "scroll-padding-inline-start", + "scroll-padding-left", + "scroll-padding-right", + "scroll-padding-top", + "scroll-snap-align", + "scroll-snap-coordinate", + "scroll-snap-destination", + "scroll-snap-points-x", + "scroll-snap-points-y", + "scroll-snap-type", + "scroll-snap-type-x", + "scroll-snap-type-y", + "scrollAmount", + "scrollBehavior", + "scrollBy", + "scrollByLines", + "scrollByPages", + "scrollDelay", + "scrollHeight", + "scrollIntoView", + "scrollIntoViewIfNeeded", + "scrollLeft", + "scrollLeftMax", + "scrollMargin", + "scrollMarginBlock", + "scrollMarginBlockEnd", + "scrollMarginBlockStart", + "scrollMarginBottom", + "scrollMarginInline", + "scrollMarginInlineEnd", + "scrollMarginInlineStart", + "scrollMarginLeft", + "scrollMarginRight", + "scrollMarginTop", + "scrollMaxX", + "scrollMaxY", + "scrollPadding", + "scrollPaddingBlock", + "scrollPaddingBlockEnd", + "scrollPaddingBlockStart", + "scrollPaddingBottom", + "scrollPaddingInline", + "scrollPaddingInlineEnd", + "scrollPaddingInlineStart", + "scrollPaddingLeft", + "scrollPaddingRight", + "scrollPaddingTop", + "scrollRestoration", + "scrollSnapAlign", + "scrollSnapCoordinate", + "scrollSnapDestination", + "scrollSnapMargin", + "scrollSnapMarginBottom", + "scrollSnapMarginLeft", + "scrollSnapMarginRight", + "scrollSnapMarginTop", + "scrollSnapPointsX", + "scrollSnapPointsY", + "scrollSnapStop", + "scrollSnapType", + "scrollSnapTypeX", + "scrollSnapTypeY", + "scrollTo", + "scrollTop", + "scrollTopMax", + "scrollWidth", + "scrollX", + "scrollY", + "scrollbar-color", + "scrollbar-width", + "scrollbar3dLightColor", + "scrollbarArrowColor", + "scrollbarBaseColor", + "scrollbarColor", + "scrollbarDarkShadowColor", + "scrollbarFaceColor", + "scrollbarHighlightColor", + "scrollbarShadowColor", + "scrollbarTrackColor", + "scrollbarWidth", + "scrollbars", + "scrolling", + "scrollingElement", + "sctp", + "sctpCauseCode", + "sdp", + "sdpLineNumber", + "sdpMLineIndex", + "sdpMid", + "seal", + "search", + "searchBox", + "searchBoxJavaBridge_", + "searchParams", + "second", + "sectionRowIndex", + "secureConnectionStart", + "security", + "seed", + "seekToNextFrame", + "seekable", + "seeking", + "select", + "selectAllChildren", + "selectAlternateInterface", + "selectConfiguration", + "selectNode", + "selectNodeContents", + "selectNodes", + "selectSingleNode", + "selectSubString", + "selected", + "selectedIndex", + "selectedOption", + "selectedOptions", + "selectedStyleSheetSet", + "selectedStylesheetSet", + "selection", + "selectionDirection", + "selectionEnd", + "selectionStart", + "selector", + "selectorText", + "self", + "send", + "sendAsBinary", + "sendBeacon", + "sendMessage", + "sender", + "sensitivity", + "sentAlert", + "sentTimestamp", + "separator", + "serialNumber", + "serializeToString", + "serverTiming", + "service", + "serviceWorker", + "session", + "sessionId", + "sessionStorage", + "set", + "setActionHandler", + "setActive", + "setAlpha", + "setAppBadge", + "setAttribute", + "setAttributeNS", + "setAttributeNode", + "setAttributeNodeNS", + "setBaseAndExtent", + "setBigInt64", + "setBigUint64", + "setBingCurrentSearchDefault", + "setCapture", + "setCodecPreferences", + "setColor", + "setCompositeOperation", + "setConfiguration", + "setCurrentTime", + "setCustomValidity", + "setData", + "setDate", + "setDirection", + "setDragImage", + "setEnd", + "setEndAfter", + "setEndBefore", + "setEndPoint", + "setFillColor", + "setFilterRes", + "setFloat32", + "setFloat64", + "setFloatValue", + "setFormValue", + "setFullYear", + "setHeaderValue", + "setHours", + "setIdentityProvider", + "setImmediate", + "setInt16", + "setInt32", + "setInt8", + "setInterval", + "setItem", + "setKeyframes", + "setLineCap", + "setLineDash", + "setLineJoin", + "setLineWidth", + "setLiveSeekableRange", + "setLocalDescription", + "setMatrix", + "setMatrixValue", + "setMediaKeys", + "setMilliseconds", + "setMinutes", + "setMiterLimit", + "setMonth", + "setNamedItem", + "setNamedItemNS", + "setNonUserCodeExceptions", + "setOrientToAngle", + "setOrientToAuto", + "setOrientation", + "setOverrideHistoryNavigationMode", + "setPaint", + "setParameter", + "setParameters", + "setPeriodicWave", + "setPointerCapture", + "setPosition", + "setPositionState", + "setPreference", + "setProperty", + "setPrototypeOf", + "setRGBColor", + "setRGBColorICCColor", + "setRadius", + "setRangeText", + "setRemoteDescription", + "setRequestHeader", + "setResizable", + "setResourceTimingBufferSize", + "setRotate", + "setScale", + "setSeconds", + "setSelectionRange", + "setServerCertificate", + "setShadow", + "setSinkId", + "setSkewX", + "setSkewY", + "setStart", + "setStartAfter", + "setStartBefore", + "setStdDeviation", + "setStreams", + "setStringValue", + "setStrokeColor", + "setSuggestResult", + "setTargetAtTime", + "setTargetValueAtTime", + "setTime", + "setTimeout", + "setTransform", + "setTranslate", + "setUTCDate", + "setUTCFullYear", + "setUTCHours", + "setUTCMilliseconds", + "setUTCMinutes", + "setUTCMonth", + "setUTCSeconds", + "setUint16", + "setUint32", + "setUint8", + "setUri", + "setValidity", + "setValueAtTime", + "setValueCurveAtTime", + "setVariable", + "setVelocity", + "setVersion", + "setYear", + "settingName", + "settingValue", + "sex", + "shaderSource", + "shadowBlur", + "shadowColor", + "shadowOffsetX", + "shadowOffsetY", + "shadowRoot", + "shape", + "shape-image-threshold", + "shape-margin", + "shape-outside", + "shape-rendering", + "shapeImageThreshold", + "shapeMargin", + "shapeOutside", + "shapeRendering", + "sheet", + "shift", + "shiftKey", + "shiftLeft", + "shippingAddress", + "shippingOption", + "shippingType", + "show", + "showHelp", + "showModal", + "showModalDialog", + "showModelessDialog", + "showNotification", + "sidebar", + "sign", + "signal", + "signalingState", + "signature", + "silent", + "sin", + "singleNodeValue", + "sinh", + "sinkId", + "sittingToStandingTransform", + "size", + "sizeToContent", + "sizeX", + "sizeZ", + "sizes", + "skewX", + "skewXSelf", + "skewY", + "skewYSelf", + "slice", + "slope", + "slot", + "small", + "smil", + "smooth", + "smoothingTimeConstant", + "snapToLines", + "snapshotItem", + "snapshotLength", + "some", + "sort", + "sortingCode", + "source", + "sourceBuffer", + "sourceBuffers", + "sourceCapabilities", + "sourceFile", + "sourceIndex", + "sourceURL", + "sources", + "spacing", + "span", + "speak", + "speakAs", + "speaking", + "species", + "specified", + "specularConstant", + "specularExponent", + "speechSynthesis", + "speed", + "speedOfSound", + "spellcheck", + "splice", + "split", + "splitText", + "spreadMethod", + "sqrt", + "src", + "srcElement", + "srcFilter", + "srcObject", + "srcUrn", + "srcdoc", + "srclang", + "srcset", + "stack", + "stackTraceLimit", + "stacktrace", + "stageParameters", + "standalone", + "standby", + "start", + "startContainer", + "startE", + "startIce", + "startLoadTime", + "startMessages", + "startNotifications", + "startOffset", + "startRendering", + "startSoftwareUpdate", + "startTime", + "startsWith", + "state", + "status", + "statusCode", + "statusMessage", + "statusText", + "statusbar", + "stdDeviationX", + "stdDeviationY", + "stencilFunc", + "stencilFuncSeparate", + "stencilMask", + "stencilMaskSeparate", + "stencilOp", + "stencilOpSeparate", + "step", + "stepDown", + "stepMismatch", + "stepUp", + "sticky", + "stitchTiles", + "stop", + "stop-color", + "stop-opacity", + "stopColor", + "stopImmediatePropagation", + "stopNotifications", + "stopOpacity", + "stopPropagation", + "stopped", + "storage", + "storageArea", + "storageName", + "storageStatus", + "store", + "storeSiteSpecificTrackingException", + "storeWebWideTrackingException", + "stpVersion", + "stream", + "streams", + "strength", + "stretch", + "strike", + "stringValue", + "stringify", + "stroke", + "stroke-dasharray", + "stroke-dashoffset", + "stroke-linecap", + "stroke-linejoin", + "stroke-miterlimit", + "stroke-opacity", + "stroke-width", + "strokeColor", + "strokeDasharray", + "strokeDashoffset", + "strokeLinecap", + "strokeLinejoin", + "strokeMiterlimit", + "strokeOpacity", + "strokeRect", + "strokeStyle", + "strokeText", + "strokeWidth", + "style", + "styleFloat", + "styleMap", + "styleMedia", + "styleSheet", + "styleSheetSets", + "styleSheets", + "sub", + "subarray", + "subject", + "submit", + "submitFrame", + "submitter", + "subscribe", + "substr", + "substring", + "substringData", + "subtle", + "subtree", + "suffix", + "suffixes", + "summary", + "sup", + "supported", + "supportedContentEncodings", + "supportedEntryTypes", + "supportedLocalesOf", + "supports", + "supportsSession", + "surfaceScale", + "surroundContents", + "suspend", + "suspendRedraw", + "swapCache", + "swapNode", + "sweepFlag", + "symbols", + "sync", + "sysexEnabled", + "system", + "systemCode", + "systemId", + "systemLanguage", + "systemXDPI", + "systemYDPI", + "tBodies", + "tFoot", + "tHead", + "tabIndex", + "tabSize", + "table", + "table-layout", + "tableLayout", + "tableValues", + "tag", + "tagName", + "tagUrn", + "tags", + "taintEnabled", + "takeHeapSnapshot", + "takePhoto", + "takeRecords", + "tan", + "tangentialPressure", + "tanh", + "target", + "targetElement", + "targetRayMode", + "targetRaySpace", + "targetTouches", + "targetX", + "targetY", + "tcpType", + "tee", + "tel", + "terminate", + "test", + "texImage2D", + "texImage3D", + "texParameterf", + "texParameteri", + "texStorage2D", + "texStorage3D", + "texSubImage2D", + "texSubImage3D", + "text", + "text-align", + "text-align-last", + "text-anchor", + "text-combine-upright", + "text-decoration", + "text-decoration-color", + "text-decoration-line", + "text-decoration-skip-ink", + "text-decoration-style", + "text-decoration-thickness", + "text-emphasis", + "text-emphasis-color", + "text-emphasis-position", + "text-emphasis-style", + "text-indent", + "text-justify", + "text-orientation", + "text-overflow", + "text-rendering", + "text-shadow", + "text-transform", + "text-underline-offset", + "text-underline-position", + "text/pdf", + "textAlign", + "textAlignLast", + "textAnchor", + "textAutospace", + "textBaseline", + "textCombineUpright", + "textContent", + "textDecoration", + "textDecorationBlink", + "textDecorationColor", + "textDecorationLine", + "textDecorationLineThrough", + "textDecorationNone", + "textDecorationOverline", + "textDecorationSkipInk", + "textDecorationStyle", + "textDecorationThickness", + "textDecorationUnderline", + "textEmphasis", + "textEmphasisColor", + "textEmphasisPosition", + "textEmphasisStyle", + "textIndent", + "textJustify", + "textJustifyTrim", + "textKashida", + "textKashidaSpace", + "textLength", + "textOrientation", + "textOverflow", + "textRendering", + "textShadow", + "textSizeAdjust", + "textTracks", + "textTransform", + "textUnderlineOffset", + "textUnderlinePosition", + "then", + "threadId", + "threshold", + "thresholds", + "tiltX", + "tiltY", + "time", + "timeEnd", + "timeLog", + "timeOrigin", + "timeRemaining", + "timeStamp", + "timeZone", + "timeZoneName", + "timecode", + "timeline", + "timelineEnd", + "timelineTime", + "timeout", + "timestamp", + "timestampOffset", + "timing", + "title", + "to", + "toArray", + "toBlob", + "toDataURL", + "toDateString", + "toElement", + "toExponential", + "toFixed", + "toFloat32Array", + "toFloat64Array", + "toGMTString", + "toISOString", + "toJSON", + "toLocaleDateString", + "toLocaleFormat", + "toLocaleLowerCase", + "toLocaleString", + "toLocaleTimeString", + "toLocaleUpperCase", + "toLowerCase", + "toMatrix", + "toMethod", + "toPrecision", + "toPrimitive", + "toSdp", + "toSource", + "toStaticHTML", + "toString", + "toStringTag", + "toSum", + "toTimeString", + "toUTCString", + "toUpperCase", + "toggle", + "toggleAttribute", + "toggleLongPressEnabled", + "tone", + "toneBuffer", + "tooLong", + "tooShort", + "toolbar", + "top", + "topMargin", + "total", + "totalFrameDelay", + "totalJSHeapSize", + "totalSize", + "totalVideoFrames", + "touch-action", + "touchAction", + "touched", + "touches", + "trace", + "track", + "trackVisibility", + "tran", + "transaction", + "transactions", + "transceiver", + "transferControlToOffscreen", + "transferFromImageBitmap", + "transferImageBitmap", + "transferIn", + "transferOut", + "transferSize", + "transferToImageBitmap", + "transform", + "transform-box", + "transform-origin", + "transform-style", + "transformBox", + "transformFeedbackVaryings", + "transformOrigin", + "transformOriginX", + "transformOriginY", + "transformOriginZ", + "transformPoint", + "transformString", + "transformStyle", + "transformToDocument", + "transformToFragment", + "transition", + "transition-delay", + "transition-duration", + "transition-property", + "transition-timing-function", + "transitionDelay", + "transitionDuration", + "transitionProperty", + "transitionTimingFunction", + "translate", + "translateSelf", + "translationX", + "translationY", + "transport", + "trim", + "trimEnd", + "trimLeft", + "trimRight", + "trimStart", + "trueSpeed", + "trunc", + "truncate", + "trustedTypes", + "turn", + "twist", + "type", + "typeDetail", + "typeMismatch", + "typeMustMatch", + "types", + "tz", + "u2f", + "ubound", + "undefined", + "unescape", + "uneval", + "unicode", + "unicode-bidi", + "unicodeBidi", + "unicodeRange", + "uniform1f", + "uniform1fv", + "uniform1i", + "uniform1iv", + "uniform1ui", + "uniform1uiv", + "uniform2f", + "uniform2fv", + "uniform2i", + "uniform2iv", + "uniform2ui", + "uniform2uiv", + "uniform3f", + "uniform3fv", + "uniform3i", + "uniform3iv", + "uniform3ui", + "uniform3uiv", + "uniform4f", + "uniform4fv", + "uniform4i", + "uniform4iv", + "uniform4ui", + "uniform4uiv", + "uniformBlockBinding", + "uniformMatrix2fv", + "uniformMatrix2x3fv", + "uniformMatrix2x4fv", + "uniformMatrix3fv", + "uniformMatrix3x2fv", + "uniformMatrix3x4fv", + "uniformMatrix4fv", + "uniformMatrix4x2fv", + "uniformMatrix4x3fv", + "unique", + "uniqueID", + "uniqueNumber", + "unit", + "unitType", + "units", + "unloadEventEnd", + "unloadEventStart", + "unlock", + "unmount", + "unobserve", + "unpause", + "unpauseAnimations", + "unreadCount", + "unregister", + "unregisterContentHandler", + "unregisterProtocolHandler", + "unscopables", + "unselectable", + "unshift", + "unsubscribe", + "unsuspendRedraw", + "unsuspendRedrawAll", + "unwatch", + "unwrapKey", + "upDegrees", + "upX", + "upY", + "upZ", + "update", + "updateCommands", + "updateEnabled", + "updateIce", + "updateInterval", + "updatePlaybackRate", + "updateRenderState", + "updateSettings", + "updateTiming", + "updateViaCache", + "updateWith", + "updated", + "updating", + "upgrade", + "upload", + "uploadTotal", + "uploaded", + "upper", + "upperBound", + "upperOpen", + "uri", + "url", + "urn", + "urns", + "usage", + "usages", + "usb", + "usbVersionMajor", + "usbVersionMinor", + "usbVersionSubminor", + "useCurrentView", + "useGrouping", + "useMap", + "useProgram", + "usedJSHeapSize", + "usedSpace", + "user-select", + "userActivation", + "userAgent", + "userChoice", + "userHandle", + "userHint", + "userLanguage", + "userProfile", + "userSelect", + "userVisibleOnly", + "userZoom", + "username", + "usernameFragment", + "utterance", + "uuid", + "v8BreakIterator", + "v8Parse", + "vAlign", + "vLink", + "valid", + "validate", + "validateProgram", + "validationMessage", + "validity", + "value", + "valueAsDate", + "valueAsNumber", + "valueAsString", + "valueInSpecifiedUnits", + "valueMissing", + "valueOf", + "valueText", + "valueType", + "values", + "variable", + "variant", + "vector-effect", + "vectorEffect", + "velocityAngular", + "velocityExpansion", + "velocityX", + "velocityY", + "vendor", + "vendorId", + "vendorSub", + "verify", + "version", + "vertexAttrib1f", + "vertexAttrib1fv", + "vertexAttrib2f", + "vertexAttrib2fv", + "vertexAttrib3f", + "vertexAttrib3fv", + "vertexAttrib4f", + "vertexAttrib4fv", + "vertexAttribDivisor", + "vertexAttribDivisorANGLE", + "vertexAttribI4i", + "vertexAttribI4iv", + "vertexAttribI4ui", + "vertexAttribI4uiv", + "vertexAttribIPointer", + "vertexAttribPointer", + "vertical", + "vertical-align", + "verticalAlign", + "verticalOverflow", + "vh", + "vibrate", + "vibrationActuator", + "video/x-ms-asf", + "video/x-ms-asf-plugin", + "video/x-ms-wm", + "video/x-ms-wmv", + "video/x-ms-wvx", + "videoBitsPerSecond", + "videoHeight", + "videoTracks", + "videoWidth", + "view", + "viewBox", + "viewBoxString", + "viewTarget", + "viewTargetString", + "viewport", + "viewportAnchorX", + "viewportAnchorY", + "viewportElement", + "views", + "violatedDirective", + "visibility", + "visibilityState", + "visible", + "visualViewport", + "vlinkColor", + "vmax", + "vmin", + "voice", + "voiceURI", + "volume", + "vrml", + "vspace", + "vw", + "w", + "wait", + "waitSync", + "waiting", + "wake", + "wakeLock", + "wand", + "warn", + "wasAlternateProtocolAvailable", + "wasClean", + "wasDiscarded", + "wasFetchedViaSpdy", + "wasNpnNegotiated", + "watch", + "watchAvailability", + "watchPosition", + "webdriver", + "webkitAddKey", + "webkitAlignContent", + "webkitAlignItems", + "webkitAlignSelf", + "webkitAnimation", + "webkitAnimationDelay", + "webkitAnimationDirection", + "webkitAnimationDuration", + "webkitAnimationFillMode", + "webkitAnimationIterationCount", + "webkitAnimationName", + "webkitAnimationPlayState", + "webkitAnimationTimingFunction", + "webkitAppRegion", + "webkitAppearance", + "webkitAspectRatio", + "webkitAudioContext", + "webkitAudioDecodedByteCount", + "webkitAudioPannerNode", + "webkitBackdropFilter", + "webkitBackfaceVisibility", + "webkitBackground", + "webkitBackgroundAttachment", + "webkitBackgroundClip", + "webkitBackgroundColor", + "webkitBackgroundComposite", + "webkitBackgroundImage", + "webkitBackgroundOrigin", + "webkitBackgroundPosition", + "webkitBackgroundPositionX", + "webkitBackgroundPositionY", + "webkitBackgroundRepeat", + "webkitBackgroundSize", + "webkitBackingStorePixelRatio", + "webkitBorderAfter", + "webkitBorderAfterColor", + "webkitBorderAfterStyle", + "webkitBorderAfterWidth", + "webkitBorderBefore", + "webkitBorderBeforeColor", + "webkitBorderBeforeStyle", + "webkitBorderBeforeWidth", + "webkitBorderBottomLeftRadius", + "webkitBorderBottomRightRadius", + "webkitBorderEnd", + "webkitBorderEndColor", + "webkitBorderEndStyle", + "webkitBorderEndWidth", + "webkitBorderFit", + "webkitBorderHorizontalSpacing", + "webkitBorderImage", + "webkitBorderImageOutset", + "webkitBorderImageRepeat", + "webkitBorderImageSlice", + "webkitBorderImageSource", + "webkitBorderImageWidth", + "webkitBorderRadius", + "webkitBorderStart", + "webkitBorderStartColor", + "webkitBorderStartStyle", + "webkitBorderStartWidth", + "webkitBorderTopLeftRadius", + "webkitBorderTopRightRadius", + "webkitBorderVerticalSpacing", + "webkitBoxAlign", + "webkitBoxDecorationBreak", + "webkitBoxDirection", + "webkitBoxFlex", + "webkitBoxFlexGroup", + "webkitBoxLines", + "webkitBoxOrdinalGroup", + "webkitBoxOrient", + "webkitBoxPack", + "webkitBoxReflect", + "webkitBoxShadow", + "webkitBoxSizing", + "webkitCancelAnimationFrame", + "webkitCancelFullScreen", + "webkitCancelKeyRequest", + "webkitCancelRequestAnimationFrame", + "webkitClearResourceTimings", + "webkitClipPath", + "webkitClosedCaptionsVisible", + "webkitColumnAxis", + "webkitColumnBreakAfter", + "webkitColumnBreakBefore", + "webkitColumnBreakInside", + "webkitColumnCount", + "webkitColumnGap", + "webkitColumnProgression", + "webkitColumnRule", + "webkitColumnRuleColor", + "webkitColumnRuleStyle", + "webkitColumnRuleWidth", + "webkitColumnSpan", + "webkitColumnWidth", + "webkitColumns", + "webkitConvertPointFromNodeToPage", + "webkitConvertPointFromPageToNode", + "webkitCreateShadowRoot", + "webkitCurrentFullScreenElement", + "webkitCurrentPlaybackTargetIsWireless", + "webkitCursorVisibility", + "webkitDashboardRegion", + "webkitDecodedFrameCount", + "webkitDirectionInvertedFromDevice", + "webkitDisplayingFullscreen", + "webkitDroppedFrameCount", + "webkitEnterFullScreen", + "webkitEnterFullscreen", + "webkitEntries", + "webkitExitFullScreen", + "webkitExitFullscreen", + "webkitExitPointerLock", + "webkitFilter", + "webkitFlex", + "webkitFlexBasis", + "webkitFlexDirection", + "webkitFlexFlow", + "webkitFlexGrow", + "webkitFlexShrink", + "webkitFlexWrap", + "webkitFontFeatureSettings", + "webkitFontKerning", + "webkitFontSizeDelta", + "webkitFontSmoothing", + "webkitForce", + "webkitFullScreenKeyboardInputAllowed", + "webkitFullscreenElement", + "webkitFullscreenEnabled", + "webkitGenerateKeyRequest", + "webkitGetAsEntry", + "webkitGetDatabaseNames", + "webkitGetEntries", + "webkitGetEntriesByName", + "webkitGetEntriesByType", + "webkitGetFlowByName", + "webkitGetGamepads", + "webkitGetImageDataHD", + "webkitGetNamedFlows", + "webkitGetRegionFlowRanges", + "webkitGetUserMedia", + "webkitHasClosedCaptions", + "webkitHidden", + "webkitHighlight", + "webkitHyphenateCharacter", + "webkitHyphenateLimitAfter", + "webkitHyphenateLimitBefore", + "webkitHyphenateLimitLines", + "webkitHyphens", + "webkitIDBCursor", + "webkitIDBDatabase", + "webkitIDBDatabaseError", + "webkitIDBDatabaseException", + "webkitIDBFactory", + "webkitIDBIndex", + "webkitIDBKeyRange", + "webkitIDBObjectStore", + "webkitIDBRequest", + "webkitIDBTransaction", + "webkitImageSmoothingEnabled", + "webkitIndexedDB", + "webkitInitMessageEvent", + "webkitInitialLetter", + "webkitIsFullScreen", + "webkitJustifyContent", + "webkitKeys", + "webkitLineAlign", + "webkitLineBoxContain", + "webkitLineBreak", + "webkitLineClamp", + "webkitLineDash", + "webkitLineDashOffset", + "webkitLineGrid", + "webkitLineSnap", + "webkitLocale", + "webkitLockOrientation", + "webkitLogicalHeight", + "webkitLogicalWidth", + "webkitMarginAfter", + "webkitMarginAfterCollapse", + "webkitMarginBefore", + "webkitMarginBeforeCollapse", + "webkitMarginBottomCollapse", + "webkitMarginCollapse", + "webkitMarginEnd", + "webkitMarginStart", + "webkitMarginTopCollapse", + "webkitMarquee", + "webkitMarqueeDirection", + "webkitMarqueeIncrement", + "webkitMarqueeRepetition", + "webkitMarqueeSpeed", + "webkitMarqueeStyle", + "webkitMask", + "webkitMaskBoxImage", + "webkitMaskBoxImageOutset", + "webkitMaskBoxImageRepeat", + "webkitMaskBoxImageSlice", + "webkitMaskBoxImageSource", + "webkitMaskBoxImageWidth", + "webkitMaskClip", + "webkitMaskComposite", + "webkitMaskImage", + "webkitMaskOrigin", + "webkitMaskPosition", + "webkitMaskPositionX", + "webkitMaskPositionY", + "webkitMaskRepeat", + "webkitMaskRepeatX", + "webkitMaskRepeatY", + "webkitMaskSize", + "webkitMaskSourceType", + "webkitMatchesSelector", + "webkitMaxLogicalHeight", + "webkitMaxLogicalWidth", + "webkitMediaStream", + "webkitMinLogicalHeight", + "webkitMinLogicalWidth", + "webkitNbspMode", + "webkitNotifications", + "webkitOfflineAudioContext", + "webkitOpacity", + "webkitOrder", + "webkitOrientation", + "webkitPaddingAfter", + "webkitPaddingBefore", + "webkitPaddingEnd", + "webkitPaddingStart", + "webkitPeerConnection00", + "webkitPersistentStorage", + "webkitPerspective", + "webkitPerspectiveOrigin", + "webkitPerspectiveOriginX", + "webkitPerspectiveOriginY", + "webkitPointerLockElement", + "webkitPostMessage", + "webkitPreservesPitch", + "webkitPrintColorAdjust", + "webkitPutImageDataHD", + "webkitRTCPeerConnection", + "webkitRegionOverset", + "webkitRelativePath", + "webkitRequestAnimationFrame", + "webkitRequestFileSystem", + "webkitRequestFullScreen", + "webkitRequestFullscreen", + "webkitRequestPointerLock", + "webkitResolveLocalFileSystemURL", + "webkitRtlOrdering", + "webkitRubyPosition", + "webkitSetMediaKeys", + "webkitSetResourceTimingBufferSize", + "webkitShadowRoot", + "webkitShapeImageThreshold", + "webkitShapeMargin", + "webkitShapeOutside", + "webkitShowPlaybackTargetPicker", + "webkitSlice", + "webkitSpeechGrammar", + "webkitSpeechGrammarList", + "webkitSpeechRecognition", + "webkitSpeechRecognitionError", + "webkitSpeechRecognitionEvent", + "webkitStorageInfo", + "webkitSupportsFullscreen", + "webkitSvgShadow", + "webkitTapHighlightColor", + "webkitTemporaryStorage", + "webkitTextCombine", + "webkitTextDecoration", + "webkitTextDecorationColor", + "webkitTextDecorationLine", + "webkitTextDecorationSkip", + "webkitTextDecorationStyle", + "webkitTextDecorationsInEffect", + "webkitTextEmphasis", + "webkitTextEmphasisColor", + "webkitTextEmphasisPosition", + "webkitTextEmphasisStyle", + "webkitTextFillColor", + "webkitTextOrientation", + "webkitTextSecurity", + "webkitTextSizeAdjust", + "webkitTextStroke", + "webkitTextStrokeColor", + "webkitTextStrokeWidth", + "webkitTextUnderlinePosition", + "webkitTextZoom", + "webkitTransform", + "webkitTransformOrigin", + "webkitTransformOriginX", + "webkitTransformOriginY", + "webkitTransformOriginZ", + "webkitTransformStyle", + "webkitTransition", + "webkitTransitionDelay", + "webkitTransitionDuration", + "webkitTransitionProperty", + "webkitTransitionTimingFunction", + "webkitURL", + "webkitUnlockOrientation", + "webkitUserDrag", + "webkitUserModify", + "webkitUserSelect", + "webkitVideoDecodedByteCount", + "webkitVisibilityState", + "webkitWirelessVideoPlaybackDisabled", + "webkitWritingMode", + "webkitdirectory", + "webkitdropzone", + "webstore", + "weekday", + "weight", + "whatToShow", + "wheelDelta", + "wheelDeltaX", + "wheelDeltaY", + "whenDefined", + "which", + "white-space", + "whiteSpace", + "wholeText", + "widows", + "width", + "will-change", + "willChange", + "willValidate", + "window", + "withCredentials", + "word-break", + "word-spacing", + "word-wrap", + "wordBreak", + "wordSpacing", + "wordWrap", + "workerStart", + "wrap", + "wrapKey", + "writable", + "writableAuxiliaries", + "write", + "writeText", + "writeValue", + "writeWithoutResponse", + "writeln", + "writing-mode", + "writingMode", + "x", + "x1", + "x2", + "xChannelSelector", + "xmlEncoding", + "xmlStandalone", + "xmlVersion", + "xmlbase", + "xmllang", + "xmlspace", + "xor", + "xr", + "y", + "y1", + "y2", + "yChannelSelector", + "yandex", + "year", + "z", + "z-index", + "zIndex", + "zoom", + "zoomAndPan", + "zoomRectScreen" +] diff --git a/node_modules/uglify-js/tools/exports.js b/node_modules/uglify-js/tools/exports.js new file mode 100644 index 0000000..1d2d510 --- /dev/null +++ b/node_modules/uglify-js/tools/exports.js @@ -0,0 +1,8 @@ +exports["Dictionary"] = Dictionary; +exports["is_statement"] = is_statement; +exports["List"] = List; +exports["minify"] = minify; +exports["parse"] = parse; +exports["push_uniq"] = push_uniq; +exports["TreeTransformer"] = TreeTransformer; +exports["TreeWalker"] = TreeWalker; diff --git a/node_modules/uglify-js/tools/node.js b/node_modules/uglify-js/tools/node.js new file mode 100644 index 0000000..7ca1982 --- /dev/null +++ b/node_modules/uglify-js/tools/node.js @@ -0,0 +1,110 @@ +var fs = require("fs"); + +exports.FILES = [ + require.resolve("../lib/utils.js"), + require.resolve("../lib/ast.js"), + require.resolve("../lib/transform.js"), + require.resolve("../lib/parse.js"), + require.resolve("../lib/scope.js"), + require.resolve("../lib/compress.js"), + require.resolve("../lib/output.js"), + require.resolve("../lib/sourcemap.js"), + require.resolve("../lib/mozilla-ast.js"), + require.resolve("../lib/propmangle.js"), + require.resolve("../lib/minify.js"), + require.resolve("./exports.js"), +]; + +new Function("domprops", "exports", function() { + var code = exports.FILES.map(function(file) { + return fs.readFileSync(file, "utf8"); + }); + code.push("exports.describe_ast = " + describe_ast.toString()); + return code.join("\n\n"); +}())(require("./domprops.json"), exports); + +function to_comment(value) { + if (typeof value != "string") value = JSON.stringify(value, function(key, value) { + return typeof value == "function" ? "<[ " + value + " ]>" : value; + }, 2); + return "// " + value.replace(/\n/g, "\n// "); +} + +if (+process.env["UGLIFY_BUG_REPORT"]) exports.minify = function(files, options) { + if (typeof options == "undefined") options = "<>"; + var code = [ + "// UGLIFY_BUG_REPORT", + to_comment(options), + ]; + if (typeof files == "string") { + code.push(""); + code.push("//-------------------------------------------------------------") + code.push("// INPUT CODE", files); + } else for (var name in files) { + code.push(""); + code.push("//-------------------------------------------------------------") + code.push(to_comment(name), files[name]); + } + if (options.sourceMap && options.sourceMap.url) { + code.push(""); + code.push("//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9"); + } + var result = { code: code.join("\n") }; + if (options.sourceMap) result.map = '{"version":3,"sources":[],"names":[],"mappings":""}'; + return result; +}; + +function describe_ast() { + var out = OutputStream({ beautify: true }); + doitem(AST_Node); + return out.get() + "\n"; + + function doitem(ctor) { + out.print("AST_" + ctor.TYPE); + var props = ctor.SELF_PROPS.filter(function(prop) { + return !/^\$/.test(prop); + }); + if (props.length > 0) { + out.space(); + out.with_parens(function() { + props.forEach(function(prop, i) { + if (i) out.space(); + out.print(prop); + }); + }); + } + if (ctor.documentation) { + out.space(); + out.print_string(ctor.documentation); + } + if (ctor.SUBCLASSES.length > 0) { + out.space(); + out.with_block(function() { + ctor.SUBCLASSES.sort(function(a, b) { + return a.TYPE < b.TYPE ? -1 : 1; + }).forEach(function(ctor, i) { + out.indent(); + doitem(ctor); + out.newline(); + }); + }); + } + } +} + +function infer_options(options) { + var result = exports.minify("", options); + return result.error && result.error.defs; +} + +exports.default_options = function() { + var defs = infer_options({ 0: 0 }); + Object.keys(defs).forEach(function(component) { + var options = {}; + options[component] = { 0: 0 }; + if (options = infer_options(options)) { + defs[component] = options; + } + }); + return defs; +}; diff --git a/node_modules/uglify-js/tools/tty.js b/node_modules/uglify-js/tools/tty.js new file mode 100644 index 0000000..395c48e --- /dev/null +++ b/node_modules/uglify-js/tools/tty.js @@ -0,0 +1,22 @@ +// workaround for tty output truncation on Node.js +try { + // prevent buffer overflow and other asynchronous bugs + process.stdout._handle.setBlocking(true); + process.stderr._handle.setBlocking(true); +} catch (e) { + // ensure output buffers are flushed before process termination + var exit = process.exit; + process.exit = function() { + var args = [].slice.call(arguments); + process.once("uncaughtException", function() { + (function callback() { + if (process.stdout.bufferSize || process.stderr.bufferSize) { + setTimeout(callback, 1); + } else { + exit.apply(process, args); + } + })(); + }); + throw exit; + }; +} diff --git a/node_modules/zlib/.npmignore b/node_modules/zlib/.npmignore new file mode 100644 index 0000000..0058b67 --- /dev/null +++ b/node_modules/zlib/.npmignore @@ -0,0 +1,2 @@ +build +.lock-wscript \ No newline at end of file diff --git a/node_modules/zlib/LICENSE b/node_modules/zlib/LICENSE new file mode 100644 index 0000000..8311c9c --- /dev/null +++ b/node_modules/zlib/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2011, Konstantin Käfer +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of node-zlib nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Konstantin Käfer BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/zlib/Makefile b/node_modules/zlib/Makefile new file mode 100644 index 0000000..4b64961 --- /dev/null +++ b/node_modules/zlib/Makefile @@ -0,0 +1,15 @@ +build: + node-waf build + +clean: + node-waf clean + +ifndef only +test: build + @expresso -I lib test/*.test.js +else +test: build + @expresso -I lib test/${only}.test.js +endif + +.PHONY: build clean test diff --git a/node_modules/zlib/README.md b/node_modules/zlib/README.md new file mode 100644 index 0000000..f06ffd4 --- /dev/null +++ b/node_modules/zlib/README.md @@ -0,0 +1,54 @@ +# NAME + +node-zlib - Simple, synchronous deflate/inflate for node.js buffers. + + + +# USAGE + +Install with `npm install zlib`. + + var Buffer = require('buffer').Buffer; + var zlib = require('zlib'); + + var input = new Buffer('lorem ipsum dolor sit amet'); + var compressed = zlib.deflate(input); + var output = zlib.inflate(compressed); + +Note that `node-zlib` is only intended for small (< 128 KB) data that you already have buffered. It is not meant for input/output streams. + +# BUILDING + +Make sure you have `zlib` installed. Mac OS X ships with it by default. + +To obtain and build the bindings: + + git clone git://github.com/kkaefer/node-zlib.git + cd node-zlib + ./configure + make + +You can also use [`npm`](https://github.com/isaacs/npm) to download and install them: + + npm install zlib + + + +# TESTS + +[expresso](https://github.com/visionmedia/expresso) is required to run unit tests. + + npm install expresso + make test + + + +# CONTRIBUTORS + +* [Konstantin Käfer](https://github.com/kkaefer) + + + +# LICENSE + +`node-zlib` is [BSD licensed](https://github.com/kkaefer/node-zlib/raw/master/LICENSE). diff --git a/node_modules/zlib/configure b/node_modules/zlib/configure new file mode 100755 index 0000000..dd549cd --- /dev/null +++ b/node_modules/zlib/configure @@ -0,0 +1,2 @@ +#!/bin/sh +node-waf configure \ No newline at end of file diff --git a/node_modules/zlib/index.js b/node_modules/zlib/index.js new file mode 100644 index 0000000..df32a46 --- /dev/null +++ b/node_modules/zlib/index.js @@ -0,0 +1 @@ +module.exports = require('./lib/zlib'); diff --git a/node_modules/zlib/lib/zlib.js b/node_modules/zlib/lib/zlib.js new file mode 100644 index 0000000..bc49811 --- /dev/null +++ b/node_modules/zlib/lib/zlib.js @@ -0,0 +1 @@ +module.exports = require('./zlib_bindings'); diff --git a/node_modules/zlib/package.json b/node_modules/zlib/package.json new file mode 100644 index 0000000..f6b0fe2 --- /dev/null +++ b/node_modules/zlib/package.json @@ -0,0 +1,18 @@ +{ + "name": "zlib", + "description": "Simple, synchronous deflate/inflate for buffers", + "version": "1.0.5", + "homepage": "https://github.com/kkaefer/node-zlib", + "author": "Konstantin Käfer ", + "repository": { + "type": "git", + "url": "git://github.com/kkaefer/node-zlib.git" + }, + "engines": { + "node": ">=0.2.0" + }, + "licenses": [ + { "type": "BSD" } + ], + "main": "./lib/zlib" +} diff --git a/node_modules/zlib/src/node-zlib.cc b/node_modules/zlib/src/node-zlib.cc new file mode 100644 index 0000000..b2c7e14 --- /dev/null +++ b/node_modules/zlib/src/node-zlib.cc @@ -0,0 +1,95 @@ +#include +#include +#include +#include + +#include +#include +#include + +using namespace v8; +using namespace node; + +// node v0.2.x compatibility +#if NODE_VERSION_AT_LEAST(0,3,0) + #define Buffer_Data Buffer::Data + #define Buffer_Length Buffer::Length + #define Buffer_New Buffer::New +#else + inline char* Buffer_Data(Handle obj) { + return (ObjectWrap::Unwrap(obj))->data(); + } + inline size_t Buffer_Length(Handle obj) { + return (ObjectWrap::Unwrap(obj))->length(); + } + inline Buffer* Buffer_New(char* data, size_t length) { + Buffer* buffer = Buffer::New(length); + memcpy(buffer->data(), data, length); + return buffer; + } +#endif + + +z_stream deflate_s; +z_stream inflate_s; + +inline Handle ZLib_error(const char* msg = NULL) { + return ThrowException(Exception::Error( + String::New(msg ? msg : "Unknown Error"))); +} + +#define ZLib_Xflate(x, factor) \ +Handle ZLib_##x##flate(const Arguments& args) { \ + HandleScope scope; \ + \ + if (args.Length() < 1 || !Buffer::HasInstance(args[0])) { \ + return ZLib_error("Expected Buffer as first argument"); \ + } \ + \ + if ((x##flateReset(&x##flate_s)) != Z_OK) { \ + assert((false, "ZLib stream is beyond repair")); \ + } \ + \ + Local input = args[0]->ToObject(); \ + x##flate_s.next_in = (Bytef*)Buffer_Data(input); \ + int length = x##flate_s.avail_in = Buffer_Length(input); \ + \ + int ret; \ + char* result = NULL; \ + \ + int compressed = 0; \ + do { \ + result = (char*)realloc(result, compressed + factor * length); \ + if (!result) return ZLib_error("Could not allocate memory"); \ + \ + x##flate_s.avail_out = factor * length; \ + x##flate_s.next_out = (Bytef*)result + compressed; \ + \ + ret = x##flate(&x##flate_s, Z_FINISH); \ + if (ret != Z_STREAM_END && ret != Z_OK && ret != Z_BUF_ERROR) { \ + free(result); \ + return ZLib_error(x##flate_s.msg); \ + } \ + \ + compressed += (factor * length - x##flate_s.avail_out); \ + } while (x##flate_s.avail_out == 0); \ + \ + Buffer* output = Buffer_New(result, compressed); \ + free(result); \ + return scope.Close(Local::New(output->handle_)); \ +} + +ZLib_Xflate(de, 1); +ZLib_Xflate(in, 2); + +extern "C" void init (Handle target) { + deflate_s.zalloc = inflate_s.zalloc = Z_NULL; + deflate_s.zfree = inflate_s.zfree = Z_NULL; + deflate_s.opaque = inflate_s.opaque = Z_NULL; + + deflateInit(&deflate_s, Z_DEFAULT_COMPRESSION); + inflateInit(&inflate_s); + + NODE_SET_METHOD(target, "deflate", ZLib_deflate); + NODE_SET_METHOD(target, "inflate", ZLib_inflate); +} diff --git a/node_modules/zlib/test/deflate.test.js b/node_modules/zlib/test/deflate.test.js new file mode 100644 index 0000000..c27b7ec --- /dev/null +++ b/node_modules/zlib/test/deflate.test.js @@ -0,0 +1,23 @@ +var assert = require('assert'); +var Buffer = require('buffer').Buffer; +var zlib = require('../lib/zlib'); + +exports['test deflate/inflate buffer'] = function(beforeExit) { + var input = new Buffer('Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'); + var compressed = zlib.deflate(input); + var output = zlib.inflate(compressed); + assert.deepEqual(input, output); +}; + +exports['test deflate/inflate with high compression ratio'] = function(beforeExit) { + var input = new Buffer('[" !!!!!!!########################$$$$$$$$$$$$$$$$%%%%%%%%%% %%%%%%%%%%%%%%%% % %"," !!!!!!########################$$$$$$$$$$$$$$$$$%%%%%%%%%%% %%%%%%%%%%%%% %%%% %%"," !!!!!########################$$$$$$$$$$$$$$$$$%%%%%%%%%%%%% %%%%%%% %%%%%% %%"," !!!!!###########################$$$$$$$$$$$$$$$$$%%%%%%%%%%%%% %%% %%%%%%%%%%"," !!!!###########################$$$$$$$$$$$$$$$$$%%%%%%%%%%%%% %%%%%%%%%%%%"," !!!!!!###################### ###$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%% %%%%%%%%%%%%"," ! !!!!!###################### $$$$$$$$$$$$$$%%%%%%%%%%%%%% %%%%%%%%%%%%%%"," !!!!!!!##################### $$$$$$$$$$$$$%%%%%%%%%%%%%% %%%%%%%%%%%%%%%"," !!!!!!!#################### $$$$$$$$$$$$%%%%%%%%%%%%% %%%%%%%%%%%%%%"," !!!!!##################### $$$$$$$$$$$$$%%%%%%%%%%%%%% %%%%%%%%%%%%%%"," ! !!!!!##################### $$$$$$$$$$$$%%%%%%%%%%%%%% % %%% %%%%%%%%%%%%%"," ! !!!!!!!##################### $$$$$$$$$$$$$%%%%%%%%%%%%%%% %%%% %%%%%%%%%%%%%"," !!!!!!##################### $$$$$$$$$$$$$$$$%%%%%%%%%%%%%% %%%%% % %%%%%%%%%%%%"," !!!!!!###################### $$$$$$$$$$$$$$$$%%%%%%%%%%%%%% %%%%%%% %%%%%%%%%%%%%"," ! !!!!!!!!##################### $$$$$$$$$$$$$$$$$%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!#################### $$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!################### $$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%"," !!! !!!!####################### $$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%"," !!!! !!!######################## $$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%"," ! !! !!!!####################### $$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!! ! !!!###################### $$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ! ! !!!!!!!!#################### $$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!#################### $ $$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!################## $$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!! !!!!!!!!!!################## $$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!! !!!!!!!!!!################# $$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!! !!!!!!!!!!!!!################# $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!############### $$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!############### $$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!!############### $$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!!############### $$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!!############### $$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!!!############# $$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!!!!############ $$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!!!!############ $$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ! ! !!!!!!!!!!!!!!!!!!############ $$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!!############## $$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!!!############## $$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!!!################ $ $$$$$$$$$$$$$ $$$% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!! !!!!!!!!!!!!!!!!################ $ $$$$$$$$$$$$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!!################# & & $ $$$$$$ $ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ! !!!!!!!!!!!!!!!!!!################## & $ $$$$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ! !!!!!!!!!!!!!!!!!##################### $ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!!! !!!#################### %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!! !!!!!!!!!!! !!!############## ##### \'\'\' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ! !!!!!!!!!!!! !!!################### \'\'\'\'\'\'\'\'\'\'\'\'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!! !!!################### \'\'\'\'\'\'\'\'\'\'\'\'\'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!! #!################## \'\'\'\'\'\'\'\'\'\'\'\'\'\'\'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!! ################## \'\' \'\'\'\'\'\'\'\'\'\'\'\'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!! ################ \'\'\'\'\'\'\'\'\'\'\'\'\'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!! ################ \'\'\'\' \'\'\'\'\'\'\'\'\'\'\'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!! ############### \'\' \'\'\'\'\'\'\'\'\'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!! ############## \' \'\'(\'\'\'\'\'\'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ############# # ((((\'\'\'\'\'\'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ) ############## # ( (((((\'\'\'\'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ) ############## ## ((( (((((((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," )) ############ ## (((( ((((((((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," )))) ############ # (((((( (((((((((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ) ))) ########### # # ((((((((((((((((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," )) ))) ########### ((((((((((((((((((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," )))))) ########### ((((((((((((((((((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," )))))))) ######### # (((****((((*(((((((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ))))))) ########## (************((((((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ))))))) )) #### **************(((((+++%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ))))) ) ))) #### ***************((+++++++%++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," )))) ) )))) #### ***************++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," )))) )) )))) # ***************++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ))) )) ) ) %**************+++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," )))) ) ) %%%%**********++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ,,,, ))) -- %%%%%%%%*********++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ,,, ) , ----- %%%%%%%*********+++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ,,,,,, ,,,, ------- ----%%%%%%-*******+++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ,,,,,, ,,,,,, -----------------------*****+*++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," , ,,,,, ,,,,,,,, -------------------------***+++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",". ,,,,,,,,,,,,,,, --------------------------+++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," ,,,,,,,,,,,,,,,,,,,,---------------------------+++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",". /// ,,,,,,,,,,,,,,,,,,,,---------------------------+++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",". /////,,,,,,,,,,,,,,,,,,,,---------------------------++++++++++++++++++++++%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",". .. /////,,,,,,,,,,,,,,,,,,,,----------------------------+++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","..... ///////,,,,,,,,,,,,,,,,,,,,,---------------------------+++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","..... //////,,,,,,,,,,,,,,,,,,,,,,-------------------------+++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","..... ////////,,,,,,,,,,,,,,,,,,,,,------------------------+++++++++++++++++++++++++%%0000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","..... ////////,,,,,,,,,,,,,,,,,,,,,,--------------------------++++++++++++++++++++000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",".... //////,,,,,,,,,,,,,,,,,,,,,,,,--------------------------++000000++++++++++++0000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","... //////,,,,,,,,,,,,,,,,,,,,,,,,-------------------------+0000000000+++++0+++00000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",".. ///11///,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------0000000000000000000+0000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","..... 111111111/,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------0000000000000000000000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","... 22111111111/,,,,,,,,,,,,,,,,,,,,,,,3,3-------------------------00000000000000000000000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%"," 2222211111111,,,,,,,,,,,,,,,,,,,,,,33333------------------------00000000000000000000000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%"," 2222221111111,,,,,,,,,,,,,,,,,,,,333333333----------------------00000000000000000000000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%"," 2222222111111,,,,,,,,,,,,,,,,,,33333333333--3------------------000000000000000000000000000000000000%00%%%%%%%%%%%%%%%%%%%%%"," 22222222111114,,,,,,,,,,,,,,,,,3333333333333333----------------00000000000000000000000000000000000000000%0%%%%%%%%%%%%%%%%%%"," 22222222222211144,,,,,,,,,,,,,,,,,33333333333333333-------------000000000000000000000000000000000000000000000%%%%%%%%%%%%%%%%%"," 222222222222222144,,,,,,,,,,,,,,,,,333333333333333333-----------000000000000000000000000000000000000000000000000%0%%%%%%%%%%%%%"," 222222222222222222,,,,,,,,,,,,,,,,,,33333333333333335555-55555--00000000000000000000000000000000000000000000000000%%%%%%%%%%%%%","2222222222222222222222,,,,,,,,,,,,,,,,33333333333333555555555555-0000000000000000000000000000000000000000000000000%%%%%%%%%%%%%%","222222222222222222222222,,,,,,,,,,,,,,,333366333333555555555555500000000000000000000000000000000000000000000000000%%%%%%%%%%%%%%","22222222222222222222222,,,,,,,,,,,,,,,,,3366666665555555555555550000000000000000000000000000000000000000000000000%%%%%%%%%%%%%%%","22222222222222222222222,,,,,,,,,,,,,,,,666666666555555555557775500000000000000000000000000000000000000000000000000%%%%%%%%%%%%%%","2222222222222222222222,,,,,,,,,,,,,,,66666666666655555557577777770000000000089990000000000000000000000000000000000%%%%%%%%%%%%%%","2222222222222222222222,,,,,,,,,,,,,,,66666666666675555777777777777880000000888999990000000000000000000000000000000%%%%%%%%%%%%%%","2222222222222222222222,,,,,,,,,,,,,,,66666666666677757777777777788888880888888999999000000000000000000000000000%%%%%%%%%%%%%%%%%","2222222222222222222222::::::6,66,6666,66666666667777777777777778888888888888888999900000000000000000000000000%%%%%%%%%%%%%%%%%%%","22222222222222222222::::::::6,6666666666666666677777777777777778888888888888888999999000000000000000000000000%%%%%%%%%%%%%%%%%%%","22222222222222222222::::::::6666666666666666666777777777777777888888888888888888999990000000000000000000000 %%%%%%%%%%%%%%%%","2222222222222222222:::::::::::;6;;;;6666666666<7777777777777778888888888888888888999990000000000000000000 %%%%%%%%%%%%%%%%%%","222222222222222222:::::::::::;;;;;;;;;;6666<<<<77777777777777888888888888888888889999900 0000000000 %%%%%%%%%%%%%%%%%%%%","22222222222222222222::::;::;;;;;;;;;;;;<<<<<<<===777777777777888888888888888888889900000 000000000 %%%%%%%%%%%%%%%%%%%","22222222222222222222:::;;;;;;;;;;;;;;;;<<<<<<=====777777>>88888888888888888888889990000 00 00 %%%%%%%%%%%%%%%%%%%","22222222222222222222;;;;;;;;;;;;;;;;;;;<<<<<<======77=>>>>>888888888888888888888890000 000 %%%%%%%%%%%%%%%%%%%%","22222222222222222222;;;;;;;;;;;;;;;;; <<<<==========>>>>>>8888888888888888888899000 000000 %%%%%%%%%%%%%%%%%%%%%","222222222222222222222;;;;;;;;;;;;;; ================>>>>>8888888888888888888880088 000000 000% %%%%%%%%%%%%%%%%%%%%","2222222222222222222;;;;;;;;;;;;;;;;; == ==?=????=?==>>>>>>>88888888888888888888888 00000 00 %%%%%%%%%%%%%%%%%%%%%%%","22222222222222222222;;;;;;;;;;;;;;; = ==???????????>>>>>888888888888888888888888 0000 %%%%%%%%%%%%%%%%%%%%%","22222222222222222222;;;;;;;;;;;;;;; = ===?????????>>>>>>>>8>88888888888888888 000 %%%%%%%%%%%%%%%%%%%","22222222222222222222;;;;; ;;;;;;;;; ====????????>>>>>>>>>>88888888888888888 %%%%%%%%%%%%%%%%%%","2222222222222222222222;; ;;;;;;;; ===?????????>>>>>>>>>@88888888888@8888 %%%%%%%%%%%%%%%%","2222222222222222222222; ;;;;;;;; ===????????>>>>>>>>@@88888888@@@@@@88 %%%%%%%%%%%%%%%","222222222222222222222 ;;;;;;;;; ===???????>>>>>>>>@@@@@@@@@@@@@@@@@@ %%%%%%%%%%%%%%","22222222222 222 ;;;;;;;;;; = =?????A>>>>>>>>>@@@@@@@@@@@@@@@ BBB%%%%%%%%%%","222222222 ;;;;;;;;;; = =???AAA>>>>>>>>>@@@@@@@@@@@@@@ BBBBBB%%%%%","22C222222 ;;;;;;;;; ??AAAAA>>>>>>@@@@@@@@@@@@@@@@ BBBBBBBB%%%","CCCCC2222 222 ;;;;;;;;; =AAADD>>>>>>@@@@@@@@@@@@@@@ BBBBBBBBB","CCCCCCCCCC 222 ;;;;;;;; AADDD>>>>E@@@@@@@@@@@@@@@ BBBBBBBBB","CCCCCCCCCC 22 ;;;;;;;;; ADDD>EEEEE@@@@@@@@@@@@F@@ BBBBBBBBB","CCCCCCCCC 22 ;;;;;;;;;;;; DDDEEEEEEE@@@@@@@@@FFFFF FFFFFFFF BBBBBBBBB","CCCCCCC 2 ;;;;;;;;;; DDDEEEEEEE@@@G@@@@@GFFFFF FFFFFFFFFFFF BBBFBBBBB","CCCCCC ;;;;;;; DDDEEEEEEGGGGGGGGGGFFFFFFFF FFFFFFFFFFFFFFFF FFFFFFBBBBB"]'); + var compressed = zlib.deflate(input); + var output = zlib.inflate(compressed); + assert.deepEqual(input, output); +}; + +exports['test inflate #2'] = function(beforeExit) { + var compressed = new Buffer('\x78\x9c\xab\x56\x4a\x2f\xca\x4c\x51\xb2\x8a\x56\x52\xa0\x10\x28\xe9\x8c\x1a\x31\x6a\xc4\xa8\x11\xa3\x46\x8c\x1a\x31\x6a\xc4\xa8\x11\xa3\x46\x8c\x1a\x31\x6a\x04\x12\x50\x04\x02\x2a\x18\x01\x01\x64\x1b\x81\x64\x06\xdc\x10\xd2\x8c\x50\x44\x36\x02\x66\x06\x05\xae\x80\x99\x41\x72\x8c\x60\x9a\x41\x46\xa4\x0e\x0e\x23\x80\x81\xaa\x40\xa9\x11\x0a\x28\x46\x28\x52\xe6\x0a\x45\x0a\x8c\x40\x0e\x10\xf2\xb3\x19\x15\x8c\x80\x1b\x42\x69\x66\x57\x54\x54\xa6\xbc\xbc\xa0\x82\x11\x43\xb3\xe0\x1b\x42\x46\xa8\x50\xc1\x15\x2a\xa4\x1a\x42\xb9\x47\x54\x95\x62\x75\x94\xb2\x53\x2b\x8b\x41\x03\x19\x40\xe3\x7c\x23\x80\x84\x7b\x08\x90\xf0\x0e\x02\x12\xae\xce\x4a\xb1\xb5\x00\x83\x32\x27\xf3', 'binary'); + var output = zlib.inflate(compressed); + assert.equal(output.toString(), '{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!!! "," !!!!!!!!!! "," !!!!!!!!!!! "," ! !!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!! "," ! !!!!!!! "," !!!!!!! !"," ! !!!!!!!! !"," ! !!!!!!!!!!!"," !!!!!!!!!"," !!!!!!!"," !!#"," #"," "," "," "," "," "," "," $ "," $$ "," %"],"keys":["","MX","GT","KR","EC"]}'); +}; diff --git a/node_modules/zlib/test/inflate.test.js b/node_modules/zlib/test/inflate.test.js new file mode 100644 index 0000000..ebbc606 --- /dev/null +++ b/node_modules/zlib/test/inflate.test.js @@ -0,0 +1,33 @@ +var assert = require('assert'); +var Buffer = require('buffer').Buffer; +var zlib = require('../lib/zlib'); + +exports['test header inflate fail'] = function(beforeExit) { + var compressed = new Buffer('\x78\x80\x9c\xab\x56\x4a\x93\xaf\x46\x00\x1b\xa9\x02\x77\x92\x0f', 'binary'); + assert.throws(function() { var output = zlib.inflate(compressed); }, + "incorrect header check"); + + var compressed = new Buffer('\x78\x9c\xab\x56\x4a\x2f\xca\x4c\x51\xb2\x8a\x56\x52\xa0\x10\x28\xe9\x8c\x1a\x31\x6a\xc4\xa8\x11\xa3\x46\x8c\x1a\x31\x6a\xc4\xa8\x11\xa3\x46\x8c\x1a\x31\x6a\x04\x12\x50\x04\x02\x2a\x18\x01\x01\x64\x1b\x81\x64\x06\xdc\x10\xd2\x8c\x50\x44\x36\x02\x66\x06\x05\xae\x80\x99\x41\x72\x8c\x60\x9a\x41\x46\xa4\x0e\x0e\x23\x80\x81\xaa\x40\xa9\x11\x0a\x28\x46\x28\x52\xe6\x0a\x45\x0a\x8c\x40\x0e\x10\xf2\xb3\x19\x15\x8c\x80\x1b\x42\x69\x66\x57\x54\x54\xa6\xbc\xbc\xa0\x82\x11\x43\xb3\xe0\x1b\x42\x46\xa8\x50\xc1\x15\x2a\xa4\x1a\x42\xb9\x47\x54\x95\x62\x75\x94\xb2\x53\x2b\x8b\x41\x03\x19\x40\xe3\x7c\x23\x80\x84\x7b\x08\x90\xf0\x0e\x02\x12\xae\xce\x4a\xb1\xb5\x00\x83\x32\x27\xf3', 'binary'); + var output = zlib.inflate(compressed); + assert.equal(output.toString(), '{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!!! "," !!!!!!!!!! "," !!!!!!!!!!! "," ! !!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!! "," ! !!!!!!! "," !!!!!!! !"," ! !!!!!!!! !"," ! !!!!!!!!!!!"," !!!!!!!!!"," !!!!!!!"," !!#"," #"," "," "," "," "," "," "," $ "," $$ "," %"],"keys":["","MX","GT","KR","EC"]}'); +}; + +exports['test truncated inflate fail'] = function(beforeExit) { + var compressed = new Buffer('\x78\x9c\xab\x56\x4a\x2f\xca\x4c\x51\xb2\x8a\x56\x52\xa0\x10\x28\xe9\x8c\x1a\x31\x6a\xc4\xa8\x11\xa3\x46\x8c\x1a\x31\x6a\xc4\xa8\x11\xa3\x46\x8c\x1a\x31\x6a\x04\x12\x50\x04\x02\x2a\x18\x01\x01\x64\x1b\x81\x64\x06\xdc\x10\xd2\x8c\x50\x44\x36\x02\x66\x06\x05\xae\x80\x99\x41\x72\x8c\x60\x9a\x41\x46\xa4\x0e\x0e\x23\x80\x81\xaa\x40\xa9\x11\x0a\x28\x46\x28\x52\xe6\x0a\x45\x0a\x8c\x40\x0e\x10\xf2\xb3\x19\x15\x8c\x80\x1b\x42\x69\x66\x57\x54\x54\xa6', 'binary'); + var output = zlib.inflate(compressed); + assert.equal(output.toString(), '{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!!! "," !!!!!!!!!! "," !!!!!!!!!!! "," ! !!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!! "," ! !!!!!!! "," !!!!!!! !"," ! !!!!!!!! !"," ! !!!!!!!!!!!"," !!!!!!!!!"," !!!!!!!"," !!#'); + + var compressed = new Buffer('\x78\x9c\xab\x56\x4a\x2f\xca\x4c\x51\xb2\x8a\x56\x52\xa0\x10\x28\xe9\x8c\x1a\x31\x6a\xc4\xa8\x11\xa3\x46\x8c\x1a\x31\x6a\xc4\xa8\x11\xa3\x46\x8c\x1a\x31\x6a\x04\x12\x50\x04\x02\x2a\x18\x01\x01\x64\x1b\x81\x64\x06\xdc\x10\xd2\x8c\x50\x44\x36\x02\x66\x06\x05\xae\x80\x99\x41\x72\x8c\x60\x9a\x41\x46\xa4\x0e\x0e\x23\x80\x81\xaa\x40\xa9\x11\x0a\x28\x46\x28\x52\xe6\x0a\x45\x0a\x8c\x40\x0e\x10\xf2\xb3\x19\x15\x8c\x80\x1b\x42\x69\x66\x57\x54\x54\xa6\xbc\xbc\xa0\x82\x11\x43\xb3\xe0\x1b\x42\x46\xa8\x50\xc1\x15\x2a\xa4\x1a\x42\xb9\x47\x54\x95\x62\x75\x94\xb2\x53\x2b\x8b\x41\x03\x19\x40\xe3\x7c\x23\x80\x84\x7b\x08\x90\xf0\x0e\x02\x12\xae\xce\x4a\xb1\xb5\x00\x83\x32\x27\xf3', 'binary'); + var output = zlib.inflate(compressed); + assert.equal(output.toString(), '{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!!! "," !!!!!!!!!! "," !!!!!!!!!!! "," ! !!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!! "," ! !!!!!!! "," !!!!!!! !"," ! !!!!!!!! !"," ! !!!!!!!!!!!"," !!!!!!!!!"," !!!!!!!"," !!#"," #"," "," "," "," "," "," "," $ "," $$ "," %"],"keys":["","MX","GT","KR","EC"]}'); +}; + +exports['test bogus inflate fail'] = function(beforeExit) { + var compressed = new Buffer('bahbahfoobar', 'binary'); + assert.throws(function() { var output = zlib.inflate(compressed); }, + "incorrect header check"); + + var compressed = new Buffer('\x78\x9c\xab\x56\x4a\x2f\xca\x4c\x51\xb2\x8a\x56\x52\xa0\x10\x28\xe9\x8c\x1a\x31\x6a\xc4\xa8\x11\xa3\x46\x8c\x1a\x31\x6a\xc4\xa8\x11\xa3\x46\x8c\x1a\x31\x6a\x04\x12\x50\x04\x02\x2a\x18\x01\x01\x64\x1b\x81\x64\x06\xdc\x10\xd2\x8c\x50\x44\x36\x02\x66\x06\x05\xae\x80\x99\x41\x72\x8c\x60\x9a\x41\x46\xa4\x0e\x0e\x23\x80\x81\xaa\x40\xa9\x11\x0a\x28\x46\x28\x52\xe6\x0a\x45\x0a\x8c\x40\x0e\x10\xf2\xb3\x19\x15\x8c\x80\x1b\x42\x69\x66\x57\x54\x54\xa6\xbc\xbc\xa0\x82\x11\x43\xb3\xe0\x1b\x42\x46\xa8\x50\xc1\x15\x2a\xa4\x1a\x42\xb9\x47\x54\x95\x62\x75\x94\xb2\x53\x2b\x8b\x41\x03\x19\x40\xe3\x7c\x23\x80\x84\x7b\x08\x90\xf0\x0e\x02\x12\xae\xce\x4a\xb1\xb5\x00\x83\x32\x27\xf3', 'binary'); + var output = zlib.inflate(compressed); + assert.equal(output.toString(), '{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!!! "," !!!!!!!!!! "," !!!!!!!!!!! "," ! !!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!! "," ! !!!!!!! "," !!!!!!! !"," ! !!!!!!!! !"," ! !!!!!!!!!!!"," !!!!!!!!!"," !!!!!!!"," !!#"," #"," "," "," "," "," "," "," $ "," $$ "," %"],"keys":["","MX","GT","KR","EC"]}'); +}; diff --git a/node_modules/zlib/wscript b/node_modules/zlib/wscript new file mode 100644 index 0000000..ad3919c --- /dev/null +++ b/node_modules/zlib/wscript @@ -0,0 +1,38 @@ +import os +import Options +from os.path import exists +from shutil import copy2 as copy + +TARGET = 'zlib_bindings' +TARGET_FILE = '%s.node' % TARGET +built = 'build/default/%s' % TARGET_FILE +dest = 'lib/%s' % TARGET_FILE + +def set_options(opt): + opt.tool_options("compiler_cxx") + +def configure(conf): + conf.check_tool("compiler_cxx") + conf.check_tool("node_addon") + if not conf.check(lib="z", libpath=['/usr/local/lib'], uselib_store="ZLIB"): + conf.fatal('Missing zlib'); + + linkflags = [] + if os.environ.has_key('LINKFLAGS'): + linkflags.extend(os.environ['LINKFLAGS'].split(' ')) + conf.env.append_value("LINKFLAGS", linkflags) + +def build(bld): + obj = bld.new_task_gen("cxx", "shlib", "node_addon") + obj.cxxflags = ["-g", "-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE", "-Wall"] + obj.target = TARGET + obj.source = "src/node-zlib.cc" + obj.uselib = "ZLIB" + +def shutdown(): + if Options.commands['clean']: + if exists(TARGET_FILE): + unlink(TARGET_FILE) + else: + if exists(built): + copy(built, dest) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c42d473 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,121 @@ +{ + "name": "web-deploy", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "web-deploy", + "version": "0.0.1", + "license": "ISC", + "dependencies": { + "@minify-html/node": "^0.15.0", + "@putout/minify": "^3.8.5", + "clean-css": "^5.3.3", + "uglify-js": "^3.17.4", + "zlib": "^1.0.5" + } + }, + "node_modules/@minify-html/node": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@minify-html/node/-/node-0.15.0.tgz", + "integrity": "sha512-ANzt6ZBiqtwrepVXRfa0Qn/woCkINFBjQEKiXyBmg7+51mIFQHVAUbAm6UHRrT0L3xoPG0BX0/XI3NqtjK8Vyg==", + "bin": { + "minify-html": "cli.js" + }, + "engines": { + "node": ">= 8.6.0" + }, + "optionalDependencies": { + "@minify-html/node-darwin-arm64": "0.15.0", + "@minify-html/node-darwin-x64": "0.15.0", + "@minify-html/node-linux-arm64": "0.15.0", + "@minify-html/node-linux-x64": "0.15.0", + "@minify-html/node-win32-x64": "0.15.0" + } + }, + "node_modules/@minify-html/node-darwin-x64": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@minify-html/node-darwin-x64/-/node-darwin-x64-0.15.0.tgz", + "integrity": "sha512-D9M9UDku/8I5VEMS0gTLFFQK1DFXK8io+QZvR5cbya4u8NmdDQix/t3EyCR4Wgv/Gfk86gwIS+zfMSvuKcpb5A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@minify-html/node-linux-x64": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@minify-html/node-linux-x64/-/node-linux-x64-0.15.0.tgz", + "integrity": "sha512-cO893EV6O9ZHUFX+2Yge546OCo/eCiatjzJDmUmrPP56fQ7pzTRquHs4ko3t8Rg6tMKG7RT49mBuF09JWPnrgg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@minify-html/node-win32-x64": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@minify-html/node-win32-x64/-/node-win32-x64-0.15.0.tgz", + "integrity": "sha512-n92IFdtntchlUtyrq13pRI8TT3sOddbzuo4EPTSeocuTJMXaR77v0JYDu0fIjxXNawgGq6nBEeicxAcH4CbvUQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@putout/minify": { + "version": "3.8.5", + "resolved": "https://registry.npmjs.org/@putout/minify/-/minify-3.8.5.tgz", + "integrity": "sha512-m7Umg719m9kqcq7kV6RXtoRZZyUKn1YQOExfpgbHCYCJvwHPR2J/lADtgtkCFZslUKIyqSsjYUmQeKqDGJpXDg==", + "engines": { + "node": ">=18" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha512-40fpE2II+Cd3k8HWTWONfeKE2jL+P42iWJ1zzps5W51qcTsOUKM5Q5m2PFb0CLxlmFAaUuUdJGc3OfZy947v0w==", + "hasInstallScript": true, + "engines": { + "node": ">=0.2.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..4e53533 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "web-deploy", + "version": "0.0.1", + "description": "Minify and compress files for the web", + "main": "process.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/git.fjla.uk/web-deploy.git" + }, + "author": "Frederick Boniface", + "license": "ISC", + "bugs": { + "url": "https://github.com/git.fjla.uk/web-deploy/issues" + }, + "homepage": "https://github.com/git.fjla.uk/web-deploy#readme", + "dependencies": { + "@minify-html/node": "^0.15.0", + "clean-css": "^5.3.3", + "uglify-js": "^3.17.4", + "zlib": "^1.0.5" + } +} diff --git a/process.js b/process.js new file mode 100644 index 0000000..a4711f8 --- /dev/null +++ b/process.js @@ -0,0 +1,123 @@ +const MinifyHTML = require('@minify-html/node') +const UglifyJS = require('uglify-js') +const CleanCss = require('clean-css') +const Zlib = require('zlib') +const fs = require('fs') +const path = require('path') + +const input_dir = "/deploy/in" +const output_dir = "/deploy/out" + +function ensureDirectoryExists(file_path) { + const file_dir = path.dirname(file_path) + if (!fs.existsSync(file_dir)) { + fs.mkdirSync(file_dir) + } +} + +function minifyHtml(input_file, output_file) { + const opts = {keep_spaces_between_attributes: true, keep_comments: true} + const minified = MinifyHTML.minify(fs.readFileSync(input_file), opts) + ensureDirectoryExists(output_file) + fs.writeFileSync(output_file, minified) +} + +function minifyCss(input_file, output_file) { + input = fs.readFileSync(input_file) + const output = new CleanCss().minify(input) + fs.writeFileSync(output_file, output.styles) +} + +function minifyJs(input_file, output_file) { + const input = fs.readFileSync(input_file, 'utf8') + const minified = UglifyJS.minify(input) + fs.writeFileSync(output_file, minified.code, 'utf8') +} + +function minifyJson(input_file, output_file) { + const json = fs.readFileSync(input_file, 'utf8') + const parsed = JSON.parse(json) + const minified = JSON.stringify(parsed) + fs.writeFileSync(output_file, minified, 'utf8') +} + +function minifyXml(input_file, output_file) { + // Not yet available +} + +function compressGzip(input_path, output_path) { + const input = fs.createReadStream(input_path) + const gzip = Zlib.createGzip() + const output = fs.createWriteStream(output_path) + input.pipe(gzip).pipe(output) + output.on('finish', () => { + return + }) +} + +function compressBrotli(input_path, output_path) { + const input = fs.createReadStream(input_path) + const brotli = Zlib.createBrotliCompress() + const output = fs.createWriteStream(output_path) + input.pipe(brotli).pipe(output) + output.on('finish', () => { + return + }) +} + +processable_extentions = ['.html', '.css', '.js', '.json', '.xml', '.log', '.md', '.svg', '.wasm', '.yaml', '.yml', '.vcard', '.ical'] + +// Loop over file and subdirectories + +function processFiles(inputDir, outputDir) { + fs.readdirSync(inputDir).forEach(file => { + const inputFile = path.join(inputDir, file); + const outputFile = path.join(outputDir, file); + + if (fs.statSync(inputFile).isDirectory()) { + const nestedOutputDir = path.join(outputDir, file); + fs.mkdirSync(nestedOutputDir, { recursive: true }); + processFiles(inputFile, nestedOutputDir); // Recursive call with nested input and output directories + } else { + const extension = path.extname(file).toLowerCase(); + switch (extension) { + case '.html': + minifyHtml(inputFile, outputFile); + break; + case '.css': + minifyCss(inputFile, outputFile); + break; + case '.js': + minifyJs(inputFile, outputFile); + break; + case '.json': + minifyJson(inputFile, outputFile); + break; + case '.xml': + minifyXml(inputFile, outputFile); + break; + default: + fs.copyFileSync(inputFile, outputFile); + } + } + }); +} + +function compressFiles(directory) { + fs.readdirSync(directory).forEach(file => { + const file_path = path.join(directory, file); + + if (fs.statSync(file_path).isDirectory()) { + compressFiles(file_path); + } else { + const extension = path.extname(file).toLowerCase(); + if (processable_extentions.includes(extension)) { + compressGzip(file_path, file_path + '.gz'); + compressBrotli(file_path, file_path + '.br'); + } + } + }); +} + +processFiles(input_dir, output_dir); +compressFiles(output_dir); \ No newline at end of file diff --git a/test.dockerfile b/test.dockerfile new file mode 100644 index 0000000..6be0b74 --- /dev/null +++ b/test.dockerfile @@ -0,0 +1,10 @@ +FROM ubuntu:22.04 +RUN apt update \ + && apt install -y nodejs npm \ + && apt clean +WORKDIR /app +COPY package* ./ +RUN npm i +COPY process.js ./ +COPY test_input/ /deploy/in/ +RUN node process.js diff --git a/test_input/json/test.json b/test_input/json/test.json new file mode 100644 index 0000000..f486a93 --- /dev/null +++ b/test_input/json/test.json @@ -0,0 +1,6 @@ +{ + "userId": 1, + "id": 1, + "title": "delectus aut autem", + "completed": false + } \ No newline at end of file diff --git a/test_input/test.css b/test_input/test.css new file mode 100644 index 0000000..b7bb2c5 --- /dev/null +++ b/test_input/test.css @@ -0,0 +1,4 @@ +th { + width: 100; + height: 1000; +} \ No newline at end of file diff --git a/test_input/test.html b/test_input/test.html new file mode 100644 index 0000000..4579945 --- /dev/null +++ b/test_input/test.html @@ -0,0 +1,13 @@ + + + + test-file + + +

    This

    +

    Is

    +

    A

    +

    Test

    +
    file
    + + \ No newline at end of file diff --git a/test_input/test.js b/test_input/test.js new file mode 100644 index 0000000..7b70934 --- /dev/null +++ b/test_input/test.js @@ -0,0 +1,8 @@ +function myFunction() { + document.getElementById("demo").innerHTML = "Paragraph changed."; + } + +async function logger() { + console.log("hello, how're you today"); + console.error("ERR MSG"); +} \ No newline at end of file

    GUwF6opVhcAqV(jOLCj}nmq#5Bbqbk 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

  • 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≥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 z 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
  • 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/mPh+)<{E;kP(+q)+ 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�? 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