pdfjs-dist 2.0.489 → 2.2.228
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pdfjs-dist might be problematic. Click here for more details.
- package/CODE_OF_CONDUCT.md +15 -0
- package/bower.json +1 -1
- package/build/pdf.js +18515 -11402
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +48266 -37137
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/external/url/url-lib.js +627 -0
- package/image_decoders/pdf.image_decoders.js +11350 -0
- package/image_decoders/pdf.image_decoders.js.map +1 -0
- package/image_decoders/pdf.image_decoders.min.js +1 -0
- package/lib/core/annotation.js +587 -242
- package/lib/core/arithmetic_decoder.js +275 -245
- package/lib/core/bidi.js +65 -6
- package/lib/core/ccitt.js +173 -18
- package/lib/core/ccitt_stream.js +15 -6
- package/lib/core/cff_parser.js +433 -61
- package/lib/core/charsets.js +5 -4
- package/lib/core/chunked_stream.js +400 -152
- package/lib/core/cmap.js +326 -87
- package/lib/core/colorspace.js +874 -594
- package/lib/core/core_utils.js +147 -0
- package/lib/core/crypto.js +290 -45
- package/lib/core/document.js +560 -268
- package/lib/core/encodings.js +19 -10
- package/lib/core/evaluator.js +1005 -360
- package/lib/core/font_renderer.js +331 -97
- package/lib/core/fonts.js +812 -195
- package/lib/core/function.js +284 -71
- package/lib/core/glyphlist.js +4 -3
- package/lib/core/image.js +169 -62
- package/lib/core/image_utils.js +111 -0
- package/lib/core/jbig2.js +479 -66
- package/lib/core/jbig2_stream.js +19 -8
- package/lib/core/jpeg_stream.js +38 -13
- package/lib/core/jpg.js +253 -29
- package/lib/core/jpx.js +396 -6
- package/lib/core/jpx_stream.js +18 -6
- package/lib/core/metrics.js +15 -15
- package/lib/core/murmurhash3.js +56 -34
- package/lib/core/obj.js +1354 -488
- package/lib/core/operator_list.js +144 -31
- package/lib/core/parser.js +539 -191
- package/lib/core/pattern.js +148 -14
- package/lib/core/pdf_manager.js +323 -133
- package/lib/core/primitives.js +111 -24
- package/lib/core/ps_parser.js +134 -45
- package/lib/core/standard_fonts.js +17 -17
- package/lib/core/stream.js +313 -34
- package/lib/core/type1_parser.js +143 -13
- package/lib/core/unicode.js +32 -5
- package/lib/core/worker.js +217 -190
- package/lib/core/worker_stream.js +277 -0
- package/lib/display/annotation_layer.js +450 -133
- package/lib/display/api.js +1597 -784
- package/lib/display/api_compatibility.js +11 -13
- package/lib/display/canvas.js +360 -44
- package/lib/display/content_disposition.js +83 -32
- package/lib/display/display_utils.js +747 -0
- package/lib/display/fetch_stream.js +221 -90
- package/lib/display/font_loader.js +468 -236
- package/lib/display/metadata.js +38 -16
- package/lib/display/network.js +635 -428
- package/lib/display/network_utils.js +32 -19
- package/lib/display/node_stream.js +367 -175
- package/lib/display/pattern_helper.js +81 -31
- package/lib/display/svg.js +1235 -519
- package/lib/display/text_layer.js +153 -29
- package/lib/display/transport_stream.js +345 -94
- package/lib/display/webgl.js +64 -18
- package/lib/display/worker_options.js +5 -4
- package/lib/display/xml_parser.js +166 -53
- package/lib/examples/node/domstubs.js +60 -4
- package/lib/pdf.js +36 -14
- package/lib/pdf.worker.js +5 -3
- package/lib/shared/compatibility.js +158 -564
- package/lib/shared/global_scope.js +2 -2
- package/lib/shared/is_node.js +4 -4
- package/lib/shared/message_handler.js +521 -0
- package/lib/shared/streams_polyfill.js +21 -17
- package/lib/shared/url_polyfill.js +56 -0
- package/lib/shared/util.js +243 -710
- package/lib/test/unit/annotation_spec.js +870 -401
- package/lib/test/unit/api_spec.js +657 -345
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +54 -11
- package/lib/test/unit/clitests_helper.js +10 -8
- package/lib/test/unit/cmap_spec.js +95 -41
- package/lib/test/unit/colorspace_spec.js +115 -63
- package/lib/test/unit/core_utils_spec.js +191 -0
- package/lib/test/unit/crypto_spec.js +17 -5
- package/lib/test/unit/custom_spec.js +43 -55
- package/lib/test/unit/display_svg_spec.js +34 -18
- package/lib/test/unit/display_utils_spec.js +273 -0
- package/lib/test/unit/document_spec.js +8 -13
- package/lib/test/unit/encodings_spec.js +25 -45
- package/lib/test/unit/evaluator_spec.js +38 -15
- package/lib/test/unit/fetch_stream_spec.js +109 -0
- package/lib/test/unit/function_spec.js +17 -5
- package/lib/test/unit/jasmine-boot.js +33 -20
- package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
- package/lib/test/unit/metadata_spec.js +71 -11
- package/lib/test/unit/murmurhash3_spec.js +3 -3
- package/lib/test/unit/network_spec.js +19 -54
- package/lib/test/unit/network_utils_spec.js +91 -14
- package/lib/test/unit/node_stream_spec.js +56 -32
- package/lib/test/unit/parser_spec.js +162 -71
- package/lib/test/unit/pdf_find_controller_spec.js +230 -0
- package/lib/test/unit/pdf_find_utils_spec.js +63 -0
- package/lib/test/unit/pdf_history_spec.js +21 -9
- package/lib/test/unit/primitives_spec.js +53 -20
- package/lib/test/unit/stream_spec.js +12 -4
- package/lib/test/unit/test_utils.js +273 -56
- package/lib/test/unit/testreporter.js +21 -3
- package/lib/test/unit/type1_parser_spec.js +8 -6
- package/lib/test/unit/ui_utils_spec.js +454 -16
- package/lib/test/unit/unicode_spec.js +18 -15
- package/lib/test/unit/util_spec.js +87 -128
- package/lib/web/annotation_layer_builder.js +39 -22
- package/lib/web/app.js +1290 -588
- package/lib/web/app_options.js +100 -62
- package/lib/web/base_viewer.js +511 -182
- package/lib/web/chromecom.js +261 -117
- package/lib/web/debugger.js +166 -22
- package/lib/web/download_manager.js +32 -13
- package/lib/web/firefox_print_service.js +20 -10
- package/lib/web/firefoxcom.js +315 -80
- package/lib/web/genericcom.js +89 -30
- package/lib/web/genericl10n.js +142 -30
- package/lib/web/grab_to_pan.js +28 -4
- package/lib/web/interfaces.js +170 -47
- package/lib/web/overlay_manager.js +235 -85
- package/lib/web/password_prompt.js +22 -14
- package/lib/web/pdf_attachment_viewer.js +38 -18
- package/lib/web/pdf_cursor_tools.js +39 -16
- package/lib/web/pdf_document_properties.js +255 -136
- package/lib/web/pdf_find_bar.js +84 -40
- package/lib/web/pdf_find_controller.js +495 -184
- package/lib/web/pdf_find_utils.js +111 -0
- package/lib/web/pdf_history.js +190 -53
- package/lib/web/pdf_link_service.js +138 -77
- package/lib/web/pdf_outline_viewer.js +122 -46
- package/lib/web/pdf_page_view.js +191 -67
- package/lib/web/pdf_presentation_mode.js +99 -34
- package/lib/web/pdf_print_service.js +61 -13
- package/lib/web/pdf_rendering_queue.js +28 -9
- package/lib/web/pdf_sidebar.js +141 -81
- package/lib/web/pdf_sidebar_resizer.js +42 -16
- package/lib/web/pdf_single_page_viewer.js +74 -66
- package/lib/web/pdf_thumbnail_view.js +104 -33
- package/lib/web/pdf_thumbnail_viewer.js +66 -26
- package/lib/web/pdf_viewer.component.js +112 -32
- package/lib/web/pdf_viewer.js +91 -52
- package/lib/web/preferences.js +284 -89
- package/lib/web/secondary_toolbar.js +165 -40
- package/lib/web/text_layer_builder.js +134 -59
- package/lib/web/toolbar.js +78 -43
- package/lib/web/ui_utils.js +462 -136
- package/lib/web/view_history.js +215 -67
- package/lib/web/viewer_compatibility.js +4 -13
- package/package.json +5 -4
- package/web/pdf_viewer.css +79 -11
- package/web/pdf_viewer.js +6107 -3748
- package/web/pdf_viewer.js.map +1 -1
- package/lib/display/dom_utils.js +0 -309
- package/lib/test/unit/dom_utils_spec.js +0 -89
- package/lib/test/unit/fonts_spec.js +0 -81
- package/lib/web/dom_events.js +0 -137
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["webpack://pdfjs-dist/image_decoders/pdf.image_decoders/webpack/universalModuleDefinition","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/webpack/bootstrap","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/pdf.image_decoders.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/util.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/compatibility.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/global_scope.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/is_node.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/string/starts-with.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.string.starts-with.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_export.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_global.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_core.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_hide.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-dp.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_an-object.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_is-object.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_ie8-dom-define.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_descriptors.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_fails.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_dom-create.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_to-primitive.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_property-desc.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_redefine.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_has.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_uid.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_function-to-string.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_shared.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_library.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_ctx.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_a-function.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_to-length.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_to-integer.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_string-context.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_is-regexp.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_cof.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_wks.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_defined.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_fails-is-regexp.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/string/ends-with.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.string.ends-with.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/string/includes.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.string.includes.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/array/includes.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es7.array.includes.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_array-includes.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_to-iobject.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_iobject.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_to-absolute-index.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_add-to-unscopables.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/array/from.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.string.iterator.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_string-at.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_iter-define.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_iterators.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_iter-create.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-create.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-dps.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-keys.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-keys-internal.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_shared-key.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_enum-bug-keys.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_html.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_set-to-string-tag.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-gpo.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_to-object.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.array.from.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_iter-call.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_is-array-iter.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_create-property.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/core.get-iterator-method.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_classof.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_iter-detect.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/object/assign.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.object.assign.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-assign.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-gops.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-pie.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/math/log2.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.math.log2.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/number/is-nan.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.number.is-nan.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/number/is-integer.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.number.is-integer.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_is-integer.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/weak-map.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.object.to-string.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/web.dom.iterable.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.array.iterator.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_iter-step.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.weak-map.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_array-methods.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_array-species-create.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_array-species-constructor.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_is-array.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_meta.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_collection-weak.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_redefine-all.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_an-instance.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_for-of.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_validate-collection.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_collection.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_inherit-if-required.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_set-proto.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-gopd.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es7.weak-map.of.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_set-collection-of.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es7.weak-map.from.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_set-collection-from.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/weak-set.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.weak-set.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es7.weak-set.of.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es7.weak-set.from.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/string/code-point-at.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.string.code-point-at.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/string/from-code-point.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.string.from-code-point.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/es6/symbol.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es6.symbol.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_wks-ext.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_wks-define.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_enum-keys.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-gopn-ext.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-gopn.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/string/pad-start.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es7.string.pad-start.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_string-pad.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_string-repeat.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_user-agent.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/string/pad-end.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es7.string.pad-end.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/fn/object/values.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/es7.object.values.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/node_modules/core-js/modules/_object-to-array.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/streams_polyfill.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/url_polyfill.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/jbig2.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/arithmetic_decoder.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/ccitt.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/jpg.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/jpx.js"],"names":["pdfjsVersion","pdfjsBuild","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","NativeImageDecoding","NONE","DECODE","DISPLAY","PermissionFlag","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RL","FontType","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","UNSUPPORTED_FEATURES","unknown","forms","javaScript","smask","shadingPattern","font","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","Number","console","unreachable","base","other","url","absoluteUrl","baseUrl","_isValidProtocol","Object","value","enumerable","configurable","writable","PasswordException","UnknownErrorException","InvalidPDFException","MissingPDFException","UnexpectedResponseException","FormatError","AbortException","NullCharactersRegExp","warn","str","assert","bytes","length","MAX_ARGUMENT_COUNT","String","strBuf","i","chunkEnd","Math","chunk","arr","resultLength","ii","item","itemLength","arrayByteLength","pos","data","stringToBytes","x","offset","buffer8","view32","Util","rgbBuf","m1","m2","xt","p","m","yt","d","p1","p2","r","p3","p4","v","transpose","a","b","c","first","second","sx","sy","rect","orderedX","rect1","rect2","orderedY","result","PDFStringTranslateTable","n","code","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","element","ch","capability","isSettled","get","resolve","reject","createObjectURL","digits","forceDataSchema","URL","blob","type","buffer","b1","b2","b3","d1","d2","d3","d4","globalScope","require","isNodeJS","hasDOM","Buffer","Element","div","document","OriginalDOMTokenListAdd","DOMTokenList","OriginalDOMTokenListRemove","token","force","arguments","Array","module","window","global","self","process","$export","toLength","context","STARTS_WITH","$startsWith","startsWith","that","index","search","core","hide","redefine","ctx","PROTOTYPE","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","target","exports","expProto","source","own","out","exp","Function","__g","version","__e","dP","createDesc","object","anObject","IE8_DOM_DEFINE","toPrimitive","P","TypeError","O","Attributes","isObject","it","exec","is","S","val","fn","has","SRC","$toString","TO_STRING","TPL","isFunction","hasOwnProperty","id","px","key","SHARED","store","mode","copyright","aFunction","toInteger","min","ceil","floor","isNaN","isRegExp","defined","cof","MATCH","toString","uid","Symbol","USE_SYMBOL","$exports","re","ENDS_WITH","$endsWith","endsWith","endPosition","len","end","INCLUDES","includes","$includes","toIObject","toAbsoluteIndex","IS_INCLUDES","el","IObject","max","UNSCOPABLES","ArrayProto","$at","done","point","s","l","LIBRARY","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","getMethod","kind","proto","TAG","NAME","DEF_VALUES","DEFAULT","VALUES_BUG","Base","$native","$default","$entries","$anyNative","IteratorPrototype","methods","values","keys","IS_SET","entries","create","descriptor","Constructor","next","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframe","lt","gt","iframeDocument","Properties","getKeys","$keys","arrayIndexOf","names","shared","def","stat","toObject","ObjectProto","call","isArrayIter","createProperty","getIterFn","from","C","aLen","mapfn","mapping","iterFn","iterator","step","ret","$defineProperty","classof","ARG","tryGet","SAFE_CLOSING","riter","safe","iter","assign","DESCRIPTORS","gOPS","pIE","$assign","A","B","K","T","getSymbols","isEnum","j","log2","number","isInteger","isFinite","test","$iterators","wks","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","addToUnscopables","each","meta","weak","validate","NATIVE_WEAK_MAP","IS_IE11","WEAK_MAP","getWeak","isExtensible","uncaughtFrozenStore","wrapper","set","$WeakMap","InternalMap","method","asc","IS_MAP","TYPE","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$create","f","res","speciesConstructor","isArray","SPECIES","original","META","setDesc","FREEZE","setMeta","w","fastKey","onFreeze","KEY","NEED","redefineAll","anInstance","forOf","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","entry","getConstructor","iterable","ufstore","src","forbiddenField","name","BREAK","RETURN","fails","$iterDetect","inheritIfRequired","ADDER","fixMethod","IS_WEAK","common","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setPrototypeOf","check","buggy","gOPD","of","mapFn","cb","WEAK_SET","add","codePointAt","fromCharCode","$fromCodePoint","fromCodePoint","RangeError","$fails","wksExt","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$Symbol","$JSON","_stringify","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","setSymbolDesc","protoDesc","wrap","sym","isSymbol","D","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","tag","$set","es6Symbols","wellKnownSymbols","k","keyFor","useSetter","useSimple","defineProperty","defineProperties","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","FAILS_ON_PRIMITIVES","stringify","args","$replacer","replacer","symbols","windowNames","getWindowNames","hiddenKeys","$pad","userAgent","WEBKIT_BUG","padStart","repeat","stringLength","fillStr","fillString","intMaxLength","fillLen","stringFiller","left","navigator","padEnd","$values","isReadableStreamSupported","start","controller","constructor","isURLSupported","u","Jbig2Error","Jbig2Image","ContextCache","getContexts","DecodingContext","decoder","shadow","cache","contexts","contextCache","prev","bit","sign","readBits","codeLength","SegmentTypes","CodingTemplates","y","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodingContext","bitmap","OLD_PIXEL_MASK","row","row1","row2","contextLabel","pixel","input","decodeMMRBitmap","templateIndex","at","decodeBitmapTemplate0","useskip","template","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","sbb_left","sbb_top","sbb_right","width","pseudoPixelContext","ltp","sltp","skip","i0","j0","shift","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceBitmap","referenceHeight","huffman","newSymbols","currentHeight","symbolCodeLength","tableB1","getStandardTable","symbolWidths","deltaHeight","huffmanTables","decodeInteger","currentWidth","totalWidth","firstSymbol","deltaWidth","numberOfInstances","decodeTextRegion","symbolId","decodeIAID","rdx","rdy","symbol","decodeRefinement","decodeBitmap","bitmapSize","huffmanInput","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","flags","currentFlag","totalSymbolsLength","runLength","stripT","firstS","deltaT","deltaFirstS","currentS","currentT","stripSize","t","applyRefinement","refinement","inputSymbols","symbolWidth","symbolHeight","rdw","rdh","offsetT","referenceCorner","offsetS","s2","symbolRow","maxWidth","t2","deltaS","collectiveWidth","patterns","patternBitmap","patternWidth","combinationOperator","regionBitmap","numberOfPatterns","pattern0","patternHeight","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","gridOffsetX","gridOffsetY","regionRow","patternRow","regionX","regionY","segmentHeader","readUint32","segmentType","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","position","referredToSegmentNumberSize","referredTo","readUint16","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","genericRegionMmr","searchPatternLength","searchPattern","segments","readSegmentHeader","segment","header","height","RegionSegmentInformationFieldLength","dictionary","dictionaryFlags","atLength","readInt8","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","callbackName","visitor","processSegment","chunks","readSegments","processSegments","bitPacked","imgData","q","mask","SimpleSegmentVisitor","onPageInformation","rowSize","info","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","getSymbolDictionaryHuffmanTables","referredSegments","referredSymbols","decodeSymbolDictionary","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","decodePatternDictionary","onImmediateHalftoneRegion","decodeHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","customTables","decodeTablesSegment","lineData","line","HuffmanTreeNode","buildTree","node","decodeNode","htOffset","reader","lines","HuffmanTable","decode","assignPrefixCodes","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","prefixLength","rangeLength","standardTablesCache","table","Reader","readBit","numBits","byteAlign","currentIndex","codes","runCodesTable","repeatedLength","numberOfRepeats","symbolIDTable","customIndex","tableFirstS","getCustomHuffmanTable","tableDeltaS","tableDeltaT","tableDeltaHeight","tableDeltaWidth","tableBitmapSize","tableAggregateInstances","params","Columns","Rows","BlackIs1","EndOfBlock","eof","currentByte","endOfBlock","lookForEOFLimit","parseChunks","parseJbig2Chunks","parse","parseJbig2","QeTable","qe","nmps","nlps","switchFlag","bp","cx_index","cx_mps","qeTableIcx","qeIcx","CCITTFaxDecoder","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","options","eoblock","code1","readNextChar","refLine","codingLine","columns","refPos","blackPixels","code2","code3","gotEOL","bits","_addPixels","codingPos","a1","_addPixelsNeg","_findTableCode","limitValue","limit","_getTwoDimCode","_getWhiteCode","_getBlackCode","_lookBits","_eatBits","JpegError","DNLMarkerError","EOIMarkerError","JpegImage","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","decodeTransform","colorTransform","codeLengths","children","parseDNLMarker","mcusPerLine","frame","progressive","startOffset","bitsData","bitsCount","nextByte","scanLines","receive","decodeHuffman","component","diff","receiveAndExtend","rs","z","eobrun","e","successiveACState","offsetZ","successiveACNextValue","mcuRow","mcu","mcuCol","blockRow","blockCol","getBlockBufferOffset","componentsLength","components","spectralStart","decodeFn","successivePrev","mcuExpected","mcuToRead","resetInterval","decodeBlock","h","decodeMcu","fileMarker","findNextFileMarker","marker","qt","blockData","p0","blockBufferOffset","p5","p6","p7","v0","v1","v2","v3","v4","v7","v5","v6","col","blocksPerLine","blocksPerColumn","computationBuffer","quantizeAndInverse","startPos","maxPos","newPos","currentPos","currentMarker","peekUint16","invalid","newMarker","dnlScanLines","endOffset","array","mcusPerColumn","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","appData","readDataBlock","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","sofScanLines","componentsCount","maxH","maxV","componentId","qId","quantizationId","quantizationTable","prepareComponents","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","buildHuffmanTable","selectorsCount","componentIndex","tableSpec","spectralEnd","successiveApproximation","processed","decodeScan","ex","nextFileMarker","output","buildComponentData","scaleX","scaleY","_getLinearizedBlockData","isSourcePDF","numComponents","dataLength","xScaleBlockOffset","mask3LSB","componentScaleX","componentScaleY","blocksPerScanline","_convertYccToRgb","Y","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","scale","getData","forceRGB","rgbData","grayColor","JpxError","JpxImage","SubbandsGainLog2","head","headerSize","lbox","tbox","jumpDataLength","colorspace","headerType","parseImageProperties","newByte","stream","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","parseCodestream","doNotRecover","siz","precision","isSigned","XRsiz","YRsiz","calculateComponentDimensions","calculateTileGrids","qcd","sqcd","spqcdSize","scalarExpounded","spqcds","spqcd","qcc","cqcc","cod","scod","blockStyle","precinctsSizes","precinctsSize","PPx","PPy","unsupported","tile","initializeTile","buildPackets","parseTilePackets","transformComponents","tiles","numXtiles","numYtiles","jj","tileComponent","codOrCoc","precinctWidth","dimensions","precinctHeight","isZeroRes","resolution","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","numprecinctshigh","numprecincts","xcb_","ycb_","codeblockWidth","codeblockHeight","cbx0","subband","cby0","cbx1","cby1","precinctParameters","codeblocks","precincts","codeblock","cbx","cby","tbx0","tby0","tbx1","tby1","pi","pj","precinctNumber","precinct","cbxMin","cbyMin","cbxMax","cbyMax","numcodeblockwide","numcodeblockhigh","precinctCodeblocks","subbands","layerNumber","tileIndex","layersCount","maxDecompositionLevelsCount","packet","createPacket","maxNumPrecinctsInLevel","maxNumPrecincts","resolutions","getPrecinctSizesInImageScale","precinctsIterationSizes","py","decompositionLevelsCount","sizeInImageScale","getPrecinctIndexIfExist","posX","pxIndex","precinctIterationSizes","posY","pyIndex","startPrecinctRowIndex","minWidth","minHeight","maxNumWide","maxNumHigh","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","widthCurrentResolution","heightCurrentResolution","blocksDimensions","getBlocksDimensions","buildPrecincts","buildCodeblocks","bscale","resolutionSubbands","progressionOrder","bufferSize","skipNextBit","skipBytes","sopMarkerUsed","ephMarkerUsed","packetsIterator","alignToByte","skipMarkerIfEqual","queue","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","inclusionTree","zeroBitPlanesTree","valueReady","codingpasses","readCodingpasses","codingpassesLog2","codedDataLength","packetItem","x0","y0","right","bottom","blockWidth","blockHeight","bitModel","currentCodingpassType","totalLength","dataItem","encodedData","magnitude","bitsDecoded","magnitudeCorrection","reversible","interleave","levelOffset","nb","coefficients","mb","codingStyleParameters","quantizationParameters","guardBits","segmentationSymbolUsed","subbandCoefficients","mu","epsilon","gainLog2","delta","copyCoefficients","items","top","resultImages","transformedTiles","transformTile","tile0","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","y1","y2","g","qcdOrQcc","TagTree","levelsLength","level","reset","currentLevel","incrementValue","nextLevel","InclusionTree","stopValue","propagateValues","levelIndex","currentValue","BitModel","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","coefficientCount","zeroBitPlanes","setDecoder","setNeighborsSignificance","neighborsSignificance","column","runSignificancePropagationPass","coefficentsMagnitude","coefficentsSign","processingFlags","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","significance1","sign1","sign0","contribution","horizontalContribution","decoded","runMagnitudeRefinementPass","width4","index0","indexNext","significance","runCleanupPass","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","checkSegmentationSymbol","Transform","ll","j1","j2","llWidth","llHeight","llItems","hl_lh_hh","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","IrreversibleTransform","alpha","beta","gamma","K_","current","ReversibleTransform"],"mappings":"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","file":"pdf.image_decoders.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/image_decoders/pdf.image_decoders\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/image_decoders/pdf.image_decoders\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/image_decoders/pdf.image_decoders\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __w_pdfjs_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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = 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__w_pdfjs_require__.m = modules;\n\n \t// expose the module cache\n \t__w_pdfjs_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__w_pdfjs_require__.d = function(exports, name, getter) {\n \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__w_pdfjs_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__w_pdfjs_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__w_pdfjs_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__w_pdfjs_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__w_pdfjs_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-unused-vars */\n\nimport { getVerbosityLevel, setVerbosityLevel } from './shared/util';\nimport { Jbig2mage } from './core/jbig2';\nimport { JpegImage } from './core/jpg';\nimport { JpxImage } from './core/jpx';\n\n// To ensure that the standalone PDF.js image decoders have the same\n// browser/environment compatibility as the regular PDF.js library,\n// the standard set of polyfills are thus included in this build as well.\n//\n// Given that the (current) image decoders don't use all of the features\n// of the complete PDF.js library, e.g. they are completely synchronous,\n// some of the larger polyfills are thus unnecessary.\n//\n// In an attempt to reduce the size of the standalone PDF.js image decoders,\n// the following polyfills are currently being excluded:\n// - ReadableStream\n// - Promise\n// - URL\n\nconst pdfjsVersion = PDFJSDev.eval('BUNDLE_VERSION');\nconst pdfjsBuild = PDFJSDev.eval('BUNDLE_BUILD');\n\nexport {\n Jbig2mage,\n JpegImage,\n JpxImage,\n getVerbosityLevel,\n setVerbosityLevel,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport './compatibility';\nimport { ReadableStream } from './streams_polyfill';\nimport { URL } from './url_polyfill';\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst NativeImageDecoding = {\n NONE: 'none',\n DECODE: 'decode',\n DISPLAY: 'display',\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst StreamType = {\n UNKNOWN: 0,\n FLATE: 1,\n LZW: 2,\n DCT: 3,\n JPX: 4,\n JBIG: 5,\n A85: 6,\n AHX: 7,\n CCF: 8,\n RL: 9,\n};\n\nconst FontType = {\n UNKNOWN: 0,\n TYPE1: 1,\n TYPE1C: 2,\n CIDFONTTYPE0: 3,\n CIDFONTTYPE0C: 4,\n TRUETYPE: 5,\n CIDFONTTYPE2: 6,\n TYPE3: 7,\n OPENTYPE: 8,\n TYPE0: 9,\n MMTYPE1: 10,\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n unknown: 'unknown',\n forms: 'forms',\n javaScript: 'javaScript',\n smask: 'smask',\n shadingPattern: 'shadingPattern',\n font: 'font',\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log('Info: ' + msg);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log('Warning: ' + msg);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n try {\n var base = new URL(baseUrl);\n if (!base.origin || base.origin === 'null') {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n var other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the whitelisted protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'mailto:':\n case 'tel:':\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} baseUrl - An absolute URL.\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\n var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) { /* `new URL()` will throw on incorrect data. */ }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, { value,\n enumerable: true,\n configurable: true,\n writable: false, });\n return value;\n}\n\nvar PasswordException = (function PasswordExceptionClosure() {\n function PasswordException(msg, code) {\n this.name = 'PasswordException';\n this.message = msg;\n this.code = code;\n }\n\n PasswordException.prototype = new Error();\n PasswordException.constructor = PasswordException;\n\n return PasswordException;\n})();\n\nvar UnknownErrorException = (function UnknownErrorExceptionClosure() {\n function UnknownErrorException(msg, details) {\n this.name = 'UnknownErrorException';\n this.message = msg;\n this.details = details;\n }\n\n UnknownErrorException.prototype = new Error();\n UnknownErrorException.constructor = UnknownErrorException;\n\n return UnknownErrorException;\n})();\n\nvar InvalidPDFException = (function InvalidPDFExceptionClosure() {\n function InvalidPDFException(msg) {\n this.name = 'InvalidPDFException';\n this.message = msg;\n }\n\n InvalidPDFException.prototype = new Error();\n InvalidPDFException.constructor = InvalidPDFException;\n\n return InvalidPDFException;\n})();\n\nvar MissingPDFException = (function MissingPDFExceptionClosure() {\n function MissingPDFException(msg) {\n this.name = 'MissingPDFException';\n this.message = msg;\n }\n\n MissingPDFException.prototype = new Error();\n MissingPDFException.constructor = MissingPDFException;\n\n return MissingPDFException;\n})();\n\nvar UnexpectedResponseException =\n (function UnexpectedResponseExceptionClosure() {\n function UnexpectedResponseException(msg, status) {\n this.name = 'UnexpectedResponseException';\n this.message = msg;\n this.status = status;\n }\n\n UnexpectedResponseException.prototype = new Error();\n UnexpectedResponseException.constructor = UnexpectedResponseException;\n\n return UnexpectedResponseException;\n})();\n\n/**\n * Error caused during parsing PDF data.\n */\nlet FormatError = (function FormatErrorClosure() {\n function FormatError(msg) {\n this.message = msg;\n }\n\n FormatError.prototype = new Error();\n FormatError.prototype.name = 'FormatError';\n FormatError.constructor = FormatError;\n\n return FormatError;\n})();\n\n/**\n * Error used to indicate task cancellation.\n */\nlet AbortException = (function AbortExceptionClosure() {\n function AbortException(msg) {\n this.name = 'AbortException';\n this.message = msg;\n }\n\n AbortException.prototype = new Error();\n AbortException.constructor = AbortException;\n\n return AbortException;\n})();\n\nvar NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n if (typeof str !== 'string') {\n warn('The argument for removeNullCharacters must be a string.');\n return str;\n }\n return str.replace(NullCharactersRegExp, '');\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === 'object' &&\n bytes.length !== undefined, 'Invalid argument for bytesToString');\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n var strBuf = [];\n for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n var chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join('');\n}\n\nfunction stringToBytes(str) {\n assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n var length = str.length;\n var bytes = new Uint8Array(length);\n for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xFF;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array} arr - the array of the arrays (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n // Shortcut: if first and only item is Uint8Array, return it.\n if (arr.length === 1 && (arr[0] instanceof Uint8Array)) {\n return arr[0];\n }\n var resultLength = 0;\n var i, ii = arr.length;\n var item, itemLength;\n for (i = 0; i < ii; i++) {\n item = arr[i];\n itemLength = arrayByteLength(item);\n resultLength += itemLength;\n }\n var pos = 0;\n var data = new Uint8Array(resultLength);\n for (i = 0; i < ii; i++) {\n item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === 'string') {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff,\n (value >> 8) & 0xff, value & 0xff);\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, start) {\n return (data[start] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return ((data[offset] << 24) | (data[offset + 1] << 16) |\n (data[offset + 2] << 8) | data[offset + 3]) >>> 0;\n}\n\n// Lazy test the endianness of the platform\n// NOTE: This will be 'true' for simulated TypedArrays\nfunction isLittleEndian() {\n var buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return (view32[0] === 1);\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(''); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nvar Util = (function UtilClosure() {\n function Util() {}\n\n var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n\n // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids\n // creating many intermediate strings.\n Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join('');\n };\n\n // Concatenates two transformation matrices together and returns the result.\n Util.transform = function Util_transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5]\n ];\n };\n\n // For 2d affine transforms\n Util.applyTransform = function Util_applyTransform(p, m) {\n var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n };\n\n Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n var d = m[0] * m[3] - m[1] * m[2];\n var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n };\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n Util.getAxialAlignedBoundingBox =\n function Util_getAxialAlignedBoundingBox(r, m) {\n\n var p1 = Util.applyTransform(r, m);\n var p2 = Util.applyTransform(r.slice(2, 4), m);\n var p3 = Util.applyTransform([r[0], r[3]], m);\n var p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1])\n ];\n };\n\n Util.inverseTransform = function Util_inverseTransform(m) {\n var d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n };\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2]\n ];\n };\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n Util.singularValueDecompose2dScale =\n function Util_singularValueDecompose2dScale(m) {\n\n var transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n var a = m[0] * transpose[0] + m[1] * transpose[2];\n var b = m[0] * transpose[1] + m[1] * transpose[3];\n var c = m[2] * transpose[0] + m[3] * transpose[2];\n var d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n var first = (a + d) / 2;\n var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n var sx = first + second || 1;\n var sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n };\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n Util.normalizeRect = function Util_normalizeRect(rect) {\n var r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n };\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'false'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n Util.intersect = function Util_intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n // Order points along the axes\n var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),\n orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),\n result = [];\n\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n // X: first and second points belong to different rectangles?\n if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) {\n // Intersection must be between second and third points\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return false;\n }\n\n // Y: first and second points belong to different rectangles?\n if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) {\n // Intersection must be between second and third points\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return false;\n }\n\n return result;\n };\n\n return Util;\n})();\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,\n 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,\n 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,\n 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC\n];\n\nfunction stringToPDFString(str) {\n var i, n = str.length, strBuf = [];\n if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n // UTF16BE BOM\n for (i = 2; i < n; i += 2) {\n strBuf.push(String.fromCharCode(\n (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)));\n }\n } else {\n for (i = 0; i < n; ++i) {\n var code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n return strBuf.join('');\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n for (var key in obj) {\n return false;\n }\n return true;\n}\n\nfunction isBool(v) {\n return typeof v === 'boolean';\n}\n\nfunction isNum(v) {\n return typeof v === 'number';\n}\n\nfunction isString(v) {\n return typeof v === 'string';\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === 'object' && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n return arr1.every(function(element, index) {\n return element === arr2[index];\n });\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isSpace(ch) {\n return (ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A);\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @return {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, 'settled', {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function(resolve, reject) {\n capability.resolve = function(data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function(reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nvar createObjectURL = (function createObjectURLClosure() {\n // Blob/createObjectURL is not available, falling back to data schema.\n var digits =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], { type: contentType, });\n return URL.createObjectURL(blob);\n }\n\n var buffer = 'data:' + contentType + ';base64,';\n for (var i = 0, ii = data.length; i < ii; i += 3) {\n var b1 = data[i] & 0xFF;\n var b2 = data[i + 1] & 0xFF;\n var b3 = data[i + 2] & 0xFF;\n var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);\n var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;\n var d4 = i + 2 < ii ? (b3 & 0x3F) : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n };\n})();\n\nexport {\n FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n OPS,\n VerbosityLevel,\n UNSUPPORTED_FEATURES,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationType,\n FontType,\n ImageKind,\n CMapCompressionType,\n AbortException,\n InvalidPDFException,\n MissingPDFException,\n NativeImageDecoding,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n StreamType,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n Util,\n FormatError,\n arrayByteLength,\n arraysToBytes,\n assert,\n bytesToString,\n createPromiseCapability,\n createObjectURL,\n getVerbosityLevel,\n info,\n isArrayBuffer,\n isArrayEqual,\n isBool,\n isEmptyObj,\n isNum,\n isString,\n isSpace,\n isSameOrigin,\n createValidAbsoluteUrl,\n isLittleEndian,\n isEvalSupported,\n log2,\n readInt8,\n readUint16,\n readUint32,\n removeNullCharacters,\n ReadableStream,\n URL,\n setVerbosityLevel,\n shadow,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n utf8StringToString,\n warn,\n unreachable,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst globalScope = require('./global_scope');\n\n// Skip compatibility checks for the extensions and if we already ran\n// this module.\nif ((typeof PDFJSDev === 'undefined' ||\n !PDFJSDev.test('FIREFOX || MOZCENTRAL')) &&\n !globalScope._pdfjsCompatibilityChecked) {\n\nglobalScope._pdfjsCompatibilityChecked = true;\n\nconst isNodeJS = require('./is_node');\n\nconst hasDOM = typeof window === 'object' && typeof document === 'object';\n\n// Support: Node.js\n(function checkNodeBtoa() {\n if (globalScope.btoa || !isNodeJS()) {\n return;\n }\n globalScope.btoa = function(chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, 'binary').toString('base64');\n };\n})();\n\n// Support: Node.js\n(function checkNodeAtob() {\n if (globalScope.atob || !isNodeJS()) {\n return;\n }\n globalScope.atob = function(input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, 'base64').toString('binary');\n };\n})();\n\n// Provides support for ChildNode.remove in legacy browsers.\n// Support: IE.\n(function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n if (typeof Element.prototype.remove !== 'undefined') {\n return;\n }\n Element.prototype.remove = function () {\n if (this.parentNode) {\n // eslint-disable-next-line mozilla/avoid-removeChild\n this.parentNode.removeChild(this);\n }\n };\n})();\n\n// Provides support for DOMTokenList.prototype.{add, remove}, with more than\n// one parameter, in legacy browsers.\n// Support: IE\n(function checkDOMTokenListAddRemove() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n const div = document.createElement('div');\n div.classList.add('testOne', 'testTwo');\n\n if (div.classList.contains('testOne') === true &&\n div.classList.contains('testTwo') === true) {\n return;\n }\n const OriginalDOMTokenListAdd = DOMTokenList.prototype.add;\n const OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;\n\n DOMTokenList.prototype.add = function(...tokens) {\n for (let token of tokens) {\n OriginalDOMTokenListAdd.call(this, token);\n }\n };\n DOMTokenList.prototype.remove = function(...tokens) {\n for (let token of tokens) {\n OriginalDOMTokenListRemove.call(this, token);\n }\n };\n})();\n\n// Provides support for DOMTokenList.prototype.toggle, with the optional\n// \"force\" parameter, in legacy browsers.\n// Support: IE\n(function checkDOMTokenListToggle() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n const div = document.createElement('div');\n if (div.classList.toggle('test', 0) === false) {\n return;\n }\n\n DOMTokenList.prototype.toggle = function(token) {\n let force = (arguments.length > 1 ? !!arguments[1] : !this.contains(token));\n return (this[force ? 'add' : 'remove'](token), force);\n };\n})();\n\n// Provides support for String.prototype.startsWith in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringStartsWith() {\n if (String.prototype.startsWith) {\n return;\n }\n require('core-js/fn/string/starts-with');\n})();\n\n// Provides support for String.prototype.endsWith in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringEndsWith() {\n if (String.prototype.endsWith) {\n return;\n }\n require('core-js/fn/string/ends-with');\n})();\n\n// Provides support for String.prototype.includes in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringIncludes() {\n if (String.prototype.includes) {\n return;\n }\n require('core-js/fn/string/includes');\n})();\n\n// Provides support for Array.prototype.includes in legacy browsers.\n// Support: IE, Chrome<47\n(function checkArrayIncludes() {\n if (Array.prototype.includes) {\n return;\n }\n require('core-js/fn/array/includes');\n})();\n\n// Provides support for Array.from in legacy browsers.\n// Support: IE\n(function checkArrayFrom() {\n if (Array.from) {\n return;\n }\n require('core-js/fn/array/from');\n})();\n\n// Provides support for Object.assign in legacy browsers.\n// Support: IE\n(function checkObjectAssign() {\n if (Object.assign) {\n return;\n }\n require('core-js/fn/object/assign');\n})();\n\n// Provides support for Math.log2 in legacy browsers.\n// Support: IE, Chrome<38\n(function checkMathLog2() {\n if (Math.log2) {\n return;\n }\n Math.log2 = require('core-js/fn/math/log2');\n})();\n\n// Provides support for Number.isNaN in legacy browsers.\n// Support: IE.\n(function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n Number.isNaN = require('core-js/fn/number/is-nan');\n})();\n\n// Provides support for Number.isInteger in legacy browsers.\n// Support: IE, Chrome<34\n(function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n Number.isInteger = require('core-js/fn/number/is-integer');\n})();\n\n// Support: IE, Safari<11, Chrome<63\n(function checkPromise() {\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('IMAGE_DECODERS')) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalScope.Promise && (globalScope.Promise.prototype &&\n globalScope.Promise.prototype.finally)) {\n return;\n }\n globalScope.Promise = require('core-js/fn/promise');\n})();\n\n// Support: IE<11, Safari<8, Chrome<36\n(function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n globalScope.WeakMap = require('core-js/fn/weak-map');\n})();\n\n// Support: IE11\n(function checkWeakSet() {\n if (globalScope.WeakSet) {\n return;\n }\n globalScope.WeakSet = require('core-js/fn/weak-set');\n})();\n\n// Provides support for String.codePointAt in legacy browsers.\n// Support: IE11.\n(function checkStringCodePointAt() {\n if (String.codePointAt) {\n return;\n }\n String.codePointAt = require('core-js/fn/string/code-point-at');\n})();\n\n// Provides support for String.fromCodePoint in legacy browsers.\n// Support: IE11.\n(function checkStringFromCodePoint() {\n if (String.fromCodePoint) {\n return;\n }\n String.fromCodePoint = require('core-js/fn/string/from-code-point');\n})();\n\n// Support: IE\n(function checkSymbol() {\n if (globalScope.Symbol) {\n return;\n }\n require('core-js/es6/symbol');\n})();\n\n// Provides support for String.prototype.padStart in legacy browsers.\n// Support: IE, Chrome<57\n(function checkStringPadStart() {\n if (String.prototype.padStart) {\n return;\n }\n require('core-js/fn/string/pad-start');\n})();\n\n// Provides support for String.prototype.padEnd in legacy browsers.\n// Support: IE, Chrome<57\n(function checkStringPadEnd() {\n if (String.prototype.padEnd) {\n return;\n }\n require('core-js/fn/string/pad-end');\n})();\n\n// Provides support for Object.values in legacy browsers.\n// Support: IE, Chrome<54\n(function checkObjectValues() {\n if (Object.values) {\n return;\n }\n Object.values = require('core-js/fn/object/values');\n})();\n\n}\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals module */\n\nmodule.exports =\n (typeof window !== 'undefined' && window.Math === Math) ? window :\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global.Math === Math) ? global :\n (typeof self !== 'undefined' && self.Math === Math) ? self : {};\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals module, process */\n\nmodule.exports = function isNodeJS() {\n // NW.js / Electron is a browser context, but copies some Node.js objects; see\n // http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n // https://electronjs.org/docs/api/process#processversionselectron\n return typeof process === 'object' &&\n process + '' === '[object process]' &&\n !process.versions['nw'] && !process.versions['electron'];\n};\n","require('../../modules/es6.string.starts-with');\nmodule.exports = require('../../modules/_core').String.startsWith;\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","require('../../modules/es6.string.ends-with');\nmodule.exports = require('../../modules/_core').String.endsWith;\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","require('../../modules/es6.string.includes');\nmodule.exports = require('../../modules/_core').String.includes;\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","require('../../modules/es7.array.includes');\nmodule.exports = require('../../modules/_core').Array.includes;\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = {};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\n","require('../../modules/es6.math.log2');\nmodule.exports = require('../../modules/_core').Math.log2;\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","require('../../modules/es6.number.is-nan');\nmodule.exports = require('../../modules/_core').Number.isNaN;\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","require('../modules/es6.object.to-string');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es7.weak-map.of');\nrequire('../modules/es7.weak-map.from');\nmodule.exports = require('../modules/_core').WeakMap;\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\nrequire('./_set-collection-of')('WeakMap');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\nrequire('./_set-collection-from')('WeakMap');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n","require('../modules/es6.object.to-string');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.weak-set');\nrequire('../modules/es7.weak-set.of');\nrequire('../modules/es7.weak-set.from');\nmodule.exports = require('../modules/_core').WeakSet;\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\nrequire('./_set-collection-of')('WeakSet');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\nrequire('./_set-collection-from')('WeakSet');\n","require('../../modules/es6.string.code-point-at');\nmodule.exports = require('../../modules/_core').String.codePointAt;\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","require('../../modules/es6.string.from-code-point');\nmodule.exports = require('../../modules/_core').String.fromCodePoint;\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.to-string');\nmodule.exports = require('../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","require('../../modules/es7.string.pad-start');\nmodule.exports = require('../../modules/_core').String.padStart;\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","require('../../modules/es7.string.pad-end');\nmodule.exports = require('../../modules/_core').String.padEnd;\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n","require('../../modules/es7.object.values');\nmodule.exports = require('../../modules/_core').Object.values;\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-restricted-globals */\n\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('MOZCENTRAL')) {\n if (typeof ReadableStream === 'undefined') {\n throw new Error('Please enable ReadableStream support by resetting the ' +\n '\"javascript.options.streams\" preference to \"true\" in about:config.');\n }\n exports.ReadableStream = ReadableStream;\n} else {\n let isReadableStreamSupported = false;\n if (typeof ReadableStream !== 'undefined') {\n // MS Edge may say it has ReadableStream but they are not up to spec yet.\n try {\n // eslint-disable-next-line no-new\n new ReadableStream({\n start(controller) {\n controller.close();\n },\n });\n isReadableStreamSupported = true;\n } catch (e) {\n // The ReadableStream constructor cannot be used.\n }\n }\n if (isReadableStreamSupported) {\n exports.ReadableStream = ReadableStream;\n } else if (typeof PDFJSDev !== 'undefined' &&\n PDFJSDev.test('IMAGE_DECODERS')) {\n class DummyReadableStream {\n constructor() {\n throw new Error('The current image decoders are synchronous, ' +\n 'hence `ReadableStream` shouldn\\'t need to be ' +\n 'polyfilled for the IMAGE_DECODERS build target.');\n }\n }\n exports.ReadableStream = DummyReadableStream;\n } else {\n exports.ReadableStream =\n require('../../external/streams/streams-lib').ReadableStream;\n }\n}\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-restricted-globals */\n\nif (typeof PDFJSDev !== 'undefined' && !PDFJSDev.test('GENERIC')) {\n // The `URL` constructor is assumed to be available in the extension builds.\n exports.URL = URL;\n} else {\n let isURLSupported = false;\n try {\n if (typeof URL === 'function' && typeof URL.prototype === 'object' &&\n ('origin' in URL.prototype)) {\n const u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n isURLSupported = (u.href === 'http://a/c%20d');\n }\n } catch (ex) {\n // The `URL` constructor cannot be used.\n }\n\n if (isURLSupported) {\n exports.URL = URL;\n } else if (typeof PDFJSDev !== 'undefined' &&\n PDFJSDev.test('IMAGE_DECODERS')) {\n class DummyURL {\n constructor() {\n throw new Error('The current image decoders doesn\\'t utilize the ' +\n '`URL` constructor, hence it shouldn\\'t need to be ' +\n 'polyfilled for the IMAGE_DECODERS build target.');\n }\n }\n exports.URL = DummyURL;\n } else {\n const PolyfillURL = require('../../external/url/url-lib').URL;\n\n // Attempt to copy over the static methods.\n const OriginalURL = require('./global_scope').URL;\n if (OriginalURL) {\n PolyfillURL.createObjectURL = function(blob) {\n // IE extension allows a second optional options argument, see\n // http://msdn.microsoft.com/en-us/library/ie/hh772302(v=vs.85).aspx\n return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n };\n PolyfillURL.revokeObjectURL = function(url) {\n OriginalURL.revokeObjectURL(url);\n };\n }\n exports.URL = PolyfillURL;\n }\n}\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { log2, readInt8, readUint16, readUint32, shadow } from '../shared/util';\nimport { ArithmeticDecoder } from './arithmetic_decoder';\nimport { CCITTFaxDecoder } from './ccitt';\n\nlet Jbig2Error = (function Jbig2ErrorClosure() {\n function Jbig2Error(msg) {\n this.message = 'JBIG2 error: ' + msg;\n }\n\n Jbig2Error.prototype = new Error();\n Jbig2Error.prototype.name = 'Jbig2Error';\n Jbig2Error.constructor = Jbig2Error;\n\n return Jbig2Error;\n})();\n\nvar Jbig2Image = (function Jbig2ImageClosure() {\n // Utility data structures\n function ContextCache() {}\n\n ContextCache.prototype = {\n getContexts(id) {\n if (id in this) {\n return this[id];\n }\n return (this[id] = new Int8Array(1 << 16));\n },\n };\n\n function DecodingContext(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n }\n\n DecodingContext.prototype = {\n get decoder() {\n var decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n return shadow(this, 'decoder', decoder);\n },\n get contextCache() {\n var cache = new ContextCache();\n return shadow(this, 'contextCache', cache);\n },\n };\n\n // Annex A. Arithmetic Integer Decoding Procedure\n // A.2 Procedure for decoding values\n function decodeInteger(contextCache, procedure, decoder) {\n var contexts = contextCache.getContexts(procedure);\n var prev = 1;\n\n function readBits(length) {\n var v = 0;\n for (var i = 0; i < length; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = (prev < 256 ? (prev << 1) | bit :\n (((prev << 1) | bit) & 511) | 256);\n v = (v << 1) | bit;\n }\n return v >>> 0;\n }\n\n var sign = readBits(1);\n var value = readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(32) + 4436) :\n readBits(12) + 340) :\n readBits(8) + 84) :\n readBits(6) + 20) :\n readBits(4) + 4) :\n readBits(2);\n return (sign === 0 ? value : (value > 0 ? -value : null));\n }\n\n // A.3 The IAID decoding procedure\n function decodeIAID(contextCache, decoder, codeLength) {\n var contexts = contextCache.getContexts('IAID');\n\n var prev = 1;\n for (var i = 0; i < codeLength; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = (prev << 1) | bit;\n }\n if (codeLength < 31) {\n return prev & ((1 << codeLength) - 1);\n }\n return prev & 0x7FFFFFFF;\n }\n\n // 7.3 Segment types\n var SegmentTypes = [\n 'SymbolDictionary', null, null, null, 'IntermediateTextRegion', null,\n 'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null,\n null, null, null, null, null, 'PatternDictionary', null, null, null,\n 'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion',\n 'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null,\n null, null, null, null, null, 'IntermediateGenericRegion', null,\n 'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion',\n 'IntermediateGenericRefinementRegion', null,\n 'ImmediateGenericRefinementRegion',\n 'ImmediateLosslessGenericRefinementRegion', null, null, null, null,\n 'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles',\n 'Tables', null, null, null, null, null, null, null, null,\n 'Extension'\n ];\n\n var CodingTemplates = [\n [{ x: -1, y: -2, }, { x: 0, y: -2, }, { x: 1, y: -2, }, { x: -2, y: -1, },\n { x: -1, y: -1, }, { x: 0, y: -1, }, { x: 1, y: -1, }, { x: 2, y: -1, },\n { x: -4, y: 0, }, { x: -3, y: 0, }, { x: -2, y: 0, }, { x: -1, y: 0, }],\n [{ x: -1, y: -2, }, { x: 0, y: -2, }, { x: 1, y: -2, }, { x: 2, y: -2, },\n { x: -2, y: -1, }, { x: -1, y: -1, }, { x: 0, y: -1, }, { x: 1, y: -1, },\n { x: 2, y: -1, }, { x: -3, y: 0, }, { x: -2, y: 0, }, { x: -1, y: 0, }],\n [{ x: -1, y: -2, }, { x: 0, y: -2, }, { x: 1, y: -2, }, { x: -2, y: -1, },\n { x: -1, y: -1, }, { x: 0, y: -1, }, { x: 1, y: -1, }, { x: -2, y: 0, },\n { x: -1, y: 0, }],\n [{ x: -3, y: -1, }, { x: -2, y: -1, }, { x: -1, y: -1, }, { x: 0, y: -1, },\n { x: 1, y: -1, }, { x: -4, y: 0, }, { x: -3, y: 0, }, { x: -2, y: 0, },\n { x: -1, y: 0, }]\n ];\n\n var RefinementTemplates = [\n {\n coding: [{ x: 0, y: -1, }, { x: 1, y: -1, }, { x: -1, y: 0, }],\n reference: [{ x: 0, y: -1, }, { x: 1, y: -1, }, { x: -1, y: 0, },\n { x: 0, y: 0, }, { x: 1, y: 0, }, { x: -1, y: 1, },\n { x: 0, y: 1, }, { x: 1, y: 1, }],\n },\n {\n coding: [{ x: -1, y: -1, }, { x: 0, y: -1, }, { x: 1, y: -1, },\n { x: -1, y: 0, }],\n reference: [{ x: 0, y: -1, }, { x: -1, y: 0, }, { x: 0, y: 0, },\n { x: 1, y: 0, }, { x: 0, y: 1, }, { x: 1, y: 1, }],\n }\n ];\n\n // See 6.2.5.7 Decoding the bitmap.\n var ReusedContexts = [\n 0x9B25, // 10011 0110010 0101\n 0x0795, // 0011 110010 101\n 0x00E5, // 001 11001 01\n 0x0195 // 011001 0101\n ];\n\n var RefinementReusedContexts = [\n 0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n 0x0008 // '0000' + '001000'\n ];\n\n function decodeBitmapTemplate0(width, height, decodingContext) {\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts('GB');\n var contextLabel, i, j, pixel, row, row1, row2, bitmap = [];\n\n // ...ooooo....\n // ..ooooooo... Context template for current pixel (X)\n // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n var OLD_PIXEL_MASK = 0x7BF7; // 01111 0111111 0111\n\n for (i = 0; i < height; i++) {\n row = bitmap[i] = new Uint8Array(width);\n row1 = (i < 1) ? row : bitmap[i - 1];\n row2 = (i < 2) ? row : bitmap[i - 2];\n\n // At the beginning of each row:\n // Fill contextLabel with pixels that are above/right of (X)\n contextLabel = (row2[0] << 13) | (row2[1] << 12) | (row2[2] << 11) |\n (row1[0] << 7) | (row1[1] << 6) | (row1[2] << 5) |\n (row1[3] << 4);\n\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n\n // At each pixel: Clear contextLabel pixels that are shifted\n // out of the context, then add new ones.\n contextLabel = ((contextLabel & OLD_PIXEL_MASK) << 1) |\n (j + 3 < width ? row2[j + 3] << 11 : 0) |\n (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel;\n }\n }\n\n return bitmap;\n }\n\n // 6.2 Generic Region Decoding Procedure\n function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at,\n decodingContext) {\n if (mmr) {\n let input = new Reader(decodingContext.data, decodingContext.start,\n decodingContext.end);\n return decodeMMRBitmap(input, width, height, false);\n }\n\n // Use optimized version for the most common case\n if (templateIndex === 0 && !skip && !prediction && at.length === 4 &&\n at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 &&\n at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n\n var useskip = !!skip;\n var template = CodingTemplates[templateIndex].concat(at);\n\n // Sorting is non-standard, and it is not required. But sorting increases\n // the number of template bits that can be reused from the previous\n // contextLabel in the main loop.\n template.sort(function (a, b) {\n return (a.y - b.y) || (a.x - b.x);\n });\n\n var templateLength = template.length;\n var templateX = new Int8Array(templateLength);\n var templateY = new Int8Array(templateLength);\n var changingTemplateEntries = [];\n var reuseMask = 0, minX = 0, maxX = 0, minY = 0;\n var c, k;\n\n for (k = 0; k < templateLength; k++) {\n templateX[k] = template[k].x;\n templateY[k] = template[k].y;\n minX = Math.min(minX, template[k].x);\n maxX = Math.max(maxX, template[k].x);\n minY = Math.min(minY, template[k].y);\n // Check if the template pixel appears in two consecutive context labels,\n // so it can be reused. Otherwise, we add it to the list of changing\n // template entries.\n if (k < templateLength - 1 &&\n template[k].y === template[k + 1].y &&\n template[k].x === template[k + 1].x - 1) {\n reuseMask |= 1 << (templateLength - 1 - k);\n } else {\n changingTemplateEntries.push(k);\n }\n }\n var changingEntriesLength = changingTemplateEntries.length;\n\n var changingTemplateX = new Int8Array(changingEntriesLength);\n var changingTemplateY = new Int8Array(changingEntriesLength);\n var changingTemplateBit = new Uint16Array(changingEntriesLength);\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << (templateLength - 1 - k);\n }\n\n // Get the safe bounding box edges from the width, height, minX, maxX, minY\n var sbb_left = -minX;\n var sbb_top = -minY;\n var sbb_right = width - maxX;\n\n var pseudoPixelContext = ReusedContexts[templateIndex];\n var row = new Uint8Array(width);\n var bitmap = [];\n\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts('GB');\n\n var ltp = 0, j, i0, j0, contextLabel = 0, bit, shift;\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n bitmap.push(row); // duplicate previous row\n continue;\n }\n }\n row = new Uint8Array(row);\n bitmap.push(row);\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n // Are we in the middle of a scanline, so we can reuse contextLabel\n // bits?\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n // If yes, we can just shift the bits that are reusable and only\n // fetch the remaining ones.\n contextLabel = (contextLabel << 1) & reuseMask;\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n // compute the contextLabel from scratch\n contextLabel = 0;\n shift = templateLength - 1;\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n }\n\n // 6.3.2 Generic Refinement Region Decoding Procedure\n function decodeRefinement(width, height, templateIndex, referenceBitmap,\n offsetX, offsetY, prediction, at,\n decodingContext) {\n var codingTemplate = RefinementTemplates[templateIndex].coding;\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n var codingTemplateLength = codingTemplate.length;\n var codingTemplateX = new Int32Array(codingTemplateLength);\n var codingTemplateY = new Int32Array(codingTemplateLength);\n var k;\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n\n var referenceTemplate = RefinementTemplates[templateIndex].reference;\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n var referenceTemplateLength = referenceTemplate.length;\n var referenceTemplateX = new Int32Array(referenceTemplateLength);\n var referenceTemplateY = new Int32Array(referenceTemplateLength);\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n var referenceWidth = referenceBitmap[0].length;\n var referenceHeight = referenceBitmap.length;\n\n var pseudoPixelContext = RefinementReusedContexts[templateIndex];\n var bitmap = [];\n\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts('GR');\n\n var ltp = 0;\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n throw new Jbig2Error('prediction is not supported');\n }\n }\n var row = new Uint8Array(width);\n bitmap.push(row);\n for (var j = 0; j < width; j++) {\n var i0, j0;\n var contextLabel = 0;\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n }\n }\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 ||\n j0 >= referenceWidth) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n }\n }\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n }\n\n // 6.5.5 Decoding the symbol dictionary\n function decodeSymbolDictionary(huffman, refinement, symbols,\n numberOfNewSymbols, numberOfExportedSymbols,\n huffmanTables, templateIndex, at,\n refinementTemplateIndex, refinementAt,\n decodingContext, huffmanInput) {\n if (huffman && refinement) {\n throw new Jbig2Error('symbol refinement with Huffman is not supported');\n }\n\n var newSymbols = [];\n var currentHeight = 0;\n var symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n let tableB1, symbolWidths;\n if (huffman) {\n tableB1 = getStandardTable(1); // standard table B.1\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1); // 6.5.8.2.3\n }\n\n while (newSymbols.length < numberOfNewSymbols) {\n var deltaHeight = huffman ?\n huffmanTables.tableDeltaHeight.decode(huffmanInput) :\n decodeInteger(contextCache, 'IADH', decoder); // 6.5.6\n currentHeight += deltaHeight;\n let currentWidth = 0, totalWidth = 0;\n let firstSymbol = huffman ? symbolWidths.length : 0;\n while (true) {\n var deltaWidth = huffman ?\n huffmanTables.tableDeltaWidth.decode(huffmanInput) :\n decodeInteger(contextCache, 'IADW', decoder); // 6.5.7\n if (deltaWidth === null) {\n break; // OOB\n }\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n var bitmap;\n if (refinement) {\n // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder);\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(huffman, refinement,\n currentWidth, currentHeight, 0,\n numberOfInstances, 1, // strip size\n symbols.concat(newSymbols),\n symbolCodeLength,\n 0, // transposed\n 0, // ds offset\n 1, // top left 7.4.3.1.1\n 0, // OR operator\n huffmanTables,\n refinementTemplateIndex, refinementAt,\n decodingContext, 0, huffmanInput);\n } else {\n var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n var rdx = decodeInteger(contextCache, 'IARDX', decoder); // 6.4.11.3\n var rdy = decodeInteger(contextCache, 'IARDY', decoder); // 6.4.11.4\n var symbol = (symbolId < symbols.length ? symbols[symbolId] :\n newSymbols[symbolId - symbols.length]);\n bitmap = decodeRefinement(currentWidth, currentHeight,\n refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt,\n decodingContext);\n }\n newSymbols.push(bitmap);\n } else if (huffman) {\n // Store only symbol width and decode a collective bitmap when the\n // height class is done.\n symbolWidths.push(currentWidth);\n } else {\n // 6.5.8.1 Direct-coded symbol bitmap\n bitmap = decodeBitmap(false, currentWidth, currentHeight,\n templateIndex, false, null, at, decodingContext);\n newSymbols.push(bitmap);\n }\n }\n if (huffman && !refinement) {\n // 6.5.9 Height class collective bitmap\n let bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n let collectiveBitmap;\n if (bitmapSize === 0) {\n // Uncompressed collective bitmap\n collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth,\n currentHeight);\n } else {\n // MMR collective bitmap\n let originalEnd = huffmanInput.end;\n let bitmapEnd = huffmanInput.position + bitmapSize;\n huffmanInput.end = bitmapEnd;\n collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth,\n currentHeight, false);\n huffmanInput.end = originalEnd;\n huffmanInput.position = bitmapEnd;\n }\n let numberOfSymbolsDecoded = symbolWidths.length;\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n // collectiveBitmap is a single symbol.\n newSymbols.push(collectiveBitmap);\n } else {\n // Divide collectiveBitmap into symbols.\n let i, y, xMin = 0, xMax, bitmapWidth, symbolBitmap;\n for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n bitmapWidth = symbolWidths[i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n\n // 6.5.10 Exported symbols\n var exportedSymbols = [];\n var flags = [], currentFlag = false;\n var totalSymbolsLength = symbols.length + numberOfNewSymbols;\n while (flags.length < totalSymbolsLength) {\n var runLength = huffman ? tableB1.decode(huffmanInput) :\n decodeInteger(contextCache, 'IAEX', decoder);\n while (runLength--) {\n flags.push(currentFlag);\n }\n currentFlag = !currentFlag;\n }\n for (var i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n for (var j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n return exportedSymbols;\n }\n\n function decodeTextRegion(huffman, refinement, width, height,\n defaultPixelValue, numberOfSymbolInstances,\n stripSize, inputSymbols, symbolCodeLength,\n transposed, dsOffset, referenceCorner,\n combinationOperator, huffmanTables,\n refinementTemplateIndex, refinementAt,\n decodingContext, logStripSize, huffmanInput) {\n if (huffman && refinement) {\n throw new Jbig2Error('refinement with Huffman is not supported');\n }\n\n // Prepare bitmap\n var bitmap = [];\n var i, row;\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n if (defaultPixelValue) {\n for (var j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n bitmap.push(row);\n }\n\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n\n var stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) :\n -decodeInteger(contextCache, 'IADT', decoder); // 6.4.6\n var firstS = 0;\n i = 0;\n while (i < numberOfSymbolInstances) {\n var deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) :\n decodeInteger(contextCache, 'IADT', decoder); // 6.4.6\n stripT += deltaT;\n\n var deltaFirstS = huffman ?\n huffmanTables.tableFirstS.decode(huffmanInput) :\n decodeInteger(contextCache, 'IAFS', decoder); // 6.4.7\n firstS += deltaFirstS;\n var currentS = firstS;\n do {\n let currentT = 0; // 6.4.9\n if (stripSize > 1) {\n currentT = huffman ? huffmanInput.readBits(logStripSize) :\n decodeInteger(contextCache, 'IAIT', decoder);\n }\n var t = stripSize * stripT + currentT;\n var symbolId = huffman ?\n huffmanTables.symbolIDTable.decode(huffmanInput) :\n decodeIAID(contextCache, decoder, symbolCodeLength);\n var applyRefinement = (refinement && (huffman ? huffmanInput.readBit() :\n decodeInteger(contextCache, 'IARI', decoder)));\n var symbolBitmap = inputSymbols[symbolId];\n var symbolWidth = symbolBitmap[0].length;\n var symbolHeight = symbolBitmap.length;\n if (applyRefinement) {\n var rdw = decodeInteger(contextCache, 'IARDW', decoder); // 6.4.11.1\n var rdh = decodeInteger(contextCache, 'IARDH', decoder); // 6.4.11.2\n var rdx = decodeInteger(contextCache, 'IARDX', decoder); // 6.4.11.3\n var rdy = decodeInteger(contextCache, 'IARDY', decoder); // 6.4.11.4\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(symbolWidth, symbolHeight,\n refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx,\n (rdh >> 1) + rdy, false, refinementAt,\n decodingContext);\n }\n var offsetT = t - ((referenceCorner & 1) ? 0 : (symbolHeight - 1));\n var offsetS = currentS -\n ((referenceCorner & 2) ? (symbolWidth - 1) : 0);\n var s2, t2, symbolRow;\n if (transposed) {\n // Place Symbol Bitmap from T1,S1\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[s2];\n // To ignore Parts of Symbol bitmap which goes\n // outside bitmap region\n var maxWidth = Math.min(width - offsetT, symbolWidth);\n switch (combinationOperator) {\n case 0: // OR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n break;\n case 2: // XOR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`);\n }\n }\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[t2];\n switch (combinationOperator) {\n case 0: // OR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n break;\n case 2: // XOR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`);\n }\n }\n currentS += symbolWidth - 1;\n }\n i++;\n var deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) :\n decodeInteger(contextCache, 'IADS', decoder); // 6.4.8\n if (deltaS === null) {\n break; // OOB\n }\n currentS += deltaS + dsOffset;\n } while (true);\n }\n return bitmap;\n }\n\n function decodePatternDictionary(mmr, patternWidth, patternHeight,\n maxPatternIndex, template, decodingContext) {\n let at = [];\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0,\n });\n if (template === 0) {\n at.push({\n x: -3,\n y: -1,\n });\n at.push({\n x: 2,\n y: -2,\n });\n at.push({\n x: -2,\n y: -2,\n });\n }\n }\n let collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n let collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight,\n template, false, null, at,\n decodingContext);\n // Divide collective bitmap into patterns.\n let patterns = [], i = 0, patternBitmap, xMin, xMax, y;\n while (i <= maxPatternIndex) {\n patternBitmap = [];\n xMin = patternWidth * i;\n xMax = xMin + patternWidth;\n for (y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n patterns.push(patternBitmap);\n i++;\n }\n return patterns;\n }\n\n function decodeHalftoneRegion(mmr, patterns, template, regionWidth,\n regionHeight, defaultPixelValue, enableSkip,\n combinationOperator, gridWidth, gridHeight,\n gridOffsetX, gridOffsetY, gridVectorX,\n gridVectorY, decodingContext) {\n let skip = null;\n if (enableSkip) {\n throw new Jbig2Error('skip is not supported');\n }\n if (combinationOperator !== 0) {\n throw new Jbig2Error('operator ' + combinationOperator +\n ' is not supported in halftone region');\n }\n\n // Prepare bitmap.\n let regionBitmap = [];\n let i, j, row;\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n regionBitmap.push(row);\n }\n\n let numberOfPatterns = patterns.length;\n let pattern0 = patterns[0];\n let patternWidth = pattern0[0].length, patternHeight = pattern0.length;\n let bitsPerValue = log2(numberOfPatterns);\n let at = [];\n if (!mmr) {\n at.push({\n x: (template <= 1) ? 3 : 2,\n y: -1,\n });\n if (template === 0) {\n at.push({\n x: -3,\n y: -1,\n });\n at.push({\n x: 2,\n y: -2,\n });\n at.push({\n x: -2,\n y: -2,\n });\n }\n }\n // Annex C. Gray-scale Image Decoding Procedure.\n let grayScaleBitPlanes = [], mmrInput, bitmap;\n if (mmr) {\n // MMR bit planes are in one continuous stream. Only EOFB codes indicate\n // the end of each bitmap, so EOFBs must be decoded.\n mmrInput = new Reader(decodingContext.data, decodingContext.start,\n decodingContext.end);\n }\n for (i = bitsPerValue - 1; i >= 0; i--) {\n if (mmr) {\n bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n } else {\n bitmap = decodeBitmap(false, gridWidth, gridHeight, template, false,\n skip, at, decodingContext);\n }\n grayScaleBitPlanes[i] = bitmap;\n }\n // 6.6.5.2 Rendering the patterns.\n let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit = grayScaleBitPlanes[j][mg][ng] ^ bit; // Gray decoding\n patternIndex |= bit << j;\n }\n patternBitmap = patterns[patternIndex];\n x = (gridOffsetX + mg * gridVectorY + ng * gridVectorX) >> 8;\n y = (gridOffsetY + mg * gridVectorX - ng * gridVectorY) >> 8;\n // Draw patternBitmap at (x, y).\n if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 &&\n y + patternHeight <= regionHeight) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n let regionX, regionY;\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n return regionBitmap;\n }\n\n function readSegmentHeader(data, start) {\n var segmentHeader = {};\n segmentHeader.number = readUint32(data, start);\n var flags = data[start + 4];\n var segmentType = flags & 0x3F;\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error('invalid segment type: ' + segmentType);\n }\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n\n var pageAssociationFieldSize = !!(flags & 0x40);\n var referredFlags = data[start + 5];\n var referredToCount = (referredFlags >> 5) & 7;\n var retainBits = [referredFlags & 31];\n var position = start + 6;\n if (referredFlags === 7) {\n referredToCount = readUint32(data, position - 1) & 0x1FFFFFFF;\n position += 3;\n var bytes = (referredToCount + 7) >> 3;\n retainBits[0] = data[position++];\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error('invalid referred-to flags');\n }\n\n segmentHeader.retainBits = retainBits;\n var referredToSegmentNumberSize = (segmentHeader.number <= 256 ? 1 :\n (segmentHeader.number <= 65536 ? 2 : 4));\n var referredTo = [];\n var i, ii;\n for (i = 0; i < referredToCount; i++) {\n var number = (referredToSegmentNumberSize === 1 ? data[position] :\n (referredToSegmentNumberSize === 2 ? readUint16(data, position) :\n readUint32(data, position)));\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n segmentHeader.referredTo = referredTo;\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = readUint32(data, position);\n position += 4;\n }\n segmentHeader.length = readUint32(data, position);\n position += 4;\n\n if (segmentHeader.length === 0xFFFFFFFF) {\n // 7.2.7 Segment data length, unknown segment length\n if (segmentType === 38) { // ImmediateGenericRegion\n var genericRegionInfo = readRegionSegmentInformation(data, position);\n var genericRegionSegmentFlags = data[position +\n RegionSegmentInformationFieldLength];\n var genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n // searching for the segment end\n var searchPatternLength = 6;\n var searchPattern = new Uint8Array(searchPatternLength);\n if (!genericRegionMmr) {\n searchPattern[0] = 0xFF;\n searchPattern[1] = 0xAC;\n }\n searchPattern[2] = (genericRegionInfo.height >>> 24) & 0xFF;\n searchPattern[3] = (genericRegionInfo.height >> 16) & 0xFF;\n searchPattern[4] = (genericRegionInfo.height >> 8) & 0xFF;\n searchPattern[5] = genericRegionInfo.height & 0xFF;\n for (i = position, ii = data.length; i < ii; i++) {\n var j = 0;\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n if (segmentHeader.length === 0xFFFFFFFF) {\n throw new Jbig2Error('segment end was not found');\n }\n } else {\n throw new Jbig2Error('invalid unknown segment length');\n }\n }\n segmentHeader.headerEnd = position;\n return segmentHeader;\n }\n\n function readSegments(header, data, start, end) {\n var segments = [];\n var position = start;\n while (position < end) {\n var segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n var segment = {\n header: segmentHeader,\n data,\n };\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n segments.push(segment);\n if (segmentHeader.type === 51) {\n break; // end of file is found\n }\n }\n if (header.randomAccess) {\n for (var i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n return segments;\n }\n\n // 7.4.1 Region segment information field\n function readRegionSegmentInformation(data, start) {\n return {\n width: readUint32(data, start),\n height: readUint32(data, start + 4),\n x: readUint32(data, start + 8),\n y: readUint32(data, start + 12),\n combinationOperator: data[start + 16] & 7,\n };\n }\n var RegionSegmentInformationFieldLength = 17;\n\n function processSegment(segment, visitor) {\n var header = segment.header;\n\n var data = segment.data, position = segment.start, end = segment.end;\n var args, at, i, atLength;\n switch (header.type) {\n case 0: // SymbolDictionary\n // 7.4.2 Symbol dictionary segment syntax\n var dictionary = {};\n var dictionaryFlags = readUint16(data, position); // 7.4.2.1.1\n dictionary.huffman = !!(dictionaryFlags & 1);\n dictionary.refinement = !!(dictionaryFlags & 2);\n dictionary.huffmanDHSelector = (dictionaryFlags >> 2) & 3;\n dictionary.huffmanDWSelector = (dictionaryFlags >> 4) & 3;\n dictionary.bitmapSizeSelector = (dictionaryFlags >> 6) & 1;\n dictionary.aggregationInstancesSelector = (dictionaryFlags >> 7) & 1;\n dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n dictionary.template = (dictionaryFlags >> 10) & 3;\n dictionary.refinementTemplate = (dictionaryFlags >> 12) & 1;\n position += 2;\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.at = at;\n }\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.refinementAt = at;\n }\n dictionary.numberOfExportedSymbols = readUint32(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = readUint32(data, position);\n position += 4;\n args = [dictionary, header.number, header.referredTo,\n data, position, end];\n break;\n case 6: // ImmediateTextRegion\n case 7: // ImmediateLosslessTextRegion\n var textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var textRegionSegmentFlags = readUint16(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.logStripSize = (textRegionSegmentFlags >> 2) & 3;\n textRegion.stripSize = 1 << textRegion.logStripSize;\n textRegion.referenceCorner = (textRegionSegmentFlags >> 4) & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = (textRegionSegmentFlags >> 7) & 3;\n textRegion.defaultPixelValue = (textRegionSegmentFlags >> 9) & 1;\n textRegion.dsOffset = (textRegionSegmentFlags << 17) >> 27;\n textRegion.refinementTemplate = (textRegionSegmentFlags >> 15) & 1;\n if (textRegion.huffman) {\n var textRegionHuffmanFlags = readUint16(data, position);\n position += 2;\n textRegion.huffmanFS = (textRegionHuffmanFlags) & 3;\n textRegion.huffmanDS = (textRegionHuffmanFlags >> 2) & 3;\n textRegion.huffmanDT = (textRegionHuffmanFlags >> 4) & 3;\n textRegion.huffmanRefinementDW = (textRegionHuffmanFlags >> 6) & 3;\n textRegion.huffmanRefinementDH = (textRegionHuffmanFlags >> 8) & 3;\n textRegion.huffmanRefinementDX = (textRegionHuffmanFlags >> 10) & 3;\n textRegion.huffmanRefinementDY = (textRegionHuffmanFlags >> 12) & 3;\n textRegion.huffmanRefinementSizeSelector =\n !!(textRegionHuffmanFlags & 0x4000);\n }\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n textRegion.refinementAt = at;\n }\n textRegion.numberOfSymbolInstances = readUint32(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n case 16: // PatternDictionary\n // 7.4.4. Pattern dictionary segment syntax\n let patternDictionary = {};\n let patternDictionaryFlags = data[position++];\n patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n patternDictionary.template = (patternDictionaryFlags >> 1) & 3;\n patternDictionary.patternWidth = data[position++];\n patternDictionary.patternHeight = data[position++];\n patternDictionary.maxPatternIndex = readUint32(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n case 22: // ImmediateHalftoneRegion\n case 23: // ImmediateLosslessHalftoneRegion\n // 7.4.5 Halftone region segment syntax\n let halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n let halftoneRegionFlags = data[position++];\n halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n halftoneRegion.template = (halftoneRegionFlags >> 1) & 3;\n halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n halftoneRegion.combinationOperator = (halftoneRegionFlags >> 4) & 7;\n halftoneRegion.defaultPixelValue = (halftoneRegionFlags >> 7) & 1;\n halftoneRegion.gridWidth = readUint32(data, position);\n position += 4;\n halftoneRegion.gridHeight = readUint32(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = readUint32(data, position) & 0xFFFFFFFF;\n position += 4;\n halftoneRegion.gridOffsetY = readUint32(data, position) & 0xFFFFFFFF;\n position += 4;\n halftoneRegion.gridVectorX = readUint16(data, position);\n position += 2;\n halftoneRegion.gridVectorY = readUint16(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n case 38: // ImmediateGenericRegion\n case 39: // ImmediateLosslessGenericRegion\n var genericRegion = {};\n genericRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var genericRegionSegmentFlags = data[position++];\n genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;\n genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n genericRegion.at = at;\n }\n args = [genericRegion, data, position, end];\n break;\n case 48: // PageInformation\n var pageInfo = {\n width: readUint32(data, position),\n height: readUint32(data, position + 4),\n resolutionX: readUint32(data, position + 8),\n resolutionY: readUint32(data, position + 12),\n };\n if (pageInfo.height === 0xFFFFFFFF) {\n delete pageInfo.height;\n }\n var pageSegmentFlags = data[position + 16];\n readUint16(data, position + 17); // pageStripingInformation\n pageInfo.lossless = !!(pageSegmentFlags & 1);\n pageInfo.refinement = !!(pageSegmentFlags & 2);\n pageInfo.defaultPixelValue = (pageSegmentFlags >> 2) & 1;\n pageInfo.combinationOperator = (pageSegmentFlags >> 3) & 3;\n pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n args = [pageInfo];\n break;\n case 49: // EndOfPage\n break;\n case 50: // EndOfStripe\n break;\n case 51: // EndOfFile\n break;\n case 53: // Tables\n args = [header.number, data, position, end];\n break;\n case 62: // 7.4.15 defines 2 extension types which\n // are comments and can be ignored.\n break;\n default:\n throw new Jbig2Error(`segment type ${header.typeName}(${header.type})` +\n ' is not implemented');\n }\n var callbackName = 'on' + header.typeName;\n if (callbackName in visitor) {\n visitor[callbackName].apply(visitor, args);\n }\n }\n\n function processSegments(segments, visitor) {\n for (var i = 0, ii = segments.length; i < ii; i++) {\n processSegment(segments[i], visitor);\n }\n }\n\n function parseJbig2Chunks(chunks) {\n var visitor = new SimpleSegmentVisitor();\n for (var i = 0, ii = chunks.length; i < ii; i++) {\n var chunk = chunks[i];\n var segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n return visitor.buffer;\n }\n\n function parseJbig2(data) {\n let position = 0, end = data.length;\n\n if (data[position] !== 0x97 || data[position + 1] !== 0x4A ||\n data[position + 2] !== 0x42 || data[position + 3] !== 0x32 ||\n data[position + 4] !== 0x0D || data[position + 5] !== 0x0A ||\n data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) {\n throw new Jbig2Error('parseJbig2 - invalid header.');\n }\n\n let header = Object.create(null);\n position += 8;\n const flags = data[position++];\n header.randomAccess = !(flags & 1);\n if (!(flags & 2)) {\n header.numberOfPages = readUint32(data, position);\n position += 4;\n }\n\n let segments = readSegments(header, data, position, end);\n let visitor = new SimpleSegmentVisitor();\n processSegments(segments, visitor);\n\n const { width, height, } = visitor.currentPageInfo;\n const bitPacked = visitor.buffer;\n let imgData = new Uint8ClampedArray(width * height);\n let q = 0, k = 0;\n for (let i = 0; i < height; i++) {\n let mask = 0, buffer;\n for (let j = 0; j < width; j++) {\n if (!mask) {\n mask = 128; buffer = bitPacked[k++];\n }\n imgData[q++] = (buffer & mask) ? 0 : 255;\n mask >>= 1;\n }\n }\n\n return { imgData, width, height, };\n }\n\n function SimpleSegmentVisitor() {}\n\n SimpleSegmentVisitor.prototype = {\n onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) {\n this.currentPageInfo = info;\n var rowSize = (info.width + 7) >> 3;\n var buffer = new Uint8ClampedArray(rowSize * info.height);\n // The contents of ArrayBuffers are initialized to 0.\n // Fill the buffer with 0xFF only if info.defaultPixelValue is set\n if (info.defaultPixelValue) {\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = 0xFF;\n }\n }\n this.buffer = buffer;\n },\n drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) {\n var pageInfo = this.currentPageInfo;\n var width = regionInfo.width, height = regionInfo.height;\n var rowSize = (pageInfo.width + 7) >> 3;\n var combinationOperator = pageInfo.combinationOperatorOverride ?\n regionInfo.combinationOperator : pageInfo.combinationOperator;\n var buffer = this.buffer;\n var mask0 = 128 >> (regionInfo.x & 7);\n var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n var i, j, mask, offset;\n switch (combinationOperator) {\n case 0: // OR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n case 2: // XOR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`);\n }\n },\n onImmediateGenericRegion:\n function SimpleSegmentVisitor_onImmediateGenericRegion(region, data,\n start, end) {\n var regionInfo = region.info;\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height,\n region.template, region.prediction, null,\n region.at, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessGenericRegion:\n function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion.apply(this, arguments);\n },\n onSymbolDictionary:\n function SimpleSegmentVisitor_onSymbolDictionary(dictionary,\n currentSegment,\n referredSegments,\n data, start, end) {\n let huffmanTables, huffmanInput;\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(dictionary,\n referredSegments, this.customTables);\n huffmanInput = new Reader(data, start, end);\n }\n\n // Combines exported symbols from all referred segments\n var symbols = this.symbols;\n if (!symbols) {\n this.symbols = symbols = {};\n }\n\n var inputSymbols = [];\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n let referredSymbols = symbols[referredSegments[i]];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n\n var decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman,\n dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols,\n dictionary.numberOfExportedSymbols, huffmanTables,\n dictionary.template, dictionary.at,\n dictionary.refinementTemplate, dictionary.refinementAt,\n decodingContext, huffmanInput);\n },\n onImmediateTextRegion:\n function SimpleSegmentVisitor_onImmediateTextRegion(region,\n referredSegments,\n data, start, end) {\n var regionInfo = region.info;\n let huffmanTables, huffmanInput;\n\n // Combines exported symbols from all referred segments\n var symbols = this.symbols;\n var inputSymbols = [];\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n let referredSymbols = symbols[referredSegments[i]];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n var symbolCodeLength = log2(inputSymbols.length);\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(region, referredSegments,\n this.customTables, inputSymbols.length, huffmanInput);\n }\n\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeTextRegion(region.huffman, region.refinement,\n regionInfo.width, regionInfo.height, region.defaultPixelValue,\n region.numberOfSymbolInstances, region.stripSize, inputSymbols,\n symbolCodeLength, region.transposed, region.dsOffset,\n region.referenceCorner, region.combinationOperator, huffmanTables,\n region.refinementTemplate, region.refinementAt, decodingContext,\n region.logStripSize, huffmanInput);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessTextRegion:\n function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion.apply(this, arguments);\n },\n onPatternDictionary(dictionary, currentSegment, data, start, end) {\n let patterns = this.patterns;\n if (!patterns) {\n this.patterns = patterns = {};\n }\n let decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(dictionary.mmr,\n dictionary.patternWidth, dictionary.patternHeight,\n dictionary.maxPatternIndex, dictionary.template, decodingContext);\n },\n onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n // HalftoneRegion refers to exactly one PatternDictionary.\n let patterns = this.patterns[referredSegments[0]];\n let regionInfo = region.info;\n let decodingContext = new DecodingContext(data, start, end);\n let bitmap = decodeHalftoneRegion(region.mmr, patterns,\n region.template, regionInfo.width, regionInfo.height,\n region.defaultPixelValue, region.enableSkip, region.combinationOperator,\n region.gridWidth, region.gridHeight, region.gridOffsetX,\n region.gridOffsetY, region.gridVectorX, region.gridVectorY,\n decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion.apply(this, arguments);\n },\n onTables(currentSegment, data, start, end) {\n let customTables = this.customTables;\n if (!customTables) {\n this.customTables = customTables = {};\n }\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\n },\n };\n\n function HuffmanLine(lineData) {\n if (lineData.length === 2) {\n // OOB line.\n this.isOOB = true;\n this.rangeLow = 0;\n this.prefixLength = lineData[0];\n this.rangeLength = 0;\n this.prefixCode = lineData[1];\n this.isLowerRange = false;\n } else {\n // Normal, upper range or lower range line.\n // Upper range lines are processed like normal lines.\n this.isOOB = false;\n this.rangeLow = lineData[0];\n this.prefixLength = lineData[1];\n this.rangeLength = lineData[2];\n this.prefixCode = lineData[3];\n this.isLowerRange = (lineData[4] === 'lower');\n }\n }\n\n function HuffmanTreeNode(line) {\n this.children = [];\n if (line) {\n // Leaf node\n this.isLeaf = true;\n this.rangeLength = line.rangeLength;\n this.rangeLow = line.rangeLow;\n this.isLowerRange = line.isLowerRange;\n this.isOOB = line.isOOB;\n } else {\n // Intermediate or root node\n this.isLeaf = false;\n }\n }\n\n HuffmanTreeNode.prototype = {\n buildTree(line, shift) {\n let bit = (line.prefixCode >> shift) & 1;\n if (shift <= 0) {\n // Create a leaf node.\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n // Create an intermediate node and continue recursively.\n let node = this.children[bit];\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\n }\n node.buildTree(line, shift - 1);\n }\n },\n decodeNode(reader) {\n if (this.isLeaf) {\n if (this.isOOB) {\n return null;\n }\n let htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n let node = this.children[reader.readBit()];\n if (!node) {\n throw new Jbig2Error('invalid Huffman data');\n }\n return node.decodeNode(reader);\n },\n };\n\n function HuffmanTable(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n // Create Huffman tree.\n this.rootNode = new HuffmanTreeNode(null);\n let i, ii = lines.length, line;\n for (i = 0; i < ii; i++) {\n line = lines[i];\n if (line.prefixLength > 0) {\n this.rootNode.buildTree(line, line.prefixLength - 1);\n }\n }\n }\n\n HuffmanTable.prototype = {\n decode(reader) {\n return this.rootNode.decodeNode(reader);\n },\n assignPrefixCodes(lines) {\n // Annex B.3 Assigning the prefix codes.\n let linesLength = lines.length, prefixLengthMax = 0, i;\n for (i = 0; i < linesLength; i++) {\n prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n }\n\n let histogram = new Uint32Array(prefixLengthMax + 1);\n for (i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\n }\n let currentLength = 1, firstCode = 0, currentCode, currentTemp, line;\n histogram[0] = 0;\n\n while (currentLength <= prefixLengthMax) {\n firstCode = (firstCode + histogram[currentLength - 1]) << 1;\n currentCode = firstCode;\n currentTemp = 0;\n while (currentTemp < linesLength) {\n line = lines[currentTemp];\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n currentTemp++;\n }\n currentLength++;\n }\n },\n };\n\n function decodeTablesSegment(data, start, end) {\n // Decodes a Tables segment, i.e., a custom Huffman table.\n // Annex B.2 Code table structure.\n let flags = data[start];\n let lowestValue = readUint32(data, start + 1) & 0xFFFFFFFF;\n let highestValue = readUint32(data, start + 5) & 0xFFFFFFFF;\n let reader = new Reader(data, start + 9, end);\n\n let prefixSizeBits = ((flags >> 1) & 7) + 1;\n let rangeSizeBits = ((flags >> 4) & 7) + 1;\n let lines = [];\n let prefixLength, rangeLength, currentRangeLow = lowestValue;\n\n // Normal table lines\n do {\n prefixLength = reader.readBits(prefixSizeBits);\n rangeLength = reader.readBits(rangeSizeBits);\n lines.push(new HuffmanLine(\n [currentRangeLow, prefixLength, rangeLength, 0]));\n currentRangeLow += 1 << rangeLength;\n } while (currentRangeLow < highestValue);\n\n // Lower range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(\n new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, 'lower']));\n\n // Upper range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n if (flags & 1) {\n // Out-of-band table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([prefixLength, 0]));\n }\n\n return new HuffmanTable(lines, false);\n }\n\n let standardTablesCache = {};\n\n function getStandardTable(number) {\n // Annex B.5 Standard Huffman tables.\n let table = standardTablesCache[number];\n if (table) {\n return table;\n }\n let lines;\n switch (number) {\n case 1:\n lines = [\n [0, 1, 4, 0x0],\n [16, 2, 8, 0x2],\n [272, 3, 16, 0x6],\n [65808, 3, 32, 0x7] // upper\n ];\n break;\n case 2:\n lines = [\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xE],\n [11, 5, 6, 0x1E],\n [75, 6, 32, 0x3E], // upper\n [6, 0x3F] // OOB\n ];\n break;\n case 3:\n lines = [\n [-256, 8, 8, 0xFE],\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xE],\n [11, 5, 6, 0x1E],\n [-257, 8, 32, 0xFF, 'lower'],\n [75, 7, 32, 0x7E], // upper\n [6, 0x3E] // OOB\n ];\n break;\n case 4:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xE],\n [12, 5, 6, 0x1E],\n [76, 5, 32, 0x1F] // upper\n ];\n break;\n case 5:\n lines = [\n [-255, 7, 8, 0x7E],\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xE],\n [12, 5, 6, 0x1E],\n [-256, 7, 32, 0x7F, 'lower'],\n [76, 6, 32, 0x3E] // upper\n ];\n break;\n case 6:\n lines = [\n [-2048, 5, 10, 0x1C],\n [-1024, 4, 9, 0x8],\n [-512, 4, 8, 0x9],\n [-256, 4, 7, 0xA],\n [-128, 5, 6, 0x1D],\n [-64, 5, 5, 0x1E],\n [-32, 4, 5, 0xB],\n [0, 2, 7, 0x0],\n [128, 3, 7, 0x2],\n [256, 3, 8, 0x3],\n [512, 4, 9, 0xC],\n [1024, 4, 10, 0xD],\n [-2049, 6, 32, 0x3E, 'lower'],\n [2048, 6, 32, 0x3F] // upper\n ];\n break;\n case 7:\n lines = [\n [-1024, 4, 9, 0x8],\n [-512, 3, 8, 0x0],\n [-256, 4, 7, 0x9],\n [-128, 5, 6, 0x1A],\n [-64, 5, 5, 0x1B],\n [-32, 4, 5, 0xA],\n [0, 4, 5, 0xB],\n [32, 5, 5, 0x1C],\n [64, 5, 6, 0x1D],\n [128, 4, 7, 0xC],\n [256, 3, 8, 0x1],\n [512, 3, 9, 0x2],\n [1024, 3, 10, 0x3],\n [-1025, 5, 32, 0x1E, 'lower'],\n [2048, 5, 32, 0x1F] // upper\n ];\n break;\n case 8:\n lines = [\n [-15, 8, 3, 0xFC],\n [-7, 9, 1, 0x1FC],\n [-5, 8, 1, 0xFD],\n [-3, 9, 0, 0x1FD],\n [-2, 7, 0, 0x7C],\n [-1, 4, 0, 0xA],\n [0, 2, 1, 0x0],\n [2, 5, 0, 0x1A],\n [3, 6, 0, 0x3A],\n [4, 3, 4, 0x4],\n [20, 6, 1, 0x3B],\n [22, 4, 4, 0xB],\n [38, 4, 5, 0xC],\n [70, 5, 6, 0x1B],\n [134, 5, 7, 0x1C],\n [262, 6, 7, 0x3C],\n [390, 7, 8, 0x7D],\n [646, 6, 10, 0x3D],\n [-16, 9, 32, 0x1FE, 'lower'],\n [1670, 9, 32, 0x1FF], // upper\n [2, 0x1] // OOB\n ];\n break;\n case 9:\n lines = [\n [-31, 8, 4, 0xFC],\n [-15, 9, 2, 0x1FC],\n [-11, 8, 2, 0xFD],\n [-7, 9, 1, 0x1FD],\n [-5, 7, 1, 0x7C],\n [-3, 4, 1, 0xA],\n [-1, 3, 1, 0x2],\n [1, 3, 1, 0x3],\n [3, 5, 1, 0x1A],\n [5, 6, 1, 0x3A],\n [7, 3, 5, 0x4],\n [39, 6, 2, 0x3B],\n [43, 4, 5, 0xB],\n [75, 4, 6, 0xC],\n [139, 5, 7, 0x1B],\n [267, 5, 8, 0x1C],\n [523, 6, 8, 0x3C],\n [779, 7, 9, 0x7D],\n [1291, 6, 11, 0x3D],\n [-32, 9, 32, 0x1FE, 'lower'],\n [3339, 9, 32, 0x1FF], // upper\n [2, 0x0] // OOB\n ];\n break;\n case 10:\n lines = [\n [-21, 7, 4, 0x7A],\n [-5, 8, 0, 0xFC],\n [-4, 7, 0, 0x7B],\n [-3, 5, 0, 0x18],\n [-2, 2, 2, 0x0],\n [2, 5, 0, 0x19],\n [3, 6, 0, 0x36],\n [4, 7, 0, 0x7C],\n [5, 8, 0, 0xFD],\n [6, 2, 6, 0x1],\n [70, 5, 5, 0x1A],\n [102, 6, 5, 0x37],\n [134, 6, 6, 0x38],\n [198, 6, 7, 0x39],\n [326, 6, 8, 0x3A],\n [582, 6, 9, 0x3B],\n [1094, 6, 10, 0x3C],\n [2118, 7, 11, 0x7D],\n [-22, 8, 32, 0xFE, 'lower'],\n [4166, 8, 32, 0xFF], // upper\n [2, 0x2] // OOB\n ];\n break;\n case 11:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 1, 0x2],\n [4, 4, 0, 0xC],\n [5, 4, 1, 0xD],\n [7, 5, 1, 0x1C],\n [9, 5, 2, 0x1D],\n [13, 6, 2, 0x3C],\n [17, 7, 2, 0x7A],\n [21, 7, 3, 0x7B],\n [29, 7, 4, 0x7C],\n [45, 7, 5, 0x7D],\n [77, 7, 6, 0x7E],\n [141, 7, 32, 0x7F] // upper\n ];\n break;\n case 12:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 1, 0x6],\n [5, 5, 0, 0x1C],\n [6, 5, 1, 0x1D],\n [8, 6, 1, 0x3C],\n [10, 7, 0, 0x7A],\n [11, 7, 1, 0x7B],\n [13, 7, 2, 0x7C],\n [17, 7, 3, 0x7D],\n [25, 7, 4, 0x7E],\n [41, 8, 5, 0xFE],\n [73, 8, 32, 0xFF] // upper\n ];\n break;\n case 13:\n lines = [\n [1, 1, 0, 0x0],\n [2, 3, 0, 0x4],\n [3, 4, 0, 0xC],\n [4, 5, 0, 0x1C],\n [5, 4, 1, 0xD],\n [7, 3, 3, 0x5],\n [15, 6, 1, 0x3A],\n [17, 6, 2, 0x3B],\n [21, 6, 3, 0x3C],\n [29, 6, 4, 0x3D],\n [45, 6, 5, 0x3E],\n [77, 7, 6, 0x7E],\n [141, 7, 32, 0x7F] // upper\n ];\n break;\n case 14:\n lines = [\n [-2, 3, 0, 0x4],\n [-1, 3, 0, 0x5],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x6],\n [2, 3, 0, 0x7]\n ];\n break;\n case 15:\n lines = [\n [-24, 7, 4, 0x7C],\n [-8, 6, 2, 0x3C],\n [-4, 5, 1, 0x1C],\n [-2, 4, 0, 0xC],\n [-1, 3, 0, 0x4],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x5],\n [2, 4, 0, 0xD],\n [3, 5, 1, 0x1D],\n [5, 6, 2, 0x3D],\n [9, 7, 4, 0x7D],\n [-25, 7, 32, 0x7E, 'lower'],\n [25, 7, 32, 0x7F] // upper\n ];\n break;\n default:\n throw new Jbig2Error(`standard table B.${number} does not exist`);\n }\n\n let length = lines.length, i;\n for (i = 0; i < length; i++) {\n lines[i] = new HuffmanLine(lines[i]);\n }\n table = new HuffmanTable(lines, true);\n standardTablesCache[number] = table;\n return table;\n }\n\n function Reader(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n this.position = start;\n this.shift = -1;\n this.currentByte = 0;\n }\n\n Reader.prototype = {\n readBit() {\n if (this.shift < 0) {\n if (this.position >= this.end) {\n throw new Jbig2Error('end of data while reading bit');\n }\n this.currentByte = this.data[this.position++];\n this.shift = 7;\n }\n let bit = (this.currentByte >> this.shift) & 1;\n this.shift--;\n return bit;\n },\n\n readBits(numBits) {\n let result = 0, i;\n for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\n }\n return result;\n },\n\n byteAlign() {\n this.shift = -1;\n },\n\n next() {\n if (this.position >= this.end) {\n return -1;\n }\n return this.data[this.position++];\n },\n };\n\n function getCustomHuffmanTable(index, referredTo, customTables) {\n // Returns a Tables segment that has been earlier decoded.\n // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region).\n let currentIndex = 0, i, ii = referredTo.length, table;\n for (i = 0; i < ii; i++) {\n table = customTables[referredTo[i]];\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n currentIndex++;\n }\n }\n throw new Jbig2Error('can\\'t find custom Huffman table');\n }\n\n function getTextRegionHuffmanTables(textRegion, referredTo, customTables,\n numberOfSymbols, reader) {\n // 7.4.3.1.7 Symbol ID Huffman table decoding\n\n // Read code lengths for RUNCODEs 0...34.\n let codes = [], i, codeLength;\n for (i = 0; i <= 34; i++) {\n codeLength = reader.readBits(4);\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n }\n // Assign Huffman codes for RUNCODEs.\n let runCodesTable = new HuffmanTable(codes, false);\n\n // Read a Huffman code using the assignment above.\n // Interpret the RUNCODE codes and the additional bits (if any).\n codes.length = 0;\n for (i = 0; i < numberOfSymbols;) {\n codeLength = runCodesTable.decode(reader);\n if (codeLength >= 32) {\n let repeatedLength, numberOfRepeats, j;\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error('no previous value in symbol ID table');\n }\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n default:\n throw new Jbig2Error('invalid code length in symbol ID table');\n }\n for (j = 0; j < numberOfRepeats; j++) {\n codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n i++;\n }\n } else {\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n i++;\n }\n }\n reader.byteAlign();\n let symbolIDTable = new HuffmanTable(codes, false);\n\n // 7.4.3.1.6 Text region segment Huffman table selection\n\n let customIndex = 0, tableFirstS, tableDeltaS, tableDeltaT;\n\n switch (textRegion.huffmanFS) {\n case 0:\n case 1:\n tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n break;\n case 3:\n tableFirstS = getCustomHuffmanTable(customIndex, referredTo,\n customTables);\n customIndex++;\n break;\n default:\n throw new Jbig2Error('invalid Huffman FS selector');\n }\n\n switch (textRegion.huffmanDS) {\n case 0:\n case 1:\n case 2:\n tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n break;\n case 3:\n tableDeltaS = getCustomHuffmanTable(customIndex, referredTo,\n customTables);\n customIndex++;\n break;\n default:\n throw new Jbig2Error('invalid Huffman DS selector');\n }\n\n switch (textRegion.huffmanDT) {\n case 0:\n case 1:\n case 2:\n tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n break;\n case 3:\n tableDeltaT = getCustomHuffmanTable(customIndex, referredTo,\n customTables);\n customIndex++;\n break;\n default:\n throw new Jbig2Error('invalid Huffman DT selector');\n }\n\n if (textRegion.refinement) {\n // Load tables RDW, RDH, RDX and RDY.\n throw new Jbig2Error('refinement with Huffman is not supported');\n }\n\n return {\n symbolIDTable,\n tableFirstS,\n tableDeltaS,\n tableDeltaT,\n };\n }\n\n function getSymbolDictionaryHuffmanTables(dictionary, referredTo,\n customTables) {\n // 7.4.2.1.6 Symbol dictionary segment Huffman table selection\n\n let customIndex = 0, tableDeltaHeight, tableDeltaWidth;\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo,\n customTables);\n customIndex++;\n break;\n default:\n throw new Jbig2Error('invalid Huffman DH selector');\n }\n\n switch (dictionary.huffmanDWSelector) {\n case 0:\n case 1:\n tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n break;\n case 3:\n tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo,\n customTables);\n customIndex++;\n break;\n default:\n throw new Jbig2Error('invalid Huffman DW selector');\n }\n\n let tableBitmapSize, tableAggregateInstances;\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo,\n customTables);\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo,\n customTables);\n } else {\n tableAggregateInstances = getStandardTable(1);\n }\n\n return {\n tableDeltaHeight,\n tableDeltaWidth,\n tableBitmapSize,\n tableAggregateInstances,\n };\n }\n\n function readUncompressedBitmap(reader, width, height) {\n let bitmap = [], x, y, row;\n for (y = 0; y < height; y++) {\n row = new Uint8Array(width);\n bitmap.push(row);\n for (x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n reader.byteAlign();\n }\n return bitmap;\n }\n\n function decodeMMRBitmap(input, width, height, endOfBlock) {\n // MMR is the same compression algorithm as the PDF filter\n // CCITTFaxDecode with /K -1.\n let params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock,\n };\n let decoder = new CCITTFaxDecoder(input, params);\n let bitmap = [], x, y, row, currentByte, shift, eof = false;\n\n for (y = 0; y < height; y++) {\n row = new Uint8Array(width);\n bitmap.push(row);\n shift = -1;\n for (x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n if (currentByte === -1) {\n // Set the rest of the bits to zero.\n currentByte = 0;\n eof = true;\n }\n shift = 7;\n }\n row[x] = (currentByte >> shift) & 1;\n shift--;\n }\n }\n\n if (endOfBlock && !eof) {\n // Read until EOFB has been consumed.\n const lookForEOFLimit = 5;\n for (let i = 0; i < lookForEOFLimit; i++) {\n if (decoder.readNextChar() === -1) {\n break;\n }\n }\n }\n\n return bitmap;\n }\n\n function Jbig2Image() {}\n\n Jbig2Image.prototype = {\n parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n },\n\n parse(data) {\n const { imgData, width, height, } = parseJbig2(data);\n this.width = width;\n this.height = height;\n return imgData;\n },\n };\n\n return Jbig2Image;\n})();\n\nexport {\n Jbig2Image,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint no-var: error */\n\n// Table C-2\nconst QeTable = [\n { qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1, },\n { qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0, },\n { qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0, },\n { qe: 0x0AC1, nmps: 4, nlps: 12, switchFlag: 0, },\n { qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0, },\n { qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0, },\n { qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1, },\n { qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0, },\n { qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0, },\n { qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0, },\n { qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0, },\n { qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0, },\n { qe: 0x1C01, nmps: 13, nlps: 20, switchFlag: 0, },\n { qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0, },\n { qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1, },\n { qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0, },\n { qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0, },\n { qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0, },\n { qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0, },\n { qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0, },\n { qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0, },\n { qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0, },\n { qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0, },\n { qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0, },\n { qe: 0x1C01, nmps: 25, nlps: 22, switchFlag: 0, },\n { qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0, },\n { qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0, },\n { qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0, },\n { qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0, },\n { qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0, },\n { qe: 0x0AC1, nmps: 31, nlps: 28, switchFlag: 0, },\n { qe: 0x09C1, nmps: 32, nlps: 29, switchFlag: 0, },\n { qe: 0x08A1, nmps: 33, nlps: 30, switchFlag: 0, },\n { qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0, },\n { qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0, },\n { qe: 0x02A1, nmps: 36, nlps: 33, switchFlag: 0, },\n { qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0, },\n { qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0, },\n { qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0, },\n { qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0, },\n { qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0, },\n { qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0, },\n { qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0, },\n { qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0, },\n { qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0, },\n { qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0, },\n { qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0, },\n];\n\n/**\n * This class implements the QM Coder decoding as defined in\n * JPEG 2000 Part I Final Committee Draft Version 1.0\n * Annex C.3 Arithmetic decoding procedure\n * available at http://www.jpeg.org/public/fcd15444-1.pdf\n *\n * The arithmetic decoder is used in conjunction with context models to decode\n * JPEG2000 and JBIG2 streams.\n */\nclass ArithmeticDecoder {\n // C.3.5 Initialisation of the decoder (INITDEC)\n constructor(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n\n this.chigh = data[start];\n this.clow = 0;\n\n this.byteIn();\n\n this.chigh = ((this.chigh << 7) & 0xFFFF) | ((this.clow >> 9) & 0x7F);\n this.clow = (this.clow << 7) & 0xFFFF;\n this.ct -= 7;\n this.a = 0x8000;\n }\n\n // C.3.4 Compressed data input (BYTEIN)\n byteIn() {\n const data = this.data;\n let bp = this.bp;\n\n if (data[bp] === 0xFF) {\n if (data[bp + 1] > 0x8F) {\n this.clow += 0xFF00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += (data[bp] << 9);\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? (data[bp] << 8) : 0xFF00;\n this.ct = 8;\n this.bp = bp;\n }\n if (this.clow > 0xFFFF) {\n this.chigh += (this.clow >> 16);\n this.clow &= 0xFFFF;\n }\n }\n\n // C.3.2 Decoding a decision (DECODE)\n readBit(contexts, pos) {\n // Contexts are packed into 1 byte:\n // highest 7 bits carry cx.index, lowest bit carries cx.mps\n let cx_index = contexts[pos] >> 1, cx_mps = contexts[pos] & 1;\n const qeTableIcx = QeTable[cx_index];\n const qeIcx = qeTableIcx.qe;\n let d;\n let a = this.a - qeIcx;\n\n if (this.chigh < qeIcx) {\n // exchangeLps\n if (a < qeIcx) {\n a = qeIcx;\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n } else {\n a = qeIcx;\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n // exchangeMps\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n // C.3.3 renormD;\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n\n a <<= 1;\n this.chigh = ((this.chigh << 1) & 0xFFFF) | ((this.clow >> 15) & 1);\n this.clow = (this.clow << 1) & 0xFFFF;\n this.ct--;\n } while ((a & 0x8000) === 0);\n this.a = a;\n\n contexts[pos] = cx_index << 1 | cx_mps;\n return d;\n }\n}\n\nexport {\n ArithmeticDecoder,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The CCITT stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\n/**\n * @typedef {Object} CCITTFaxDecoderSource\n * @property {function} next - Method that return one byte of data for decoding,\n * or -1 when EOF is reached.\n */\n\nimport { info } from '../shared/util';\n\nlet CCITTFaxDecoder = (function CCITTFaxDecoder() {\n\n const ccittEOL = -2;\n const ccittEOF = -1;\n const twoDimPass = 0;\n const twoDimHoriz = 1;\n const twoDimVert0 = 2;\n const twoDimVertR1 = 3;\n const twoDimVertL1 = 4;\n const twoDimVertR2 = 5;\n const twoDimVertL2 = 6;\n const twoDimVertR3 = 7;\n const twoDimVertL3 = 8;\n\n const twoDimTable = [\n [-1, -1], [-1, -1], // 000000x\n [7, twoDimVertL3], // 0000010\n [7, twoDimVertR3], // 0000011\n [6, twoDimVertL2], [6, twoDimVertL2], // 000010x\n [6, twoDimVertR2], [6, twoDimVertR2], // 000011x\n [4, twoDimPass], [4, twoDimPass], // 0001xxx\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [3, twoDimHoriz], [3, twoDimHoriz], // 001xxxx\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [1, twoDimVert0], [1, twoDimVert0], // 1xxxxxx\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0]\n ];\n\n const whiteTable1 = [\n [-1, -1], // 00000\n [12, ccittEOL], // 00001\n [-1, -1], [-1, -1], // 0001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx\n [11, 1792], [11, 1792], // 1000x\n [12, 1984], // 10010\n [12, 2048], // 10011\n [12, 2112], // 10100\n [12, 2176], // 10101\n [12, 2240], // 10110\n [12, 2304], // 10111\n [11, 1856], [11, 1856], // 1100x\n [11, 1920], [11, 1920], // 1101x\n [12, 2368], // 11100\n [12, 2432], // 11101\n [12, 2496], // 11110\n [12, 2560] // 11111\n ];\n\n const whiteTable2 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000000xx\n [8, 29], [8, 29], // 00000010x\n [8, 30], [8, 30], // 00000011x\n [8, 45], [8, 45], // 00000100x\n [8, 46], [8, 46], // 00000101x\n [7, 22], [7, 22], [7, 22], [7, 22], // 0000011xx\n [7, 23], [7, 23], [7, 23], [7, 23], // 0000100xx\n [8, 47], [8, 47], // 00001010x\n [8, 48], [8, 48], // 00001011x\n [6, 13], [6, 13], [6, 13], [6, 13], // 000011xxx\n [6, 13], [6, 13], [6, 13], [6, 13],\n [7, 20], [7, 20], [7, 20], [7, 20], // 0001000xx\n [8, 33], [8, 33], // 00010010x\n [8, 34], [8, 34], // 00010011x\n [8, 35], [8, 35], // 00010100x\n [8, 36], [8, 36], // 00010101x\n [8, 37], [8, 37], // 00010110x\n [8, 38], [8, 38], // 00010111x\n [7, 19], [7, 19], [7, 19], [7, 19], // 0001100xx\n [8, 31], [8, 31], // 00011010x\n [8, 32], [8, 32], // 00011011x\n [6, 1], [6, 1], [6, 1], [6, 1], // 000111xxx\n [6, 1], [6, 1], [6, 1], [6, 1],\n [6, 12], [6, 12], [6, 12], [6, 12], // 001000xxx\n [6, 12], [6, 12], [6, 12], [6, 12],\n [8, 53], [8, 53], // 00100100x\n [8, 54], [8, 54], // 00100101x\n [7, 26], [7, 26], [7, 26], [7, 26], // 0010011xx\n [8, 39], [8, 39], // 00101000x\n [8, 40], [8, 40], // 00101001x\n [8, 41], [8, 41], // 00101010x\n [8, 42], [8, 42], // 00101011x\n [8, 43], [8, 43], // 00101100x\n [8, 44], [8, 44], // 00101101x\n [7, 21], [7, 21], [7, 21], [7, 21], // 0010111xx\n [7, 28], [7, 28], [7, 28], [7, 28], // 0011000xx\n [8, 61], [8, 61], // 00110010x\n [8, 62], [8, 62], // 00110011x\n [8, 63], [8, 63], // 00110100x\n [8, 0], [8, 0], // 00110101x\n [8, 320], [8, 320], // 00110110x\n [8, 384], [8, 384], // 00110111x\n [5, 10], [5, 10], [5, 10], [5, 10], // 00111xxxx\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 11], [5, 11], [5, 11], [5, 11], // 01000xxxx\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [7, 27], [7, 27], [7, 27], [7, 27], // 0100100xx\n [8, 59], [8, 59], // 01001010x\n [8, 60], [8, 60], // 01001011x\n [9, 1472], // 010011000\n [9, 1536], // 010011001\n [9, 1600], // 010011010\n [9, 1728], // 010011011\n [7, 18], [7, 18], [7, 18], [7, 18], // 0100111xx\n [7, 24], [7, 24], [7, 24], [7, 24], // 0101000xx\n [8, 49], [8, 49], // 01010010x\n [8, 50], [8, 50], // 01010011x\n [8, 51], [8, 51], // 01010100x\n [8, 52], [8, 52], // 01010101x\n [7, 25], [7, 25], [7, 25], [7, 25], // 0101011xx\n [8, 55], [8, 55], // 01011000x\n [8, 56], [8, 56], // 01011001x\n [8, 57], [8, 57], // 01011010x\n [8, 58], [8, 58], // 01011011x\n [6, 192], [6, 192], [6, 192], [6, 192], // 010111xxx\n [6, 192], [6, 192], [6, 192], [6, 192],\n [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx\n [6, 1664], [6, 1664], [6, 1664], [6, 1664],\n [8, 448], [8, 448], // 01100100x\n [8, 512], [8, 512], // 01100101x\n [9, 704], // 011001100\n [9, 768], // 011001101\n [8, 640], [8, 640], // 01100111x\n [8, 576], [8, 576], // 01101000x\n [9, 832], // 011010010\n [9, 896], // 011010011\n [9, 960], // 011010100\n [9, 1024], // 011010101\n [9, 1088], // 011010110\n [9, 1152], // 011010111\n [9, 1216], // 011011000\n [9, 1280], // 011011001\n [9, 1344], // 011011010\n [9, 1408], // 011011011\n [7, 256], [7, 256], [7, 256], [7, 256], // 0110111xx\n [4, 2], [4, 2], [4, 2], [4, 2], // 0111xxxxx\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 3], [4, 3], [4, 3], [4, 3], // 1000xxxxx\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [5, 128], [5, 128], [5, 128], [5, 128], // 10010xxxx\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 8], [5, 8], [5, 8], [5, 8], // 10011xxxx\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 9], [5, 9], [5, 9], [5, 9], // 10100xxxx\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [6, 16], [6, 16], [6, 16], [6, 16], // 101010xxx\n [6, 16], [6, 16], [6, 16], [6, 16],\n [6, 17], [6, 17], [6, 17], [6, 17], // 101011xxx\n [6, 17], [6, 17], [6, 17], [6, 17],\n [4, 4], [4, 4], [4, 4], [4, 4], // 1011xxxxx\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 5], [4, 5], [4, 5], [4, 5], // 1100xxxxx\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [6, 14], [6, 14], [6, 14], [6, 14], // 110100xxx\n [6, 14], [6, 14], [6, 14], [6, 14],\n [6, 15], [6, 15], [6, 15], [6, 15], // 110101xxx\n [6, 15], [6, 15], [6, 15], [6, 15],\n [5, 64], [5, 64], [5, 64], [5, 64], // 11011xxxx\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [4, 6], [4, 6], [4, 6], [4, 6], // 1110xxxxx\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 7], [4, 7], [4, 7], [4, 7], // 1111xxxxx\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7]\n ];\n\n const blackTable1 = [\n [-1, -1], [-1, -1], // 000000000000x\n [12, ccittEOL], [12, ccittEOL], // 000000000001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000011xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000100xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000101xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000110xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000111xx\n [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx\n [12, 1984], [12, 1984], // 000000010010x\n [12, 2048], [12, 2048], // 000000010011x\n [12, 2112], [12, 2112], // 000000010100x\n [12, 2176], [12, 2176], // 000000010101x\n [12, 2240], [12, 2240], // 000000010110x\n [12, 2304], [12, 2304], // 000000010111x\n [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx\n [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx\n [12, 2368], [12, 2368], // 000000011100x\n [12, 2432], [12, 2432], // 000000011101x\n [12, 2496], [12, 2496], // 000000011110x\n [12, 2560], [12, 2560], // 000000011111x\n [10, 18], [10, 18], [10, 18], [10, 18], // 0000001000xxx\n [10, 18], [10, 18], [10, 18], [10, 18],\n [12, 52], [12, 52], // 000000100100x\n [13, 640], // 0000001001010\n [13, 704], // 0000001001011\n [13, 768], // 0000001001100\n [13, 832], // 0000001001101\n [12, 55], [12, 55], // 000000100111x\n [12, 56], [12, 56], // 000000101000x\n [13, 1280], // 0000001010010\n [13, 1344], // 0000001010011\n [13, 1408], // 0000001010100\n [13, 1472], // 0000001010101\n [12, 59], [12, 59], // 000000101011x\n [12, 60], [12, 60], // 000000101100x\n [13, 1536], // 0000001011010\n [13, 1600], // 0000001011011\n [11, 24], [11, 24], [11, 24], [11, 24], // 00000010111xx\n [11, 25], [11, 25], [11, 25], [11, 25], // 00000011000xx\n [13, 1664], // 0000001100100\n [13, 1728], // 0000001100101\n [12, 320], [12, 320], // 000000110011x\n [12, 384], [12, 384], // 000000110100x\n [12, 448], [12, 448], // 000000110101x\n [13, 512], // 0000001101100\n [13, 576], // 0000001101101\n [12, 53], [12, 53], // 000000110111x\n [12, 54], [12, 54], // 000000111000x\n [13, 896], // 0000001110010\n [13, 960], // 0000001110011\n [13, 1024], // 0000001110100\n [13, 1088], // 0000001110101\n [13, 1152], // 0000001110110\n [13, 1216], // 0000001110111\n [10, 64], [10, 64], [10, 64], [10, 64], // 0000001111xxx\n [10, 64], [10, 64], [10, 64], [10, 64]\n ];\n\n const blackTable2 = [\n [8, 13], [8, 13], [8, 13], [8, 13], // 00000100xxxx\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [11, 23], [11, 23], // 00000101000x\n [12, 50], // 000001010010\n [12, 51], // 000001010011\n [12, 44], // 000001010100\n [12, 45], // 000001010101\n [12, 46], // 000001010110\n [12, 47], // 000001010111\n [12, 57], // 000001011000\n [12, 58], // 000001011001\n [12, 61], // 000001011010\n [12, 256], // 000001011011\n [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx\n [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx\n [12, 48], // 000001100100\n [12, 49], // 000001100101\n [12, 62], // 000001100110\n [12, 63], // 000001100111\n [12, 30], // 000001101000\n [12, 31], // 000001101001\n [12, 32], // 000001101010\n [12, 33], // 000001101011\n [12, 40], // 000001101100\n [12, 41], // 000001101101\n [11, 22], [11, 22], // 00000110111x\n [8, 14], [8, 14], [8, 14], [8, 14], // 00000111xxxx\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [7, 10], [7, 10], [7, 10], [7, 10], // 0000100xxxxx\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 11], [7, 11], [7, 11], [7, 11], // 0000101xxxxx\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [9, 15], [9, 15], [9, 15], [9, 15], // 000011000xxx\n [9, 15], [9, 15], [9, 15], [9, 15],\n [12, 128], // 000011001000\n [12, 192], // 000011001001\n [12, 26], // 000011001010\n [12, 27], // 000011001011\n [12, 28], // 000011001100\n [12, 29], // 000011001101\n [11, 19], [11, 19], // 00001100111x\n [11, 20], [11, 20], // 00001101000x\n [12, 34], // 000011010010\n [12, 35], // 000011010011\n [12, 36], // 000011010100\n [12, 37], // 000011010101\n [12, 38], // 000011010110\n [12, 39], // 000011010111\n [11, 21], [11, 21], // 00001101100x\n [12, 42], // 000011011010\n [12, 43], // 000011011011\n [10, 0], [10, 0], [10, 0], [10, 0], // 0000110111xx\n [7, 12], [7, 12], [7, 12], [7, 12], // 0000111xxxxx\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12]\n ];\n\n const blackTable3 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx\n [6, 9], // 000100\n [6, 8], // 000101\n [5, 7], [5, 7], // 00011x\n [4, 6], [4, 6], [4, 6], [4, 6], // 0010xx\n [4, 5], [4, 5], [4, 5], [4, 5], // 0011xx\n [3, 1], [3, 1], [3, 1], [3, 1], // 010xxx\n [3, 1], [3, 1], [3, 1], [3, 1],\n [3, 4], [3, 4], [3, 4], [3, 4], // 011xxx\n [3, 4], [3, 4], [3, 4], [3, 4],\n [2, 3], [2, 3], [2, 3], [2, 3], // 10xxxx\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 2], [2, 2], [2, 2], [2, 2], // 11xxxx\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2]\n ];\n\n /**\n * @param {CCITTFaxDecoderSource} source - The data which should be decoded.\n * @param {Object} options - (optional) Decoding options.\n */\n function CCITTFaxDecoder(source, options = {}) {\n if (!source || typeof source.next !== 'function') {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n this.source = source;\n this.eof = false;\n\n this.encoding = options['K'] || 0;\n this.eoline = options['EndOfLine'] || false;\n this.byteAlign = options['EncodedByteAlign'] || false;\n this.columns = options['Columns'] || 1728;\n this.rows = options['Rows'] || 0;\n let eoblock = options['EndOfBlock'];\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\n }\n this.eoblock = eoblock;\n this.black = options['BlackIs1'] || false;\n\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n\n this.row = 0;\n this.nextLine2D = this.encoding < 0;\n this.inputBits = 0;\n this.inputBuf = 0;\n this.outputBits = 0;\n this.rowsDone = false;\n\n let code1;\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n if (code1 === 1) {\n this._eatBits(12);\n }\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n }\n\n CCITTFaxDecoder.prototype = {\n readNextChar() {\n if (this.eof) {\n return -1;\n }\n let refLine = this.refLine;\n let codingLine = this.codingLine;\n let columns = this.columns;\n\n let refPos, blackPixels, bits, i;\n\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n if (this.eof) {\n return -1;\n }\n this.err = false;\n\n let code1, code2, code3;\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = this._getTwoDimCode();\n switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n break;\n case twoDimHoriz:\n code1 = code2 = 0;\n if (blackPixels) {\n do {\n code1 += (code3 = this._getBlackCode());\n } while (code3 >= 64);\n do {\n code2 += (code3 = this._getWhiteCode());\n } while (code3 >= 64);\n } else {\n do {\n code1 += (code3 = this._getWhiteCode());\n } while (code3 >= 64);\n do {\n code2 += (code3 = this._getBlackCode());\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] +\n code1, blackPixels);\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(codingLine[this.codingPos] + code2,\n blackPixels ^ 1);\n }\n while (refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns) {\n refPos += 2;\n }\n break;\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case ccittEOF:\n this._addPixels(columns, 0);\n this.eof = true;\n break;\n default:\n info('bad 2d code');\n this._addPixels(columns, 0);\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n if (blackPixels) {\n do {\n code1 += (code3 = this._getBlackCode());\n } while (code3 >= 64);\n } else {\n do {\n code1 += (code3 = this._getWhiteCode());\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n blackPixels ^= 1;\n }\n }\n\n let gotEOL = false;\n\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n\n if (!this.eoblock && this.row === this.rows - 1) {\n this.rowsDone = true;\n } else {\n code1 = this._lookBits(12);\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n }\n if (code1 === 1) {\n this._eatBits(12);\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n\n if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n if (code1 === 1) {\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n if (code1 !== 1) {\n info('bad rtc code: ' + code1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n }\n }\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n if ((code1 >> 1) === 1) {\n break;\n }\n this._eatBits(1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._eatBits(1);\n this.nextLine2D = !(code1 & 1);\n }\n }\n\n if (codingLine[0] > 0) {\n this.outputBits = codingLine[this.codingPos = 0];\n } else {\n this.outputBits = codingLine[this.codingPos = 1];\n }\n this.row++;\n }\n\n let c;\n if (this.outputBits >= 8) {\n c = (this.codingPos & 1) ? 0 : 0xFF;\n this.outputBits -= 8;\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = (codingLine[this.codingPos] -\n codingLine[this.codingPos - 1]);\n }\n } else {\n bits = 8;\n c = 0;\n do {\n if (this.outputBits > bits) {\n c <<= bits;\n if (!(this.codingPos & 1)) {\n c |= 0xFF >> (8 - bits);\n }\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n if (!(this.codingPos & 1)) {\n c |= 0xFF >> (8 - this.outputBits);\n }\n bits -= this.outputBits;\n this.outputBits = 0;\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = (codingLine[this.codingPos] -\n codingLine[this.codingPos - 1]);\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n if (this.black) {\n c ^= 0xFF;\n }\n return c;\n },\n\n /**\n * @private\n */\n _addPixels(a1, blackPixels) {\n let codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info('row is wrong length');\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n },\n\n /**\n * @private\n */\n _addPixelsNeg(a1, blackPixels) {\n let codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info('row is wrong length');\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n } else if (a1 < codingLine[codingPos]) {\n if (a1 < 0) {\n info('invalid code');\n this.err = true;\n a1 = 0;\n }\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n },\n\n /**\n * This function returns the code found from the table.\n * The start and end parameters set the boundaries for searching the table.\n * The limit parameter is optional. Function returns an array with three\n * values. The first array element indicates whether a valid code is being\n * returned. The second array element is the actual code. The third array\n * element indicates whether EOF was reached.\n * @private\n */\n _findTableCode(start, end, table, limit) {\n let limitValue = limit || 0;\n for (let i = start; i <= end; ++i) {\n let code = this._lookBits(i);\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n if (i < end) {\n code <<= end - i;\n }\n if (!limitValue || code >= limitValue) {\n let p = table[code - limitValue];\n if (p[0] === i) {\n this._eatBits(i);\n return [true, p[1], true];\n }\n }\n }\n return [false, 0, false];\n },\n\n /**\n * @private\n */\n _getTwoDimCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n if (p && p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 7, twoDimTable);\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n info('Bad two dim code');\n return ccittEOF;\n },\n\n /**\n * @private\n */\n _getWhiteCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(12);\n if (code === ccittEOF) {\n return 1;\n }\n\n if ((code >> 5) === 0) {\n p = whiteTable1[code];\n } else {\n p = whiteTable2[code >> 3];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 9, whiteTable2);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(11, 12, whiteTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info('bad white code');\n this._eatBits(1);\n return 1;\n },\n\n /**\n * @private\n */\n _getBlackCode() {\n let code, p;\n if (this.eoblock) {\n code = this._lookBits(13);\n if (code === ccittEOF) {\n return 1;\n }\n if ((code >> 7) === 0) {\n p = blackTable1[code];\n } else if ((code >> 9) === 0 && (code >> 7) !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(2, 6, blackTable3);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(7, 12, blackTable2, 64);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(10, 13, blackTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info('bad black code');\n this._eatBits(1);\n return 1;\n },\n\n /**\n * @private\n */\n _lookBits(n) {\n let c;\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n return ((this.inputBuf << (n - this.inputBits)) &\n (0xFFFF >> (16 - n)));\n }\n this.inputBuf = (this.inputBuf << 8) | c;\n this.inputBits += 8;\n }\n return (this.inputBuf >> (this.inputBits - n)) & (0xFFFF >> (16 - n));\n },\n\n /**\n * @private\n */\n _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n },\n };\n\n return CCITTFaxDecoder;\n})();\n\nexport {\n CCITTFaxDecoder,\n};\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-multi-spaces */\n\nimport { assert, warn } from '../shared/util';\n\nlet JpegError = (function JpegErrorClosure() {\n function JpegError(msg) {\n this.message = 'JPEG error: ' + msg;\n }\n\n JpegError.prototype = new Error();\n JpegError.prototype.name = 'JpegError';\n JpegError.constructor = JpegError;\n\n return JpegError;\n})();\n\nlet DNLMarkerError = (function DNLMarkerErrorClosure() {\n function DNLMarkerError(message, scanLines) {\n this.message = message;\n this.scanLines = scanLines;\n }\n\n DNLMarkerError.prototype = new Error();\n DNLMarkerError.prototype.name = 'DNLMarkerError';\n DNLMarkerError.constructor = DNLMarkerError;\n\n return DNLMarkerError;\n})();\n\nlet EOIMarkerError = (function EOIMarkerErrorClosure() {\n function EOIMarkerError(message) {\n this.message = message;\n }\n\n EOIMarkerError.prototype = new Error();\n EOIMarkerError.prototype.name = 'EOIMarkerError';\n EOIMarkerError.constructor = EOIMarkerError;\n\n return EOIMarkerError;\n})();\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n * (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n * (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n * Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n * (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\nvar JpegImage = (function JpegImageClosure() {\n var dctZigZag = new Uint8Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n ]);\n\n var dctCos1 = 4017; // cos(pi/16)\n var dctSin1 = 799; // sin(pi/16)\n var dctCos3 = 3406; // cos(3*pi/16)\n var dctSin3 = 2276; // sin(3*pi/16)\n var dctCos6 = 1567; // cos(6*pi/16)\n var dctSin6 = 3784; // sin(6*pi/16)\n var dctSqrt2 = 5793; // sqrt(2)\n var dctSqrt1d2 = 2896; // sqrt(2) / 2\n\n function JpegImage({ decodeTransform = null, colorTransform = -1, } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n function buildHuffmanTable(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n code.push({ children: [], index: 0, });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0, });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push(q = { children: [], index: 0, });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n\n function getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n }\n\n function decodeScan(data, offset, frame, components, resetInterval,\n spectralStart, spectralEnd, successivePrev, successive,\n parseDNLMarker = false) {\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xFF) {\n var nextByte = data[offset++];\n if (nextByte) {\n if (nextByte === 0xDC && parseDNLMarker) { // DNL == 0xFFDC\n offset += 2; // Skip data length.\n const scanLines = (data[offset++] << 8) | data[offset++];\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\n 'Found DNL marker (0xFFDC) while parsing scan data', scanLines);\n }\n } else if (nextByte === 0xD9) { // EOI == 0xFFD9\n throw new EOIMarkerError(\n 'Found EOI marker (0xFFD9) while parsing scan data');\n }\n throw new JpegError(\n `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`);\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n var node = tree;\n while (true) {\n node = node[readBit()];\n if (typeof node === 'number') {\n return node;\n }\n if (typeof node !== 'object') {\n throw new JpegError('invalid huffman sequence');\n }\n }\n }\n\n function receive(length) {\n var n = 0;\n while (length > 0) {\n n = (n << 1) | readBit();\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n var n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[offset] = (component.pred += diff);\n var k = 1;\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive);\n component.blockData[offset] = (component.pred += diff);\n }\n\n function decodeDCSuccessive(component, offset) {\n component.blockData[offset] |= readBit() << successive;\n }\n\n var eobrun = 0;\n function decodeACFirst(component, offset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k = spectralStart, e = spectralEnd;\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component, offset) {\n var k = spectralStart;\n var e = spectralEnd;\n var r = 0;\n var s;\n var rs;\n while (k <= e) {\n let offsetZ = offset + dctZigZag[k];\n let sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError('invalid ACn encoding');\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] =\n successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n function decodeMcu(component, decode, mcu, row, col) {\n var mcuRow = (mcu / mcusPerLine) | 0;\n var mcuCol = mcu % mcusPerLine;\n var blockRow = mcuRow * component.v + row;\n var blockCol = mcuCol * component.h + col;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n\n function decodeBlock(component, decode, mcu) {\n var blockRow = (mcu / component.blocksPerLine) | 0;\n var blockCol = mcu % component.blocksPerLine;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n var mcu = 0, fileMarker;\n var mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n\n var h, v;\n while (mcu < mcuExpected) {\n // reset interval stuff\n var mcuToRead = resetInterval ?\n Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n\n // find marker\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past\n // those to attempt to find a valid marker (fixes issue4090.pdf).\n if (fileMarker && fileMarker.invalid) {\n warn('decodeScan - unexpected MCU data, current marker is: ' +\n fileMarker.invalid);\n offset = fileMarker.offset;\n }\n var marker = fileMarker && fileMarker.marker;\n if (!marker || marker <= 0xFF00) {\n throw new JpegError('marker was not found');\n }\n\n if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n fileMarker = findNextFileMarker(data, offset);\n // Some images include more Scan blocks than expected, skip past those and\n // attempt to find the next valid marker (fixes issue8182.pdf).\n if (fileMarker && fileMarker.invalid) {\n warn('decodeScan - unexpected Scan data, current marker is: ' +\n fileMarker.invalid);\n offset = fileMarker.offset;\n }\n\n return offset - startOffset;\n }\n\n // A port of poppler's IDCT method which in turn is taken from:\n // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n // 'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n // 988-991.\n function quantizeAndInverse(component, blockBufferOffset, p) {\n var qt = component.quantizationTable, blockData = component.blockData;\n var v0, v1, v2, v3, v4, v5, v6, v7;\n var p0, p1, p2, p3, p4, p5, p6, p7;\n var t;\n\n if (!qt) {\n throw new JpegError('missing required Quantization Table.');\n }\n\n // inverse DCT on rows\n for (var row = 0; row < 64; row += 8) {\n // gather block data\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n\n // dequant p0\n p0 *= qt[row];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 512) >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n // dequant p1 ... p7\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 128) >> 8;\n v1 = (dctSqrt2 * p4 + 128) >> 8;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n\n // stage 3\n v0 = (v0 + v1 + 1) >> 1;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (var col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 8192) >> 14;\n // convert to 8 bit\n t = (t < -2040) ? 0 : (t >= 2024) ? 255 : (t + 2056) >> 4;\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 2048) >> 12;\n v1 = (dctSqrt2 * p4 + 2048) >> 12;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n v5 = p3;\n v6 = p5;\n\n // stage 3\n // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n // converting to UInt8 range later.\n v0 = ((v0 + v1 + 1) >> 1) + 4112;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n\n // convert to 8-bit integers\n p0 = (p0 < 16) ? 0 : (p0 >= 4080) ? 255 : p0 >> 4;\n p1 = (p1 < 16) ? 0 : (p1 >= 4080) ? 255 : p1 >> 4;\n p2 = (p2 < 16) ? 0 : (p2 >= 4080) ? 255 : p2 >> 4;\n p3 = (p3 < 16) ? 0 : (p3 >= 4080) ? 255 : p3 >> 4;\n p4 = (p4 < 16) ? 0 : (p4 >= 4080) ? 255 : p4 >> 4;\n p5 = (p5 < 16) ? 0 : (p5 >= 4080) ? 255 : p5 >> 4;\n p6 = (p6 < 16) ? 0 : (p6 >= 4080) ? 255 : p6 >> 4;\n p7 = (p7 < 16) ? 0 : (p7 >= 4080) ? 255 : p7 >> 4;\n\n // store block data\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n }\n\n function buildComponentData(frame, component) {\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var computationBuffer = new Int16Array(64);\n\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n }\n\n function findNextFileMarker(data, currentPos, startPos = currentPos) {\n function peekUint16(pos) {\n return (data[pos] << 8) | data[pos + 1];\n }\n\n const maxPos = data.length - 1;\n var newPos = startPos < currentPos ? startPos : currentPos;\n\n if (currentPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n var currentMarker = peekUint16(currentPos);\n if (currentMarker >= 0xFFC0 && currentMarker <= 0xFFFE) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos,\n };\n }\n var newMarker = peekUint16(newPos);\n while (!(newMarker >= 0xFFC0 && newMarker <= 0xFFFE)) {\n if (++newPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n newMarker = peekUint16(newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos,\n };\n }\n\n JpegImage.prototype = {\n parse(data, { dnlScanLines = null, } = {}) {\n\n function readUint16() {\n var value = (data[offset] << 8) | data[offset + 1];\n offset += 2;\n return value;\n }\n\n function readDataBlock() {\n var length = readUint16();\n var endOffset = offset + length - 2;\n\n var fileMarker = findNextFileMarker(data, endOffset, offset);\n if (fileMarker && fileMarker.invalid) {\n warn('readDataBlock - incorrect length, current marker is: ' +\n fileMarker.invalid);\n endOffset = fileMarker.offset;\n }\n\n var array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (var i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) *\n component.h / frame.maxH);\n var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) *\n component.v / frame.maxV);\n var blocksPerLineForMcu = mcusPerLine * component.h;\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n var blocksBufferSize = 64 * blocksPerColumnForMcu *\n (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n var offset = 0;\n var jfif = null;\n var adobe = null;\n var frame, resetInterval;\n let numSOSMarkers = 0;\n var quantizationTables = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n if (fileMarker !== 0xFFD8) { // SOI (Start of Image)\n throw new JpegError('SOI not found');\n }\n\n fileMarker = readUint16();\n markerLoop: while (fileMarker !== 0xFFD9) { // EOI (End of image)\n var i, j, l;\n switch (fileMarker) {\n case 0xFFE0: // APP0 (Application Specific)\n case 0xFFE1: // APP1\n case 0xFFE2: // APP2\n case 0xFFE3: // APP3\n case 0xFFE4: // APP4\n case 0xFFE5: // APP5\n case 0xFFE6: // APP6\n case 0xFFE7: // APP7\n case 0xFFE8: // APP8\n case 0xFFE9: // APP9\n case 0xFFEA: // APP10\n case 0xFFEB: // APP11\n case 0xFFEC: // APP12\n case 0xFFED: // APP13\n case 0xFFEE: // APP14\n case 0xFFEF: // APP15\n case 0xFFFE: // COM (Comment)\n var appData = readDataBlock();\n\n if (fileMarker === 0xFFE0) {\n if (appData[0] === 0x4A && appData[1] === 0x46 &&\n appData[2] === 0x49 && appData[3] === 0x46 &&\n appData[4] === 0) { // 'JFIF\\x00'\n jfif = {\n version: { major: appData[5], minor: appData[6], },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 +\n 3 * appData[12] * appData[13]),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xFFEE) {\n if (appData[0] === 0x41 && appData[1] === 0x64 &&\n appData[2] === 0x6F && appData[3] === 0x62 &&\n appData[4] === 0x65) { // 'Adobe'\n adobe = {\n version: (appData[5] << 8) | appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xFFDB: // DQT (Define Quantization Tables)\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n var z;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n var tableData = new Uint16Array(64);\n if ((quantizationTableSpec >> 4) === 0) { // 8 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if ((quantizationTableSpec >> 4) === 1) { // 16 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else {\n throw new JpegError('DQT - invalid table spec');\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xFFC1: // SOF1 (Start of Frame, Extended DCT)\n case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw new JpegError('Only single frame JPEGs supported');\n }\n readUint16(); // skip data length\n frame = {};\n frame.extended = (fileMarker === 0xFFC1);\n frame.progressive = (fileMarker === 0xFFC2);\n frame.precision = data[offset++];\n const sofScanLines = readUint16();\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = readUint16();\n frame.components = [];\n frame.componentIds = {};\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n var qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null, // See comment below.\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xFFC4: // DHT (Define Huffman Tables)\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength;) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += (codeLengths[j] = data[offset]);\n }\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n ((huffmanTableSpec >> 4) === 0 ?\n huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] =\n buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xFFDD: // DRI (Define Restart Interval)\n readUint16(); // skip data length\n resetInterval = readUint16();\n break;\n\n case 0xFFDA: // SOS (Start of Scan)\n // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n // of the first scan segment and may only occur once in an image.\n // Furthermore, to prevent an infinite loop, do *not* attempt to\n // parse DNL markers during re-parsing of the JPEG scan data.\n const parseDNLMarker = (++numSOSMarkers) === 1 && !dnlScanLines;\n\n readUint16(); // scanLength\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n var componentIndex = frame.componentIds[data[offset++]];\n component = frame.components[componentIndex];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n try {\n var processed = decodeScan(data, offset,\n frame, components, resetInterval,\n spectralStart, spectralEnd,\n successiveApproximation >> 4, successiveApproximation & 15,\n parseDNLMarker);\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, { dnlScanLines: ex.scanLines, });\n } else if (ex instanceof EOIMarkerError) {\n warn(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n throw ex;\n }\n break;\n\n case 0xFFDC: // DNL (Define Number of Lines)\n // Ignore the marker, since it's being handled in `decodeScan`.\n offset += 4;\n break;\n\n case 0xFFFF: // Fill bytes\n if (data[offset] !== 0xFF) { // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n if (data[offset - 3] === 0xFF &&\n data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n // could be incorrect encoding -- last 0xFF byte of the previous\n // block was eaten by the encoder\n offset -= 3;\n break;\n }\n let nextFileMarker = findNextFileMarker(data, offset - 2);\n if (nextFileMarker && nextFileMarker.invalid) {\n warn('JpegImage.parse - unexpected data, current marker is: ' +\n nextFileMarker.invalid);\n offset = nextFileMarker.offset;\n break;\n }\n throw new JpegError('unknown marker ' + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n\n // Prevent errors when DQT markers are placed after SOF{n} markers,\n // by assigning the `quantizationTable` entry after the entire image\n // has been parsed (fixes issue7406.pdf).\n var quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n });\n }\n this.numComponents = this.components.length;\n return undefined;\n },\n\n _getLinearizedBlockData(width, height, isSourcePDF = false) {\n var scaleX = this.width / width, scaleY = this.height / height;\n\n var component, componentScaleX, componentScaleY, blocksPerScanline;\n var x, y, i, j, k;\n var index;\n var offset = 0;\n var output;\n var numComponents = this.components.length;\n var dataLength = width * height * numComponents;\n var data = new Uint8ClampedArray(dataLength);\n var xScaleBlockOffset = new Uint32Array(width);\n var mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = (component.blocksPerLine + 1) << 3;\n // precalculate the xScaleBlockOffset\n for (x = 0; x < width; x++) {\n j = 0 | (x * componentScaleX);\n xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n }\n // linearize the blocks of the component\n for (y = 0; y < height; y++) {\n j = 0 | (y * componentScaleY);\n index = blocksPerScanline * (j & mask3LSB) | ((j & 7) << 3);\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n // decodeTransform contains pairs of multiplier (-256..256) and additive\n let transform = this._decodeTransform;\n\n // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n // (this can be observed by extracting the raw image data).\n // Since the conversion algorithms (see below) were written primarily for\n // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n //\n // Unfortunately it's not (always) possible to tell, from the image data\n // alone, if it needs to be inverted. Thus in an attempt to provide better\n // out-of-box behaviour when `JpegImage` is used standalone, default to\n // inverting JPEG (CMYK) images if and only if the image data does *not*\n // come from a PDF file and no `decodeTransform` was passed by the user.\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([\n -256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength;) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n },\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n // The adobe transform marker overrides any previous setting.\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n // then the colours should *not* be transformed.\n return false;\n }\n return true;\n }\n // `this.numComponents !== 3`\n if (this._colorTransform === 1) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n // then the colours should be transformed.\n return true;\n }\n return false;\n },\n\n _convertYccToRgb: function convertYccToRgb(data) {\n var Y, Cb, Cr;\n for (var i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n },\n\n _convertYcckToRgb: function convertYcckToRgb(data) {\n var Y, Cb, Cr, k;\n var offset = 0;\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n\n data[offset++] = -122.67195406894 +\n Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr -\n 5.4080610064599e-5 * Y + 0.00048449797120281 * k -\n 0.154362151871126) +\n Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y -\n 0.00477271405408747 * k + 1.53380253221734) +\n Y * (0.000961250184130688 * Y - 0.00266257332283933 * k +\n 0.48357088451265) +\n k * (-0.000336197177618394 * k + 0.484791561490776);\n\n data[offset++] = 107.268039397724 +\n Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr +\n 0.000659397001245577 * Y + 0.000426105652938837 * k -\n 0.176491792462875) +\n Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y +\n 0.000770482631801132 * k - 0.151051492775562) +\n Y * (0.00126935368114843 * Y - 0.00265090189010898 * k +\n 0.25802910206845) +\n k * (-0.000318913117588328 * k - 0.213742400323665);\n\n data[offset++] = -20.810012546947 +\n Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr +\n 0.0020741088115012 * Y - 0.00288260236853442 * k +\n 0.814272968359295) +\n Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y +\n 0.000560833691242812 * k - 0.195152027534049) +\n Y * (0.00174418132927582 * Y - 0.00255243321439347 * k +\n 0.116935020465145) +\n k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n },\n\n _convertYcckToCmyk: function convertYcckToCmyk(data) {\n var Y, Cb, Cr;\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n // K in data[i + 3] is unchanged\n }\n return data;\n },\n\n _convertCmykToRgb: function convertCmykToRgb(data) {\n var c, m, y, k;\n var offset = 0;\n var scale = 1 / 255;\n for (var i = 0, length = data.length; i < length; i += 4) {\n c = data[i] * scale;\n m = data[i + 1] * scale;\n y = data[i + 2] * scale;\n k = data[i + 3] * scale;\n\n data[offset++] = 255 +\n c * (-4.387332384609988 * c + 54.48615194189176 * m +\n 18.82290502165302 * y + 212.25662451639585 * k -\n 285.2331026137004) +\n m * (1.7149763477362134 * m - 5.6096736904047315 * y -\n 17.873870861415444 * k - 5.497006427196366) +\n y * (-2.5217340131683033 * y - 21.248923337353073 * k +\n 17.5119270841813) -\n k * (21.86122147463605 * k + 189.48180835922747);\n\n data[offset++] = 255 +\n c * (8.841041422036149 * c + 60.118027045597366 * m +\n 6.871425592049007 * y + 31.159100130055922 * k -\n 79.2970844816548) +\n m * (-15.310361306967817 * m + 17.575251261109482 * y +\n 131.35250912493976 * k - 190.9453302588951) +\n y * (4.444339102852739 * y + 9.8632861493405 * k -\n 24.86741582555878) -\n k * (20.737325471181034 * k + 187.80453709719578);\n\n data[offset++] = 255 +\n c * (0.8842522430003296 * c + 8.078677503112928 * m +\n 30.89978309703729 * y - 0.23883238689178934 * k -\n 14.183576799673286) +\n m * (10.49593273432072 * m + 63.02378494754052 * y +\n 50.606957656360734 * k - 112.23884253719248) +\n y * (0.03296041114873217 * y + 115.60384449646641 * k -\n 193.58209356861505) -\n k * (22.33816807309886 * k + 180.12613974708367);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n },\n\n getData({ width, height, forceRGB = false, isSourcePDF = false, }) {\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('TESTING && !LIB')) {\n assert(isSourcePDF === true,\n 'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.');\n }\n if (this.numComponents > 4) {\n throw new JpegError('Unsupported color mode');\n }\n // Type of data: Uint8ClampedArray(width * height * numComponents)\n var data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && forceRGB) {\n var dataLength = data.length;\n var rgbData = new Uint8ClampedArray(dataLength * 3);\n var offset = 0;\n for (var i = 0; i < dataLength; i++) {\n var grayColor = data[i];\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n }\n return rgbData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n },\n };\n\n return JpegImage;\n})();\n\nexport {\n JpegImage,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n info, log2, readUint16, readUint32, warn\n} from '../shared/util';\nimport { ArithmeticDecoder } from './arithmetic_decoder';\n\nlet JpxError = (function JpxErrorClosure() {\n function JpxError(msg) {\n this.message = 'JPX error: ' + msg;\n }\n\n JpxError.prototype = new Error();\n JpxError.prototype.name = 'JpxError';\n JpxError.constructor = JpxError;\n\n return JpxError;\n})();\n\nvar JpxImage = (function JpxImageClosure() {\n // Table E.1\n var SubbandsGainLog2 = {\n 'LL': 0,\n 'LH': 1,\n 'HL': 1,\n 'HH': 2,\n };\n function JpxImage() {\n this.failOnCorruptedImage = false;\n }\n JpxImage.prototype = {\n parse: function JpxImage_parse(data) {\n\n var head = readUint16(data, 0);\n // No box header, immediate start of codestream (SOC)\n if (head === 0xFF4F) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n\n var position = 0, length = data.length;\n while (position < length) {\n var headerSize = 8;\n var lbox = readUint32(data, position);\n var tbox = readUint32(data, position + 4);\n position += headerSize;\n if (lbox === 1) {\n // XLBox: read UInt64 according to spec.\n // JavaScript's int precision of 53 bit should be sufficient here.\n lbox = readUint32(data, position) * 4294967296 +\n readUint32(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n if (lbox < headerSize) {\n throw new JpxError('Invalid box field size');\n }\n var dataLength = lbox - headerSize;\n var jumpDataLength = true;\n switch (tbox) {\n case 0x6A703268: // 'jp2h'\n jumpDataLength = false; // parsing child boxes\n break;\n case 0x636F6C72: // 'colr'\n // Colorspaces are not used, the CS from the PDF is used.\n var method = data[position];\n if (method === 1) {\n // enumerated colorspace\n var colorspace = readUint32(data, position + 3);\n switch (colorspace) {\n case 16: // this indicates a sRGB colorspace\n case 17: // this indicates a grayscale colorspace\n case 18: // this indicates a YUV colorspace\n break;\n default:\n warn('Unknown colorspace ' + colorspace);\n break;\n }\n } else if (method === 2) {\n info('ICC profile not supported');\n }\n break;\n case 0x6A703263: // 'jp2c'\n this.parseCodestream(data, position, position + dataLength);\n break;\n case 0x6A502020: // 'jP\\024\\024'\n if (readUint32(data, position) !== 0x0d0a870a) {\n warn('Invalid JP2 signature');\n }\n break;\n // The following header types are valid but currently not used:\n case 0x6A501A1A: // 'jP\\032\\032'\n case 0x66747970: // 'ftyp'\n case 0x72726571: // 'rreq'\n case 0x72657320: // 'res '\n case 0x69686472: // 'ihdr'\n break;\n default:\n var headerType = String.fromCharCode((tbox >> 24) & 0xFF,\n (tbox >> 16) & 0xFF,\n (tbox >> 8) & 0xFF,\n tbox & 0xFF);\n warn('Unsupported header type ' + tbox + ' (' + headerType + ')');\n break;\n }\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n },\n parseImageProperties: function JpxImage_parseImageProperties(stream) {\n var newByte = stream.getByte();\n while (newByte >= 0) {\n var oldByte = newByte;\n newByte = stream.getByte();\n var code = (oldByte << 8) | newByte;\n // Image and tile size (SIZ)\n if (code === 0xFF51) {\n stream.skip(4);\n var Xsiz = stream.getInt32() >>> 0; // Byte 4\n var Ysiz = stream.getInt32() >>> 0; // Byte 8\n var XOsiz = stream.getInt32() >>> 0; // Byte 12\n var YOsiz = stream.getInt32() >>> 0; // Byte 16\n stream.skip(16);\n var Csiz = stream.getUint16(); // Byte 36\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n // Results are always returned as `Uint8ClampedArray`s.\n this.bitsPerComponent = 8;\n return;\n }\n }\n throw new JpxError('No size marker found in JPX stream');\n },\n parseCodestream: function JpxImage_parseCodestream(data, start, end) {\n var context = {};\n var doNotRecover = false;\n try {\n var position = start;\n while (position + 1 < end) {\n var code = readUint16(data, position);\n position += 2;\n\n var length = 0, j, sqcd, spqcds, spqcdSize, scalarExpounded, tile;\n switch (code) {\n case 0xFF4F: // Start of codestream (SOC)\n context.mainHeader = true;\n break;\n case 0xFFD9: // End of codestream (EOC)\n break;\n case 0xFF51: // Image and tile size (SIZ)\n length = readUint16(data, position);\n var siz = {};\n siz.Xsiz = readUint32(data, position + 4);\n siz.Ysiz = readUint32(data, position + 8);\n siz.XOsiz = readUint32(data, position + 12);\n siz.YOsiz = readUint32(data, position + 16);\n siz.XTsiz = readUint32(data, position + 20);\n siz.YTsiz = readUint32(data, position + 24);\n siz.XTOsiz = readUint32(data, position + 28);\n siz.YTOsiz = readUint32(data, position + 32);\n var componentsCount = readUint16(data, position + 36);\n siz.Csiz = componentsCount;\n var components = [];\n j = position + 38;\n for (var i = 0; i < componentsCount; i++) {\n var component = {\n precision: (data[j] & 0x7F) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 2],\n };\n j += 3;\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n case 0xFF5C: // Quantization default (QCD)\n length = readUint16(data, position);\n var qcd = {};\n j = position + 2;\n sqcd = data[j++];\n switch (sqcd & 0x1F) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error('Invalid SQcd value ' + sqcd);\n }\n qcd.noQuantization = (spqcdSize === 8);\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n var spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcd.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n break;\n case 0xFF5D: // Quantization component (QCC)\n length = readUint16(data, position);\n var qcc = {};\n j = position + 2;\n var cqcc;\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = readUint16(data, j);\n j += 2;\n }\n sqcd = data[j++];\n switch (sqcd & 0x1F) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error('Invalid SQcd value ' + sqcd);\n }\n qcc.noQuantization = (spqcdSize === 8);\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < (length + position)) {\n spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcc.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n break;\n case 0xFF52: // Coding style default (COD)\n length = readUint16(data, position);\n var cod = {};\n j = position + 2;\n var scod = data[j++];\n cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n cod.sopMarkerUsed = !!(scod & 2);\n cod.ephMarkerUsed = !!(scod & 4);\n cod.progressionOrder = data[j++];\n cod.layersCount = readUint16(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n\n cod.decompositionLevelsCount = data[j++];\n cod.xcb = (data[j++] & 0xF) + 2;\n cod.ycb = (data[j++] & 0xF) + 2;\n var blockStyle = data[j++];\n cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n cod.resetContextProbabilities = !!(blockStyle & 2);\n cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n cod.verticallyStripe = !!(blockStyle & 8);\n cod.predictableTermination = !!(blockStyle & 16);\n cod.segmentationSymbolUsed = !!(blockStyle & 32);\n cod.reversibleTransformation = data[j++];\n if (cod.entropyCoderWithCustomPrecincts) {\n var precinctsSizes = [];\n while (j < length + position) {\n var precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xF,\n PPy: precinctsSize >> 4,\n });\n }\n cod.precinctsSizes = precinctsSizes;\n }\n var unsupported = [];\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push('selectiveArithmeticCodingBypass');\n }\n if (cod.resetContextProbabilities) {\n unsupported.push('resetContextProbabilities');\n }\n if (cod.terminationOnEachCodingPass) {\n unsupported.push('terminationOnEachCodingPass');\n }\n if (cod.verticallyStripe) {\n unsupported.push('verticallyStripe');\n }\n if (cod.predictableTermination) {\n unsupported.push('predictableTermination');\n }\n if (unsupported.length > 0) {\n doNotRecover = true;\n throw new Error('Unsupported COD options (' +\n unsupported.join(', ') + ')');\n }\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n break;\n case 0xFF90: // Start of tile-part (SOT)\n length = readUint16(data, position);\n tile = {};\n tile.index = readUint16(data, position + 2);\n tile.length = readUint32(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n\n context.mainHeader = false;\n if (tile.partIndex === 0) {\n // reset component specific settings\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0); // clone of the global COC\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0); // clone of the global COC\n }\n context.currentTile = tile;\n break;\n case 0xFF93: // Start of data (SOD)\n tile = context.currentTile;\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n\n // moving to the end of the data\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n case 0xFF55: // Tile-part lengths, main header (TLM)\n case 0xFF57: // Packet length, main header (PLM)\n case 0xFF58: // Packet length, tile-part header (PLT)\n case 0xFF64: // Comment (COM)\n length = readUint16(data, position);\n // skipping content\n break;\n case 0xFF53: // Coding style component (COC)\n throw new Error('Codestream code 0xFF53 (COC) is ' +\n 'not implemented');\n default:\n throw new Error('Unknown codestream code: ' + code.toString(16));\n }\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n warn('JPX: Trying to recover from: ' + e.message);\n }\n }\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n },\n };\n function calculateComponentDimensions(component, siz) {\n // Section B.2 Component mapping\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n }\n function calculateTileGrids(context, components) {\n var siz = context.SIZ;\n // Section B.3 Division into tile and tile-components\n var tile, tiles = [];\n var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n for (var q = 0; q < numYtiles; q++) {\n for (var p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n context.tiles = tiles;\n\n var componentsCount = siz.Csiz;\n for (var i = 0, ii = componentsCount; i < ii; i++) {\n var component = components[i];\n for (var j = 0, jj = tiles.length; j < jj; j++) {\n var tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n }\n function getBlocksDimensions(context, component, r) {\n var codOrCoc = component.codingStyleParameters;\n var result = {};\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n // calculate codeblock size as described in section B.7\n result.xcb_ = (r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) :\n Math.min(codOrCoc.xcb, result.PPx));\n result.ycb_ = (r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) :\n Math.min(codOrCoc.ycb, result.PPy));\n return result;\n }\n function buildPrecincts(context, resolution, dimensions) {\n // Section B.6 Division resolution to precincts\n var precinctWidth = 1 << dimensions.PPx;\n var precinctHeight = 1 << dimensions.PPy;\n // Jasper introduces codeblock groups for mapping each subband codeblocks\n // to precincts. Precinct partition divides a resolution according to width\n // and height parameters. The subband that belongs to the resolution level\n // has a different size than the level, unless it is the zero resolution.\n\n // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding:\n // The precinct partitioning for a particular subband is derived from a\n // partitioning of its parent LL band (i.e., the LL band at the next higher\n // resolution level)... The LL band associated with each resolution level is\n // divided into precincts... Each of the resulting precinct regions is then\n // mapped into its child subbands (if any) at the next lower resolution\n // level. This is accomplished by using the coordinate transformation\n // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the\n // coordinates of a point in the LL band and child subband, respectively.\n var isZeroRes = resolution.resLevel === 0;\n var precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1));\n var precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1));\n var numprecinctswide = (resolution.trx1 > resolution.trx0 ?\n Math.ceil(resolution.trx1 / precinctWidth) -\n Math.floor(resolution.trx0 / precinctWidth) : 0);\n var numprecinctshigh = (resolution.try1 > resolution.try0 ?\n Math.ceil(resolution.try1 / precinctHeight) -\n Math.floor(resolution.try0 / precinctHeight) : 0);\n var numprecincts = numprecinctswide * numprecinctshigh;\n\n resolution.precinctParameters = {\n precinctWidth,\n precinctHeight,\n numprecinctswide,\n numprecinctshigh,\n numprecincts,\n precinctWidthInSubband,\n precinctHeightInSubband,\n };\n }\n function buildCodeblocks(context, subband, dimensions) {\n // Section B.7 Division sub-band into code-blocks\n var xcb_ = dimensions.xcb_;\n var ycb_ = dimensions.ycb_;\n var codeblockWidth = 1 << xcb_;\n var codeblockHeight = 1 << ycb_;\n var cbx0 = subband.tbx0 >> xcb_;\n var cby0 = subband.tby0 >> ycb_;\n var cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_;\n var cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_;\n var precinctParameters = subband.resolution.precinctParameters;\n var codeblocks = [];\n var precincts = [];\n var i, j, codeblock, precinctNumber;\n for (j = cby0; j < cby1; j++) {\n for (i = cbx0; i < cbx1; i++) {\n codeblock = {\n cbx: i,\n cby: j,\n tbx0: codeblockWidth * i,\n tby0: codeblockHeight * j,\n tbx1: codeblockWidth * (i + 1),\n tby1: codeblockHeight * (j + 1),\n };\n\n codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n\n // Calculate precinct number for this codeblock, codeblock position\n // should be relative to its subband, use actual dimension and position\n // See comment about codeblock group width and height\n var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) /\n precinctParameters.precinctWidthInSubband);\n var pj = Math.floor((codeblock.tby0_ - subband.tby0) /\n precinctParameters.precinctHeightInSubband);\n precinctNumber = pi + (pj * precinctParameters.numprecinctswide);\n\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n\n if (codeblock.tbx1_ <= codeblock.tbx0_ ||\n codeblock.tby1_ <= codeblock.tby0_) {\n continue;\n }\n codeblocks.push(codeblock);\n // building precinct for the sub-band\n var precinct = precincts[precinctNumber];\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j,\n };\n }\n codeblock.precinct = precinct;\n }\n }\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1,\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n }\n function createPacket(resolution, precinctNumber, layerNumber) {\n var precinctCodeblocks = [];\n // Section B.10.8 Order of info in packet\n var subbands = resolution.subbands;\n // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n for (var i = 0, ii = subbands.length; i < ii; i++) {\n var subband = subbands[i];\n var codeblocks = subband.codeblocks;\n for (var j = 0, jj = codeblocks.length; j < jj; j++) {\n var codeblock = codeblocks[j];\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n precinctCodeblocks.push(codeblock);\n }\n }\n return {\n layerNumber,\n codeblocks: precinctCodeblocks,\n };\n }\n function LayerResolutionComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n\n var l = 0, r = 0, i = 0, k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.1 Layer-resolution-component-position\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n r = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ResolutionLayerComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n\n var r = 0, l = 0, i = 0, k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.2 Resolution-layer-component-position\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n l = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ResolutionPositionComponentLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var l, r, c, p;\n var maxDecompositionLevelsCount = 0;\n for (c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount,\n component.codingStyleParameters.decompositionLevelsCount);\n }\n var maxNumPrecinctsInLevel = new Int32Array(\n maxDecompositionLevelsCount + 1);\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n var maxNumPrecincts = 0;\n for (c = 0; c < componentsCount; ++c) {\n var resolutions = tile.components[c].resolutions;\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(maxNumPrecincts,\n resolutions[r].precinctParameters.numprecincts);\n }\n }\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.3 Resolution-position-component-layer\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n var component = tile.components[c];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n if (p >= numprecincts) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n l = 0;\n }\n c = 0;\n }\n p = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function PositionComponentResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var precinctsIterationSizes = precinctsSizes;\n var l = 0, r = 0, c = 0, px = 0, py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.4 Position-component-resolution-layer\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; r <= decompositionLevelsCount; r++) {\n var resolution = component.resolutions[r];\n var sizeInImageScale =\n precinctsSizes.components[c].resolutions[r];\n var k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution);\n if (k === null) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n c = 0;\n }\n px = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ComponentPositionResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var l = 0, r = 0, c = 0, px = 0, py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.5 Component-position-resolution-layer\n for (; c < componentsCount; ++c) {\n var component = tile.components[c];\n var precinctsIterationSizes = precinctsSizes.components[c];\n var decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; r <= decompositionLevelsCount; r++) {\n var resolution = component.resolutions[r];\n var sizeInImageScale = precinctsIterationSizes.resolutions[r];\n var k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution);\n if (k === null) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n px = 0;\n }\n py = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function getPrecinctIndexIfExist(\n pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {\n var posX = pxIndex * precinctIterationSizes.minWidth;\n var posY = pyIndex * precinctIterationSizes.minHeight;\n if (posX % sizeInImageScale.width !== 0 ||\n posY % sizeInImageScale.height !== 0) {\n return null;\n }\n var startPrecinctRowIndex =\n (posY / sizeInImageScale.width) *\n resolution.precinctParameters.numprecinctswide;\n return (posX / sizeInImageScale.height) + startPrecinctRowIndex;\n }\n function getPrecinctSizesInImageScale(tile) {\n var componentsCount = tile.components.length;\n var minWidth = Number.MAX_VALUE;\n var minHeight = Number.MAX_VALUE;\n var maxNumWide = 0;\n var maxNumHigh = 0;\n var sizePerComponent = new Array(componentsCount);\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n var sizePerResolution = new Array(decompositionLevelsCount + 1);\n var minWidthCurrentComponent = Number.MAX_VALUE;\n var minHeightCurrentComponent = Number.MAX_VALUE;\n var maxNumWideCurrentComponent = 0;\n var maxNumHighCurrentComponent = 0;\n var scale = 1;\n for (var r = decompositionLevelsCount; r >= 0; --r) {\n var resolution = component.resolutions[r];\n var widthCurrentResolution =\n scale * resolution.precinctParameters.precinctWidth;\n var heightCurrentResolution =\n scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(\n minWidthCurrentComponent,\n widthCurrentResolution);\n minHeightCurrentComponent = Math.min(\n minHeightCurrentComponent,\n heightCurrentResolution);\n maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent,\n resolution.precinctParameters.numprecinctswide);\n maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent,\n resolution.precinctParameters.numprecinctshigh);\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution,\n };\n scale <<= 1;\n }\n minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent,\n };\n }\n return {\n components: sizePerComponent,\n minWidth,\n minHeight,\n maxNumWide,\n maxNumHigh,\n };\n }\n function buildPackets(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var componentsCount = siz.Csiz;\n // Creating resolutions and sub-bands for each component\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n // Section B.5 Resolution levels and sub-bands\n var resolutions = [];\n var subbands = [];\n for (var r = 0; r <= decompositionLevelsCount; r++) {\n var blocksDimensions = getBlocksDimensions(context, component, r);\n var resolution = {};\n var scale = 1 << (decompositionLevelsCount - r);\n resolution.trx0 = Math.ceil(component.tcx0 / scale);\n resolution.try0 = Math.ceil(component.tcy0 / scale);\n resolution.trx1 = Math.ceil(component.tcx1 / scale);\n resolution.try1 = Math.ceil(component.tcy1 / scale);\n resolution.resLevel = r;\n buildPrecincts(context, resolution, blocksDimensions);\n resolutions.push(resolution);\n\n var subband;\n if (r === 0) {\n // one sub-band (LL) with last decomposition\n subband = {};\n subband.type = 'LL';\n subband.tbx0 = Math.ceil(component.tcx0 / scale);\n subband.tby0 = Math.ceil(component.tcy0 / scale);\n subband.tbx1 = Math.ceil(component.tcx1 / scale);\n subband.tby1 = Math.ceil(component.tcy1 / scale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolution.subbands = [subband];\n } else {\n var bscale = 1 << (decompositionLevelsCount - r + 1);\n var resolutionSubbands = [];\n // three sub-bands (HL, LH and HH) with rest of decompositions\n subband = {};\n subband.type = 'HL';\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = 'LH';\n subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = 'HH';\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n resolution.subbands = resolutionSubbands;\n }\n }\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n // Generate the packets sequence\n var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator =\n new LayerResolutionComponentPositionIterator(context);\n break;\n case 1:\n tile.packetsIterator =\n new ResolutionLayerComponentPositionIterator(context);\n break;\n case 2:\n tile.packetsIterator =\n new ResolutionPositionComponentLayerIterator(context);\n break;\n case 3:\n tile.packetsIterator =\n new PositionComponentResolutionLayerIterator(context);\n break;\n case 4:\n tile.packetsIterator =\n new ComponentPositionResolutionLayerIterator(context);\n break;\n default:\n throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n }\n }\n function parseTilePackets(context, data, offset, dataLength) {\n var position = 0;\n var buffer, bufferSize = 0, skipNextBit = false;\n function readBits(count) {\n while (bufferSize < count) {\n var b = data[offset + position];\n position++;\n if (skipNextBit) {\n buffer = (buffer << 7) | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = (buffer << 8) | b;\n bufferSize += 8;\n }\n if (b === 0xFF) {\n skipNextBit = true;\n }\n }\n bufferSize -= count;\n return (buffer >>> bufferSize) & ((1 << count) - 1);\n }\n function skipMarkerIfEqual(value) {\n if (data[offset + position - 1] === 0xFF &&\n data[offset + position] === value) {\n skipBytes(1);\n return true;\n } else if (data[offset + position] === 0xFF &&\n data[offset + position + 1] === value) {\n skipBytes(2);\n return true;\n }\n return false;\n }\n function skipBytes(count) {\n position += count;\n }\n function alignToByte() {\n bufferSize = 0;\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n if (readBits(1) === 0) {\n return 2;\n }\n var value = readBits(2);\n if (value < 3) {\n return value + 3;\n }\n value = readBits(5);\n if (value < 31) {\n return value + 6;\n }\n value = readBits(7);\n return value + 37;\n }\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var sopMarkerUsed = context.COD.sopMarkerUsed;\n var ephMarkerUsed = context.COD.ephMarkerUsed;\n var packetsIterator = tile.packetsIterator;\n while (position < dataLength) {\n alignToByte();\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n // Skip also marker segment length and packet sequence ID\n skipBytes(4);\n }\n var packet = packetsIterator.nextPacket();\n if (!readBits(1)) {\n continue;\n }\n var layerNumber = packet.layerNumber;\n var queue = [], codeblock;\n for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n var precinct = codeblock.precinct;\n var codeblockColumn = codeblock.cbx - precinct.cbxMin;\n var codeblockRow = codeblock.cby - precinct.cbyMin;\n var codeblockIncluded = false;\n var firstTimeInclusion = false;\n var valueReady;\n if (codeblock['included'] !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n // reading inclusion tree\n precinct = codeblock.precinct;\n var inclusionTree, zeroBitPlanesTree;\n if (precinct['inclusionTree'] !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n // building inclusion and zero bit-planes trees\n var width = precinct.cbxMax - precinct.cbxMin + 1;\n var height = precinct.cbyMax - precinct.cbyMin + 1;\n inclusionTree = new InclusionTree(width, height, layerNumber);\n zeroBitPlanesTree = new TagTree(width, height);\n precinct.inclusionTree = inclusionTree;\n precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n }\n\n if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n if (!codeblockIncluded) {\n continue;\n }\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n var codingpasses = readCodingpasses();\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n var codingpassesLog2 = log2(codingpasses);\n // rounding down log2\n var bits = ((codingpasses < (1 << codingpassesLog2)) ?\n codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n var codedDataLength = readBits(bits);\n queue.push({\n codeblock,\n codingpasses,\n dataLength: codedDataLength,\n });\n }\n alignToByte();\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n while (queue.length > 0) {\n var packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n if (codeblock['data'] === undefined) {\n codeblock.data = [];\n }\n codeblock.data.push({\n data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses,\n });\n position += packetItem.dataLength;\n }\n }\n return position;\n }\n function copyCoefficients(coefficients, levelWidth, levelHeight, subband,\n delta, mb, reversible, segmentationSymbolUsed) {\n var x0 = subband.tbx0;\n var y0 = subband.tby0;\n var width = subband.tbx1 - subband.tbx0;\n var codeblocks = subband.codeblocks;\n var right = subband.type.charAt(0) === 'H' ? 1 : 0;\n var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0;\n\n for (var i = 0, ii = codeblocks.length; i < ii; ++i) {\n var codeblock = codeblocks[i];\n var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n var blockHeight = codeblock.tby1_ - codeblock.tby0_;\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n if (codeblock['data'] === undefined) {\n continue;\n }\n\n var bitModel, currentCodingpassType;\n bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType,\n codeblock.zeroBitPlanes, mb);\n currentCodingpassType = 2; // first bit plane starts from cleanup\n\n // collect data\n var data = codeblock.data, totalLength = 0, codingpasses = 0;\n var j, jj, dataItem;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n var encodedData = new Uint8Array(totalLength);\n var position = 0;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n // decoding the item\n var decoder = new ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n case 2:\n bitModel.runCleanupPass();\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n break;\n }\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n\n var offset = (codeblock.tbx0_ - x0) + (codeblock.tby0_ - y0) * width;\n var sign = bitModel.coefficentsSign;\n var magnitude = bitModel.coefficentsMagnitude;\n var bitsDecoded = bitModel.bitsDecoded;\n var magnitudeCorrection = reversible ? 0 : 0.5;\n var k, n, nb;\n position = 0;\n // Do the interleaving of Section F.3.3 here, so we do not need\n // to copy later. LL level is not interleaved, just copied.\n var interleave = (subband.type !== 'LL');\n for (j = 0; j < blockHeight; j++) {\n var row = (offset / width) | 0; // row in the non-interleaved subband\n var levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n if (sign[position] !== 0) {\n n = -n;\n }\n nb = bitsDecoded[position];\n var pos = interleave ? (levelOffset + (offset << 1)) : offset;\n if (reversible && (nb >= mb)) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << (mb - nb));\n }\n }\n offset++;\n position++;\n }\n offset += width - blockWidth;\n }\n }\n }\n function transformTile(context, tile, c) {\n var component = tile.components[c];\n var codingStyleParameters = component.codingStyleParameters;\n var quantizationParameters = component.quantizationParameters;\n var decompositionLevelsCount =\n codingStyleParameters.decompositionLevelsCount;\n var spqcds = quantizationParameters.SPqcds;\n var scalarExpounded = quantizationParameters.scalarExpounded;\n var guardBits = quantizationParameters.guardBits;\n var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n var precision = context.components[c].precision;\n\n var reversible = codingStyleParameters.reversibleTransformation;\n var transform = (reversible ? new ReversibleTransform() :\n new IrreversibleTransform());\n\n var subbandCoefficients = [];\n var b = 0;\n for (var i = 0; i <= decompositionLevelsCount; i++) {\n var resolution = component.resolutions[i];\n\n var width = resolution.trx1 - resolution.trx0;\n var height = resolution.try1 - resolution.try0;\n // Allocate space for the whole sublevel.\n var coefficients = new Float32Array(width * height);\n\n for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {\n var mu, epsilon;\n if (!scalarExpounded) {\n // formula E-5\n mu = spqcds[0].mu;\n epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n } else {\n mu = spqcds[b].mu;\n epsilon = spqcds[b].epsilon;\n b++;\n }\n\n var subband = resolution.subbands[j];\n var gainLog2 = SubbandsGainLog2[subband.type];\n\n // calculate quantization coefficient (Section E.1.1.1)\n var delta = (reversible ? 1 :\n Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048));\n var mb = (guardBits + epsilon - 1);\n\n // In the first resolution level, copyCoefficients will fill the\n // whole array with coefficients. In the succeeding passes,\n // copyCoefficients will consecutively fill in the values that belong\n // to the interleaved positions of the HL, LH, and HH coefficients.\n // The LL coefficients will then be interleaved in Transform.iterate().\n copyCoefficients(coefficients, width, height, subband, delta, mb,\n reversible, segmentationSymbolUsed);\n }\n subbandCoefficients.push({\n width,\n height,\n items: coefficients,\n });\n }\n\n var result = transform.calculate(subbandCoefficients,\n component.tcx0, component.tcy0);\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items,\n };\n }\n function transformComponents(context) {\n var siz = context.SIZ;\n var components = context.components;\n var componentsCount = siz.Csiz;\n var resultImages = [];\n for (var i = 0, ii = context.tiles.length; i < ii; i++) {\n var tile = context.tiles[i];\n var transformedTiles = [];\n var c;\n for (c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n var tile0 = transformedTiles[0];\n var out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n var result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out,\n };\n\n // Section G.2.2 Inverse multi component transform\n var shift, offset;\n var pos = 0, j, jj, y0, y1, y2;\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n var fourComponents = componentsCount === 4;\n var y0items = transformedTiles[0].items;\n var y1items = transformedTiles[1].items;\n var y2items = transformedTiles[2].items;\n var y3items = fourComponents ? transformedTiles[3].items : null;\n\n // HACK: The multiple component transform formulas below assume that\n // all components have the same precision. With this in mind, we\n // compute shift and offset only once.\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n\n var component0 = tile.components[0];\n var alpha01 = componentsCount - 3;\n jj = y0items.length;\n if (!component0.codingStyleParameters.reversibleTransformation) {\n // inverse irreversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n out[pos++] = (y0 + 1.402 * y2) >> shift;\n out[pos++] = (y0 - 0.34413 * y1 - 0.71414 * y2) >> shift;\n out[pos++] = (y0 + 1.772 * y1) >> shift;\n }\n } else {\n // inverse reversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n let g = y0 - ((y2 + y1) >> 2);\n\n out[pos++] = (g + y2) >> shift;\n out[pos++] = g >> shift;\n out[pos++] = (g + y1) >> shift;\n }\n }\n if (fourComponents) {\n for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n out[pos] = (y3items[j] + offset) >> shift;\n }\n }\n } else { // no multi-component transform\n for (c = 0; c < componentsCount; c++) {\n var items = transformedTiles[c].items;\n shift = components[c].precision - 8;\n offset = (128 << shift) + 0.5;\n for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = (items[j] + offset) >> shift;\n pos += componentsCount;\n }\n }\n }\n resultImages.push(result);\n }\n return resultImages;\n }\n function initializeTile(context, tileIndex) {\n var siz = context.SIZ;\n var componentsCount = siz.Csiz;\n var tile = context.tiles[tileIndex];\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var qcdOrQcc = (context.currentTile.QCC[c] !== undefined ?\n context.currentTile.QCC[c] : context.currentTile.QCD);\n component.quantizationParameters = qcdOrQcc;\n var codOrCoc = (context.currentTile.COC[c] !== undefined ?\n context.currentTile.COC[c] : context.currentTile.COD);\n component.codingStyleParameters = codOrCoc;\n }\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n }\n\n // Section B.10.2 Tag trees\n var TagTree = (function TagTreeClosure() {\n function TagTree(width, height) {\n var levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (var i = 0; i < levelsLength; i++) {\n var level = {\n width,\n height,\n items: [],\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n TagTree.prototype = {\n reset: function TagTree_reset(i, j) {\n var currentLevel = 0, value = 0, level;\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n var index = i + j * level.width;\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n },\n incrementValue: function TagTree_incrementValue() {\n var level = this.levels[this.currentLevel];\n level.items[level.index]++;\n },\n nextLevel: function TagTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n currentLevel--;\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n },\n };\n return TagTree;\n })();\n\n var InclusionTree = (function InclusionTreeClosure() {\n function InclusionTree(width, height, defaultValue) {\n var levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (var i = 0; i < levelsLength; i++) {\n var items = new Uint8Array(width * height);\n for (var j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n\n var level = {\n width,\n height,\n items,\n };\n this.levels.push(level);\n\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n InclusionTree.prototype = {\n reset: function InclusionTree_reset(i, j, stopValue) {\n var currentLevel = 0;\n while (currentLevel < this.levels.length) {\n var level = this.levels[currentLevel];\n var index = i + j * level.width;\n level.index = index;\n var value = level.items[index];\n\n if (value === 0xFF) {\n break;\n }\n\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n // already know about this one, propagating the value to top levels\n this.propagateValues();\n return false;\n }\n\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n this.currentLevel = currentLevel - 1;\n return true;\n },\n incrementValue: function InclusionTree_incrementValue(stopValue) {\n var level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n },\n propagateValues: function InclusionTree_propagateValues() {\n var levelIndex = this.currentLevel;\n var level = this.levels[levelIndex];\n var currentValue = level.items[level.index];\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n },\n nextLevel: function InclusionTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n level.items[level.index] = 0xFF;\n currentLevel--;\n if (currentLevel < 0) {\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n },\n };\n return InclusionTree;\n })();\n\n // Section D. Coefficient bit modeling\n var BitModel = (function BitModelClosure() {\n var UNIFORM_CONTEXT = 17;\n var RUNLENGTH_CONTEXT = 18;\n // Table D-1\n // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),\n // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)\n var LLAndLHContextsLabel = new Uint8Array([\n 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4,\n 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,\n 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8\n ]);\n var HLContextLabel = new Uint8Array([\n 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8,\n 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,\n 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8\n ]);\n var HHContextLabel = new Uint8Array([\n 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5,\n 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8,\n 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8\n ]);\n\n function BitModel(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n\n this.contextLabelTable = (subband === 'HH' ? HHContextLabel :\n (subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel));\n\n var coefficientCount = width * height;\n\n // coefficients outside the encoding region treated as insignificant\n // add border state cells for significanceState\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) :\n mb > 6 ? new Uint16Array(coefficientCount) :\n new Uint8Array(coefficientCount);\n this.processingFlags = new Uint8Array(coefficientCount);\n\n var bitsDecoded = new Uint8Array(coefficientCount);\n if (zeroBitPlanes !== 0) {\n for (var i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n this.bitsDecoded = bitsDecoded;\n\n this.reset();\n }\n\n BitModel.prototype = {\n setDecoder: function BitModel_setDecoder(decoder) {\n this.decoder = decoder;\n },\n reset: function BitModel_reset() {\n // We have 17 contexts that are accessed via context labels,\n // plus the uniform and runlength context.\n this.contexts = new Int8Array(19);\n\n // Contexts are packed into 1 byte:\n // highest 7 bits carry the index, lowest bit carries mps\n this.contexts[0] = (4 << 1) | 0;\n this.contexts[UNIFORM_CONTEXT] = (46 << 1) | 0;\n this.contexts[RUNLENGTH_CONTEXT] = (3 << 1) | 0;\n },\n setNeighborsSignificance:\n function BitModel_setNeighborsSignificance(row, column, index) {\n var neighborsSignificance = this.neighborsSignificance;\n var width = this.width, height = this.height;\n var left = (column > 0);\n var right = (column + 1 < width);\n var i;\n\n if (row > 0) {\n i = index - width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (row + 1 < height) {\n i = index + width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n neighborsSignificance[index] |= 0x80;\n },\n runSignificancePropagationPass:\n function BitModel_runSignificancePropagationPass() {\n var decoder = this.decoder;\n var width = this.width, height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var neighborsSignificance = this.neighborsSignificance;\n var processingFlags = this.processingFlags;\n var contexts = this.contexts;\n var labels = this.contextLabelTable;\n var bitsDecoded = this.bitsDecoded;\n var processedInverseMask = ~1;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n\n for (var i0 = 0; i0 < height; i0 += 4) {\n for (var j = 0; j < width; j++) {\n var index = i0 * width + j;\n for (var i1 = 0; i1 < 4; i1++, index += width) {\n var i = i0 + i1;\n if (i >= height) {\n break;\n }\n // clear processed flag first\n processingFlags[index] &= processedInverseMask;\n\n if (coefficentsMagnitude[index] ||\n !neighborsSignificance[index]) {\n continue;\n }\n\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n if (decision) {\n var sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n },\n decodeSignBit: function BitModel_decodeSignBit(row, column, index) {\n var width = this.width, height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var contribution, sign0, sign1, significance1;\n var contextLabel, decoded;\n\n // calculate horizontal contribution\n significance1 = (column > 0 && coefficentsMagnitude[index - 1] !== 0);\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n var horizontalContribution = 3 * contribution;\n\n // calculate vertical contribution and combine with the horizontal\n significance1 = (row > 0 && coefficentsMagnitude[index - width] !== 0);\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n return decoded;\n },\n runMagnitudeRefinementPass:\n function BitModel_runMagnitudeRefinementPass() {\n var decoder = this.decoder;\n var width = this.width, height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var neighborsSignificance = this.neighborsSignificance;\n var contexts = this.contexts;\n var bitsDecoded = this.bitsDecoded;\n var processingFlags = this.processingFlags;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n var length = width * height;\n var width4 = width * 4;\n\n for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n for (var j = 0; j < width; j++) {\n for (var index = index0 + j; index < indexNext; index += width) {\n\n // significant but not those that have just become\n if (!coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n\n var contextLabel = 16;\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n // first refinement\n var significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n\n var bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] =\n (coefficentsMagnitude[index] << 1) | bit;\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n },\n runCleanupPass: function BitModel_runCleanupPass() {\n var decoder = this.decoder;\n var width = this.width, height = this.height;\n var neighborsSignificance = this.neighborsSignificance;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var contexts = this.contexts;\n var labels = this.contextLabelTable;\n var bitsDecoded = this.bitsDecoded;\n var processingFlags = this.processingFlags;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n var oneRowDown = width;\n var twoRowsDown = width * 2;\n var threeRowsDown = width * 3;\n var iNext;\n for (var i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n var indexBase = i0 * width;\n var checkAllEmpty = i0 + 3 < height;\n for (var j = 0; j < width; j++) {\n var index0 = indexBase + j;\n // using the property: labels[neighborsSignificance[index]] === 0\n // when neighborsSignificance[index] === 0\n var allEmpty = (checkAllEmpty &&\n processingFlags[index0] === 0 &&\n processingFlags[index0 + oneRowDown] === 0 &&\n processingFlags[index0 + twoRowsDown] === 0 &&\n processingFlags[index0 + threeRowsDown] === 0 &&\n neighborsSignificance[index0] === 0 &&\n neighborsSignificance[index0 + oneRowDown] === 0 &&\n neighborsSignificance[index0 + twoRowsDown] === 0 &&\n neighborsSignificance[index0 + threeRowsDown] === 0);\n var i1 = 0, index = index0;\n var i = i0, sign;\n if (allEmpty) {\n var hasSignificantCoefficent =\n decoder.readBit(contexts, RUNLENGTH_CONTEXT);\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue; // next column\n }\n i1 = (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\n }\n\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n\n index = index0;\n for (var i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n\n i1++;\n }\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n }\n }\n }\n },\n checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() {\n var decoder = this.decoder;\n var contexts = this.contexts;\n var symbol = (decoder.readBit(contexts, UNIFORM_CONTEXT) << 3) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (symbol !== 0xA) {\n throw new JpxError('Invalid segmentation symbol');\n }\n },\n };\n\n return BitModel;\n })();\n\n // Section F, Discrete wavelet transformation\n var Transform = (function TransformClosure() {\n function Transform() {}\n\n Transform.prototype.calculate =\n function transformCalculate(subbands, u0, v0) {\n var ll = subbands[0];\n for (var i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n return ll;\n };\n Transform.prototype.extend = function extend(buffer, offset, size) {\n // Section F.3.7 extending... using max extension of 4\n var i1 = offset - 1, j1 = offset + 1;\n var i2 = offset + size - 2, j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n };\n Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh,\n u0, v0) {\n var llWidth = ll.width, llHeight = ll.height, llItems = ll.items;\n var width = hl_lh_hh.width;\n var height = hl_lh_hh.height;\n var items = hl_lh_hh.items;\n var i, j, k, l, u, v;\n\n // Interleave LL according to Section F.3.3\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n // The LL band is not needed anymore.\n llItems = ll.items = null;\n\n var bufferPadding = 4;\n var rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n // Section F.3.4 HOR_SR\n if (width === 1) {\n // if width = 1, when u0 even keep items as is, when odd divide by 2\n if ((u0 & 1) !== 0) {\n for (v = 0, k = 0; v < height; v++, k += width) {\n items[k] *= 0.5;\n }\n }\n } else {\n for (v = 0, k = 0; v < height; v++, k += width) {\n rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n\n items.set(\n rowBuffer.subarray(bufferPadding, bufferPadding + width),\n k);\n }\n }\n\n // Accesses to the items array can take long, because it may not fit into\n // CPU cache and has to be fetched from main memory. Since subsequent\n // accesses to the items array are not local when reading columns, we\n // have a cache miss every time. To reduce cache misses, get up to\n // 'numBuffers' items at a time and store them into the individual\n // buffers. The colBuffers should be small enough to fit into CPU cache.\n var numBuffers = 16;\n var colBuffers = [];\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n var b, currentBuffer = 0;\n ll = bufferPadding + height;\n\n // Section F.3.5 VER_SR\n if (height === 1) {\n // if height = 1, when v0 even keep items as is, when odd divide by 2\n if ((v0 & 1) !== 0) {\n for (u = 0; u < width; u++) {\n items[u] *= 0.5;\n }\n }\n } else {\n for (u = 0; u < width; u++) {\n // if we ran out of buffers, copy several image columns at once\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n currentBuffer = numBuffers;\n }\n\n currentBuffer--;\n var buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n\n // If this is last buffer in this group of buffers, flush all buffers.\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n\n return {\n width,\n height,\n items,\n };\n };\n return Transform;\n })();\n\n // Section 3.8.2 Irreversible 9-7 filter\n var IrreversibleTransform = (function IrreversibleTransformClosure() {\n function IrreversibleTransform() {\n Transform.call(this);\n }\n\n IrreversibleTransform.prototype = Object.create(Transform.prototype);\n IrreversibleTransform.prototype.filter =\n function irreversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n, current, next;\n\n var alpha = -1.586134342059924;\n var beta = -0.052980118572961;\n var gamma = 0.882911075530934;\n var delta = 0.443506852043971;\n var K = 1.230174104914001;\n var K_ = 1 / K;\n\n // step 1 is combined with step 3\n\n // step 2\n j = offset - 3;\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n\n // step 1 & 3\n j = offset - 2;\n current = delta * x[j - 1];\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n\n // step 4\n j = offset - 1;\n current = gamma * x[j - 1];\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 5\n j = offset;\n current = beta * x[j - 1];\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 6\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n };\n\n return IrreversibleTransform;\n })();\n\n // Section 3.8.1 Reversible 5-3 filter\n var ReversibleTransform = (function ReversibleTransformClosure() {\n function ReversibleTransform() {\n Transform.call(this);\n }\n\n ReversibleTransform.prototype = Object.create(Transform.prototype);\n ReversibleTransform.prototype.filter =\n function reversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n;\n\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2;\n }\n\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += (x[j - 1] + x[j + 1]) >> 1;\n }\n };\n\n return ReversibleTransform;\n })();\n\n return JpxImage;\n})();\n\nexport {\n JpxImage,\n};\n"],"sourceRoot":""}
|