tsviewer 0.1.0 → 1.0.3
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.
- package/README.md +9 -0
- package/dist/tsviewer.css +1 -0
- package/dist/tsviewer.es.js +21456 -0
- package/dist/tsviewer.umd.js +26 -33259
- package/package.json +35 -32
- package/babel.config.js +0 -5
- package/dist/demo.html +0 -1
- package/dist/tsviewer.common.js +0 -33247
- package/dist/tsviewer.common.js.map +0 -1
- package/dist/tsviewer.umd.js.map +0 -1
- package/dist/tsviewer.umd.min.js +0 -4
- package/dist/tsviewer.umd.min.js.map +0 -1
- package/jsconfig.json +0 -19
- package/public/favicon.ico +0 -0
- package/public/index.html +0 -17
- package/src/App.vue +0 -41
- package/src/assets/icons/blackfynn-amplitude-zoom.js +0 -11
- package/src/assets/icons/blackfynn-timescale.js +0 -11
- package/src/assets/icons/icon-controller-pause.js +0 -11
- package/src/assets/icons/icon-controller-play.js +0 -11
- package/src/assets/icons/icon-next-page.js +0 -11
- package/src/assets/icons/icon-previous-page.js +0 -11
- package/src/assets/icons/icon-stopwatch.js +0 -11
- package/src/assets/icons/index.js +0 -7
- package/src/components/TSPlotCanvas.vue +0 -1868
- package/src/components/TSScrubber.vue +0 -420
- package/src/components/TSViewer.vue +0 -595
- package/src/components/TSViewerCanvas.vue +0 -793
- package/src/components/TSViewerToolbar.vue +0 -356
- package/src/components/index.js +0 -13
- package/src/main.js +0 -23
- package/src/mixins/request/index.js +0 -100
- package/src/mixins/ts-annotation/index.js +0 -202
- package/src/mixins/viewer-active-tool/index.js +0 -36
- package/src/store/index.js +0 -184
- package/src/utils/constants.js +0 -15
- package/vue.config.js +0 -12
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tsviewer.umd.min.js","mappings":"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AAO,CACL/hC,EAAG,WACDn1B,EAAKA,EAAGnD,KAAK07C,IAEfxlD,EAAG,WACD,IAAIgX,EAAO/J,EAAGiK,OAEd,OADAgtD,EAAmBltD,EAAKI,KACjBJ,GAETnO,EAAG,SAAWu7D,GACZD,GAAS,EACTxkE,EAAMykE,GAERjkD,EAAG,WACD,IACO+jD,GAAoC,MAAhBj3D,EAAG,WAAmBA,EAAG,YADpD,QAGE,GAAIk3D,EAAQ,MAAMxkE,K,w0BClB1B,IACAmU,KAAAA,uBAEAsd,MAAAA,CACA49B,QAAAA,OACAtB,OAAAA,OACAjtD,MAAAA,OACAotD,SAAAA,OACAC,UAAAA,OACAqV,SAAAA,OACA3V,SAAAA,OACAC,OAAAA,OACAmB,eAAAA,QAEAiM,MAAAA,CACAsI,SAAAA,WACA,kBACA,6BAEAkB,oBAAAA,WACA,oDAIA5J,SAAAA,CACA4B,aAAAA,WACA,yCAEAC,eAAAA,WACA,2CAEA+H,oBAAAA,WACA,gDAEA3E,YAAAA,WACA,OACAC,MAAAA,KAAAA,OAAAA,KACAC,OAAAA,KAAAA,QAAAA,OAGA0D,QAAAA,WACA,wBAEAgB,cAAAA,WACA,iJAEAC,UAAAA,WACA,6CAEA7G,UAAAA,WACA,uCAGA3/C,KAAAA,WACA,OACAuE,MAAAA,CACA,QACA,OACA,QACA,QACA,cACA,MAEA,WACA,cACA,MAEA,SACA,cACA,MAEA,cACA,cACA,MAEA,gBACA,cACA,MAEA,aACA,YACA,MAEA,MACA,gBACA,cACA,MAEA,OACA,gBACA,cACA,MAEA,YACA,gBACA,cACA,QAIA,aACA,QACA,SACA,cACA,MAEA,UACA,cACA,QAIA,SACA,QACA,SACA,cACA,MAEA,QACA,cACA,MAEA,UACA,cACA,MAEA,MACA,cACA,MAEA,cACA,cACA,MAEA,uBACA,cACA,MAEA,WACA,cACA,MAEA,UACA,YACA,MAEA,OACA,cACA,MAEA,aACA,cACA,OAEA,UACA,cACA,OAEA,MACA,gBACA,cACA,OAEA,SACA,cACA,OAEA,aACA,cACA,SAIA,eACA,QACA,WACA,cACA,MAEA,WACA,cACA,MAEA,cACA,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","sources":["webpack://tsviewer/webpack/universalModuleDefinition","webpack://tsviewer/./node_modules/@protobufjs/aspromise/index.js","webpack://tsviewer/./node_modules/@protobufjs/base64/index.js","webpack://tsviewer/./node_modules/@protobufjs/codegen/index.js","webpack://tsviewer/./node_modules/@protobufjs/eventemitter/index.js","webpack://tsviewer/./node_modules/@protobufjs/fetch/index.js","webpack://tsviewer/./node_modules/@protobufjs/float/index.js","webpack://tsviewer/./node_modules/@protobufjs/inquire/index.js","webpack://tsviewer/./node_modules/@protobufjs/path/index.js","webpack://tsviewer/./node_modules/@protobufjs/pool/index.js","webpack://tsviewer/./node_modules/@protobufjs/utf8/index.js","webpack://tsviewer/./node_modules/@soda/get-current-script/index.js","webpack://tsviewer/./node_modules/core-js/internals/a-callable.js","webpack://tsviewer/./node_modules/core-js/internals/a-constructor.js","webpack://tsviewer/./node_modules/core-js/internals/a-possible-prototype.js","webpack://tsviewer/./node_modules/core-js/internals/add-to-unscopables.js","webpack://tsviewer/./node_modules/core-js/internals/advance-string-index.js","webpack://tsviewer/./node_modules/core-js/internals/an-instance.js","webpack://tsviewer/./node_modules/core-js/internals/an-object.js","webpack://tsviewer/./node_modules/core-js/internals/array-buffer-native.js","webpack://tsviewer/./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://tsviewer/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://tsviewer/./node_modules/core-js/internals/array-buffer.js","webpack://tsviewer/./node_modules/core-js/internals/array-copy-within.js","webpack://tsviewer/./node_modules/core-js/internals/array-fill.js","webpack://tsviewer/./node_modules/core-js/internals/array-for-each.js","webpack://tsviewer/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://tsviewer/./node_modules/core-js/internals/array-from.js","webpack://tsviewer/./node_modules/core-js/internals/array-includes.js","webpack://tsviewer/./node_modules/core-js/internals/array-iteration.js","webpack://tsviewer/./node_modules/core-js/internals/array-last-index-of.js","webpack://tsviewer/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://tsviewer/./node_modules/core-js/internals/array-method-is-strict.js","webpack://tsviewer/./node_modules/core-js/internals/array-reduce.js","webpack://tsviewer/./node_modules/core-js/internals/array-slice-simple.js","webpack://tsviewer/./node_modules/core-js/internals/array-slice.js","webpack://tsviewer/./node_modules/core-js/internals/array-sort.js","webpack://tsviewer/./node_modules/core-js/internals/array-species-constructor.js","webpack://tsviewer/./node_modules/core-js/internals/array-species-create.js","webpack://tsviewer/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://tsviewer/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://tsviewer/./node_modules/core-js/internals/classof-raw.js","webpack://tsviewer/./node_modules/core-js/internals/classof.js","webpack://tsviewer/./node_modules/core-js/internals/clear-error-stack.js","webpack://tsviewer/./node_modules/core-js/internals/collection-strong.js","webpack://tsviewer/./node_modules/core-js/internals/collection.js","webpack://tsviewer/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://tsviewer/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://tsviewer/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://tsviewer/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://tsviewer/./node_modules/core-js/internals/create-property-descriptor.js","webpack://tsviewer/./node_modules/core-js/internals/create-property.js","webpack://tsviewer/./node_modules/core-js/internals/define-built-in.js","webpack://tsviewer/./node_modules/core-js/internals/define-built-ins.js","webpack://tsviewer/./node_modules/core-js/internals/define-global-property.js","webpack://tsviewer/./node_modules/core-js/internals/define-iterator.js","webpack://tsviewer/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://tsviewer/./node_modules/core-js/internals/descriptors.js","webpack://tsviewer/./node_modules/core-js/internals/document-create-element.js","webpack://tsviewer/./node_modules/core-js/internals/dom-iterables.js","webpack://tsviewer/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://tsviewer/./node_modules/core-js/internals/engine-ff-version.js","webpack://tsviewer/./node_modules/core-js/internals/engine-is-browser.js","webpack://tsviewer/./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack://tsviewer/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://tsviewer/./node_modules/core-js/internals/engine-is-ios.js","webpack://tsviewer/./node_modules/core-js/internals/engine-is-node.js","webpack://tsviewer/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://tsviewer/./node_modules/core-js/internals/engine-user-agent.js","webpack://tsviewer/./node_modules/core-js/internals/engine-v8-version.js","webpack://tsviewer/./node_modules/core-js/internals/engine-webkit-version.js","webpack://tsviewer/./node_modules/core-js/internals/enum-bug-keys.js","webpack://tsviewer/./node_modules/core-js/internals/error-stack-installable.js","webpack://tsviewer/./node_modules/core-js/internals/export.js","webpack://tsviewer/./node_modules/core-js/internals/fails.js","webpack://tsviewer/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://tsviewer/./node_modules/core-js/internals/freezing.js","webpack://tsviewer/./node_modules/core-js/internals/function-apply.js","webpack://tsviewer/./node_modules/core-js/internals/function-bind-context.js","webpack://tsviewer/./node_modules/core-js/internals/function-bind-native.js","webpack://tsviewer/./node_modules/core-js/internals/function-call.js","webpack://tsviewer/./node_modules/core-js/internals/function-name.js","webpack://tsviewer/./node_modules/core-js/internals/function-uncurry-this.js","webpack://tsviewer/./node_modules/core-js/internals/get-built-in.js","webpack://tsviewer/./node_modules/core-js/internals/get-iterator-method.js","webpack://tsviewer/./node_modules/core-js/internals/get-iterator.js","webpack://tsviewer/./node_modules/core-js/internals/get-method.js","webpack://tsviewer/./node_modules/core-js/internals/global.js","webpack://tsviewer/./node_modules/core-js/internals/has-own-property.js","webpack://tsviewer/./node_modules/core-js/internals/hidden-keys.js","webpack://tsviewer/./node_modules/core-js/internals/host-report-errors.js","webpack://tsviewer/./node_modules/core-js/internals/html.js","webpack://tsviewer/./node_modules/core-js/internals/ie8-dom-define.js","webpack://tsviewer/./node_modules/core-js/internals/ieee754.js","webpack://tsviewer/./node_modules/core-js/internals/indexed-object.js","webpack://tsviewer/./node_modules/core-js/internals/inherit-if-required.js","webpack://tsviewer/./node_modules/core-js/internals/inspect-source.js","webpack://tsviewer/./node_modules/core-js/internals/install-error-cause.js","webpack://tsviewer/./node_modules/core-js/internals/internal-metadata.js","webpack://tsviewer/./node_modules/core-js/internals/internal-state.js","webpack://tsviewer/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://tsviewer/./node_modules/core-js/internals/is-array.js","webpack://tsviewer/./node_modules/core-js/internals/is-callable.js","webpack://tsviewer/./node_modules/core-js/internals/is-constructor.js","webpack://tsviewer/./node_modules/core-js/internals/is-forced.js","webpack://tsviewer/./node_modules/core-js/internals/is-integral-number.js","webpack://tsviewer/./node_modules/core-js/internals/is-object.js","webpack://tsviewer/./node_modules/core-js/internals/is-pure.js","webpack://tsviewer/./node_modules/core-js/internals/is-regexp.js","webpack://tsviewer/./node_modules/core-js/internals/is-symbol.js","webpack://tsviewer/./node_modules/core-js/internals/iterate.js","webpack://tsviewer/./node_modules/core-js/internals/iterator-close.js","webpack://tsviewer/./node_modules/core-js/internals/iterators-core.js","webpack://tsviewer/./node_modules/core-js/internals/iterators.js","webpack://tsviewer/./node_modules/core-js/internals/length-of-array-like.js","webpack://tsviewer/./node_modules/core-js/internals/make-built-in.js","webpack://tsviewer/./node_modules/core-js/internals/math-trunc.js","webpack://tsviewer/./node_modules/core-js/internals/microtask.js","webpack://tsviewer/./node_modules/core-js/internals/native-symbol-registry.js","webpack://tsviewer/./node_modules/core-js/internals/native-symbol.js","webpack://tsviewer/./node_modules/core-js/internals/native-weak-map.js","webpack://tsviewer/./node_modules/core-js/internals/new-promise-capability.js","webpack://tsviewer/./node_modules/core-js/internals/normalize-string-argument.js","webpack://tsviewer/./node_modules/core-js/internals/object-create.js","webpack://tsviewer/./node_modules/core-js/internals/object-define-properties.js","webpack://tsviewer/./node_modules/core-js/internals/object-define-property.js","webpack://tsviewer/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://tsviewer/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://tsviewer/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://tsviewer/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://tsviewer/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://tsviewer/./node_modules/core-js/internals/object-is-extensible.js","webpack://tsviewer/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://tsviewer/./node_modules/core-js/internals/object-keys-internal.js","webpack://tsviewer/./node_modules/core-js/internals/object-keys.js","webpack://tsviewer/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://tsviewer/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://tsviewer/./node_modules/core-js/internals/object-to-string.js","webpack://tsviewer/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://tsviewer/./node_modules/core-js/internals/own-keys.js","webpack://tsviewer/./node_modules/core-js/internals/path.js","webpack://tsviewer/./node_modules/core-js/internals/perform.js","webpack://tsviewer/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://tsviewer/./node_modules/core-js/internals/promise-native-constructor.js","webpack://tsviewer/./node_modules/core-js/internals/promise-resolve.js","webpack://tsviewer/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://tsviewer/./node_modules/core-js/internals/proxy-accessor.js","webpack://tsviewer/./node_modules/core-js/internals/queue.js","webpack://tsviewer/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://tsviewer/./node_modules/core-js/internals/regexp-exec.js","webpack://tsviewer/./node_modules/core-js/internals/regexp-flags.js","webpack://tsviewer/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://tsviewer/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://tsviewer/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://tsviewer/./node_modules/core-js/internals/require-object-coercible.js","webpack://tsviewer/./node_modules/core-js/internals/set-species.js","webpack://tsviewer/./node_modules/core-js/internals/set-to-string-tag.js","webpack://tsviewer/./node_modules/core-js/internals/shared-key.js","webpack://tsviewer/./node_modules/core-js/internals/shared-store.js","webpack://tsviewer/./node_modules/core-js/internals/shared.js","webpack://tsviewer/./node_modules/core-js/internals/species-constructor.js","webpack://tsviewer/./node_modules/core-js/internals/string-multibyte.js","webpack://tsviewer/./node_modules/core-js/internals/string-repeat.js","webpack://tsviewer/./node_modules/core-js/internals/string-trim-forced.js","webpack://tsviewer/./node_modules/core-js/internals/string-trim.js","webpack://tsviewer/./node_modules/core-js/internals/symbol-define-to-primitive.js","webpack://tsviewer/./node_modules/core-js/internals/task.js","webpack://tsviewer/./node_modules/core-js/internals/this-number-value.js","webpack://tsviewer/./node_modules/core-js/internals/to-absolute-index.js","webpack://tsviewer/./node_modules/core-js/internals/to-index.js","webpack://tsviewer/./node_modules/core-js/internals/to-indexed-object.js","webpack://tsviewer/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://tsviewer/./node_modules/core-js/internals/to-length.js","webpack://tsviewer/./node_modules/core-js/internals/to-object.js","webpack://tsviewer/./node_modules/core-js/internals/to-offset.js","webpack://tsviewer/./node_modules/core-js/internals/to-positive-integer.js","webpack://tsviewer/./node_modules/core-js/internals/to-primitive.js","webpack://tsviewer/./node_modules/core-js/internals/to-property-key.js","webpack://tsviewer/./node_modules/core-js/internals/to-string-tag-support.js","webpack://tsviewer/./node_modules/core-js/internals/to-string.js","webpack://tsviewer/./node_modules/core-js/internals/try-to-string.js","webpack://tsviewer/./node_modules/core-js/internals/typed-array-constructor.js","webpack://tsviewer/./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack://tsviewer/./node_modules/core-js/internals/typed-array-from-species-and-list.js","webpack://tsviewer/./node_modules/core-js/internals/typed-array-from.js","webpack://tsviewer/./node_modules/core-js/internals/typed-array-species-constructor.js","webpack://tsviewer/./node_modules/core-js/internals/uid.js","webpack://tsviewer/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://tsviewer/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://tsviewer/./node_modules/core-js/internals/validate-arguments-length.js","webpack://tsviewer/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://tsviewer/./node_modules/core-js/internals/well-known-symbol.js","webpack://tsviewer/./node_modules/core-js/internals/whitespaces.js","webpack://tsviewer/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://tsviewer/./node_modules/core-js/modules/es.array.concat.js","webpack://tsviewer/./node_modules/core-js/modules/es.array.fill.js","webpack://tsviewer/./node_modules/core-js/modules/es.array.filter.js","webpack://tsviewer/./node_modules/core-js/modules/es.array.find.js","webpack://tsviewer/./node_modules/core-js/modules/es.array.from.js","webpack://tsviewer/./node_modules/core-js/modules/es.array.includes.js","webpack://tsviewer/./node_modules/core-js/modules/es.array.iterator.js","webpack://tsviewer/./node_modules/core-js/modules/es.array.map.js","webpack://tsviewer/./node_modules/core-js/modules/es.array.slice.js","webpack://tsviewer/./node_modules/core-js/modules/es.array.sort.js","webpack://tsviewer/./node_modules/core-js/modules/es.array.splice.js","webpack://tsviewer/./node_modules/core-js/modules/es.error.cause.js","webpack://tsviewer/./node_modules/core-js/modules/es.function.name.js","webpack://tsviewer/./node_modules/core-js/modules/es.json.stringify.js","webpack://tsviewer/./node_modules/core-js/modules/es.json.to-string-tag.js","webpack://tsviewer/./node_modules/core-js/modules/es.map.constructor.js","webpack://tsviewer/./node_modules/core-js/modules/es.map.js","webpack://tsviewer/./node_modules/core-js/modules/es.math.to-string-tag.js","webpack://tsviewer/./node_modules/core-js/modules/es.number.constructor.js","webpack://tsviewer/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://tsviewer/./node_modules/core-js/modules/es.object.freeze.js","webpack://tsviewer/./node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack://tsviewer/./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack://tsviewer/./node_modules/core-js/modules/es.object.keys.js","webpack://tsviewer/./node_modules/core-js/modules/es.object.to-string.js","webpack://tsviewer/./node_modules/core-js/modules/es.promise.all.js","webpack://tsviewer/./node_modules/core-js/modules/es.promise.catch.js","webpack://tsviewer/./node_modules/core-js/modules/es.promise.constructor.js","webpack://tsviewer/./node_modules/core-js/modules/es.promise.js","webpack://tsviewer/./node_modules/core-js/modules/es.promise.race.js","webpack://tsviewer/./node_modules/core-js/modules/es.promise.reject.js","webpack://tsviewer/./node_modules/core-js/modules/es.promise.resolve.js","webpack://tsviewer/./node_modules/core-js/modules/es.regexp.exec.js","webpack://tsviewer/./node_modules/core-js/modules/es.regexp.test.js","webpack://tsviewer/./node_modules/core-js/modules/es.string.iterator.js","webpack://tsviewer/./node_modules/core-js/modules/es.string.split.js","webpack://tsviewer/./node_modules/core-js/modules/es.string.trim.js","webpack://tsviewer/./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://tsviewer/./node_modules/core-js/modules/es.symbol.constructor.js","webpack://tsviewer/./node_modules/core-js/modules/es.symbol.description.js","webpack://tsviewer/./node_modules/core-js/modules/es.symbol.for.js","webpack://tsviewer/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://tsviewer/./node_modules/core-js/modules/es.symbol.js","webpack://tsviewer/./node_modules/core-js/modules/es.symbol.key-for.js","webpack://tsviewer/./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.at.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.every.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.fill.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.filter.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.find-index.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.find.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.float64-array.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.for-each.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.includes.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.index-of.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.iterator.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.join.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.map.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.reduce.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.reverse.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.set.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.slice.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.some.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.sort.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.subarray.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.to-string.js","webpack://tsviewer/./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack://tsviewer/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://tsviewer/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://tsviewer/./src/components/TSPlotCanvas.vue?dc19","webpack://tsviewer/./src/components/TSScrubber.vue?2f76","webpack://tsviewer/./src/components/TSViewer.vue?2ba1","webpack://tsviewer/./src/components/TSViewerCanvas.vue?037e","webpack://tsviewer/./src/components/TSViewerToolbar.vue?43d4","webpack://tsviewer/./node_modules/css-loader/dist/runtime/api.js","webpack://tsviewer/./node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack://tsviewer/./node_modules/protobufjs/index.js","webpack://tsviewer/./node_modules/protobufjs/src/common.js","webpack://tsviewer/./node_modules/protobufjs/src/converter.js","webpack://tsviewer/./node_modules/protobufjs/src/decoder.js","webpack://tsviewer/./node_modules/protobufjs/src/encoder.js","webpack://tsviewer/./node_modules/protobufjs/src/enum.js","webpack://tsviewer/./node_modules/protobufjs/src/field.js","webpack://tsviewer/./node_modules/protobufjs/src/index-light.js","webpack://tsviewer/./node_modules/protobufjs/src/index-minimal.js","webpack://tsviewer/./node_modules/protobufjs/src/index.js","webpack://tsviewer/./node_modules/protobufjs/src/mapfield.js","webpack://tsviewer/./node_modules/protobufjs/src/message.js","webpack://tsviewer/./node_modules/protobufjs/src/method.js","webpack://tsviewer/./node_modules/protobufjs/src/namespace.js","webpack://tsviewer/./node_modules/protobufjs/src/object.js","webpack://tsviewer/./node_modules/protobufjs/src/oneof.js","webpack://tsviewer/./node_modules/protobufjs/src/parse.js","webpack://tsviewer/./node_modules/protobufjs/src/reader.js","webpack://tsviewer/./node_modules/protobufjs/src/reader_buffer.js","webpack://tsviewer/./node_modules/protobufjs/src/root.js","webpack://tsviewer/./node_modules/protobufjs/src/roots.js","webpack://tsviewer/./node_modules/protobufjs/src/rpc.js","webpack://tsviewer/./node_modules/protobufjs/src/rpc/service.js","webpack://tsviewer/./node_modules/protobufjs/src/service.js","webpack://tsviewer/./node_modules/protobufjs/src/tokenize.js","webpack://tsviewer/./node_modules/protobufjs/src/type.js","webpack://tsviewer/./node_modules/protobufjs/src/types.js","webpack://tsviewer/./node_modules/protobufjs/src/util.js","webpack://tsviewer/./node_modules/protobufjs/src/util/longbits.js","webpack://tsviewer/./node_modules/protobufjs/src/util/minimal.js","webpack://tsviewer/./node_modules/protobufjs/src/verifier.js","webpack://tsviewer/./node_modules/protobufjs/src/wrappers.js","webpack://tsviewer/./node_modules/protobufjs/src/writer.js","webpack://tsviewer/./node_modules/protobufjs/src/writer_buffer.js","webpack://tsviewer/./src/components/TSPlotCanvas.vue?f4eb","webpack://tsviewer/./src/components/TSScrubber.vue?0eb6","webpack://tsviewer/./src/components/TSViewer.vue?2c44","webpack://tsviewer/./src/components/TSViewerCanvas.vue?78c2","webpack://tsviewer/./src/components/TSViewerToolbar.vue?14a9","webpack://tsviewer/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://tsviewer/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://tsviewer/webpack/bootstrap","webpack://tsviewer/webpack/runtime/compat get default export","webpack://tsviewer/webpack/runtime/define property getters","webpack://tsviewer/webpack/runtime/global","webpack://tsviewer/webpack/runtime/hasOwnProperty shorthand","webpack://tsviewer/webpack/runtime/make namespace object","webpack://tsviewer/webpack/runtime/publicPath","webpack://tsviewer/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://tsviewer/./src/components/TSViewer.vue?dca2","webpack://tsviewer/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://tsviewer/./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","webpack://tsviewer/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://tsviewer/./node_modules/ramda/es/internal/_isPlaceholder.js","webpack://tsviewer/./node_modules/ramda/es/internal/_curry1.js","webpack://tsviewer/./node_modules/ramda/es/internal/_curry2.js","webpack://tsviewer/./node_modules/ramda/es/internal/_isArray.js","webpack://tsviewer/./node_modules/ramda/es/internal/_isTransformer.js","webpack://tsviewer/./node_modules/ramda/es/internal/_dispatchable.js","webpack://tsviewer/./node_modules/ramda/es/internal/_reduced.js","webpack://tsviewer/./node_modules/ramda/es/internal/_xfBase.js","webpack://tsviewer/./node_modules/ramda/es/internal/_map.js","webpack://tsviewer/./node_modules/ramda/es/internal/_isString.js","webpack://tsviewer/./node_modules/ramda/es/internal/_isArrayLike.js","webpack://tsviewer/./node_modules/ramda/es/internal/_xwrap.js","webpack://tsviewer/./node_modules/ramda/es/internal/_arity.js","webpack://tsviewer/./node_modules/ramda/es/bind.js","webpack://tsviewer/./node_modules/ramda/es/internal/_reduce.js","webpack://tsviewer/./node_modules/ramda/es/internal/_xmap.js","webpack://tsviewer/./node_modules/ramda/es/internal/_curryN.js","webpack://tsviewer/./node_modules/ramda/es/curryN.js","webpack://tsviewer/./node_modules/ramda/es/internal/_has.js","webpack://tsviewer/./node_modules/ramda/es/internal/_isArguments.js","webpack://tsviewer/./node_modules/ramda/es/keys.js","webpack://tsviewer/./node_modules/ramda/es/map.js","webpack://tsviewer/./node_modules/ramda/es/internal/_isInteger.js","webpack://tsviewer/./node_modules/ramda/es/nth.js","webpack://tsviewer/./node_modules/ramda/es/prop.js","webpack://tsviewer/./node_modules/ramda/es/internal/_curry3.js","webpack://tsviewer/./node_modules/ramda/es/reduce.js","webpack://tsviewer/./node_modules/ramda/es/internal/_pipe.js","webpack://tsviewer/./node_modules/ramda/es/internal/_checkForMethod.js","webpack://tsviewer/./node_modules/ramda/es/slice.js","webpack://tsviewer/./node_modules/ramda/es/tail.js","webpack://tsviewer/./node_modules/ramda/es/pipe.js","webpack://tsviewer/./node_modules/ramda/es/reverse.js","webpack://tsviewer/./node_modules/ramda/es/compose.js","webpack://tsviewer/./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack://tsviewer/./node_modules/ramda/es/internal/_includesWith.js","webpack://tsviewer/./node_modules/ramda/es/internal/_functionName.js","webpack://tsviewer/./node_modules/ramda/es/internal/_objectIs.js","webpack://tsviewer/./node_modules/ramda/es/type.js","webpack://tsviewer/./node_modules/ramda/es/internal/_equals.js","webpack://tsviewer/./node_modules/ramda/es/equals.js","webpack://tsviewer/./node_modules/ramda/es/internal/_toISOString.js","webpack://tsviewer/./node_modules/ramda/es/internal/_isObject.js","webpack://tsviewer/./node_modules/ramda/es/dissocPath.js","webpack://tsviewer/./node_modules/ramda/es/internal/_xtake.js","webpack://tsviewer/./node_modules/ramda/es/take.js","webpack://tsviewer/./node_modules/ramda/es/internal/_isTypedArray.js","webpack://tsviewer/./node_modules/ramda/es/empty.js","webpack://tsviewer/./node_modules/ramda/es/internal/_xfind.js","webpack://tsviewer/./node_modules/ramda/es/find.js","webpack://tsviewer/./node_modules/ramda/es/internal/_xfindIndex.js","webpack://tsviewer/./node_modules/ramda/es/findIndex.js","webpack://tsviewer/./node_modules/ramda/es/head.js","webpack://tsviewer/./node_modules/ramda/es/internal/_objectAssign.js","webpack://tsviewer/./node_modules/ramda/es/into.js","webpack://tsviewer/./node_modules/ramda/es/isEmpty.js","webpack://tsviewer/./node_modules/ramda/es/paths.js","webpack://tsviewer/./node_modules/ramda/es/path.js","webpack://tsviewer/./node_modules/ramda/es/add.js","webpack://tsviewer/./node_modules/ramda/es/sum.js","webpack://tsviewer/./node_modules/ramda/es/mergeWithKey.js","webpack://tsviewer/./node_modules/ramda/es/mergeWith.js","webpack://tsviewer/./node_modules/ramda/es/internal/_xpromap.js","webpack://tsviewer/./node_modules/ramda/es/propEq.js","webpack://tsviewer/./node_modules/ramda/es/defaultTo.js","webpack://tsviewer/./node_modules/ramda/es/propOr.js","webpack://tsviewer/./node_modules/ramda/es/sortBy.js","webpack://tsviewer/./src/mixins/viewer-active-tool/index.js","webpack://tsviewer/./node_modules/ramda/es/trim.js","webpack://tsviewer/./src/mixins/request/index.js","webpack://tsviewer/./src/mixins/ts-annotation/index.js","webpack://tsviewer/./src/components/TSScrubber.vue?8303","webpack://tsviewer/src/components/TSScrubber.vue","webpack://tsviewer/./src/components/TSScrubber.vue?ccbf","webpack://tsviewer/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://tsviewer/./src/components/TSScrubber.vue","webpack://tsviewer/./src/components/TSViewerCanvas.vue?a788","webpack://tsviewer/./src/components/TSPlotCanvas.vue?f1dc","webpack://tsviewer/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://tsviewer/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://tsviewer/./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack://tsviewer/src/components/TSPlotCanvas.vue","webpack://tsviewer/./src/components/TSPlotCanvas.vue?c60a","webpack://tsviewer/./src/components/TSPlotCanvas.vue","webpack://tsviewer/src/components/TSViewerCanvas.vue","webpack://tsviewer/./src/components/TSViewerCanvas.vue?100d","webpack://tsviewer/./src/components/TSViewerCanvas.vue","webpack://tsviewer/./src/components/TSViewerToolbar.vue?9d88","webpack://tsviewer/src/components/TSViewerToolbar.vue","webpack://tsviewer/./src/components/TSViewerToolbar.vue?82a3","webpack://tsviewer/./src/components/TSViewerToolbar.vue","webpack://tsviewer/src/components/TSViewer.vue","webpack://tsviewer/./src/components/TSViewer.vue?9c13","webpack://tsviewer/./src/components/TSViewer.vue","webpack://tsviewer/./src/utils/constants.js","webpack://tsviewer/./src/store/index.js","webpack://tsviewer/./src/components/index.js","webpack://tsviewer/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.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([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"tsviewer\"] = factory();\n\telse\n\t\troot[\"tsviewer\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn ","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @param {string[]} functionParams Function parameter names\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n */\r\nfunction codegen(functionParams, functionName) {\r\n\r\n /* istanbul ignore if */\r\n if (typeof functionParams === \"string\") {\r\n functionName = functionParams;\r\n functionParams = undefined;\r\n }\r\n\r\n var body = [];\r\n\r\n /**\r\n * Appends code to the function's body or finishes generation.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string|Object.<string,*>} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any\r\n * @param {...*} [formatParams] Format parameters\r\n * @returns {Codegen|Function} Itself or the generated function if finished\r\n * @throws {Error} If format parameter counts do not match\r\n */\r\n\r\n function Codegen(formatStringOrScope) {\r\n // note that explicit array handling below makes this ~50% faster\r\n\r\n // finish the function\r\n if (typeof formatStringOrScope !== \"string\") {\r\n var source = toString();\r\n if (codegen.verbose)\r\n console.log(\"codegen: \" + source); // eslint-disable-line no-console\r\n source = \"return \" + source;\r\n if (formatStringOrScope) {\r\n var scopeKeys = Object.keys(formatStringOrScope),\r\n scopeParams = new Array(scopeKeys.length + 1),\r\n scopeValues = new Array(scopeKeys.length),\r\n scopeOffset = 0;\r\n while (scopeOffset < scopeKeys.length) {\r\n scopeParams[scopeOffset] = scopeKeys[scopeOffset];\r\n scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]];\r\n }\r\n scopeParams[scopeOffset] = source;\r\n return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func\r\n }\r\n return Function(source)(); // eslint-disable-line no-new-func\r\n }\r\n\r\n // otherwise append to body\r\n var formatParams = new Array(arguments.length - 1),\r\n formatOffset = 0;\r\n while (formatOffset < formatParams.length)\r\n formatParams[formatOffset] = arguments[++formatOffset];\r\n formatOffset = 0;\r\n formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) {\r\n var value = formatParams[formatOffset++];\r\n switch ($1) {\r\n case \"d\": case \"f\": return String(Number(value));\r\n case \"i\": return String(Math.floor(value));\r\n case \"j\": return JSON.stringify(value);\r\n case \"s\": return String(value);\r\n }\r\n return \"%\";\r\n });\r\n if (formatOffset !== formatParams.length)\r\n throw Error(\"parameter count mismatch\");\r\n body.push(formatStringOrScope);\r\n return Codegen;\r\n }\r\n\r\n function toString(functionNameOverride) {\r\n return \"function \" + (functionNameOverride || functionName || \"\") + \"(\" + (functionParams && functionParams.join(\",\") || \"\") + \"){\\n \" + body.join(\"\\n \") + \"\\n}\";\r\n }\r\n\r\n Codegen.toString = toString;\r\n return Codegen;\r\n}\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @function codegen\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * When set to `true`, codegen will log generated code to console. Useful for debugging.\r\n * @name util.codegen.verbose\r\n * @type {boolean}\r\n */\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(\"@protobufjs/aspromise\"),\r\n inquire = require(\"@protobufjs/inquire\");\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Options as used by {@link util.fetch}.\r\n * @typedef FetchOptions\r\n * @type {Object}\r\n * @property {boolean} [binary=false] Whether expecting a binary response\r\n * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} filename File path or url\r\n * @param {FetchOptions} options Fetch options\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction fetch(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = {};\r\n } else if (!options)\r\n options = {};\r\n\r\n if (!callback)\r\n return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this\r\n\r\n // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found.\r\n if (!options.xhr && fs && fs.readFile)\r\n return fs.readFile(filename, function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch.xhr(filename, options, callback)\r\n : err\r\n ? callback(err)\r\n : callback(null, options.binary ? contents : contents.toString(\"utf8\"));\r\n });\r\n\r\n // use the XHR version otherwise.\r\n return fetch.xhr(filename, options, callback);\r\n}\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchOptions} [options] Fetch options\r\n * @returns {Promise<string|Uint8Array>} Promise\r\n * @variation 3\r\n */\r\n\r\n/**/\r\nfetch.xhr = function fetch_xhr(filename, options, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n\r\n if (xhr.readyState !== 4)\r\n return undefined;\r\n\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n if (xhr.status !== 0 && xhr.status !== 200)\r\n return callback(Error(\"status \" + xhr.status));\r\n\r\n // if binary data is expected, make sure that some sort of array is returned, even if\r\n // ArrayBuffers are not supported. the binary string fallback, however, is unsafe.\r\n if (options.binary) {\r\n var buffer = xhr.response;\r\n if (!buffer) {\r\n buffer = [];\r\n for (var i = 0; i < xhr.responseText.length; ++i)\r\n buffer.push(xhr.responseText.charCodeAt(i) & 255);\r\n }\r\n return callback(null, typeof Uint8Array !== \"undefined\" ? new Uint8Array(buffer) : buffer);\r\n }\r\n return callback(null, xhr.responseText);\r\n };\r\n\r\n if (options.binary) {\r\n // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers\r\n if (\"overrideMimeType\" in xhr)\r\n xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\r\n xhr.responseType = \"arraybuffer\";\r\n }\r\n\r\n xhr.open(\"GET\", filename);\r\n xhr.send();\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0 && parts[i - 1] !== \"..\")\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*<script>([\\\\d\\\\D]*?)<\\\\/script>[\\\\d\\\\D]*', 'i');\n inlineScriptSource = pageSource.replace(inlineScriptSourceRegExp, '$1').trim();\n }\n \n for (var i = 0; i < scripts.length; i++) {\n // If ready state is interactive, return the script tag\n if (scripts[i].readyState === 'interactive') {\n return scripts[i];\n }\n \n // If src matches, return the script tag\n if (scripts[i].src === scriptLocation) {\n return scripts[i];\n }\n \n // If inline source matches, return the script tag\n if (\n scriptLocation === currentLocation &&\n scripts[i].innerHTML &&\n scripts[i].innerHTML.trim() === inlineScriptSource\n ) {\n return scripts[i];\n }\n }\n \n // If no match, return null\n return null;\n }\n };\n\n return getCurrentScript\n}));\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","// eslint-disable-next-line es-x/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return isLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n defineBuiltIns(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es-x/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es-x/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n var index = 0;\n var length = lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\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 IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\n/* eslint-disable es-x/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var global = require('../internals/global');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar TypeError = global.TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(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 (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\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 // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\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 NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\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","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var isCallable = require('../internals/is-callable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n } return O;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","module.exports = typeof window == 'object' && typeof Deno != 'object';\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar global = require('../internals/global');\n\nvar Array = global.Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\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 setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\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 setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es-x/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es-x/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es-x/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n defineProperty(value, 'name', { value: name, configurable: true });\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\n/* eslint-disable es-x/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* 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 DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/* eslint-disable es-x/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es-x/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.22.7',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.22.7/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar RangeError = global.RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar RangeError = global.RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n aTypedArrayConstructor(C);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isIntegralNumber(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructorPrototype);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructorPrototype);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n var FORCED = TypedArrayConstructor != NativeTypedArrayConstructor;\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n return passed;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(result, 'stack', clearErrorStack(result.stack, 2));\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es-x/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n defineBuiltIn(global, NUMBER, NumberWrapper, { constructor: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar un$ToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return un$ToFixed(0.00008, 3) !== '0.000' ||\n un$ToFixed(0.9, 0) !== '1' ||\n un$ToFixed(1.255, 2) !== '1.25' ||\n un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n un$ToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es-x/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar Error = global.Error;\nvar un$Test = uncurryThis(/./.test);\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (str) {\n var exec = this.exec;\n if (!isCallable(exec)) return un$Test(this, str);\n var result = call(exec, this, str);\n if (result !== null && !isObject(result)) {\n throw new Error('RegExp exec method returned something other than an Object or null');\n }\n return !!result;\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/native-symbol-registry');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/native-symbol-registry');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar call = require('../internals/function-call');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n return call(\n $fill,\n aTypedArray(this),\n value,\n length > 1 ? arguments[1] : undefined,\n length > 2 ? arguments[2] : undefined\n );\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n && TypedArrayPrototype.values\n && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n return $join(aTypedArray(this), separator);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n var length = arguments.length;\n return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (typedArraySpeciesConstructor(O))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es-x/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es-x/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = arraySlice(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {\n un$Sort(new Uint16Array(2), null);\n}) && fails(function () {\n un$Sort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!un$Sort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n un$Sort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return un$Sort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = typedArraySpeciesConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return join(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".canvas[data-v-0a32917c]{position:absolute;top:0;left:0;margin-left:5px;cursor:ew-resize;outline:none}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".timeseries-scrubber[data-v-989235a2]{padding:0 8px 8px 8px}.dateWrap[data-v-989235a2]{padding:8px 0;font-size:12px;text-transform:uppercase;color:#71747c;display:flex;flex-direction:row;justify-content:space-between}#scrubber[data-v-989235a2]{background:#fff;box-shadow:inset 0 0 0 1px #c5c5c5;box-sizing:border-box;position:relative;display:flex}#canvasWrap[data-v-989235a2]{height:30px;position:relative}.noselect[data-v-989235a2]{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.canvas[data-v-989235a2]{position:absolute;top:0;left:0;cursor:pointer}.canvas[dragme][data-v-989235a2]{cursor:move}.canvas[resizeme][data-v-989235a2]{cursor:ew-resize}#annotationCanvas[data-v-989235a2]{margin-top:1px}#iCanvas[data-v-989235a2]{margin-left:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".timeseries-viewer[data-v-1d6b8d00]{display:flex;flex-direction:column}#channelCanvas[data-v-1d6b8d00]{display:flex;height:100%;background-color:#fff}#channelLabels[data-v-1d6b8d00]{justify-content:space-around;line-height:normal;margin-bottom:40px;min-width:75px}#channelLabels[data-v-1d6b8d00],.chLabelWrap[data-v-1d6b8d00]{display:flex;flex-direction:column}.chLabelWrap[data-v-1d6b8d00]{align-items:center;cursor:pointer}.chLabelIndWrap[data-v-1d6b8d00]{position:relative;display:flex;flex-direction:row;justify-content:space-around;width:100%;color:#3c54a4}.chLabelInd[data-v-1d6b8d00]{font-size:.6em;min-width:70px;color:#969696;text-align:right;white-space:nowrap}.chLabelIndWrap[selected][data-v-1d6b8d00],.labelDiv[selected][data-v-1d6b8d00]{color:#295eff}.labelDiv[data-v-1d6b8d00]{align-self:flex-end;white-space:nowrap;color:var(--neuron)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".timeseries-viewer-canvas[data-v-0f680526]{display:flex;background-color:#fff;flex:1}#canvasWrapper[data-v-0f680526]{position:relative}#channelCanvas[data-v-0f680526]{display:flex}.canvas[data-v-0f680526]{position:absolute;top:0;left:0;margin-left:5px;cursor:ew-resize;outline:none}.canvas[active][data-v-0f680526]{cursor:pointer}.canvas[col_resize][data-v-0f680526]{cursor:col-resize}.canvas[point][data-v-0f680526]{cursor:default}.canvas[cursor_hover][data-v-0f680526]{cursor:col-resize}#cursorArea[data-v-0f680526]{margin-left:0}#annotationPopover[data-v-0f680526]{position:absolute;opacity:0;display:none;top:75px;z-index:1000;left:400px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".timeseries-viewer-toolbar[data-v-09a81dc6]{border-top:1px solid #dadada;background:#f7f7f7;display:flex;padding:8px 0;width:100%;justify-content:space-between;align-items:center}.icon[data-v-09a81dc6]{vertical-align:middle;padding-bottom:1px}.btn-icon[data-v-09a81dc6]{color:#928d85;margin-left:8px;margin-right:2px}.btn-icon[data-v-09a81dc6]:last-child{margin-right:8px}.btn-icon.selected[data-v-09a81dc6],.btn-icon[data-v-09a81dc6]:hover,.btn-icon[focused][data-v-09a81dc6]{color:#5039f7}.btn-icon[disabled][data-v-09a81dc6]{color:#e7e5e1}.playSelect[data-v-09a81dc6]{width:75px;margin-right:8px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","// full library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index\");\n","\"use strict\";\nmodule.exports = common;\n\nvar commonRe = /\\/|\\./;\n\n/**\n * Provides common type definitions.\n * Can also be used to provide additional google types or your own custom types.\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\n * @param {Object.<string,*>} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\n * @returns {undefined}\n * @property {INamespace} google/protobuf/any.proto Any\n * @property {INamespace} google/protobuf/duration.proto Duration\n * @property {INamespace} google/protobuf/empty.proto Empty\n * @property {INamespace} google/protobuf/field_mask.proto FieldMask\n * @property {INamespace} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\n * @property {INamespace} google/protobuf/timestamp.proto Timestamp\n * @property {INamespace} google/protobuf/wrappers.proto Wrappers\n * @example\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\n * protobuf.common(\"descriptor\", descriptorJson);\n *\n * // manually provides a custom definition (uses my.foo namespace)\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\n */\nfunction common(name, json) {\n if (!commonRe.test(name)) {\n name = \"google/protobuf/\" + name + \".proto\";\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\n }\n common[name] = json;\n}\n\n// Not provided because of limited use (feel free to discuss or to provide yourself):\n//\n// google/protobuf/descriptor.proto\n// google/protobuf/source_context.proto\n// google/protobuf/type.proto\n//\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\n// the repository or package within the google/protobuf directory.\n\ncommon(\"any\", {\n\n /**\n * Properties of a google.protobuf.Any message.\n * @interface IAny\n * @type {Object}\n * @property {string} [typeUrl]\n * @property {Uint8Array} [bytes]\n * @memberof common\n */\n Any: {\n fields: {\n type_url: {\n type: \"string\",\n id: 1\n },\n value: {\n type: \"bytes\",\n id: 2\n }\n }\n }\n});\n\nvar timeType;\n\ncommon(\"duration\", {\n\n /**\n * Properties of a google.protobuf.Duration message.\n * @interface IDuration\n * @type {Object}\n * @property {number|Long} [seconds]\n * @property {number} [nanos]\n * @memberof common\n */\n Duration: timeType = {\n fields: {\n seconds: {\n type: \"int64\",\n id: 1\n },\n nanos: {\n type: \"int32\",\n id: 2\n }\n }\n }\n});\n\ncommon(\"timestamp\", {\n\n /**\n * Properties of a google.protobuf.Timestamp message.\n * @interface ITimestamp\n * @type {Object}\n * @property {number|Long} [seconds]\n * @property {number} [nanos]\n * @memberof common\n */\n Timestamp: timeType\n});\n\ncommon(\"empty\", {\n\n /**\n * Properties of a google.protobuf.Empty message.\n * @interface IEmpty\n * @memberof common\n */\n Empty: {\n fields: {}\n }\n});\n\ncommon(\"struct\", {\n\n /**\n * Properties of a google.protobuf.Struct message.\n * @interface IStruct\n * @type {Object}\n * @property {Object.<string,IValue>} [fields]\n * @memberof common\n */\n Struct: {\n fields: {\n fields: {\n keyType: \"string\",\n type: \"Value\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Value message.\n * @interface IValue\n * @type {Object}\n * @property {string} [kind]\n * @property {0} [nullValue]\n * @property {number} [numberValue]\n * @property {string} [stringValue]\n * @property {boolean} [boolValue]\n * @property {IStruct} [structValue]\n * @property {IListValue} [listValue]\n * @memberof common\n */\n Value: {\n oneofs: {\n kind: {\n oneof: [\n \"nullValue\",\n \"numberValue\",\n \"stringValue\",\n \"boolValue\",\n \"structValue\",\n \"listValue\"\n ]\n }\n },\n fields: {\n nullValue: {\n type: \"NullValue\",\n id: 1\n },\n numberValue: {\n type: \"double\",\n id: 2\n },\n stringValue: {\n type: \"string\",\n id: 3\n },\n boolValue: {\n type: \"bool\",\n id: 4\n },\n structValue: {\n type: \"Struct\",\n id: 5\n },\n listValue: {\n type: \"ListValue\",\n id: 6\n }\n }\n },\n\n NullValue: {\n values: {\n NULL_VALUE: 0\n }\n },\n\n /**\n * Properties of a google.protobuf.ListValue message.\n * @interface IListValue\n * @type {Object}\n * @property {Array.<IValue>} [values]\n * @memberof common\n */\n ListValue: {\n fields: {\n values: {\n rule: \"repeated\",\n type: \"Value\",\n id: 1\n }\n }\n }\n});\n\ncommon(\"wrappers\", {\n\n /**\n * Properties of a google.protobuf.DoubleValue message.\n * @interface IDoubleValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n DoubleValue: {\n fields: {\n value: {\n type: \"double\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.FloatValue message.\n * @interface IFloatValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n FloatValue: {\n fields: {\n value: {\n type: \"float\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Int64Value message.\n * @interface IInt64Value\n * @type {Object}\n * @property {number|Long} [value]\n * @memberof common\n */\n Int64Value: {\n fields: {\n value: {\n type: \"int64\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.UInt64Value message.\n * @interface IUInt64Value\n * @type {Object}\n * @property {number|Long} [value]\n * @memberof common\n */\n UInt64Value: {\n fields: {\n value: {\n type: \"uint64\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Int32Value message.\n * @interface IInt32Value\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n Int32Value: {\n fields: {\n value: {\n type: \"int32\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.UInt32Value message.\n * @interface IUInt32Value\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n UInt32Value: {\n fields: {\n value: {\n type: \"uint32\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.BoolValue message.\n * @interface IBoolValue\n * @type {Object}\n * @property {boolean} [value]\n * @memberof common\n */\n BoolValue: {\n fields: {\n value: {\n type: \"bool\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.StringValue message.\n * @interface IStringValue\n * @type {Object}\n * @property {string} [value]\n * @memberof common\n */\n StringValue: {\n fields: {\n value: {\n type: \"string\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.BytesValue message.\n * @interface IBytesValue\n * @type {Object}\n * @property {Uint8Array} [value]\n * @memberof common\n */\n BytesValue: {\n fields: {\n value: {\n type: \"bytes\",\n id: 1\n }\n }\n }\n});\n\ncommon(\"field_mask\", {\n\n /**\n * Properties of a google.protobuf.FieldMask message.\n * @interface IDoubleValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n FieldMask: {\n fields: {\n paths: {\n rule: \"repeated\",\n type: \"string\",\n id: 1\n }\n }\n }\n});\n\n/**\n * Gets the root definition of the specified common proto file.\n *\n * Bundled definitions are:\n * - google/protobuf/any.proto\n * - google/protobuf/duration.proto\n * - google/protobuf/empty.proto\n * - google/protobuf/field_mask.proto\n * - google/protobuf/struct.proto\n * - google/protobuf/timestamp.proto\n * - google/protobuf/wrappers.proto\n *\n * @param {string} file Proto file name\n * @returns {INamespace|null} Root definition or `null` if not defined\n */\ncommon.get = function get(file) {\n return common[file] || null;\n};\n","\"use strict\";\n/**\n * Runtime message from/to plain object converters.\n * @namespace\n */\nvar converter = exports;\n\nvar Enum = require(\"./enum\"),\n util = require(\"./util\");\n\n/**\n * Generates a partial value fromObject conveter.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} prop Property reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(d%s){\", prop);\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\n if (field.repeated && values[keys[i]] === field.typeDefault) gen\n (\"default:\");\n gen\n (\"case%j:\", keys[i])\n (\"case %i:\", values[keys[i]])\n (\"m%s=%j\", prop, values[keys[i]])\n (\"break\");\n } gen\n (\"}\");\n } else gen\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s=types[%i].fromObject(d%s)\", prop, fieldIndex, prop);\n } else {\n var isUnsigned = false;\n switch (field.type) {\n case \"double\":\n case \"float\": gen\n (\"m%s=Number(d%s)\", prop, prop); // also catches \"NaN\", \"Infinity\"\n break;\n case \"uint32\":\n case \"fixed32\": gen\n (\"m%s=d%s>>>0\", prop, prop);\n break;\n case \"int32\":\n case \"sint32\":\n case \"sfixed32\": gen\n (\"m%s=d%s|0\", prop, prop);\n break;\n case \"uint64\":\n isUnsigned = true;\n // eslint-disable-line no-fallthrough\n case \"int64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(util.Long)\")\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\n (\"m%s=parseInt(d%s,10)\", prop, prop)\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\n (\"m%s=d%s\", prop, prop)\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\n (\"m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\n break;\n case \"bytes\": gen\n (\"if(typeof d%s===\\\"string\\\")\", prop)\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\n (\"else if(d%s.length)\", prop)\n (\"m%s=d%s\", prop, prop);\n break;\n case \"string\": gen\n (\"m%s=String(d%s)\", prop, prop);\n break;\n case \"bool\": gen\n (\"m%s=Boolean(d%s)\", prop, prop);\n break;\n /* default: gen\n (\"m%s=d%s\", prop, prop);\n break; */\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a plain object to runtime message converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.fromObject = function fromObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray;\n var gen = util.codegen([\"d\"], mtype.name + \"$fromObject\")\n (\"if(d instanceof this.ctor)\")\n (\"return d\");\n if (!fields.length) return gen\n (\"return new this.ctor\");\n gen\n (\"var m=new this.ctor\");\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n prop = util.safeProp(field.name);\n\n // Map fields\n if (field.map) { gen\n (\"if(d%s){\", prop)\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s={}\", prop)\n (\"for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){\", prop);\n genValuePartial_fromObject(gen, field, /* not sorted */ i, prop + \"[ks[i]]\")\n (\"}\")\n (\"}\");\n\n // Repeated fields\n } else if (field.repeated) { gen\n (\"if(d%s){\", prop)\n (\"if(!Array.isArray(d%s))\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": array expected\")\n (\"m%s=[]\", prop)\n (\"for(var i=0;i<d%s.length;++i){\", prop);\n genValuePartial_fromObject(gen, field, /* not sorted */ i, prop + \"[i]\")\n (\"}\")\n (\"}\");\n\n // Non-repeated fields\n } else {\n if (!(field.resolvedType instanceof Enum)) gen // no need to test for null/undefined if an enum (uses switch)\n (\"if(d%s!=null){\", prop); // !== undefined && !== null\n genValuePartial_fromObject(gen, field, /* not sorted */ i, prop);\n if (!(field.resolvedType instanceof Enum)) gen\n (\"}\");\n }\n } return gen\n (\"return m\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n};\n\n/**\n * Generates a partial value toObject converter.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} prop Property reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genValuePartial_toObject(gen, field, fieldIndex, prop) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) gen\n (\"d%s=o.enums===String?types[%i].values[m%s]:m%s\", prop, fieldIndex, prop, prop);\n else gen\n (\"d%s=types[%i].toObject(m%s,o)\", prop, fieldIndex, prop);\n } else {\n var isUnsigned = false;\n switch (field.type) {\n case \"double\":\n case \"float\": gen\n (\"d%s=o.json&&!isFinite(m%s)?String(m%s):m%s\", prop, prop, prop, prop);\n break;\n case \"uint64\":\n isUnsigned = true;\n // eslint-disable-line no-fallthrough\n case \"int64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(typeof m%s===\\\"number\\\")\", prop)\n (\"d%s=o.longs===String?String(m%s):m%s\", prop, prop, prop)\n (\"else\") // Long-like\n (\"d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s\", prop, prop, prop, prop, isUnsigned ? \"true\": \"\", prop);\n break;\n case \"bytes\": gen\n (\"d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s\", prop, prop, prop, prop, prop);\n break;\n default: gen\n (\"d%s=m%s\", prop, prop);\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a runtime message to plain object converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.toObject = function toObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById);\n if (!fields.length)\n return util.codegen()(\"return {}\");\n var gen = util.codegen([\"m\", \"o\"], mtype.name + \"$toObject\")\n (\"if(!o)\")\n (\"o={}\")\n (\"var d={}\");\n\n var repeatedFields = [],\n mapFields = [],\n normalFields = [],\n i = 0;\n for (; i < fields.length; ++i)\n if (!fields[i].partOf)\n ( fields[i].resolve().repeated ? repeatedFields\n : fields[i].map ? mapFields\n : normalFields).push(fields[i]);\n\n if (repeatedFields.length) { gen\n (\"if(o.arrays||o.defaults){\");\n for (i = 0; i < repeatedFields.length; ++i) gen\n (\"d%s=[]\", util.safeProp(repeatedFields[i].name));\n gen\n (\"}\");\n }\n\n if (mapFields.length) { gen\n (\"if(o.objects||o.defaults){\");\n for (i = 0; i < mapFields.length; ++i) gen\n (\"d%s={}\", util.safeProp(mapFields[i].name));\n gen\n (\"}\");\n }\n\n if (normalFields.length) { gen\n (\"if(o.defaults){\");\n for (i = 0; i < normalFields.length; ++i) {\n var field = normalFields[i],\n prop = util.safeProp(field.name);\n if (field.resolvedType instanceof Enum) gen\n (\"d%s=o.enums===String?%j:%j\", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault);\n else if (field.long) gen\n (\"if(util.Long){\")\n (\"var n=new util.Long(%i,%i,%j)\", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned)\n (\"d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n\", prop)\n (\"}else\")\n (\"d%s=o.longs===String?%j:%i\", prop, field.typeDefault.toString(), field.typeDefault.toNumber());\n else if (field.bytes) {\n var arrayDefault = \"[\" + Array.prototype.slice.call(field.typeDefault).join(\",\") + \"]\";\n gen\n (\"if(o.bytes===String)d%s=%j\", prop, String.fromCharCode.apply(String, field.typeDefault))\n (\"else{\")\n (\"d%s=%s\", prop, arrayDefault)\n (\"if(o.bytes!==Array)d%s=util.newBuffer(d%s)\", prop, prop)\n (\"}\");\n } else gen\n (\"d%s=%j\", prop, field.typeDefault); // also messages (=null)\n } gen\n (\"}\");\n }\n var hasKs2 = false;\n for (i = 0; i < fields.length; ++i) {\n var field = fields[i],\n index = mtype._fieldsArray.indexOf(field),\n prop = util.safeProp(field.name);\n if (field.map) {\n if (!hasKs2) { hasKs2 = true; gen\n (\"var ks2\");\n } gen\n (\"if(m%s&&(ks2=Object.keys(m%s)).length){\", prop, prop)\n (\"d%s={}\", prop)\n (\"for(var j=0;j<ks2.length;++j){\");\n genValuePartial_toObject(gen, field, /* sorted */ index, prop + \"[ks2[j]]\")\n (\"}\");\n } else if (field.repeated) { gen\n (\"if(m%s&&m%s.length){\", prop, prop)\n (\"d%s=[]\", prop)\n (\"for(var j=0;j<m%s.length;++j){\", prop);\n genValuePartial_toObject(gen, field, /* sorted */ index, prop + \"[j]\")\n (\"}\");\n } else { gen\n (\"if(m%s!=null&&m.hasOwnProperty(%j)){\", prop, field.name); // !== undefined && !== null\n genValuePartial_toObject(gen, field, /* sorted */ index, prop);\n if (field.partOf) gen\n (\"if(o.oneofs)\")\n (\"d%s=%j\", util.safeProp(field.partOf.name), field.name);\n }\n gen\n (\"}\");\n }\n return gen\n (\"return d\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n};\n","\"use strict\";\nmodule.exports = decoder;\n\nvar Enum = require(\"./enum\"),\n types = require(\"./types\"),\n util = require(\"./util\");\n\nfunction missing(field) {\n return \"missing required '\" + field.name + \"'\";\n}\n\n/**\n * Generates a decoder specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction decoder(mtype) {\n /* eslint-disable no-unexpected-multiline */\n var gen = util.codegen([\"r\", \"l\"], mtype.name + \"$decode\")\n (\"if(!(r instanceof Reader))\")\n (\"r=Reader.create(r)\")\n (\"var c=l===undefined?r.len:r.pos+l,m=new this.ctor\" + (mtype.fieldsArray.filter(function(field) { return field.map; }).length ? \",k,value\" : \"\"))\n (\"while(r.pos<c){\")\n (\"var t=r.uint32()\");\n if (mtype.group) gen\n (\"if((t&7)===4)\")\n (\"break\");\n gen\n (\"switch(t>>>3){\");\n\n var i = 0;\n for (; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n ref = \"m\" + util.safeProp(field.name); gen\n (\"case %i:\", field.id);\n\n // Map fields\n if (field.map) { gen\n (\"if(%s===util.emptyObject)\", ref)\n (\"%s={}\", ref)\n (\"var c2 = r.uint32()+r.pos\");\n\n if (types.defaults[field.keyType] !== undefined) gen\n (\"k=%j\", types.defaults[field.keyType]);\n else gen\n (\"k=null\");\n\n if (types.defaults[type] !== undefined) gen\n (\"value=%j\", types.defaults[type]);\n else gen\n (\"value=null\");\n\n gen\n (\"while(r.pos<c2){\")\n (\"var tag2=r.uint32()\")\n (\"switch(tag2>>>3){\")\n (\"case 1: k=r.%s(); break\", field.keyType)\n (\"case 2:\");\n\n if (types.basic[type] === undefined) gen\n (\"value=types[%i].decode(r,r.uint32())\", i); // can't be groups\n else gen\n (\"value=r.%s()\", type);\n\n gen\n (\"break\")\n (\"default:\")\n (\"r.skipType(tag2&7)\")\n (\"break\")\n (\"}\")\n (\"}\");\n\n if (types.long[field.keyType] !== undefined) gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=value\", ref);\n else gen\n (\"%s[k]=value\", ref);\n\n // Repeated fields\n } else if (field.repeated) { gen\n\n (\"if(!(%s&&%s.length))\", ref, ref)\n (\"%s=[]\", ref);\n\n // Packable (always check for forward and backward compatiblity)\n if (types.packed[type] !== undefined) gen\n (\"if((t&7)===2){\")\n (\"var c2=r.uint32()+r.pos\")\n (\"while(r.pos<c2)\")\n (\"%s.push(r.%s())\", ref, type)\n (\"}else\");\n\n // Non-packed\n if (types.basic[type] === undefined) gen(field.resolvedType.group\n ? \"%s.push(types[%i].decode(r))\"\n : \"%s.push(types[%i].decode(r,r.uint32()))\", ref, i);\n else gen\n (\"%s.push(r.%s())\", ref, type);\n\n // Non-repeated\n } else if (types.basic[type] === undefined) gen(field.resolvedType.group\n ? \"%s=types[%i].decode(r)\"\n : \"%s=types[%i].decode(r,r.uint32())\", ref, i);\n else gen\n (\"%s=r.%s()\", ref, type);\n gen\n (\"break\");\n // Unknown fields\n } gen\n (\"default:\")\n (\"r.skipType(t&7)\")\n (\"break\")\n\n (\"}\")\n (\"}\");\n\n // Field presence\n for (i = 0; i < mtype._fieldsArray.length; ++i) {\n var rfield = mtype._fieldsArray[i];\n if (rfield.required) gen\n (\"if(!m.hasOwnProperty(%j))\", rfield.name)\n (\"throw util.ProtocolError(%j,{instance:m})\", missing(rfield));\n }\n\n return gen\n (\"return m\");\n /* eslint-enable no-unexpected-multiline */\n}\n","\"use strict\";\nmodule.exports = encoder;\n\nvar Enum = require(\"./enum\"),\n types = require(\"./types\"),\n util = require(\"./util\");\n\n/**\n * Generates a partial message type encoder.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genTypePartial(gen, field, fieldIndex, ref) {\n return field.resolvedType.group\n ? gen(\"types[%i].encode(%s,w.uint32(%i)).uint32(%i)\", fieldIndex, ref, (field.id << 3 | 3) >>> 0, (field.id << 3 | 4) >>> 0)\n : gen(\"types[%i].encode(%s,w.uint32(%i).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\n}\n\n/**\n * Generates an encoder specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction encoder(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var gen = util.codegen([\"m\", \"w\"], mtype.name + \"$encode\")\n (\"if(!w)\")\n (\"w=Writer.create()\");\n\n var i, ref;\n\n // \"when a message is serialized its known fields should be written sequentially by field number\"\n var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById);\n\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n index = mtype._fieldsArray.indexOf(field),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n wireType = types.basic[type];\n ref = \"m\" + util.safeProp(field.name);\n\n // Map fields\n if (field.map) {\n gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j)){\", ref, field.name) // !== undefined && !== null\n (\"for(var ks=Object.keys(%s),i=0;i<ks.length;++i){\", ref)\n (\"w.uint32(%i).fork().uint32(%i).%s(ks[i])\", (field.id << 3 | 2) >>> 0, 8 | types.mapKey[field.keyType], field.keyType);\n if (wireType === undefined) gen\n (\"types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", index, ref); // can't be groups\n else gen\n (\".uint32(%i).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\n gen\n (\"}\")\n (\"}\");\n\n // Repeated fields\n } else if (field.repeated) { gen\n (\"if(%s!=null&&%s.length){\", ref, ref); // !== undefined && !== null\n\n // Packed repeated\n if (field.packed && types.packed[type] !== undefined) { gen\n\n (\"w.uint32(%i).fork()\", (field.id << 3 | 2) >>> 0)\n (\"for(var i=0;i<%s.length;++i)\", ref)\n (\"w.%s(%s[i])\", type, ref)\n (\"w.ldelim()\");\n\n // Non-packed\n } else { gen\n\n (\"for(var i=0;i<%s.length;++i)\", ref);\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref + \"[i]\");\n else gen\n (\"w.uint32(%i).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n } gen\n (\"}\");\n\n // Non-repeated\n } else {\n if (field.optional) gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j))\", ref, field.name); // !== undefined && !== null\n\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref);\n else gen\n (\"w.uint32(%i).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n }\n }\n\n return gen\n (\"return w\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n","\"use strict\";\nmodule.exports = Enum;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\n\nvar Namespace = require(\"./namespace\"),\n util = require(\"./util\");\n\n/**\n * Constructs a new enum instance.\n * @classdesc Reflected enum.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {Object.<string,number>} [values] Enum values as an object, by name\n * @param {Object.<string,*>} [options] Declared options\n * @param {string} [comment] The comment for this enum\n * @param {Object.<string,string>} [comments] The value comments for this enum\n */\nfunction Enum(name, values, options, comment, comments) {\n ReflectionObject.call(this, name, options);\n\n if (values && typeof values !== \"object\")\n throw TypeError(\"values must be an object\");\n\n /**\n * Enum values by id.\n * @type {Object.<number,string>}\n */\n this.valuesById = {};\n\n /**\n * Enum values by name.\n * @type {Object.<string,number>}\n */\n this.values = Object.create(this.valuesById); // toJSON, marker\n\n /**\n * Enum comment text.\n * @type {string|null}\n */\n this.comment = comment;\n\n /**\n * Value comment texts, if any.\n * @type {Object.<string,string>}\n */\n this.comments = comments || {};\n\n /**\n * Reserved ranges, if any.\n * @type {Array.<number[]|string>}\n */\n this.reserved = undefined; // toJSON\n\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\n // compatible enum. This is used by pbts to write actual enum definitions that work for\n // static and reflection code alike instead of emitting generic object definitions.\n\n if (values)\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\n if (typeof values[keys[i]] === \"number\") // use forward entries only\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\n}\n\n/**\n * Enum descriptor.\n * @interface IEnum\n * @property {Object.<string,number>} values Enum values\n * @property {Object.<string,*>} [options] Enum options\n */\n\n/**\n * Constructs an enum from an enum descriptor.\n * @param {string} name Enum name\n * @param {IEnum} json Enum descriptor\n * @returns {Enum} Created enum\n * @throws {TypeError} If arguments are invalid\n */\nEnum.fromJSON = function fromJSON(name, json) {\n var enm = new Enum(name, json.values, json.options, json.comment, json.comments);\n enm.reserved = json.reserved;\n return enm;\n};\n\n/**\n * Converts this enum to an enum descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IEnum} Enum descriptor\n */\nEnum.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"values\" , this.values,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"comment\" , keepComments ? this.comment : undefined,\n \"comments\" , keepComments ? this.comments : undefined\n ]);\n};\n\n/**\n * Adds a value to this enum.\n * @param {string} name Value name\n * @param {number} id Value id\n * @param {string} [comment] Comment, if any\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a value with this name or id\n */\nEnum.prototype.add = function add(name, id, comment) {\n // utilized by the parser but not by .fromJSON\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (!util.isInteger(id))\n throw TypeError(\"id must be an integer\");\n\n if (this.values[name] !== undefined)\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\n\n if (this.isReservedId(id))\n throw Error(\"id \" + id + \" is reserved in \" + this);\n\n if (this.isReservedName(name))\n throw Error(\"name '\" + name + \"' is reserved in \" + this);\n\n if (this.valuesById[id] !== undefined) {\n if (!(this.options && this.options.allow_alias))\n throw Error(\"duplicate id \" + id + \" in \" + this);\n this.values[name] = id;\n } else\n this.valuesById[this.values[name] = id] = name;\n\n this.comments[name] = comment || null;\n return this;\n};\n\n/**\n * Removes a value from this enum\n * @param {string} name Value name\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `name` is not a name of this enum\n */\nEnum.prototype.remove = function remove(name) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n var val = this.values[name];\n if (val == null)\n throw Error(\"name '\" + name + \"' does not exist in \" + this);\n\n delete this.valuesById[val];\n delete this.values[name];\n delete this.comments[name];\n\n return this;\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n","\"use strict\";\nmodule.exports = Field;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\n\nvar Enum = require(\"./enum\"),\n types = require(\"./types\"),\n util = require(\"./util\");\n\nvar Type; // cyclic\n\nvar ruleRe = /^required|optional|repeated$/;\n\n/**\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\n * @name Field\n * @classdesc Reflected message field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.<string,*>} [rule=\"optional\"] Field rule\n * @param {string|Object.<string,*>} [extend] Extended type if different from parent\n * @param {Object.<string,*>} [options] Declared options\n */\n\n/**\n * Constructs a field from a field descriptor.\n * @param {string} name Field name\n * @param {IField} json Field descriptor\n * @returns {Field} Created field\n * @throws {TypeError} If arguments are invalid\n */\nField.fromJSON = function fromJSON(name, json) {\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment);\n};\n\n/**\n * Not an actual constructor. Use {@link Field} instead.\n * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports FieldBase\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.<string,*>} [rule=\"optional\"] Field rule\n * @param {string|Object.<string,*>} [extend] Extended type if different from parent\n * @param {Object.<string,*>} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction Field(name, id, type, rule, extend, options, comment) {\n\n if (util.isObject(rule)) {\n comment = extend;\n options = rule;\n rule = extend = undefined;\n } else if (util.isObject(extend)) {\n comment = options;\n options = extend;\n extend = undefined;\n }\n\n ReflectionObject.call(this, name, options);\n\n if (!util.isInteger(id) || id < 0)\n throw TypeError(\"id must be a non-negative integer\");\n\n if (!util.isString(type))\n throw TypeError(\"type must be a string\");\n\n if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase()))\n throw TypeError(\"rule must be a string rule\");\n\n if (extend !== undefined && !util.isString(extend))\n throw TypeError(\"extend must be a string\");\n\n if (rule === \"proto3_optional\") {\n rule = \"optional\";\n }\n /**\n * Field rule, if any.\n * @type {string|undefined}\n */\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\n\n /**\n * Field type.\n * @type {string}\n */\n this.type = type; // toJSON\n\n /**\n * Unique field id.\n * @type {number}\n */\n this.id = id; // toJSON, marker\n\n /**\n * Extended type if different from parent.\n * @type {string|undefined}\n */\n this.extend = extend || undefined; // toJSON\n\n /**\n * Whether this field is required.\n * @type {boolean}\n */\n this.required = rule === \"required\";\n\n /**\n * Whether this field is optional.\n * @type {boolean}\n */\n this.optional = !this.required;\n\n /**\n * Whether this field is repeated.\n * @type {boolean}\n */\n this.repeated = rule === \"repeated\";\n\n /**\n * Whether this field is a map or not.\n * @type {boolean}\n */\n this.map = false;\n\n /**\n * Message this field belongs to.\n * @type {Type|null}\n */\n this.message = null;\n\n /**\n * OneOf this field belongs to, if any,\n * @type {OneOf|null}\n */\n this.partOf = null;\n\n /**\n * The field type's default value.\n * @type {*}\n */\n this.typeDefault = null;\n\n /**\n * The field's default value on prototypes.\n * @type {*}\n */\n this.defaultValue = null;\n\n /**\n * Whether this field's value should be treated as a long.\n * @type {boolean}\n */\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\n\n /**\n * Whether this field's value is a buffer.\n * @type {boolean}\n */\n this.bytes = type === \"bytes\";\n\n /**\n * Resolved type if not a basic type.\n * @type {Type|Enum|null}\n */\n this.resolvedType = null;\n\n /**\n * Sister-field within the extended type if a declaring extension field.\n * @type {Field|null}\n */\n this.extensionField = null;\n\n /**\n * Sister-field within the declaring namespace if an extended field.\n * @type {Field|null}\n */\n this.declaringField = null;\n\n /**\n * Internally remembers whether this field is packed.\n * @type {boolean|null}\n * @private\n */\n this._packed = null;\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\n * @name Field#packed\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"packed\", {\n get: function() {\n // defaults to packed=true if not explicity set to false\n if (this._packed === null)\n this._packed = this.getOption(\"packed\") !== false;\n return this._packed;\n }\n});\n\n/**\n * @override\n */\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (name === \"packed\") // clear cached before setting\n this._packed = null;\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\n};\n\n/**\n * Field descriptor.\n * @interface IField\n * @property {string} [rule=\"optional\"] Field rule\n * @property {string} type Field type\n * @property {number} id Field id\n * @property {Object.<string,*>} [options] Field options\n */\n\n/**\n * Extension field descriptor.\n * @interface IExtensionField\n * @extends IField\n * @property {string} extend Extended type\n */\n\n/**\n * Converts this field to a field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IField} Field descriptor\n */\nField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"rule\" , this.rule !== \"optional\" && this.rule || undefined,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Resolves this field's type references.\n * @returns {Field} `this`\n * @throws {Error} If any reference cannot be resolved\n */\nField.prototype.resolve = function resolve() {\n\n if (this.resolved)\n return this;\n\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\n this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type);\n if (this.resolvedType instanceof Type)\n this.typeDefault = null;\n else // instanceof Enum\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\n }\n\n // use explicitly set default value if present\n if (this.options && this.options[\"default\"] != null) {\n this.typeDefault = this.options[\"default\"];\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\n this.typeDefault = this.resolvedType.values[this.typeDefault];\n }\n\n // remove unnecessary options\n if (this.options) {\n if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum))\n delete this.options.packed;\n if (!Object.keys(this.options).length)\n this.options = undefined;\n }\n\n // convert to internal data type if necesssary\n if (this.long) {\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\n\n /* istanbul ignore else */\n if (Object.freeze)\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\n\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\n var buf;\n if (util.base64.test(this.typeDefault))\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\n else\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\n this.typeDefault = buf;\n }\n\n // take special care of maps and repeated fields\n if (this.map)\n this.defaultValue = util.emptyObject;\n else if (this.repeated)\n this.defaultValue = util.emptyArray;\n else\n this.defaultValue = this.typeDefault;\n\n // ensure proper value on prototype\n if (this.parent instanceof Type)\n this.parent.ctor.prototype[this.name] = this.defaultValue;\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n\n/**\n * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript).\n * @typedef FieldDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} fieldName Field name\n * @returns {undefined}\n */\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"string\"|\"bool\"|\"bytes\"|Object} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @param {T} [defaultValue] Default value\n * @returns {FieldDecorator} Decorator function\n * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[]\n */\nField.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) {\n\n // submessage: decorate the submessage and use its name as the type\n if (typeof fieldType === \"function\")\n fieldType = util.decorateType(fieldType).name;\n\n // enum reference: create a reflected copy of the enum and keep reuseing it\n else if (fieldType && typeof fieldType === \"object\")\n fieldType = util.decorateEnum(fieldType).name;\n\n return function fieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new Field(fieldName, fieldId, fieldType, fieldRule, { \"default\": defaultValue }));\n };\n};\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {Constructor<T>|string} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @returns {FieldDecorator} Decorator function\n * @template T extends Message<T>\n * @variation 2\n */\n// like Field.d but without a default value\n\n// Sets up cyclic dependencies (called in index-light)\nField._configure = function configure(Type_) {\n Type = Type_;\n};\n","\"use strict\";\nvar protobuf = module.exports = require(\"./index-minimal\");\n\nprotobuf.build = \"light\";\n\n/**\n * A node-style callback as used by {@link load} and {@link Root#load}.\n * @typedef LoadCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Root} [root] Root, if there hasn't been an error\n * @returns {undefined}\n */\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n */\nfunction load(filename, root, callback) {\n if (typeof root === \"function\") {\n callback = root;\n root = new protobuf.Root();\n } else if (!root)\n root = new protobuf.Root();\n return root.load(filename, callback);\n}\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Promise<Root>} Promise\n * @see {@link Root#load}\n * @variation 3\n */\n// function load(filename:string, [root:Root]):Promise<Root>\n\nprotobuf.load = load;\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n * @see {@link Root#loadSync}\n */\nfunction loadSync(filename, root) {\n if (!root)\n root = new protobuf.Root();\n return root.loadSync(filename);\n}\n\nprotobuf.loadSync = loadSync;\n\n// Serialization\nprotobuf.encoder = require(\"./encoder\");\nprotobuf.decoder = require(\"./decoder\");\nprotobuf.verifier = require(\"./verifier\");\nprotobuf.converter = require(\"./converter\");\n\n// Reflection\nprotobuf.ReflectionObject = require(\"./object\");\nprotobuf.Namespace = require(\"./namespace\");\nprotobuf.Root = require(\"./root\");\nprotobuf.Enum = require(\"./enum\");\nprotobuf.Type = require(\"./type\");\nprotobuf.Field = require(\"./field\");\nprotobuf.OneOf = require(\"./oneof\");\nprotobuf.MapField = require(\"./mapfield\");\nprotobuf.Service = require(\"./service\");\nprotobuf.Method = require(\"./method\");\n\n// Runtime\nprotobuf.Message = require(\"./message\");\nprotobuf.wrappers = require(\"./wrappers\");\n\n// Utility\nprotobuf.types = require(\"./types\");\nprotobuf.util = require(\"./util\");\n\n// Set up possibly cyclic reflection dependencies\nprotobuf.ReflectionObject._configure(protobuf.Root);\nprotobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum);\nprotobuf.Root._configure(protobuf.Type);\nprotobuf.Field._configure(protobuf.Type);\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","\"use strict\";\nvar protobuf = module.exports = require(\"./index-light\");\n\nprotobuf.build = \"full\";\n\n// Parser\nprotobuf.tokenize = require(\"./tokenize\");\nprotobuf.parse = require(\"./parse\");\nprotobuf.common = require(\"./common\");\n\n// Configure parser\nprotobuf.Root._configure(protobuf.Type, protobuf.parse, protobuf.common);\n","\"use strict\";\nmodule.exports = MapField;\n\n// extends Field\nvar Field = require(\"./field\");\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\n\nvar types = require(\"./types\"),\n util = require(\"./util\");\n\n/**\n * Constructs a new map field instance.\n * @classdesc Reflected map field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} keyType Key type\n * @param {string} type Value type\n * @param {Object.<string,*>} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction MapField(name, id, keyType, type, options, comment) {\n Field.call(this, name, id, type, undefined, undefined, options, comment);\n\n /* istanbul ignore if */\n if (!util.isString(keyType))\n throw TypeError(\"keyType must be a string\");\n\n /**\n * Key type.\n * @type {string}\n */\n this.keyType = keyType; // toJSON, marker\n\n /**\n * Resolved key type if not a basic type.\n * @type {ReflectionObject|null}\n */\n this.resolvedKeyType = null;\n\n // Overrides Field#map\n this.map = true;\n}\n\n/**\n * Map field descriptor.\n * @interface IMapField\n * @extends {IField}\n * @property {string} keyType Key type\n */\n\n/**\n * Extension map field descriptor.\n * @interface IExtensionMapField\n * @extends IMapField\n * @property {string} extend Extended type\n */\n\n/**\n * Constructs a map field from a map field descriptor.\n * @param {string} name Field name\n * @param {IMapField} json Map field descriptor\n * @returns {MapField} Created map field\n * @throws {TypeError} If arguments are invalid\n */\nMapField.fromJSON = function fromJSON(name, json) {\n return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment);\n};\n\n/**\n * Converts this map field to a map field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMapField} Map field descriptor\n */\nMapField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"keyType\" , this.keyType,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMapField.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\n if (types.mapKey[this.keyType] === undefined)\n throw Error(\"invalid key type: \" + this.keyType);\n\n return Field.prototype.resolve.call(this);\n};\n\n/**\n * Map field decorator (TypeScript).\n * @name MapField.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"} fieldKeyType Field key type\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"|\"bytes\"|Object|Constructor<{}>} fieldValueType Field value type\n * @returns {FieldDecorator} Decorator function\n * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> }\n */\nMapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) {\n\n // submessage value: decorate the submessage and use its name as the type\n if (typeof fieldValueType === \"function\")\n fieldValueType = util.decorateType(fieldValueType).name;\n\n // enum reference value: create a reflected copy of the enum and keep reuseing it\n else if (fieldValueType && typeof fieldValueType === \"object\")\n fieldValueType = util.decorateEnum(fieldValueType).name;\n\n return function mapFieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType));\n };\n};\n","\"use strict\";\nmodule.exports = Message;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new message instance.\n * @classdesc Abstract runtime message.\n * @constructor\n * @param {Properties<T>} [properties] Properties to set\n * @template T extends object = object\n */\nfunction Message(properties) {\n // not used internally\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n this[keys[i]] = properties[keys[i]];\n}\n\n/**\n * Reference to the reflected type.\n * @name Message.$type\n * @type {Type}\n * @readonly\n */\n\n/**\n * Reference to the reflected type.\n * @name Message#$type\n * @type {Type}\n * @readonly\n */\n\n/*eslint-disable valid-jsdoc*/\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.<string,*>} [properties] Properties to set\n * @returns {Message<T>} Message instance\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.create = function create(properties) {\n return this.$type.create(properties);\n};\n\n/**\n * Encodes a message of this type.\n * @param {T|Object.<string,*>} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.encode = function encode(message, writer) {\n return this.$type.encode(message, writer);\n};\n\n/**\n * Encodes a message of this type preceeded by its length as a varint.\n * @param {T|Object.<string,*>} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\n return this.$type.encodeDelimited(message, writer);\n};\n\n/**\n * Decodes a message of this type.\n * @name Message.decode\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.decode = function decode(reader) {\n return this.$type.decode(reader);\n};\n\n/**\n * Decodes a message of this type preceeded by its length as a varint.\n * @name Message.decodeDelimited\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.decodeDelimited = function decodeDelimited(reader) {\n return this.$type.decodeDelimited(reader);\n};\n\n/**\n * Verifies a message of this type.\n * @name Message.verify\n * @function\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\nMessage.verify = function verify(message) {\n return this.$type.verify(message);\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.<string,*>} object Plain object\n * @returns {T} Message instance\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.fromObject = function fromObject(object) {\n return this.$type.fromObject(object);\n};\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {T} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.toObject = function toObject(message, options) {\n return this.$type.toObject(message, options);\n};\n\n/**\n * Converts this message to JSON.\n * @returns {Object.<string,*>} JSON object\n */\nMessage.prototype.toJSON = function toJSON() {\n return this.$type.toObject(this, util.toJSONOptions);\n};\n\n/*eslint-enable valid-jsdoc*/","\"use strict\";\nmodule.exports = Method;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\n\nvar util = require(\"./util\");\n\n/**\n * Constructs a new service method instance.\n * @classdesc Reflected service method.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Method name\n * @param {string|undefined} type Method type, usually `\"rpc\"`\n * @param {string} requestType Request message type\n * @param {string} responseType Response message type\n * @param {boolean|Object.<string,*>} [requestStream] Whether the request is streamed\n * @param {boolean|Object.<string,*>} [responseStream] Whether the response is streamed\n * @param {Object.<string,*>} [options] Declared options\n * @param {string} [comment] The comment for this method\n * @param {Object.<string,*>} [parsedOptions] Declared options, properly parsed into an object\n */\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options, comment, parsedOptions) {\n\n /* istanbul ignore next */\n if (util.isObject(requestStream)) {\n options = requestStream;\n requestStream = responseStream = undefined;\n } else if (util.isObject(responseStream)) {\n options = responseStream;\n responseStream = undefined;\n }\n\n /* istanbul ignore if */\n if (!(type === undefined || util.isString(type)))\n throw TypeError(\"type must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(requestType))\n throw TypeError(\"requestType must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(responseType))\n throw TypeError(\"responseType must be a string\");\n\n ReflectionObject.call(this, name, options);\n\n /**\n * Method type.\n * @type {string}\n */\n this.type = type || \"rpc\"; // toJSON\n\n /**\n * Request type.\n * @type {string}\n */\n this.requestType = requestType; // toJSON, marker\n\n /**\n * Whether requests are streamed or not.\n * @type {boolean|undefined}\n */\n this.requestStream = requestStream ? true : undefined; // toJSON\n\n /**\n * Response type.\n * @type {string}\n */\n this.responseType = responseType; // toJSON\n\n /**\n * Whether responses are streamed or not.\n * @type {boolean|undefined}\n */\n this.responseStream = responseStream ? true : undefined; // toJSON\n\n /**\n * Resolved request type.\n * @type {Type|null}\n */\n this.resolvedRequestType = null;\n\n /**\n * Resolved response type.\n * @type {Type|null}\n */\n this.resolvedResponseType = null;\n\n /**\n * Comment for this method\n * @type {string|null}\n */\n this.comment = comment;\n\n /**\n * Options properly parsed into an object\n */\n this.parsedOptions = parsedOptions;\n}\n\n/**\n * Method descriptor.\n * @interface IMethod\n * @property {string} [type=\"rpc\"] Method type\n * @property {string} requestType Request type\n * @property {string} responseType Response type\n * @property {boolean} [requestStream=false] Whether requests are streamed\n * @property {boolean} [responseStream=false] Whether responses are streamed\n * @property {Object.<string,*>} [options] Method options\n * @property {string} comment Method comments\n * @property {Object.<string,*>} [parsedOptions] Method options properly parsed into an object\n */\n\n/**\n * Constructs a method from a method descriptor.\n * @param {string} name Method name\n * @param {IMethod} json Method descriptor\n * @returns {Method} Created method\n * @throws {TypeError} If arguments are invalid\n */\nMethod.fromJSON = function fromJSON(name, json) {\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment, json.parsedOptions);\n};\n\n/**\n * Converts this method to a method descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMethod} Method descriptor\n */\nMethod.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"type\" , this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\n \"requestType\" , this.requestType,\n \"requestStream\" , this.requestStream,\n \"responseType\" , this.responseType,\n \"responseStream\" , this.responseStream,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined,\n \"parsedOptions\" , this.parsedOptions,\n ]);\n};\n\n/**\n * @override\n */\nMethod.prototype.resolve = function resolve() {\n\n /* istanbul ignore if */\n if (this.resolved)\n return this;\n\n this.resolvedRequestType = this.parent.lookupType(this.requestType);\n this.resolvedResponseType = this.parent.lookupType(this.responseType);\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n","\"use strict\";\nmodule.exports = Namespace;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\n\nvar Field = require(\"./field\"),\n OneOf = require(\"./oneof\"),\n util = require(\"./util\");\n\nvar Type, // cyclic\n Service,\n Enum;\n\n/**\n * Constructs a new namespace instance.\n * @name Namespace\n * @classdesc Reflected namespace.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.<string,*>} [options] Declared options\n */\n\n/**\n * Constructs a namespace from JSON.\n * @memberof Namespace\n * @function\n * @param {string} name Namespace name\n * @param {Object.<string,*>} json JSON object\n * @returns {Namespace} Created namespace\n * @throws {TypeError} If arguments are invalid\n */\nNamespace.fromJSON = function fromJSON(name, json) {\n return new Namespace(name, json.options).addJSON(json.nested);\n};\n\n/**\n * Converts an array of reflection objects to JSON.\n * @memberof Namespace\n * @param {ReflectionObject[]} array Object array\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {Object.<string,*>|undefined} JSON object or `undefined` when array is empty\n */\nfunction arrayToJSON(array, toJSONOptions) {\n if (!(array && array.length))\n return undefined;\n var obj = {};\n for (var i = 0; i < array.length; ++i)\n obj[array[i].name] = array[i].toJSON(toJSONOptions);\n return obj;\n}\n\nNamespace.arrayToJSON = arrayToJSON;\n\n/**\n * Tests if the specified id is reserved.\n * @param {Array.<number[]|string>|undefined} reserved Array of reserved ranges and names\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedId = function isReservedId(reserved, id) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (typeof reserved[i] !== \"string\" && reserved[i][0] <= id && reserved[i][1] > id)\n return true;\n return false;\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {Array.<number[]|string>|undefined} reserved Array of reserved ranges and names\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedName = function isReservedName(reserved, name) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (reserved[i] === name)\n return true;\n return false;\n};\n\n/**\n * Not an actual constructor. Use {@link Namespace} instead.\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports NamespaceBase\n * @extends ReflectionObject\n * @abstract\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.<string,*>} [options] Declared options\n * @see {@link Namespace}\n */\nfunction Namespace(name, options) {\n ReflectionObject.call(this, name, options);\n\n /**\n * Nested objects by name.\n * @type {Object.<string,ReflectionObject>|undefined}\n */\n this.nested = undefined; // toJSON\n\n /**\n * Cached nested objects as an array.\n * @type {ReflectionObject[]|null}\n * @private\n */\n this._nestedArray = null;\n}\n\nfunction clearCache(namespace) {\n namespace._nestedArray = null;\n return namespace;\n}\n\n/**\n * Nested objects of this namespace as an array for iteration.\n * @name NamespaceBase#nestedArray\n * @type {ReflectionObject[]}\n * @readonly\n */\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\n get: function() {\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\n }\n});\n\n/**\n * Namespace descriptor.\n * @interface INamespace\n * @property {Object.<string,*>} [options] Namespace options\n * @property {Object.<string,AnyNestedObject>} [nested] Nested object descriptors\n */\n\n/**\n * Any extension field descriptor.\n * @typedef AnyExtensionField\n * @type {IExtensionField|IExtensionMapField}\n */\n\n/**\n * Any nested object descriptor.\n * @typedef AnyNestedObject\n * @type {IEnum|IType|IService|AnyExtensionField|INamespace}\n */\n// ^ BEWARE: VSCode hangs forever when using more than 5 types (that's why AnyExtensionField exists in the first place)\n\n/**\n * Converts this namespace to a namespace descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {INamespace} Namespace descriptor\n */\nNamespace.prototype.toJSON = function toJSON(toJSONOptions) {\n return util.toObject([\n \"options\" , this.options,\n \"nested\" , arrayToJSON(this.nestedArray, toJSONOptions)\n ]);\n};\n\n/**\n * Adds nested objects to this namespace from nested object descriptors.\n * @param {Object.<string,AnyNestedObject>} nestedJson Any nested object descriptors\n * @returns {Namespace} `this`\n */\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\n var ns = this;\n /* istanbul ignore else */\n if (nestedJson) {\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\n nested = nestedJson[names[i]];\n ns.add( // most to least likely\n ( nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : nested.id !== undefined\n ? Field.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n }\n return this;\n};\n\n/**\n * Gets the nested object of the specified name.\n * @param {string} name Nested object name\n * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist\n */\nNamespace.prototype.get = function get(name) {\n return this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Gets the values of the nested {@link Enum|enum} of the specified name.\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\n * @param {string} name Nested enum name\n * @returns {Object.<string,number>} Enum values\n * @throws {Error} If there is no such enum\n */\nNamespace.prototype.getEnum = function getEnum(name) {\n if (this.nested && this.nested[name] instanceof Enum)\n return this.nested[name].values;\n throw Error(\"no such enum: \" + name);\n};\n\n/**\n * Adds a nested object to this namespace.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name\n */\nNamespace.prototype.add = function add(object) {\n\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace || object instanceof OneOf))\n throw TypeError(\"object must be a valid nested object\");\n\n if (!this.nested)\n this.nested = {};\n else {\n var prev = this.get(object.name);\n if (prev) {\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\n // replace plain namespace but keep existing nested elements and options\n var nested = prev.nestedArray;\n for (var i = 0; i < nested.length; ++i)\n object.add(nested[i]);\n this.remove(prev);\n if (!this.nested)\n this.nested = {};\n object.setOptions(prev.options, true);\n\n } else\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n }\n }\n this.nested[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n};\n\n/**\n * Removes a nested object from this namespace.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this namespace\n */\nNamespace.prototype.remove = function remove(object) {\n\n if (!(object instanceof ReflectionObject))\n throw TypeError(\"object must be a ReflectionObject\");\n if (object.parent !== this)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.nested[object.name];\n if (!Object.keys(this.nested).length)\n this.nested = undefined;\n\n object.onRemove(this);\n return clearCache(this);\n};\n\n/**\n * Defines additial namespaces within this one if not yet existing.\n * @param {string|string[]} path Path to create\n * @param {*} [json] Nested types to create from JSON\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\n */\nNamespace.prototype.define = function define(path, json) {\n\n if (util.isString(path))\n path = path.split(\".\");\n else if (!Array.isArray(path))\n throw TypeError(\"illegal path\");\n if (path && path.length && path[0] === \"\")\n throw Error(\"path must be relative\");\n\n var ptr = this;\n while (path.length > 0) {\n var part = path.shift();\n if (ptr.nested && ptr.nested[part]) {\n ptr = ptr.nested[part];\n if (!(ptr instanceof Namespace))\n throw Error(\"path conflicts with non-namespace objects\");\n } else\n ptr.add(ptr = new Namespace(part));\n }\n if (json)\n ptr.addJSON(json);\n return ptr;\n};\n\n/**\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\n * @returns {Namespace} `this`\n */\nNamespace.prototype.resolveAll = function resolveAll() {\n var nested = this.nestedArray, i = 0;\n while (i < nested.length)\n if (nested[i] instanceof Namespace)\n nested[i++].resolveAll();\n else\n nested[i++].resolve();\n return this.resolve();\n};\n\n/**\n * Recursively looks up the reflection object matching the specified path in the scope of this namespace.\n * @param {string|string[]} path Path to look up\n * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n */\nNamespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) {\n\n /* istanbul ignore next */\n if (typeof filterTypes === \"boolean\") {\n parentAlreadyChecked = filterTypes;\n filterTypes = undefined;\n } else if (filterTypes && !Array.isArray(filterTypes))\n filterTypes = [ filterTypes ];\n\n if (util.isString(path) && path.length) {\n if (path === \".\")\n return this.root;\n path = path.split(\".\");\n } else if (!path.length)\n return this;\n\n // Start at root if path is absolute\n if (path[0] === \"\")\n return this.root.lookup(path.slice(1), filterTypes);\n\n // Test if the first part matches any nested object, and if so, traverse if path contains more\n var found = this.get(path[0]);\n if (found) {\n if (path.length === 1) {\n if (!filterTypes || filterTypes.indexOf(found.constructor) > -1)\n return found;\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true)))\n return found;\n\n // Otherwise try each nested namespace\n } else\n for (var i = 0; i < this.nestedArray.length; ++i)\n if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true)))\n return found;\n\n // If there hasn't been a match, try again at the parent\n if (this.parent === null || parentAlreadyChecked)\n return null;\n return this.parent.lookup(path, filterTypes);\n};\n\n/**\n * Looks up the reflection object at the specified path, relative to this namespace.\n * @name NamespaceBase#lookup\n * @function\n * @param {string|string[]} path Path to look up\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n * @variation 2\n */\n// lookup(path: string, [parentAlreadyChecked: boolean])\n\n/**\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type\n * @throws {Error} If `path` does not point to a type\n */\nNamespace.prototype.lookupType = function lookupType(path) {\n var found = this.lookup(path, [ Type ]);\n if (!found)\n throw Error(\"no such type: \" + path);\n return found;\n};\n\n/**\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Enum} Looked up enum\n * @throws {Error} If `path` does not point to an enum\n */\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\n var found = this.lookup(path, [ Enum ]);\n if (!found)\n throw Error(\"no such Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type or enum\n * @throws {Error} If `path` does not point to a type or enum\n */\nNamespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) {\n var found = this.lookup(path, [ Type, Enum ]);\n if (!found)\n throw Error(\"no such Type or Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Service} Looked up service\n * @throws {Error} If `path` does not point to a service\n */\nNamespace.prototype.lookupService = function lookupService(path) {\n var found = this.lookup(path, [ Service ]);\n if (!found)\n throw Error(\"no such Service '\" + path + \"' in \" + this);\n return found;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nNamespace._configure = function(Type_, Service_, Enum_) {\n Type = Type_;\n Service = Service_;\n Enum = Enum_;\n};\n","\"use strict\";\nmodule.exports = ReflectionObject;\n\nReflectionObject.className = \"ReflectionObject\";\n\nvar util = require(\"./util\");\n\nvar Root; // cyclic\n\n/**\n * Constructs a new reflection object instance.\n * @classdesc Base class of all reflection objects.\n * @constructor\n * @param {string} name Object name\n * @param {Object.<string,*>} [options] Declared options\n * @abstract\n */\nfunction ReflectionObject(name, options) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (options && !util.isObject(options))\n throw TypeError(\"options must be an object\");\n\n /**\n * Options.\n * @type {Object.<string,*>|undefined}\n */\n this.options = options; // toJSON\n\n /**\n * Parsed Options.\n * @type {Array.<Object.<string,*>>|undefined}\n */\n this.parsedOptions = null;\n\n /**\n * Unique name within its namespace.\n * @type {string}\n */\n this.name = name;\n\n /**\n * Parent namespace.\n * @type {Namespace|null}\n */\n this.parent = null;\n\n /**\n * Whether already resolved or not.\n * @type {boolean}\n */\n this.resolved = false;\n\n /**\n * Comment text, if any.\n * @type {string|null}\n */\n this.comment = null;\n\n /**\n * Defining file name.\n * @type {string|null}\n */\n this.filename = null;\n}\n\nObject.defineProperties(ReflectionObject.prototype, {\n\n /**\n * Reference to the root namespace.\n * @name ReflectionObject#root\n * @type {Root}\n * @readonly\n */\n root: {\n get: function() {\n var ptr = this;\n while (ptr.parent !== null)\n ptr = ptr.parent;\n return ptr;\n }\n },\n\n /**\n * Full name including leading dot.\n * @name ReflectionObject#fullName\n * @type {string}\n * @readonly\n */\n fullName: {\n get: function() {\n var path = [ this.name ],\n ptr = this.parent;\n while (ptr) {\n path.unshift(ptr.name);\n ptr = ptr.parent;\n }\n return path.join(\".\");\n }\n }\n});\n\n/**\n * Converts this reflection object to its descriptor representation.\n * @returns {Object.<string,*>} Descriptor\n * @abstract\n */\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\n throw Error(); // not implemented, shouldn't happen\n};\n\n/**\n * Called when this object is added to a parent.\n * @param {ReflectionObject} parent Parent added to\n * @returns {undefined}\n */\nReflectionObject.prototype.onAdd = function onAdd(parent) {\n if (this.parent && this.parent !== parent)\n this.parent.remove(this);\n this.parent = parent;\n this.resolved = false;\n var root = parent.root;\n if (root instanceof Root)\n root._handleAdd(this);\n};\n\n/**\n * Called when this object is removed from a parent.\n * @param {ReflectionObject} parent Parent removed from\n * @returns {undefined}\n */\nReflectionObject.prototype.onRemove = function onRemove(parent) {\n var root = parent.root;\n if (root instanceof Root)\n root._handleRemove(this);\n this.parent = null;\n this.resolved = false;\n};\n\n/**\n * Resolves this objects type references.\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n if (this.root instanceof Root)\n this.resolved = true; // only if part of a root\n return this;\n};\n\n/**\n * Gets an option value.\n * @param {string} name Option name\n * @returns {*} Option value or `undefined` if not set\n */\nReflectionObject.prototype.getOption = function getOption(name) {\n if (this.options)\n return this.options[name];\n return undefined;\n};\n\n/**\n * Sets an option.\n * @param {string} name Option name\n * @param {*} value Option value\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (!ifNotSet || !this.options || this.options[name] === undefined)\n (this.options || (this.options = {}))[name] = value;\n return this;\n};\n\n/**\n * Sets a parsed option.\n * @param {string} name parsed Option name\n * @param {*} value Option value\n * @param {string} propName dot '.' delimited full path of property within the option to set. if undefined\\empty, will add a new option with that value\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setParsedOption = function setParsedOption(name, value, propName) {\n if (!this.parsedOptions) {\n this.parsedOptions = [];\n }\n var parsedOptions = this.parsedOptions;\n if (propName) {\n // If setting a sub property of an option then try to merge it\n // with an existing option\n var opt = parsedOptions.find(function (opt) {\n return Object.prototype.hasOwnProperty.call(opt, name);\n });\n if (opt) {\n // If we found an existing option - just merge the property value\n var newValue = opt[name];\n util.setProperty(newValue, propName, value);\n } else {\n // otherwise, create a new option, set it's property and add it to the list\n opt = {};\n opt[name] = util.setProperty({}, propName, value);\n parsedOptions.push(opt);\n }\n } else {\n // Always create a new option when setting the value of the option itself\n var newOpt = {};\n newOpt[name] = value;\n parsedOptions.push(newOpt);\n }\n return this;\n};\n\n/**\n * Sets multiple options.\n * @param {Object.<string,*>} options Options to set\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\n if (options)\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\n this.setOption(keys[i], options[keys[i]], ifNotSet);\n return this;\n};\n\n/**\n * Converts this instance to its string representation.\n * @returns {string} Class name[, space, full name]\n */\nReflectionObject.prototype.toString = function toString() {\n var className = this.constructor.className,\n fullName = this.fullName;\n if (fullName.length)\n return className + \" \" + fullName;\n return className;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nReflectionObject._configure = function(Root_) {\n Root = Root_;\n};\n","\"use strict\";\nmodule.exports = OneOf;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\n\nvar Field = require(\"./field\"),\n util = require(\"./util\");\n\n/**\n * Constructs a new oneof instance.\n * @classdesc Reflected oneof.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Oneof name\n * @param {string[]|Object.<string,*>} [fieldNames] Field names\n * @param {Object.<string,*>} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction OneOf(name, fieldNames, options, comment) {\n if (!Array.isArray(fieldNames)) {\n options = fieldNames;\n fieldNames = undefined;\n }\n ReflectionObject.call(this, name, options);\n\n /* istanbul ignore if */\n if (!(fieldNames === undefined || Array.isArray(fieldNames)))\n throw TypeError(\"fieldNames must be an Array\");\n\n /**\n * Field names that belong to this oneof.\n * @type {string[]}\n */\n this.oneof = fieldNames || []; // toJSON, marker\n\n /**\n * Fields that belong to this oneof as an array for iteration.\n * @type {Field[]}\n * @readonly\n */\n this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Oneof descriptor.\n * @interface IOneOf\n * @property {Array.<string>} oneof Oneof field names\n * @property {Object.<string,*>} [options] Oneof options\n */\n\n/**\n * Constructs a oneof from a oneof descriptor.\n * @param {string} name Oneof name\n * @param {IOneOf} json Oneof descriptor\n * @returns {OneOf} Created oneof\n * @throws {TypeError} If arguments are invalid\n */\nOneOf.fromJSON = function fromJSON(name, json) {\n return new OneOf(name, json.oneof, json.options, json.comment);\n};\n\n/**\n * Converts this oneof to a oneof descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IOneOf} Oneof descriptor\n */\nOneOf.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"oneof\" , this.oneof,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Adds the fields of the specified oneof to the parent if not already done so.\n * @param {OneOf} oneof The oneof\n * @returns {undefined}\n * @inner\n * @ignore\n */\nfunction addFieldsToParent(oneof) {\n if (oneof.parent)\n for (var i = 0; i < oneof.fieldsArray.length; ++i)\n if (!oneof.fieldsArray[i].parent)\n oneof.parent.add(oneof.fieldsArray[i]);\n}\n\n/**\n * Adds a field to this oneof and removes it from its current parent, if any.\n * @param {Field} field Field to add\n * @returns {OneOf} `this`\n */\nOneOf.prototype.add = function add(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n if (field.parent && field.parent !== this.parent)\n field.parent.remove(field);\n this.oneof.push(field.name);\n this.fieldsArray.push(field);\n field.partOf = this; // field.parent remains null\n addFieldsToParent(this);\n return this;\n};\n\n/**\n * Removes a field from this oneof and puts it back to the oneof's parent.\n * @param {Field} field Field to remove\n * @returns {OneOf} `this`\n */\nOneOf.prototype.remove = function remove(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n var index = this.fieldsArray.indexOf(field);\n\n /* istanbul ignore if */\n if (index < 0)\n throw Error(field + \" is not a member of \" + this);\n\n this.fieldsArray.splice(index, 1);\n index = this.oneof.indexOf(field.name);\n\n /* istanbul ignore else */\n if (index > -1) // theoretical\n this.oneof.splice(index, 1);\n\n field.partOf = null;\n return this;\n};\n\n/**\n * @override\n */\nOneOf.prototype.onAdd = function onAdd(parent) {\n ReflectionObject.prototype.onAdd.call(this, parent);\n var self = this;\n // Collect present fields\n for (var i = 0; i < this.oneof.length; ++i) {\n var field = parent.get(this.oneof[i]);\n if (field && !field.partOf) {\n field.partOf = self;\n self.fieldsArray.push(field);\n }\n }\n // Add not yet present fields\n addFieldsToParent(this);\n};\n\n/**\n * @override\n */\nOneOf.prototype.onRemove = function onRemove(parent) {\n for (var i = 0, field; i < this.fieldsArray.length; ++i)\n if ((field = this.fieldsArray[i]).parent)\n field.parent.remove(field);\n ReflectionObject.prototype.onRemove.call(this, parent);\n};\n\n/**\n * Decorator function as returned by {@link OneOf.d} (TypeScript).\n * @typedef OneOfDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} oneofName OneOf name\n * @returns {undefined}\n */\n\n/**\n * OneOf decorator (TypeScript).\n * @function\n * @param {...string} fieldNames Field names\n * @returns {OneOfDecorator} Decorator function\n * @template T extends string\n */\nOneOf.d = function decorateOneOf() {\n var fieldNames = new Array(arguments.length),\n index = 0;\n while (index < arguments.length)\n fieldNames[index] = arguments[index++];\n return function oneOfDecorator(prototype, oneofName) {\n util.decorateType(prototype.constructor)\n .add(new OneOf(oneofName, fieldNames));\n Object.defineProperty(prototype, oneofName, {\n get: util.oneOfGetter(fieldNames),\n set: util.oneOfSetter(fieldNames)\n });\n };\n};\n","\"use strict\";\nmodule.exports = parse;\n\nparse.filename = null;\nparse.defaults = { keepCase: false };\n\nvar tokenize = require(\"./tokenize\"),\n Root = require(\"./root\"),\n Type = require(\"./type\"),\n Field = require(\"./field\"),\n MapField = require(\"./mapfield\"),\n OneOf = require(\"./oneof\"),\n Enum = require(\"./enum\"),\n Service = require(\"./service\"),\n Method = require(\"./method\"),\n types = require(\"./types\"),\n util = require(\"./util\");\n\nvar base10Re = /^[1-9][0-9]*$/,\n base10NegRe = /^-?[1-9][0-9]*$/,\n base16Re = /^0[x][0-9a-fA-F]+$/,\n base16NegRe = /^-?0[x][0-9a-fA-F]+$/,\n base8Re = /^0[0-7]+$/,\n base8NegRe = /^-?0[0-7]+$/,\n numberRe = /^(?![eE])[0-9]*(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,\n nameRe = /^[a-zA-Z_][a-zA-Z_0-9]*$/,\n typeRefRe = /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,\n fqTypeRefRe = /^(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;\n\n/**\n * Result object returned from {@link parse}.\n * @interface IParserResult\n * @property {string|undefined} package Package name, if declared\n * @property {string[]|undefined} imports Imports, if any\n * @property {string[]|undefined} weakImports Weak imports, if any\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\n * @property {Root} root Populated root instance\n */\n\n/**\n * Options modifying the behavior of {@link parse}.\n * @interface IParseOptions\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\n * @property {boolean} [alternateCommentMode=false] Recognize double-slash comments in addition to doc-block comments.\n * @property {boolean} [preferTrailingComment=false] Use trailing comment when both leading comment and trailing comment exist.\n */\n\n/**\n * Options modifying the behavior of JSON serialization.\n * @interface IToJSONOptions\n * @property {boolean} [keepComments=false] Serializes comments.\n */\n\n/**\n * Parses the given .proto source and returns an object with the parsed contents.\n * @param {string} source Source contents\n * @param {Root} root Root to populate\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {IParserResult} Parser result\n * @property {string} filename=null Currently processing file name for error reporting, if known\n * @property {IParseOptions} defaults Default {@link IParseOptions}\n */\nfunction parse(source, root, options) {\n /* eslint-disable callback-return */\n if (!(root instanceof Root)) {\n options = root;\n root = new Root();\n }\n if (!options)\n options = parse.defaults;\n\n var preferTrailingComment = options.preferTrailingComment || false;\n var tn = tokenize(source, options.alternateCommentMode || false),\n next = tn.next,\n push = tn.push,\n peek = tn.peek,\n skip = tn.skip,\n cmnt = tn.cmnt;\n\n var head = true,\n pkg,\n imports,\n weakImports,\n syntax,\n isProto3 = false;\n\n var ptr = root;\n\n var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase;\n\n /* istanbul ignore next */\n function illegal(token, name, insideTryCatch) {\n var filename = parse.filename;\n if (!insideTryCatch)\n parse.filename = null;\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line + \")\");\n }\n\n function readString() {\n var values = [],\n token;\n do {\n /* istanbul ignore if */\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\n throw illegal(token);\n\n values.push(next());\n skip(token);\n token = peek();\n } while (token === \"\\\"\" || token === \"'\");\n return values.join(\"\");\n }\n\n function readValue(acceptTypeRef) {\n var token = next();\n switch (token) {\n case \"'\":\n case \"\\\"\":\n push(token);\n return readString();\n case \"true\": case \"TRUE\":\n return true;\n case \"false\": case \"FALSE\":\n return false;\n }\n try {\n return parseNumber(token, /* insideTryCatch */ true);\n } catch (e) {\n\n /* istanbul ignore else */\n if (acceptTypeRef && typeRefRe.test(token))\n return token;\n\n /* istanbul ignore next */\n throw illegal(token, \"value\");\n }\n }\n\n function readRanges(target, acceptStrings) {\n var token, start;\n do {\n if (acceptStrings && ((token = peek()) === \"\\\"\" || token === \"'\"))\n target.push(readString());\n else\n target.push([ start = parseId(next()), skip(\"to\", true) ? parseId(next()) : start ]);\n } while (skip(\",\", true));\n skip(\";\");\n }\n\n function parseNumber(token, insideTryCatch) {\n var sign = 1;\n if (token.charAt(0) === \"-\") {\n sign = -1;\n token = token.substring(1);\n }\n switch (token) {\n case \"inf\": case \"INF\": case \"Inf\":\n return sign * Infinity;\n case \"nan\": case \"NAN\": case \"Nan\": case \"NaN\":\n return NaN;\n case \"0\":\n return 0;\n }\n if (base10Re.test(token))\n return sign * parseInt(token, 10);\n if (base16Re.test(token))\n return sign * parseInt(token, 16);\n if (base8Re.test(token))\n return sign * parseInt(token, 8);\n\n /* istanbul ignore else */\n if (numberRe.test(token))\n return sign * parseFloat(token);\n\n /* istanbul ignore next */\n throw illegal(token, \"number\", insideTryCatch);\n }\n\n function parseId(token, acceptNegative) {\n switch (token) {\n case \"max\": case \"MAX\": case \"Max\":\n return 536870911;\n case \"0\":\n return 0;\n }\n\n /* istanbul ignore if */\n if (!acceptNegative && token.charAt(0) === \"-\")\n throw illegal(token, \"id\");\n\n if (base10NegRe.test(token))\n return parseInt(token, 10);\n if (base16NegRe.test(token))\n return parseInt(token, 16);\n\n /* istanbul ignore else */\n if (base8NegRe.test(token))\n return parseInt(token, 8);\n\n /* istanbul ignore next */\n throw illegal(token, \"id\");\n }\n\n function parsePackage() {\n\n /* istanbul ignore if */\n if (pkg !== undefined)\n throw illegal(\"package\");\n\n pkg = next();\n\n /* istanbul ignore if */\n if (!typeRefRe.test(pkg))\n throw illegal(pkg, \"name\");\n\n ptr = ptr.define(pkg);\n skip(\";\");\n }\n\n function parseImport() {\n var token = peek();\n var whichImports;\n switch (token) {\n case \"weak\":\n whichImports = weakImports || (weakImports = []);\n next();\n break;\n case \"public\":\n next();\n // eslint-disable-line no-fallthrough\n default:\n whichImports = imports || (imports = []);\n break;\n }\n token = readString();\n skip(\";\");\n whichImports.push(token);\n }\n\n function parseSyntax() {\n skip(\"=\");\n syntax = readString();\n isProto3 = syntax === \"proto3\";\n\n /* istanbul ignore if */\n if (!isProto3 && syntax !== \"proto2\")\n throw illegal(syntax, \"syntax\");\n\n skip(\";\");\n }\n\n function parseCommon(parent, token) {\n switch (token) {\n\n case \"option\":\n parseOption(parent, token);\n skip(\";\");\n return true;\n\n case \"message\":\n parseType(parent, token);\n return true;\n\n case \"enum\":\n parseEnum(parent, token);\n return true;\n\n case \"service\":\n parseService(parent, token);\n return true;\n\n case \"extend\":\n parseExtension(parent, token);\n return true;\n }\n return false;\n }\n\n function ifBlock(obj, fnIf, fnElse) {\n var trailingLine = tn.line;\n if (obj) {\n if(typeof obj.comment !== \"string\") {\n obj.comment = cmnt(); // try block-type comment\n }\n obj.filename = parse.filename;\n }\n if (skip(\"{\", true)) {\n var token;\n while ((token = next()) !== \"}\")\n fnIf(token);\n skip(\";\", true);\n } else {\n if (fnElse)\n fnElse();\n skip(\";\");\n if (obj && (typeof obj.comment !== \"string\" || preferTrailingComment))\n obj.comment = cmnt(trailingLine) || obj.comment; // try line-type comment\n }\n }\n\n function parseType(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"type name\");\n\n var type = new Type(token);\n ifBlock(type, function parseType_block(token) {\n if (parseCommon(type, token))\n return;\n\n switch (token) {\n\n case \"map\":\n parseMapField(type, token);\n break;\n\n case \"required\":\n case \"repeated\":\n parseField(type, token);\n break;\n\n case \"optional\":\n /* istanbul ignore if */\n if (isProto3) {\n parseField(type, \"proto3_optional\");\n } else {\n parseField(type, \"optional\");\n }\n break;\n\n case \"oneof\":\n parseOneOf(type, token);\n break;\n\n case \"extensions\":\n readRanges(type.extensions || (type.extensions = []));\n break;\n\n case \"reserved\":\n readRanges(type.reserved || (type.reserved = []), true);\n break;\n\n default:\n /* istanbul ignore if */\n if (!isProto3 || !typeRefRe.test(token))\n throw illegal(token);\n\n push(token);\n parseField(type, \"optional\");\n break;\n }\n });\n parent.add(type);\n }\n\n function parseField(parent, rule, extend) {\n var type = next();\n if (type === \"group\") {\n parseGroup(parent, rule);\n return;\n }\n\n /* istanbul ignore if */\n if (!typeRefRe.test(type))\n throw illegal(type, \"type\");\n\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n name = applyCase(name);\n skip(\"=\");\n\n var field = new Field(name, parseId(next()), type, rule, extend);\n ifBlock(field, function parseField_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(field, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseField_line() {\n parseInlineOptions(field);\n });\n\n if (rule === \"proto3_optional\") {\n // for proto3 optional fields, we create a single-member Oneof to mimic \"optional\" behavior\n var oneof = new OneOf(\"_\" + name);\n field.setOption(\"proto3_optional\", true);\n oneof.add(field);\n parent.add(oneof);\n } else {\n parent.add(field);\n }\n\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\n // parsing proto2 descriptors without the option, where applicable. This must be done for\n // all known packable types and anything that could be an enum (= is not a basic type).\n if (!isProto3 && field.repeated && (types.packed[type] !== undefined || types.basic[type] === undefined))\n field.setOption(\"packed\", false, /* ifNotSet */ true);\n }\n\n function parseGroup(parent, rule) {\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n var fieldName = util.lcFirst(name);\n if (name === fieldName)\n name = util.ucFirst(name);\n skip(\"=\");\n var id = parseId(next());\n var type = new Type(name);\n type.group = true;\n var field = new Field(fieldName, id, name, rule);\n field.filename = parse.filename;\n ifBlock(type, function parseGroup_block(token) {\n switch (token) {\n\n case \"option\":\n parseOption(type, token);\n skip(\";\");\n break;\n\n case \"required\":\n case \"repeated\":\n parseField(type, token);\n break;\n\n case \"optional\":\n /* istanbul ignore if */\n if (isProto3) {\n parseField(type, \"proto3_optional\");\n } else {\n parseField(type, \"optional\");\n }\n break;\n\n /* istanbul ignore next */\n default:\n throw illegal(token); // there are no groups with proto3 semantics\n }\n });\n parent.add(type)\n .add(field);\n }\n\n function parseMapField(parent) {\n skip(\"<\");\n var keyType = next();\n\n /* istanbul ignore if */\n if (types.mapKey[keyType] === undefined)\n throw illegal(keyType, \"type\");\n\n skip(\",\");\n var valueType = next();\n\n /* istanbul ignore if */\n if (!typeRefRe.test(valueType))\n throw illegal(valueType, \"type\");\n\n skip(\">\");\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n skip(\"=\");\n var field = new MapField(applyCase(name), parseId(next()), keyType, valueType);\n ifBlock(field, function parseMapField_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(field, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseMapField_line() {\n parseInlineOptions(field);\n });\n parent.add(field);\n }\n\n function parseOneOf(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var oneof = new OneOf(applyCase(token));\n ifBlock(oneof, function parseOneOf_block(token) {\n if (token === \"option\") {\n parseOption(oneof, token);\n skip(\";\");\n } else {\n push(token);\n parseField(oneof, \"optional\");\n }\n });\n parent.add(oneof);\n }\n\n function parseEnum(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var enm = new Enum(token);\n ifBlock(enm, function parseEnum_block(token) {\n switch(token) {\n case \"option\":\n parseOption(enm, token);\n skip(\";\");\n break;\n\n case \"reserved\":\n readRanges(enm.reserved || (enm.reserved = []), true);\n break;\n\n default:\n parseEnumValue(enm, token);\n }\n });\n parent.add(enm);\n }\n\n function parseEnumValue(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token))\n throw illegal(token, \"name\");\n\n skip(\"=\");\n var value = parseId(next(), true),\n dummy = {};\n ifBlock(dummy, function parseEnumValue_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(dummy, token); // skip\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseEnumValue_line() {\n parseInlineOptions(dummy); // skip\n });\n parent.add(token, value, dummy.comment);\n }\n\n function parseOption(parent, token) {\n var isCustom = skip(\"(\", true);\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var name = token;\n var option = name;\n var propName;\n\n if (isCustom) {\n skip(\")\");\n name = \"(\" + name + \")\";\n option = name;\n token = peek();\n if (fqTypeRefRe.test(token)) {\n propName = token.substr(1); //remove '.' before property name\n name += token;\n next();\n }\n }\n skip(\"=\");\n var optionValue = parseOptionValue(parent, name);\n setParsedOption(parent, option, optionValue, propName);\n }\n\n function parseOptionValue(parent, name) {\n if (skip(\"{\", true)) { // { a: \"foo\" b { c: \"bar\" } }\n var result = {};\n while (!skip(\"}\", true)) {\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var value;\n var propName = token;\n if (peek() === \"{\")\n value = parseOptionValue(parent, name + \".\" + token);\n else {\n skip(\":\");\n if (peek() === \"{\")\n value = parseOptionValue(parent, name + \".\" + token);\n else {\n value = readValue(true);\n setOption(parent, name + \".\" + token, value);\n }\n }\n var prevValue = result[propName];\n if (prevValue)\n value = [].concat(prevValue).concat(value);\n result[propName] = value;\n skip(\",\", true);\n }\n return result;\n }\n\n var simpleValue = readValue(true);\n setOption(parent, name, simpleValue);\n return simpleValue;\n // Does not enforce a delimiter to be universal\n }\n\n function setOption(parent, name, value) {\n if (parent.setOption)\n parent.setOption(name, value);\n }\n\n function setParsedOption(parent, name, value, propName) {\n if (parent.setParsedOption)\n parent.setParsedOption(name, value, propName);\n }\n\n function parseInlineOptions(parent) {\n if (skip(\"[\", true)) {\n do {\n parseOption(parent, \"option\");\n } while (skip(\",\", true));\n skip(\"]\");\n }\n return parent;\n }\n\n function parseService(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"service name\");\n\n var service = new Service(token);\n ifBlock(service, function parseService_block(token) {\n if (parseCommon(service, token))\n return;\n\n /* istanbul ignore else */\n if (token === \"rpc\")\n parseMethod(service, token);\n else\n throw illegal(token);\n });\n parent.add(service);\n }\n\n function parseMethod(parent, token) {\n // Get the comment of the preceding line now (if one exists) in case the\n // method is defined across multiple lines.\n var commentText = cmnt();\n\n var type = token;\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var name = token,\n requestType, requestStream,\n responseType, responseStream;\n\n skip(\"(\");\n if (skip(\"stream\", true))\n requestStream = true;\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token);\n\n requestType = token;\n skip(\")\"); skip(\"returns\"); skip(\"(\");\n if (skip(\"stream\", true))\n responseStream = true;\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token);\n\n responseType = token;\n skip(\")\");\n\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream);\n method.comment = commentText;\n ifBlock(method, function parseMethod_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(method, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n });\n parent.add(method);\n }\n\n function parseExtension(parent, token) {\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token, \"reference\");\n\n var reference = token;\n ifBlock(null, function parseExtension_block(token) {\n switch (token) {\n\n case \"required\":\n case \"repeated\":\n parseField(parent, token, reference);\n break;\n\n case \"optional\":\n /* istanbul ignore if */\n if (isProto3) {\n parseField(parent, \"proto3_optional\", reference);\n } else {\n parseField(parent, \"optional\", reference);\n }\n break;\n\n default:\n /* istanbul ignore if */\n if (!isProto3 || !typeRefRe.test(token))\n throw illegal(token);\n push(token);\n parseField(parent, \"optional\", reference);\n break;\n }\n });\n }\n\n var token;\n while ((token = next()) !== null) {\n switch (token) {\n\n case \"package\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parsePackage();\n break;\n\n case \"import\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parseImport();\n break;\n\n case \"syntax\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parseSyntax();\n break;\n\n case \"option\":\n\n parseOption(ptr, token);\n skip(\";\");\n break;\n\n default:\n\n /* istanbul ignore else */\n if (parseCommon(ptr, token)) {\n head = false;\n continue;\n }\n\n /* istanbul ignore next */\n throw illegal(token);\n }\n }\n\n parse.filename = null;\n return {\n \"package\" : pkg,\n \"imports\" : imports,\n weakImports : weakImports,\n syntax : syntax,\n root : root\n };\n}\n\n/**\n * Parses the given .proto source and returns an object with the parsed contents.\n * @name parse\n * @function\n * @param {string} source Source contents\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {IParserResult} Parser result\n * @property {string} filename=null Currently processing file name for error reporting, if known\n * @property {IParseOptions} defaults Default {@link IParseOptions}\n * @variation 2\n */\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Root;\n\n// extends Namespace\nvar Namespace = require(\"./namespace\");\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\n\nvar Field = require(\"./field\"),\n Enum = require(\"./enum\"),\n OneOf = require(\"./oneof\"),\n util = require(\"./util\");\n\nvar Type, // cyclic\n parse, // might be excluded\n common; // \"\n\n/**\n * Constructs a new root namespace instance.\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\n * @extends NamespaceBase\n * @constructor\n * @param {Object.<string,*>} [options] Top level options\n */\nfunction Root(options) {\n Namespace.call(this, \"\", options);\n\n /**\n * Deferred extension fields.\n * @type {Field[]}\n */\n this.deferred = [];\n\n /**\n * Resolved file names of loaded files.\n * @type {string[]}\n */\n this.files = [];\n}\n\n/**\n * Loads a namespace descriptor into a root namespace.\n * @param {INamespace} json Nameespace descriptor\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\n * @returns {Root} Root namespace\n */\nRoot.fromJSON = function fromJSON(json, root) {\n if (!root)\n root = new Root();\n if (json.options)\n root.setOptions(json.options);\n return root.addJSON(json.nested);\n};\n\n/**\n * Resolves the path of an imported file, relative to the importing origin.\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\n * @function\n * @param {string} origin The file name of the importing file\n * @param {string} target The file name being imported\n * @returns {string|null} Resolved path to `target` or `null` to skip the file\n */\nRoot.prototype.resolvePath = util.path.resolve;\n\n/**\n * Fetch content from file path or url\n * This method exists so you can override it with your own logic.\n * @function\n * @param {string} path File path or url\n * @param {FetchCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.fetch = util.fetch;\n\n// A symbol-like function to safely signal synchronous loading\n/* istanbul ignore next */\nfunction SYNC() {} // eslint-disable-line no-empty-function\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} options Parse options\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.load = function load(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = undefined;\n }\n var self = this;\n if (!callback)\n return util.asPromise(load, self, filename, options);\n\n var sync = callback === SYNC; // undocumented\n\n // Finishes loading by calling the callback (exactly once)\n function finish(err, root) {\n /* istanbul ignore if */\n if (!callback)\n return;\n var cb = callback;\n callback = null;\n if (sync)\n throw err;\n cb(err, root);\n }\n\n // Bundled definition existence checking\n function getBundledFileName(filename) {\n var idx = filename.lastIndexOf(\"google/protobuf/\");\n if (idx > -1) {\n var altname = filename.substring(idx);\n if (altname in common) return altname;\n }\n return null;\n }\n\n // Processes a single file\n function process(filename, source) {\n try {\n if (util.isString(source) && source.charAt(0) === \"{\")\n source = JSON.parse(source);\n if (!util.isString(source))\n self.setOptions(source.options).addJSON(source.nested);\n else {\n parse.filename = filename;\n var parsed = parse(source, self, options),\n resolved,\n i = 0;\n if (parsed.imports)\n for (; i < parsed.imports.length; ++i)\n if (resolved = getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i]))\n fetch(resolved);\n if (parsed.weakImports)\n for (i = 0; i < parsed.weakImports.length; ++i)\n if (resolved = getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i]))\n fetch(resolved, true);\n }\n } catch (err) {\n finish(err);\n }\n if (!sync && !queued)\n finish(null, self); // only once anyway\n }\n\n // Fetches a single file\n function fetch(filename, weak) {\n\n // Skip if already loaded / attempted\n if (self.files.indexOf(filename) > -1)\n return;\n self.files.push(filename);\n\n // Shortcut bundled definitions\n if (filename in common) {\n if (sync)\n process(filename, common[filename]);\n else {\n ++queued;\n setTimeout(function() {\n --queued;\n process(filename, common[filename]);\n });\n }\n return;\n }\n\n // Otherwise fetch from disk or network\n if (sync) {\n var source;\n try {\n source = util.fs.readFileSync(filename).toString(\"utf8\");\n } catch (err) {\n if (!weak)\n finish(err);\n return;\n }\n process(filename, source);\n } else {\n ++queued;\n self.fetch(filename, function(err, source) {\n --queued;\n /* istanbul ignore if */\n if (!callback)\n return; // terminated meanwhile\n if (err) {\n /* istanbul ignore else */\n if (!weak)\n finish(err);\n else if (!queued) // can't be covered reliably\n finish(null, self);\n return;\n }\n process(filename, source);\n });\n }\n }\n var queued = 0;\n\n // Assembling the root namespace doesn't require working type\n // references anymore, so we can load everything in parallel\n if (util.isString(filename))\n filename = [ filename ];\n for (var i = 0, resolved; i < filename.length; ++i)\n if (resolved = self.resolvePath(\"\", filename[i]))\n fetch(resolved);\n\n if (sync)\n return self;\n if (!queued)\n finish(null, self);\n return undefined;\n};\n// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Promise<Root>} Promise\n * @variation 3\n */\n// function load(filename:string, [options:IParseOptions]):Promise<Root>\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\n * @function Root#loadSync\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n */\nRoot.prototype.loadSync = function loadSync(filename, options) {\n if (!util.isNode)\n throw Error(\"not supported\");\n return this.load(filename, options, SYNC);\n};\n\n/**\n * @override\n */\nRoot.prototype.resolveAll = function resolveAll() {\n if (this.deferred.length)\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\n }).join(\", \"));\n return Namespace.prototype.resolveAll.call(this);\n};\n\n// only uppercased (and thus conflict-free) children are exposed, see below\nvar exposeRe = /^[A-Z]/;\n\n/**\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\n * @param {Root} root Root instance\n * @param {Field} field Declaring extension field witin the declaring type\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\n * @inner\n * @ignore\n */\nfunction tryHandleExtension(root, field) {\n var extendedType = field.parent.lookup(field.extend);\n if (extendedType) {\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\n sisterField.declaringField = field;\n field.extensionField = sisterField;\n extendedType.add(sisterField);\n return true;\n }\n return false;\n}\n\n/**\n * Called when any object is added to this root or its sub-namespaces.\n * @param {ReflectionObject} object Object added\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleAdd = function _handleAdd(object) {\n if (object instanceof Field) {\n\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\n if (!tryHandleExtension(this, object))\n this.deferred.push(object);\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n object.parent[object.name] = object.values; // expose enum values as property of its parent\n\n } else if (!(object instanceof OneOf)) /* everything else is a namespace */ {\n\n if (object instanceof Type) // Try to handle any deferred extensions\n for (var i = 0; i < this.deferred.length;)\n if (tryHandleExtension(this, this.deferred[i]))\n this.deferred.splice(i, 1);\n else\n ++i;\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\n this._handleAdd(object._nestedArray[j]);\n if (exposeRe.test(object.name))\n object.parent[object.name] = object; // expose namespace as property of its parent\n }\n\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\n // a static module with reflection-based solutions where the condition is met.\n};\n\n/**\n * Called when any object is removed from this root or its sub-namespaces.\n * @param {ReflectionObject} object Object removed\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleRemove = function _handleRemove(object) {\n if (object instanceof Field) {\n\n if (/* an extension field */ object.extend !== undefined) {\n if (/* already handled */ object.extensionField) { // remove its sister field\n object.extensionField.parent.remove(object.extensionField);\n object.extensionField = null;\n } else { // cancel the extension\n var index = this.deferred.indexOf(object);\n /* istanbul ignore else */\n if (index > -1)\n this.deferred.splice(index, 1);\n }\n }\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose enum values\n\n } else if (object instanceof Namespace) {\n\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\n this._handleRemove(object._nestedArray[i]);\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose namespaces\n\n }\n};\n\n// Sets up cyclic dependencies (called in index-light)\nRoot._configure = function(Type_, parse_, common_) {\n Type = Type_;\n parse = parse_;\n common = common_;\n};\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = Service;\n\n// extends Namespace\nvar Namespace = require(\"./namespace\");\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\n\nvar Method = require(\"./method\"),\n util = require(\"./util\"),\n rpc = require(\"./rpc\");\n\n/**\n * Constructs a new service instance.\n * @classdesc Reflected service.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Service name\n * @param {Object.<string,*>} [options] Service options\n * @throws {TypeError} If arguments are invalid\n */\nfunction Service(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Service methods.\n * @type {Object.<string,Method>}\n */\n this.methods = {}; // toJSON, marker\n\n /**\n * Cached methods as an array.\n * @type {Method[]|null}\n * @private\n */\n this._methodsArray = null;\n}\n\n/**\n * Service descriptor.\n * @interface IService\n * @extends INamespace\n * @property {Object.<string,IMethod>} methods Method descriptors\n */\n\n/**\n * Constructs a service from a service descriptor.\n * @param {string} name Service name\n * @param {IService} json Service descriptor\n * @returns {Service} Created service\n * @throws {TypeError} If arguments are invalid\n */\nService.fromJSON = function fromJSON(name, json) {\n var service = new Service(name, json.options);\n /* istanbul ignore else */\n if (json.methods)\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\n if (json.nested)\n service.addJSON(json.nested);\n service.comment = json.comment;\n return service;\n};\n\n/**\n * Converts this service to a service descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IService} Service descriptor\n */\nService.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"methods\" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {},\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Methods of this service as an array for iteration.\n * @name Service#methodsArray\n * @type {Method[]}\n * @readonly\n */\nObject.defineProperty(Service.prototype, \"methodsArray\", {\n get: function() {\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\n }\n});\n\nfunction clearCache(service) {\n service._methodsArray = null;\n return service;\n}\n\n/**\n * @override\n */\nService.prototype.get = function get(name) {\n return this.methods[name]\n || Namespace.prototype.get.call(this, name);\n};\n\n/**\n * @override\n */\nService.prototype.resolveAll = function resolveAll() {\n var methods = this.methodsArray;\n for (var i = 0; i < methods.length; ++i)\n methods[i].resolve();\n return Namespace.prototype.resolve.call(this);\n};\n\n/**\n * @override\n */\nService.prototype.add = function add(object) {\n\n /* istanbul ignore if */\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Method) {\n this.methods[object.name] = object;\n object.parent = this;\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * @override\n */\nService.prototype.remove = function remove(object) {\n if (object instanceof Method) {\n\n /* istanbul ignore if */\n if (this.methods[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.methods[object.name];\n object.parent = null;\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Creates a runtime service using the specified rpc implementation.\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\n */\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\n for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) {\n var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\\w_]/g, \"\");\n rpcService[methodName] = util.codegen([\"r\",\"c\"], util.isReserved(methodName) ? methodName + \"_\" : methodName)(\"return this.rpcCall(m,q,s,r,c)\")({\n m: method,\n q: method.resolvedRequestType.ctor,\n s: method.resolvedResponseType.ctor\n });\n }\n return rpcService;\n};\n","\"use strict\";\nmodule.exports = tokenize;\n\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\n\nvar setCommentRe = /^ *[*/]+ */,\n setCommentAltRe = /^\\s*\\*?\\/*/,\n setCommentSplitRe = /\\n/g,\n whitespaceRe = /\\s/,\n unescapeRe = /\\\\(.?)/g;\n\nvar unescapeMap = {\n \"0\": \"\\0\",\n \"r\": \"\\r\",\n \"n\": \"\\n\",\n \"t\": \"\\t\"\n};\n\n/**\n * Unescapes a string.\n * @param {string} str String to unescape\n * @returns {string} Unescaped string\n * @property {Object.<string,string>} map Special characters map\n * @memberof tokenize\n */\nfunction unescape(str) {\n return str.replace(unescapeRe, function($0, $1) {\n switch ($1) {\n case \"\\\\\":\n case \"\":\n return $1;\n default:\n return unescapeMap[$1] || \"\";\n }\n });\n}\n\ntokenize.unescape = unescape;\n\n/**\n * Gets the next token and advances.\n * @typedef TokenizerHandleNext\n * @type {function}\n * @returns {string|null} Next token or `null` on eof\n */\n\n/**\n * Peeks for the next token.\n * @typedef TokenizerHandlePeek\n * @type {function}\n * @returns {string|null} Next token or `null` on eof\n */\n\n/**\n * Pushes a token back to the stack.\n * @typedef TokenizerHandlePush\n * @type {function}\n * @param {string} token Token\n * @returns {undefined}\n */\n\n/**\n * Skips the next token.\n * @typedef TokenizerHandleSkip\n * @type {function}\n * @param {string} expected Expected token\n * @param {boolean} [optional=false] If optional\n * @returns {boolean} Whether the token matched\n * @throws {Error} If the token didn't match and is not optional\n */\n\n/**\n * Gets the comment on the previous line or, alternatively, the line comment on the specified line.\n * @typedef TokenizerHandleCmnt\n * @type {function}\n * @param {number} [line] Line number\n * @returns {string|null} Comment text or `null` if none\n */\n\n/**\n * Handle object returned from {@link tokenize}.\n * @interface ITokenizerHandle\n * @property {TokenizerHandleNext} next Gets the next token and advances (`null` on eof)\n * @property {TokenizerHandlePeek} peek Peeks for the next token (`null` on eof)\n * @property {TokenizerHandlePush} push Pushes a token back to the stack\n * @property {TokenizerHandleSkip} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\n * @property {TokenizerHandleCmnt} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\n * @property {number} line Current line number\n */\n\n/**\n * Tokenizes the given .proto source and returns an object with useful utility functions.\n * @param {string} source Source contents\n * @param {boolean} alternateCommentMode Whether we should activate alternate comment parsing mode.\n * @returns {ITokenizerHandle} Tokenizer handle\n */\nfunction tokenize(source, alternateCommentMode) {\n /* eslint-disable callback-return */\n source = source.toString();\n\n var offset = 0,\n length = source.length,\n line = 1,\n commentType = null,\n commentText = null,\n commentLine = 0,\n commentLineEmpty = false,\n commentIsLeading = false;\n\n var stack = [];\n\n var stringDelim = null;\n\n /* istanbul ignore next */\n /**\n * Creates an error for illegal syntax.\n * @param {string} subject Subject\n * @returns {Error} Error created\n * @inner\n */\n function illegal(subject) {\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\n }\n\n /**\n * Reads a string till its end.\n * @returns {string} String read\n * @inner\n */\n function readString() {\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\n re.lastIndex = offset - 1;\n var match = re.exec(source);\n if (!match)\n throw illegal(\"string\");\n offset = re.lastIndex;\n push(stringDelim);\n stringDelim = null;\n return unescape(match[1]);\n }\n\n /**\n * Gets the character at `pos` within the source.\n * @param {number} pos Position\n * @returns {string} Character\n * @inner\n */\n function charAt(pos) {\n return source.charAt(pos);\n }\n\n /**\n * Sets the current comment text.\n * @param {number} start Start offset\n * @param {number} end End offset\n * @param {boolean} isLeading set if a leading comment\n * @returns {undefined}\n * @inner\n */\n function setComment(start, end, isLeading) {\n commentType = source.charAt(start++);\n commentLine = line;\n commentLineEmpty = false;\n commentIsLeading = isLeading;\n var lookback;\n if (alternateCommentMode) {\n lookback = 2; // alternate comment parsing: \"//\" or \"/*\"\n } else {\n lookback = 3; // \"///\" or \"/**\"\n }\n var commentOffset = start - lookback,\n c;\n do {\n if (--commentOffset < 0 ||\n (c = source.charAt(commentOffset)) === \"\\n\") {\n commentLineEmpty = true;\n break;\n }\n } while (c === \" \" || c === \"\\t\");\n var lines = source\n .substring(start, end)\n .split(setCommentSplitRe);\n for (var i = 0; i < lines.length; ++i)\n lines[i] = lines[i]\n .replace(alternateCommentMode ? setCommentAltRe : setCommentRe, \"\")\n .trim();\n commentText = lines\n .join(\"\\n\")\n .trim();\n }\n\n function isDoubleSlashCommentLine(startOffset) {\n var endOffset = findEndOfLine(startOffset);\n\n // see if remaining line matches comment pattern\n var lineText = source.substring(startOffset, endOffset);\n // look for 1 or 2 slashes since startOffset would already point past\n // the first slash that started the comment.\n var isComment = /^\\s*\\/{1,2}/.test(lineText);\n return isComment;\n }\n\n function findEndOfLine(cursor) {\n // find end of cursor's line\n var endOffset = cursor;\n while (endOffset < length && charAt(endOffset) !== \"\\n\") {\n endOffset++;\n }\n return endOffset;\n }\n\n /**\n * Obtains the next token.\n * @returns {string|null} Next token or `null` on eof\n * @inner\n */\n function next() {\n if (stack.length > 0)\n return stack.shift();\n if (stringDelim)\n return readString();\n var repeat,\n prev,\n curr,\n start,\n isDoc,\n isLeadingComment = offset === 0;\n do {\n if (offset === length)\n return null;\n repeat = false;\n while (whitespaceRe.test(curr = charAt(offset))) {\n if (curr === \"\\n\") {\n isLeadingComment = true;\n ++line;\n }\n if (++offset === length)\n return null;\n }\n\n if (charAt(offset) === \"/\") {\n if (++offset === length) {\n throw illegal(\"comment\");\n }\n if (charAt(offset) === \"/\") { // Line\n if (!alternateCommentMode) {\n // check for triple-slash comment\n isDoc = charAt(start = offset + 1) === \"/\";\n\n while (charAt(++offset) !== \"\\n\") {\n if (offset === length) {\n return null;\n }\n }\n ++offset;\n if (isDoc) {\n setComment(start, offset - 1, isLeadingComment);\n }\n ++line;\n repeat = true;\n } else {\n // check for double-slash comments, consolidating consecutive lines\n start = offset;\n isDoc = false;\n if (isDoubleSlashCommentLine(offset)) {\n isDoc = true;\n do {\n offset = findEndOfLine(offset);\n if (offset === length) {\n break;\n }\n offset++;\n } while (isDoubleSlashCommentLine(offset));\n } else {\n offset = Math.min(length, findEndOfLine(offset) + 1);\n }\n if (isDoc) {\n setComment(start, offset, isLeadingComment);\n }\n line++;\n repeat = true;\n }\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\n // check for /** (regular comment mode) or /* (alternate comment mode)\n start = offset + 1;\n isDoc = alternateCommentMode || charAt(start) === \"*\";\n do {\n if (curr === \"\\n\") {\n ++line;\n }\n if (++offset === length) {\n throw illegal(\"comment\");\n }\n prev = curr;\n curr = charAt(offset);\n } while (prev !== \"*\" || curr !== \"/\");\n ++offset;\n if (isDoc) {\n setComment(start, offset - 2, isLeadingComment);\n }\n repeat = true;\n } else {\n return \"/\";\n }\n }\n } while (repeat);\n\n // offset !== length if we got here\n\n var end = offset;\n delimRe.lastIndex = 0;\n var delim = delimRe.test(charAt(end++));\n if (!delim)\n while (end < length && !delimRe.test(charAt(end)))\n ++end;\n var token = source.substring(offset, offset = end);\n if (token === \"\\\"\" || token === \"'\")\n stringDelim = token;\n return token;\n }\n\n /**\n * Pushes a token back to the stack.\n * @param {string} token Token\n * @returns {undefined}\n * @inner\n */\n function push(token) {\n stack.push(token);\n }\n\n /**\n * Peeks for the next token.\n * @returns {string|null} Token or `null` on eof\n * @inner\n */\n function peek() {\n if (!stack.length) {\n var token = next();\n if (token === null)\n return null;\n push(token);\n }\n return stack[0];\n }\n\n /**\n * Skips a token.\n * @param {string} expected Expected token\n * @param {boolean} [optional=false] Whether the token is optional\n * @returns {boolean} `true` when skipped, `false` if not\n * @throws {Error} When a required token is not present\n * @inner\n */\n function skip(expected, optional) {\n var actual = peek(),\n equals = actual === expected;\n if (equals) {\n next();\n return true;\n }\n if (!optional)\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\n return false;\n }\n\n /**\n * Gets a comment.\n * @param {number} [trailingLine] Line number if looking for a trailing comment\n * @returns {string|null} Comment text\n * @inner\n */\n function cmnt(trailingLine) {\n var ret = null;\n if (trailingLine === undefined) {\n if (commentLine === line - 1 && (alternateCommentMode || commentType === \"*\" || commentLineEmpty)) {\n ret = commentIsLeading ? commentText : null;\n }\n } else {\n /* istanbul ignore else */\n if (commentLine < trailingLine) {\n peek();\n }\n if (commentLine === trailingLine && !commentLineEmpty && (alternateCommentMode || commentType === \"/\")) {\n ret = commentIsLeading ? null : commentText;\n }\n }\n return ret;\n }\n\n return Object.defineProperty({\n next: next,\n peek: peek,\n push: push,\n skip: skip,\n cmnt: cmnt\n }, \"line\", {\n get: function() { return line; }\n });\n /* eslint-enable callback-return */\n}\n","\"use strict\";\nmodule.exports = Type;\n\n// extends Namespace\nvar Namespace = require(\"./namespace\");\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\n\nvar Enum = require(\"./enum\"),\n OneOf = require(\"./oneof\"),\n Field = require(\"./field\"),\n MapField = require(\"./mapfield\"),\n Service = require(\"./service\"),\n Message = require(\"./message\"),\n Reader = require(\"./reader\"),\n Writer = require(\"./writer\"),\n util = require(\"./util\"),\n encoder = require(\"./encoder\"),\n decoder = require(\"./decoder\"),\n verifier = require(\"./verifier\"),\n converter = require(\"./converter\"),\n wrappers = require(\"./wrappers\");\n\n/**\n * Constructs a new reflected message type instance.\n * @classdesc Reflected message type.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Message name\n * @param {Object.<string,*>} [options] Declared options\n */\nfunction Type(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Message fields.\n * @type {Object.<string,Field>}\n */\n this.fields = {}; // toJSON, marker\n\n /**\n * Oneofs declared within this namespace, if any.\n * @type {Object.<string,OneOf>}\n */\n this.oneofs = undefined; // toJSON\n\n /**\n * Extension ranges, if any.\n * @type {number[][]}\n */\n this.extensions = undefined; // toJSON\n\n /**\n * Reserved ranges, if any.\n * @type {Array.<number[]|string>}\n */\n this.reserved = undefined; // toJSON\n\n /*?\n * Whether this type is a legacy group.\n * @type {boolean|undefined}\n */\n this.group = undefined; // toJSON\n\n /**\n * Cached fields by id.\n * @type {Object.<number,Field>|null}\n * @private\n */\n this._fieldsById = null;\n\n /**\n * Cached fields as an array.\n * @type {Field[]|null}\n * @private\n */\n this._fieldsArray = null;\n\n /**\n * Cached oneofs as an array.\n * @type {OneOf[]|null}\n * @private\n */\n this._oneofsArray = null;\n\n /**\n * Cached constructor.\n * @type {Constructor<{}>}\n * @private\n */\n this._ctor = null;\n}\n\nObject.defineProperties(Type.prototype, {\n\n /**\n * Message fields by id.\n * @name Type#fieldsById\n * @type {Object.<number,Field>}\n * @readonly\n */\n fieldsById: {\n get: function() {\n\n /* istanbul ignore if */\n if (this._fieldsById)\n return this._fieldsById;\n\n this._fieldsById = {};\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\n var field = this.fields[names[i]],\n id = field.id;\n\n /* istanbul ignore if */\n if (this._fieldsById[id])\n throw Error(\"duplicate id \" + id + \" in \" + this);\n\n this._fieldsById[id] = field;\n }\n return this._fieldsById;\n }\n },\n\n /**\n * Fields of this message as an array for iteration.\n * @name Type#fieldsArray\n * @type {Field[]}\n * @readonly\n */\n fieldsArray: {\n get: function() {\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\n }\n },\n\n /**\n * Oneofs of this message as an array for iteration.\n * @name Type#oneofsArray\n * @type {OneOf[]}\n * @readonly\n */\n oneofsArray: {\n get: function() {\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\n }\n },\n\n /**\n * The registered constructor, if any registered, otherwise a generic constructor.\n * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.\n * @name Type#ctor\n * @type {Constructor<{}>}\n */\n ctor: {\n get: function() {\n return this._ctor || (this.ctor = Type.generateConstructor(this)());\n },\n set: function(ctor) {\n\n // Ensure proper prototype\n var prototype = ctor.prototype;\n if (!(prototype instanceof Message)) {\n (ctor.prototype = new Message()).constructor = ctor;\n util.merge(ctor.prototype, prototype);\n }\n\n // Classes and messages reference their reflected type\n ctor.$type = ctor.prototype.$type = this;\n\n // Mix in static methods\n util.merge(ctor, Message, true);\n\n this._ctor = ctor;\n\n // Messages have non-enumerable default values on their prototype\n var i = 0;\n for (; i < /* initializes */ this.fieldsArray.length; ++i)\n this._fieldsArray[i].resolve(); // ensures a proper value\n\n // Messages have non-enumerable getters and setters for each virtual oneof field\n var ctorProperties = {};\n for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)\n ctorProperties[this._oneofsArray[i].resolve().name] = {\n get: util.oneOfGetter(this._oneofsArray[i].oneof),\n set: util.oneOfSetter(this._oneofsArray[i].oneof)\n };\n if (i)\n Object.defineProperties(ctor.prototype, ctorProperties);\n }\n }\n});\n\n/**\n * Generates a constructor function for the specified type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nType.generateConstructor = function generateConstructor(mtype) {\n /* eslint-disable no-unexpected-multiline */\n var gen = util.codegen([\"p\"], mtype.name);\n // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype\n for (var i = 0, field; i < mtype.fieldsArray.length; ++i)\n if ((field = mtype._fieldsArray[i]).map) gen\n (\"this%s={}\", util.safeProp(field.name));\n else if (field.repeated) gen\n (\"this%s=[]\", util.safeProp(field.name));\n return gen\n (\"if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)\") // omit undefined or null\n (\"this[ks[i]]=p[ks[i]]\");\n /* eslint-enable no-unexpected-multiline */\n};\n\nfunction clearCache(type) {\n type._fieldsById = type._fieldsArray = type._oneofsArray = null;\n delete type.encode;\n delete type.decode;\n delete type.verify;\n return type;\n}\n\n/**\n * Message type descriptor.\n * @interface IType\n * @extends INamespace\n * @property {Object.<string,IOneOf>} [oneofs] Oneof descriptors\n * @property {Object.<string,IField>} fields Field descriptors\n * @property {number[][]} [extensions] Extension ranges\n * @property {number[][]} [reserved] Reserved ranges\n * @property {boolean} [group=false] Whether a legacy group or not\n */\n\n/**\n * Creates a message type from a message type descriptor.\n * @param {string} name Message name\n * @param {IType} json Message type descriptor\n * @returns {Type} Created message type\n */\nType.fromJSON = function fromJSON(name, json) {\n var type = new Type(name, json.options);\n type.extensions = json.extensions;\n type.reserved = json.reserved;\n var names = Object.keys(json.fields),\n i = 0;\n for (; i < names.length; ++i)\n type.add(\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\n ? MapField.fromJSON\n : Field.fromJSON )(names[i], json.fields[names[i]])\n );\n if (json.oneofs)\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\n if (json.nested)\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\n var nested = json.nested[names[i]];\n type.add( // most to least likely\n ( nested.id !== undefined\n ? Field.fromJSON\n : nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n if (json.extensions && json.extensions.length)\n type.extensions = json.extensions;\n if (json.reserved && json.reserved.length)\n type.reserved = json.reserved;\n if (json.group)\n type.group = true;\n if (json.comment)\n type.comment = json.comment;\n return type;\n};\n\n/**\n * Converts this message type to a message type descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IType} Message type descriptor\n */\nType.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"oneofs\" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),\n \"fields\" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},\n \"extensions\" , this.extensions && this.extensions.length ? this.extensions : undefined,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"group\" , this.group || undefined,\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nType.prototype.resolveAll = function resolveAll() {\n var fields = this.fieldsArray, i = 0;\n while (i < fields.length)\n fields[i++].resolve();\n var oneofs = this.oneofsArray; i = 0;\n while (i < oneofs.length)\n oneofs[i++].resolve();\n return Namespace.prototype.resolveAll.call(this);\n};\n\n/**\n * @override\n */\nType.prototype.get = function get(name) {\n return this.fields[name]\n || this.oneofs && this.oneofs[name]\n || this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Adds a nested object to this type.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\n */\nType.prototype.add = function add(object) {\n\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Field && object.extend === undefined) {\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\n // The root object takes care of adding distinct sister-fields to the respective extended\n // type instead.\n\n // avoids calling the getter if not absolutely necessary because it's called quite frequently\n if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\n if (this.isReservedId(object.id))\n throw Error(\"id \" + object.id + \" is reserved in \" + this);\n if (this.isReservedName(object.name))\n throw Error(\"name '\" + object.name + \"' is reserved in \" + this);\n\n if (object.parent)\n object.parent.remove(object);\n this.fields[object.name] = object;\n object.message = this;\n object.onAdd(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n if (!this.oneofs)\n this.oneofs = {};\n this.oneofs[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * Removes a nested object from this type.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this type\n */\nType.prototype.remove = function remove(object) {\n if (object instanceof Field && object.extend === undefined) {\n // See Type#add for the reason why extension fields are excluded here.\n\n /* istanbul ignore if */\n if (!this.fields || this.fields[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.fields[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n\n /* istanbul ignore if */\n if (!this.oneofs || this.oneofs[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.oneofs[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.<string,*>} [properties] Properties to set\n * @returns {Message<{}>} Message instance\n */\nType.prototype.create = function create(properties) {\n return new this.ctor(properties);\n};\n\n/**\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\n * @returns {Type} `this`\n */\nType.prototype.setup = function setup() {\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\n // multiple times (V8, soft-deopt prototype-check).\n\n var fullName = this.fullName,\n types = [];\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\n types.push(this._fieldsArray[i].resolve().resolvedType);\n\n // Replace setup methods with type-specific generated functions\n this.encode = encoder(this)({\n Writer : Writer,\n types : types,\n util : util\n });\n this.decode = decoder(this)({\n Reader : Reader,\n types : types,\n util : util\n });\n this.verify = verifier(this)({\n types : types,\n util : util\n });\n this.fromObject = converter.fromObject(this)({\n types : types,\n util : util\n });\n this.toObject = converter.toObject(this)({\n types : types,\n util : util\n });\n\n // Inject custom wrappers for common types\n var wrapper = wrappers[fullName];\n if (wrapper) {\n var originalThis = Object.create(this);\n // if (wrapper.fromObject) {\n originalThis.fromObject = this.fromObject;\n this.fromObject = wrapper.fromObject.bind(originalThis);\n // }\n // if (wrapper.toObject) {\n originalThis.toObject = this.toObject;\n this.toObject = wrapper.toObject.bind(originalThis);\n // }\n }\n\n return this;\n};\n\n/**\n * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.<string,*>} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encode = function encode_setup(message, writer) {\n return this.setup().encode(message, writer); // overrides this method\n};\n\n/**\n * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.<string,*>} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\n};\n\n/**\n * Decodes a message of this type.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Length of the message, if known beforehand\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError<{}>} If required fields are missing\n */\nType.prototype.decode = function decode_setup(reader, length) {\n return this.setup().decode(reader, length); // overrides this method\n};\n\n/**\n * Decodes a message of this type preceeded by its byte length as a varint.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError} If required fields are missing\n */\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof Reader))\n reader = Reader.create(reader);\n return this.decode(reader, reader.uint32());\n};\n\n/**\n * Verifies that field values are valid and that required fields are present.\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {null|string} `null` if valid, otherwise the reason why it is not\n */\nType.prototype.verify = function verify_setup(message) {\n return this.setup().verify(message); // overrides this method\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.<string,*>} object Plain object to convert\n * @returns {Message<{}>} Message instance\n */\nType.prototype.fromObject = function fromObject(object) {\n return this.setup().fromObject(object);\n};\n\n/**\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\n * @interface IConversionOptions\n * @property {Function} [longs] Long conversion type.\n * Valid values are `String` and `Number` (the global types).\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\n * @property {Function} [enums] Enum value conversion type.\n * Only valid value is `String` (the global type).\n * Defaults to copy the present value, which is the numeric id.\n * @property {Function} [bytes] Bytes value conversion type.\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\n * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any\n * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings\n */\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\nType.prototype.toObject = function toObject(message, options) {\n return this.setup().toObject(message, options);\n};\n\n/**\n * Decorator function as returned by {@link Type.d} (TypeScript).\n * @typedef TypeDecorator\n * @type {function}\n * @param {Constructor<T>} target Target constructor\n * @returns {undefined}\n * @template T extends Message<T>\n */\n\n/**\n * Type decorator (TypeScript).\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {TypeDecorator<T>} Decorator function\n * @template T extends Message<T>\n */\nType.d = function decorateType(typeName) {\n return function typeDecorator(target) {\n util.decorateType(target, typeName);\n };\n};\n","\"use strict\";\n\n/**\n * Common type constants.\n * @namespace\n */\nvar types = exports;\n\nvar util = require(\"./util\");\n\nvar s = [\n \"double\", // 0\n \"float\", // 1\n \"int32\", // 2\n \"uint32\", // 3\n \"sint32\", // 4\n \"fixed32\", // 5\n \"sfixed32\", // 6\n \"int64\", // 7\n \"uint64\", // 8\n \"sint64\", // 9\n \"fixed64\", // 10\n \"sfixed64\", // 11\n \"bool\", // 12\n \"string\", // 13\n \"bytes\" // 14\n];\n\nfunction bake(values, offset) {\n var i = 0, o = {};\n offset |= 0;\n while (i < values.length) o[s[i + offset]] = values[i++];\n return o;\n}\n\n/**\n * Basic type wire types.\n * @type {Object.<string,number>}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n * @property {number} bytes=2 Ldelim wire type\n */\ntypes.basic = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2,\n /* bytes */ 2\n]);\n\n/**\n * Basic type defaults.\n * @type {Object.<string,*>}\n * @const\n * @property {number} double=0 Double default\n * @property {number} float=0 Float default\n * @property {number} int32=0 Int32 default\n * @property {number} uint32=0 Uint32 default\n * @property {number} sint32=0 Sint32 default\n * @property {number} fixed32=0 Fixed32 default\n * @property {number} sfixed32=0 Sfixed32 default\n * @property {number} int64=0 Int64 default\n * @property {number} uint64=0 Uint64 default\n * @property {number} sint64=0 Sint32 default\n * @property {number} fixed64=0 Fixed64 default\n * @property {number} sfixed64=0 Sfixed64 default\n * @property {boolean} bool=false Bool default\n * @property {string} string=\"\" String default\n * @property {Array.<number>} bytes=Array(0) Bytes default\n * @property {null} message=null Message default\n */\ntypes.defaults = bake([\n /* double */ 0,\n /* float */ 0,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 0,\n /* sfixed32 */ 0,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 0,\n /* sfixed64 */ 0,\n /* bool */ false,\n /* string */ \"\",\n /* bytes */ util.emptyArray,\n /* message */ null\n]);\n\n/**\n * Basic long type wire types.\n * @type {Object.<string,number>}\n * @const\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n */\ntypes.long = bake([\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1\n], 7);\n\n/**\n * Allowed types for map keys with their associated wire type.\n * @type {Object.<string,number>}\n * @const\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n */\ntypes.mapKey = bake([\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2\n], 2);\n\n/**\n * Allowed types for packed repeated fields with their associated wire type.\n * @type {Object.<string,number>}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n */\ntypes.packed = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0\n]);\n","\"use strict\";\n\n/**\n * Various utility functions.\n * @namespace\n */\nvar util = module.exports = require(\"./util/minimal\");\n\nvar roots = require(\"./roots\");\n\nvar Type, // cyclic\n Enum;\n\nutil.codegen = require(\"@protobufjs/codegen\");\nutil.fetch = require(\"@protobufjs/fetch\");\nutil.path = require(\"@protobufjs/path\");\n\n/**\n * Node's fs module if available.\n * @type {Object.<string,*>}\n */\nutil.fs = util.inquire(\"fs\");\n\n/**\n * Converts an object's values to an array.\n * @param {Object.<string,*>} object Object to convert\n * @returns {Array.<*>} Converted array\n */\nutil.toArray = function toArray(object) {\n if (object) {\n var keys = Object.keys(object),\n array = new Array(keys.length),\n index = 0;\n while (index < keys.length)\n array[index] = object[keys[index++]];\n return array;\n }\n return [];\n};\n\n/**\n * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values.\n * @param {Array.<*>} array Array to convert\n * @returns {Object.<string,*>} Converted object\n */\nutil.toObject = function toObject(array) {\n var object = {},\n index = 0;\n while (index < array.length) {\n var key = array[index++],\n val = array[index++];\n if (val !== undefined)\n object[key] = val;\n }\n return object;\n};\n\nvar safePropBackslashRe = /\\\\/g,\n safePropQuoteRe = /\"/g;\n\n/**\n * Tests whether the specified name is a reserved word in JS.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nutil.isReserved = function isReserved(name) {\n return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name);\n};\n\n/**\n * Returns a safe property accessor for the specified property name.\n * @param {string} prop Property name\n * @returns {string} Safe accessor\n */\nutil.safeProp = function safeProp(prop) {\n if (!/^[$\\w_]+$/.test(prop) || util.isReserved(prop))\n return \"[\\\"\" + prop.replace(safePropBackslashRe, \"\\\\\\\\\").replace(safePropQuoteRe, \"\\\\\\\"\") + \"\\\"]\";\n return \".\" + prop;\n};\n\n/**\n * Converts the first character of a string to upper case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.ucFirst = function ucFirst(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n};\n\nvar camelCaseRe = /_([a-z])/g;\n\n/**\n * Converts a string to camel case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.camelCase = function camelCase(str) {\n return str.substring(0, 1)\n + str.substring(1)\n .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); });\n};\n\n/**\n * Compares reflected fields by id.\n * @param {Field} a First field\n * @param {Field} b Second field\n * @returns {number} Comparison value\n */\nutil.compareFieldsById = function compareFieldsById(a, b) {\n return a.id - b.id;\n};\n\n/**\n * Decorator helper for types (TypeScript).\n * @param {Constructor<T>} ctor Constructor function\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {Type} Reflected type\n * @template T extends Message<T>\n * @property {Root} root Decorators root\n */\nutil.decorateType = function decorateType(ctor, typeName) {\n\n /* istanbul ignore if */\n if (ctor.$type) {\n if (typeName && ctor.$type.name !== typeName) {\n util.decorateRoot.remove(ctor.$type);\n ctor.$type.name = typeName;\n util.decorateRoot.add(ctor.$type);\n }\n return ctor.$type;\n }\n\n /* istanbul ignore next */\n if (!Type)\n Type = require(\"./type\");\n\n var type = new Type(typeName || ctor.name);\n util.decorateRoot.add(type);\n type.ctor = ctor; // sets up .encode, .decode etc.\n Object.defineProperty(ctor, \"$type\", { value: type, enumerable: false });\n Object.defineProperty(ctor.prototype, \"$type\", { value: type, enumerable: false });\n return type;\n};\n\nvar decorateEnumIndex = 0;\n\n/**\n * Decorator helper for enums (TypeScript).\n * @param {Object} object Enum object\n * @returns {Enum} Reflected enum\n */\nutil.decorateEnum = function decorateEnum(object) {\n\n /* istanbul ignore if */\n if (object.$type)\n return object.$type;\n\n /* istanbul ignore next */\n if (!Enum)\n Enum = require(\"./enum\");\n\n var enm = new Enum(\"Enum\" + decorateEnumIndex++, object);\n util.decorateRoot.add(enm);\n Object.defineProperty(object, \"$type\", { value: enm, enumerable: false });\n return enm;\n};\n\n\n/**\n * Sets the value of a property by property path. If a value already exists, it is turned to an array\n * @param {Object.<string,*>} dst Destination object\n * @param {string} path dot '.' delimited path of the property to set\n * @param {Object} value the value to set\n * @returns {Object.<string,*>} Destination object\n */\nutil.setProperty = function setProperty(dst, path, value) {\n function setProp(dst, path, value) {\n var part = path.shift();\n if (part === \"__proto__\") {\n return dst;\n }\n if (path.length > 0) {\n dst[part] = setProp(dst[part] || {}, path, value);\n } else {\n var prevValue = dst[part];\n if (prevValue)\n value = [].concat(prevValue).concat(value);\n dst[part] = value;\n }\n return dst;\n }\n\n if (typeof dst !== \"object\")\n throw TypeError(\"dst must be an object\");\n if (!path)\n throw TypeError(\"path must be specified\");\n\n path = path.split(\".\");\n return setProp(dst, path, value);\n};\n\n/**\n * Decorator root (TypeScript).\n * @name util.decorateRoot\n * @type {Root}\n * @readonly\n */\nObject.defineProperty(util, \"decorateRoot\", {\n get: function() {\n return roots[\"decorated\"] || (roots[\"decorated\"] = new (require(\"./root\"))());\n }\n});\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor<Buffer>}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor<Long>}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.<string,*>} dst Destination object\n * @param {Object.<string,*>} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor<Error>} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = verifier;\n\nvar Enum = require(\"./enum\"),\n util = require(\"./util\");\n\nfunction invalid(field, expected) {\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\n}\n\n/**\n * Generates a partial value verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\n /* eslint-disable no-unexpected-multiline */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(%s){\", ref)\n (\"default:\")\n (\"return%j\", invalid(field, \"enum value\"));\n for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen\n (\"case %i:\", field.resolvedType.values[keys[j]]);\n gen\n (\"break\")\n (\"}\");\n } else {\n gen\n (\"{\")\n (\"var e=types[%i].verify(%s);\", fieldIndex, ref)\n (\"if(e)\")\n (\"return%j+e\", field.name + \".\")\n (\"}\");\n }\n } else {\n switch (field.type) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.isInteger(%s))\", ref)\n (\"return%j\", invalid(field, \"integer\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\n (\"return%j\", invalid(field, \"integer|Long\"));\n break;\n case \"float\":\n case \"double\": gen\n (\"if(typeof %s!==\\\"number\\\")\", ref)\n (\"return%j\", invalid(field, \"number\"));\n break;\n case \"bool\": gen\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\n (\"return%j\", invalid(field, \"boolean\"));\n break;\n case \"string\": gen\n (\"if(!util.isString(%s))\", ref)\n (\"return%j\", invalid(field, \"string\"));\n break;\n case \"bytes\": gen\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\n (\"return%j\", invalid(field, \"buffer\"));\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a partial key verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyKey(gen, field, ref) {\n /* eslint-disable no-unexpected-multiline */\n switch (field.keyType) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.key32Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"integer key\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.key64Re.test(%s))\", ref) // see comment above: x is ok, d is not\n (\"return%j\", invalid(field, \"integer|Long key\"));\n break;\n case \"bool\": gen\n (\"if(!util.key2Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"boolean key\"));\n break;\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a verifier specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction verifier(mtype) {\n /* eslint-disable no-unexpected-multiline */\n\n var gen = util.codegen([\"m\"], mtype.name + \"$verify\")\n (\"if(typeof m!==\\\"object\\\"||m===null)\")\n (\"return%j\", \"object expected\");\n var oneofs = mtype.oneofsArray,\n seenFirstField = {};\n if (oneofs.length) gen\n (\"var p={}\");\n\n for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n ref = \"m\" + util.safeProp(field.name);\n\n if (field.optional) gen\n (\"if(%s!=null&&m.hasOwnProperty(%j)){\", ref, field.name); // !== undefined && !== null\n\n // map fields\n if (field.map) { gen\n (\"if(!util.isObject(%s))\", ref)\n (\"return%j\", invalid(field, \"object\"))\n (\"var k=Object.keys(%s)\", ref)\n (\"for(var i=0;i<k.length;++i){\");\n genVerifyKey(gen, field, \"k[i]\");\n genVerifyValue(gen, field, i, ref + \"[k[i]]\")\n (\"}\");\n\n // repeated fields\n } else if (field.repeated) { gen\n (\"if(!Array.isArray(%s))\", ref)\n (\"return%j\", invalid(field, \"array\"))\n (\"for(var i=0;i<%s.length;++i){\", ref);\n genVerifyValue(gen, field, i, ref + \"[i]\")\n (\"}\");\n\n // required or present fields\n } else {\n if (field.partOf) {\n var oneofProp = util.safeProp(field.partOf.name);\n if (seenFirstField[field.partOf.name] === 1) gen\n (\"if(p%s===1)\", oneofProp)\n (\"return%j\", field.partOf.name + \": multiple values\");\n seenFirstField[field.partOf.name] = 1;\n gen\n (\"p%s=1\", oneofProp);\n }\n genVerifyValue(gen, field, i, ref);\n }\n if (field.optional) gen\n (\"}\");\n }\n return gen\n (\"return null\");\n /* eslint-enable no-unexpected-multiline */\n}","\"use strict\";\n\n/**\n * Wrappers for common types.\n * @type {Object.<string,IWrapper>}\n * @const\n */\nvar wrappers = exports;\n\nvar Message = require(\"./message\");\n\n/**\n * From object converter part of an {@link IWrapper}.\n * @typedef WrapperFromObjectConverter\n * @type {function}\n * @param {Object.<string,*>} object Plain object\n * @returns {Message<{}>} Message instance\n * @this Type\n */\n\n/**\n * To object converter part of an {@link IWrapper}.\n * @typedef WrapperToObjectConverter\n * @type {function}\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n * @this Type\n */\n\n/**\n * Common type wrapper part of {@link wrappers}.\n * @interface IWrapper\n * @property {WrapperFromObjectConverter} [fromObject] From object converter\n * @property {WrapperToObjectConverter} [toObject] To object converter\n */\n\n// Custom wrapper for Any\nwrappers[\".google.protobuf.Any\"] = {\n\n fromObject: function(object) {\n\n // unwrap value type if mapped\n if (object && object[\"@type\"]) {\n // Only use fully qualified type name after the last '/'\n var name = object[\"@type\"].substring(object[\"@type\"].lastIndexOf(\"/\") + 1);\n var type = this.lookup(name);\n /* istanbul ignore else */\n if (type) {\n // type_url does not accept leading \".\"\n var type_url = object[\"@type\"].charAt(0) === \".\" ?\n object[\"@type\"].substr(1) : object[\"@type\"];\n // type_url prefix is optional, but path seperator is required\n if (type_url.indexOf(\"/\") === -1) {\n type_url = \"/\" + type_url;\n }\n return this.create({\n type_url: type_url,\n value: type.encode(type.fromObject(object)).finish()\n });\n }\n }\n\n return this.fromObject(object);\n },\n\n toObject: function(message, options) {\n\n // Default prefix\n var googleApi = \"type.googleapis.com/\";\n var prefix = \"\";\n var name = \"\";\n\n // decode value if requested and unmapped\n if (options && options.json && message.type_url && message.value) {\n // Only use fully qualified type name after the last '/'\n name = message.type_url.substring(message.type_url.lastIndexOf(\"/\") + 1);\n // Separate the prefix used\n prefix = message.type_url.substring(0, message.type_url.lastIndexOf(\"/\") + 1);\n var type = this.lookup(name);\n /* istanbul ignore else */\n if (type)\n message = type.decode(message.value);\n }\n\n // wrap value if unmapped\n if (!(message instanceof this.ctor) && message instanceof Message) {\n var object = message.$type.toObject(message, options);\n var messageName = message.$type.fullName[0] === \".\" ?\n message.$type.fullName.substr(1) : message.$type.fullName;\n // Default to type.googleapis.com prefix if no prefix is used\n if (prefix === \"\") {\n prefix = googleApi;\n }\n name = prefix + messageName;\n object[\"@type\"] = name;\n return object;\n }\n\n return this.toObject(message, options);\n }\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[2]!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[3]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[4]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSPlotCanvas.vue?vue&type=style&index=0&id=0a32917c&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6921f018\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[2]!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[3]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[4]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSScrubber.vue?vue&type=style&index=0&id=989235a2&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3e465ccb\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[2]!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[3]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[4]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSViewer.vue?vue&type=style&index=0&id=1d6b8d00&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b85c46e2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[2]!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[3]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[4]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSViewerCanvas.vue?vue&type=style&index=0&id=0f680526&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"40798c69\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[2]!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[3]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-102[0].rules[0].use[4]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSViewerToolbar.vue?vue&type=style&index=0&id=09a81dc6&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"9daca154\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"ts_viewer\",staticClass:\"timeseries-viewer\"},[_c('timeseries-scrubber',{ref:\"scrubber\",attrs:{\"ts_start\":_vm.ts_start,\"ts_end\":_vm.ts_end,\"c-width\":_vm.cWidth,\"label-width\":_vm.labelWidth,\"cursor-loc\":_vm.cursorLoc,\"start\":_vm.start,\"duration\":_vm.duration,\"constants\":_vm.constants},on:{\"setStart\":_vm.updateStart}}),_c('div',{attrs:{\"id\":\"channelCanvas\"}},[_c('div',{ref:\"channelLabels\",style:(_vm.channelStyle),attrs:{\"id\":\"channelLabels\"}},_vm._l((_vm.viewerChannels),function(item){return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(item.visible),expression:\"item.visible\"}],key:item.label},[_c('div',{staticClass:\"chLabelWrap\",attrs:{\"data-id\":item.id},on:{\"tap\":_vm.onLabelTap}},[_c('div',{staticClass:\"labelDiv\",style:(_vm._cpStyleLabels)},[_vm._v(\" \"+_vm._s(item.label)+\" \")]),(!_vm.hideLabelInfo)?_c('div',{staticClass:\"chLabelIndWrap\",attrs:{\"selected\":item.selected}},[_c('div',{staticClass:\"chLabelInd\"},[_vm._v(\" \"+_vm._s(_vm._computeLabelInfo(item, _vm.globalZoomMult, item.rowScale))+\" \")])]):_vm._e()])])}),0),_c('timeseries-viewer-canvas',{ref:\"viewerCanvas\",attrs:{\"window_height\":_vm.window_height,\"window_width\":_vm.window_width,\"duration\":_vm.duration,\"start\":_vm.start,\"c-width\":_vm.cWidth,\"c-height\":_vm.cHeight,\"constants\":_vm.constants,\"ts-start\":_vm.ts_start,\"ts-end\":_vm.ts_end,\"cursor-loc\":_vm.cursorLoc,\"global-zoom-mult\":_vm.globalZoomMult},on:{\"setStart\":_vm.updateStart,\"setCursor\":_vm.setCursor,\"setGlobalZoom\":_vm.setGlobalZoom,\"setDuration\":_vm.setDuration,\"channelsInitialized\":_vm.onChannelsInitialized,\"annLayersInitialized\":_vm.onAnnLayersInitialized,\"closeAnnotationLayerWindow\":_vm.onCloseAnnotationLayerWindow,\"addAnnotation\":_vm.onOpenAnnotationWindow,\"updateAnnotation\":_vm.onUpdateAnnotation}})],1),_c('timeseries-viewer-toolbar',{attrs:{\"constants\":_vm.constants,\"duration\":_vm.duration,\"start\":_vm.start},on:{\"pageBack\":_vm.onPageBack,\"pageForward\":_vm.onPageForward,\"incrementZoom\":_vm.onIncrementZoom,\"decrementZoom\":_vm.onDecrementZoom,\"updateDuration\":_vm.onUpdateDuration,\"nextAnnotation\":_vm.onNextAnnotation,\"previousAnnotation\":_vm.onPreviousAnnotation,\"setStart\":_vm.updateStart}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer created by [transducerCreator] to return a new transformer\n * (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} transducerCreator transducer factory if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nexport default function _dispatchable(methodNames, transducerCreator, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var obj = arguments[arguments.length - 1];\n\n if (!_isArray(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, Array.prototype.slice.call(arguments, 0, -1));\n }\n\n idx += 1;\n }\n\n if (_isTransformer(obj)) {\n var transducer = transducerCreator.apply(null, Array.prototype.slice.call(arguments, 0, -1));\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n * _isArrayLike({nodeType: 1, length: 1}) // => false\n */\n\nvar _isArrayLike =\n/*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nexport default _isArrayLike;","var XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind =\n/*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nexport default bind;","import _isArrayLike from \"./_isArrayLike.js\";\nimport _xwrap from \"./_xwrap.js\";\nimport bind from \"../bind.js\";\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap =\n/*#__PURE__*/\n_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\nexport default _xmap;","import _arity from \"./_arity.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _curryN from \"./internal/_curryN.js\";\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN =\n/*#__PURE__*/\n_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n\n return _arity(length, _curryN(length, [], fn));\n});\n\nexport default curryN;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values, R.toPairs\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nexport default keys;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _map from \"./internal/_map.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xmap from \"./internal/_xmap.js\";\nimport curryN from \"./curryN.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex, R.pluck, R.project\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n\n default:\n return _map(fn, functor);\n }\n}));\n\nexport default map;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry2 from \"./internal/_curry2.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\n_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\nexport default nth;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.props, R.pluck, R.project, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop =\n/*#__PURE__*/\n_curry2(function prop(p, obj) {\n if (obj == null) {\n return;\n }\n\n return _isInteger(p) ? nth(p, obj) : obj[p];\n});\n\nexport default prop;","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _curry3 from \"./internal/_curry3.js\";\nimport _reduce from \"./internal/_reduce.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce =\n/*#__PURE__*/\n_curry3(_reduce);\n\nexport default reduce;","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","import _isArray from \"./_isArray.js\";\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implementation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice =\n/*#__PURE__*/\n_curry3(\n/*#__PURE__*/\n_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\nexport default slice;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_checkForMethod('tail',\n/*#__PURE__*/\nslice(1, Infinity)));\n\nexport default tail;","import _arity from \"./internal/_arity.js\";\nimport _pipe from \"./internal/_pipe.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n * @symb R.pipe(f, g, h)(a)(b) = h(g(f(a)))(b)\n */\n\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nexport default reverse;","import pipe from \"./pipe.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n * @symb R.compose(f, g, h)(a)(b) = f(g(h(a)))(b)\n */\n\nexport default function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return pipe.apply(this, reverse(arguments));\n}","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type =\n/*#__PURE__*/\n_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\nexport default type;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparison of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals =\n/*#__PURE__*/\n_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\n\nexport default equals;","/**\n * Polyfill from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString>.\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dissoc from \"./internal/_dissoc.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport assoc from \"./assoc.js\";\n/**\n * Makes a shallow clone of an object. Note that this copies and flattens\n * prototype properties onto the new object as well. All non-primitive\n * properties are copied by reference.\n *\n * @private\n * @param {String|Integer} prop The prop operating\n * @param {Object|Array} obj The object to clone\n * @return {Object|Array} A new object equivalent to the original.\n */\n\nfunction _shallowCloneObject(prop, obj) {\n if (_isInteger(prop) && _isArray(obj)) {\n return [].concat(obj);\n }\n\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n return result;\n}\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\n\nvar dissocPath =\n/*#__PURE__*/\n_curry2(function dissocPath(path, obj) {\n if (obj == null) {\n return obj;\n }\n\n switch (path.length) {\n case 0:\n return obj;\n\n case 1:\n return _dissoc(path[0], obj);\n\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n\n if (obj[head] == null) {\n return _shallowCloneObject(head, obj);\n } else {\n return assoc(head, dissocPath(tail, obj[head]), obj);\n }\n\n }\n});\n\nexport default dissocPath;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTake =\n/*#__PURE__*/\nfunction () {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n\n XTake.prototype['@@transducer/init'] = _xfBase.init;\n XTake.prototype['@@transducer/result'] = _xfBase.result;\n\n XTake.prototype['@@transducer/step'] = function (result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.n >= 0 && this.i >= this.n ? _reduced(ret) : ret;\n };\n\n return XTake;\n}();\n\nvar _xtake =\n/*#__PURE__*/\n_curry2(function _xtake(n, xf) {\n return new XTake(n, xf);\n});\n\nexport default _xtake;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtake from \"./internal/_xtake.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * const personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * const takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\n\nvar take =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['take'], _xtake, function take(n, xs) {\n return slice(0, n < 0 ? Infinity : n, xs);\n}));\n\nexport default take;","/**\n * Tests whether or not an object is a typed array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is a typed array, `false` otherwise.\n * @example\n *\n * _isTypedArray(new Uint8Array([])); //=> true\n * _isTypedArray(new Float32Array([])); //=> true\n * _isTypedArray([]); //=> false\n * _isTypedArray(null); //=> false\n * _isTypedArray({}); //=> false\n */\nexport default function _isTypedArray(val) {\n var type = Object.prototype.toString.call(val);\n return type === '[object Uint8ClampedArray]' || type === '[object Int8Array]' || type === '[object Uint8Array]' || type === '[object Int16Array]' || type === '[object Uint16Array]' || type === '[object Int32Array]' || type === '[object Uint32Array]' || type === '[object Float32Array]' || type === '[object Float64Array]' || type === '[object BigInt64Array]' || type === '[object BigUint64Array]';\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _isString from \"./internal/_isString.js\";\nimport _isTypedArray from \"./internal/_isTypedArray.js\";\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`),\n * TypedArray (`Uint8Array []`, `Float32Array []`, etc), and Arguments. Other\n * types are supported if they define `<Type>.empty`,\n * `<Type>.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n * R.empty(Uint8Array.from('123')); //=> Uint8Array []\n */\n\nvar empty =\n/*#__PURE__*/\n_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments(x) ? function () {\n return arguments;\n }() : _isTypedArray(x) ? x.constructor.from('') : void 0 // else\n ;\n});\n\nexport default empty;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFind =\n/*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind =\n/*#__PURE__*/\n_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\nexport default _xfind;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfind from \"./internal/_xfind.js\";\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\nexport default find;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindIndex =\n/*#__PURE__*/\nfunction () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex =\n/*#__PURE__*/\n_curry2(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\n\nexport default _xfindIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindIndex from \"./internal/_xfindIndex.js\";\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce, R.indexOf\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findIndex =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}));\n\nexport default findIndex;","import nth from \"./nth.js\";\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head =\n/*#__PURE__*/\nnth(0);\nexport default head;","import _has from \"./_has.js\"; // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _clone from \"./internal/_clone.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport _isTransformer from \"./internal/_isTransformer.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _stepCat from \"./internal/_stepCat.js\";\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the\n * transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.transduce\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * const intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\n\nvar into =\n/*#__PURE__*/\n_curry3(function into(acc, xf, list) {\n return _isTransformer(acc) ? _reduce(xf(acc), acc['@@transducer/init'](), list) : _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);\n});\n\nexport default into;","import _curry1 from \"./internal/_curry1.js\";\nimport empty from \"./empty.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n * R.isEmpty(Uint8Array.from('')); //=> true\n */\n\nvar isEmpty =\n/*#__PURE__*/\n_curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\n});\n\nexport default isEmpty;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Object\n * @typedefn Idx = [String | Int | Symbol]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths =\n/*#__PURE__*/\n_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\nexport default paths;","import _curry2 from \"./internal/_curry2.js\";\nimport paths from \"./paths.js\";\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path =\n/*#__PURE__*/\n_curry2(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\n});\n\nexport default path;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\n\nvar add =\n/*#__PURE__*/\n_curry2(function add(a, b) {\n return Number(a) + Number(b);\n});\n\nexport default add;","import add from \"./add.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\n\nvar sum =\n/*#__PURE__*/\nreduce(add, 0);\nexport default sum;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\nvar mergeWithKey =\n/*#__PURE__*/\n_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\nexport default mergeWithKey;","import _curry3 from \"./internal/_curry3.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the values\n * associated with the key in each object, with the result being used as the\n * value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWith, R.merge, R.mergeWithKey\n * @example\n *\n * R.mergeWith(R.concat,\n * { a: true, values: [10, 20] },\n * { b: true, values: [15, 35] });\n * //=> { a: true, b: true, values: [10, 20, 15, 35] }\n */\n\nvar mergeWith =\n/*#__PURE__*/\n_curry3(function mergeWith(fn, l, r) {\n return mergeWithKey(function (_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\n});\n\nexport default mergeWith;","import _curry3 from \"./_curry3.js\";\nimport _xfBase from \"./_xfBase.js\";\nimport _promap from \"./_promap.js\";\n\nvar XPromap =\n/*#__PURE__*/\nfunction () {\n function XPromap(f, g, xf) {\n this.xf = xf;\n this.f = f;\n this.g = g;\n }\n\n XPromap.prototype['@@transducer/init'] = _xfBase.init;\n XPromap.prototype['@@transducer/result'] = _xfBase.result;\n\n XPromap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, _promap(this.f, this.g, input));\n };\n\n return XPromap;\n}();\n\nvar _xpromap =\n/*#__PURE__*/\n_curry3(function _xpromap(f, g, xf) {\n return new XPromap(f, g, xf);\n});\n\nexport default _xpromap;","import _curry3 from \"./internal/_curry3.js\";\nimport prop from \"./prop.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq =\n/*#__PURE__*/\n_curry3(function propEq(name, val, obj) {\n return equals(val, prop(name, obj));\n});\n\nexport default propEq;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\nvar defaultTo =\n/*#__PURE__*/\n_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\n\nexport default defaultTo;","import _curry3 from \"./internal/_curry3.js\";\nimport defaultTo from \"./defaultTo.js\";\nimport prop from \"./prop.js\";\n/**\n * Return the specified property of the given non-null object if the property\n * is present and it's value is not `null`, `undefined` or `NaN`.\n *\n * Otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const favorite = R.prop('favoriteLibrary');\n * const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\n\nvar propOr =\n/*#__PURE__*/\n_curry3(function propOr(val, p, obj) {\n return defaultTo(val, prop(p, obj));\n});\n\nexport default propOr;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * const sortByFirstItem = R.sortBy(R.prop(0));\n * const pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n *\n * const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const bob = {\n * name: 'Bob',\n * age: -10\n * };\n * const clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * const people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\n\nvar sortBy =\n/*#__PURE__*/\n_curry2(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\n\nexport default sortBy;","export default {\n computed: {\n viewerActiveTool: function() {\n return this.$store.getters.viewerActiveTool\n },\n },\n\n watch: {\n viewerActiveTool: {\n handler: function (val) {\n if (val) {\n this.setActiveTool(val)\n }\n },\n immediate: true\n }\n },\n\n methods: {\n /**\n * Invoke method for tool if it exists\n * @param {String} activeTool\n */\n setActiveTool: function(activeTool) {\n if (activeTool) {\n // Set first character of tool to be capitalized to the method is camel case\n const methodName = 'set' + activeTool.charAt(0).toUpperCase() + activeTool.slice(1)\n\n // Check the method\n if(typeof this[methodName] === 'function') {\n this[methodName]()\n }\n }\n }\n }\n}\n","import _curry1 from \"./internal/_curry1.js\";\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim ||\n/*#__PURE__*/\nws.trim() || !\n/*#__PURE__*/\nzeroWidth.trim() ?\n/*#__PURE__*/\n_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) :\n/*#__PURE__*/\n_curry1(function trim(str) {\n return str.trim();\n});\nexport default trim;","import { prop, propOr } from 'ramda'\n\nconst _isString = x => Object.prototype.toString.call(x) === '[object String]'\n\nconst _trimValues = obj => {\n Object.keys(obj).forEach(key => {\n if (_isString(obj[key])) {\n obj[key] = obj[key].trim()\n }\n })\n}\n\nexport default {\n data() {\n return {\n method: 'GET',\n body: null,\n isLoading: true\n }\n },\n methods: {\n /**\n * Sends an XHR request\n * @param {Object} opts\n * @returns {Promise}\n */\n sendXhr: function(url, opts, returnRawResponse = false) {\n if (!url) {\n return Promise.reject(new Error('Url is missing!'))\n }\n\n this.isLoading = true\n this.method = propOr('GET', 'method', opts)\n\n const optsHeader = propOr(null, 'header', opts)\n const headers = optsHeader || { 'Content-type': 'application/json' }\n\n const optsBody = propOr('', 'body', opts)\n let requestOpts = { headers, method: this.method }\n\n if (optsBody) {\n if (typeof optsBody === 'object') {\n _trimValues(optsBody)\n }\n this.body = JSON.stringify(optsBody)\n requestOpts = {\n requestOpts,\n body: this.body\n }\n }\n\n return fetch(url, requestOpts).then(resp => {\n if (resp.status >= 400) {\n return Promise.reject(resp)\n }\n\n // most common cases work processing the response as json, otherwise we have the option to parse per usecase\n if (returnRawResponse) {\n return this.finishLoading(resp)\n }\n\n // if the payload cannot be converted to json, return a clone of the original response\n return resp\n .json()\n .then(this.finishLoading.bind(this))\n .catch(() => this.finishLoading(resp))\n })\n },\n /**\n * Update isLoading on $nextTick\n * @param {Object} json\n * @returns {Object}\n */\n finishLoading: function(json) {\n this.$nextTick(() => {\n this.isLoading = false\n })\n return json\n },\n /**\n * Handles ajax errors\n * @param {Object} err\n */\n handleXhrError: function(err) {\n this.isLoading = false\n const status = prop('status', err)\n // logout\n if (status === 401) {\n return this.handleLogout()\n }\n // unauthorized\n if (status === 403) {\n console.error('unauthorized')\n // return this.$router.replace({name: 'datasets-list'})\n }\n // emit ajaxError\n this.$emit('ajaxError', err)\n },\n }\n}\n","import Request from '@/mixins/request'\n\nexport default {\n mixins: [\n Request\n ],\n\n computed: {\n activeViewer: function() {\n return this.$store.getters.activeViewer\n },\n viewerChannels: function() {\n return this.$store.getters.viewerChannels\n },\n viewerAnnotations: function() {\n return this.$store.getters.viewerAnnotations\n },\n viewerSidePanelOpen: function() {\n return this.$store.getters.viewerSidePanelOpen\n },\n activeAnnotation: function() {\n return this.$store.getters.activeAnnotation\n },\n },\n\n methods: {\n addAnnotation: function() {\n\n // assert that we only call this function on activeAnnotations without an existing ID\n if (this.activeAnnotation.id) {\n throw new TypeError(\"Trying to create an annotation that already exists\", this.activeAnnotation.id)\n }\n\n let start = this.activeAnnotation.start\n let duration = this.activeAnnotation.duration\n const onAll = this.activeAnnotation.allChannels\n const label = this.activeAnnotation.label\n const description = this.activeAnnotation.description\n const layer_id = this.activeAnnotation.layer_id\n\n // correct negative durations\n if (duration < 0 ) {\n duration = -duration;\n start = start - duration;\n }\n\n const onChannels = [];\n for (let ch = 0; ch < this.viewerChannels.length; ch++) {\n const curChannelView = this.viewerChannels[ch];\n if((curChannelView.selected && curChannelView.visible) || onAll) {\n const id = this.getChannelId(curChannelView)\n onChannels.push(id);\n }\n }\n\n const XhrBody = {\n name: '',\n channelIds: onChannels,\n label: label,\n description: description,\n layer_id: layer_id,\n start: start,\n end: start + duration\n }\n\n //Unselect current annotations\n // this.unSelectAnnotations(null, false);\n\n // Send ADD annotation request to server\n const timeseriesId = this.activeViewer.content.nodeId\n const url = `${this.config.apiUrl}/timeseries/${timeseriesId}/layers/${layer_id}/annotations`\n this.sendXhr(url, {\n method:'POST',\n header: {\n 'Authorization': `Bearer ${this.$store.state.userToken}`\n },\n body:XhrBody\n } ).then((response) => {\n const newAnn = {\n name: '',\n id: response.id,\n label: response.label,\n description: response.description,\n start: response.start,\n duration: response.end - response.start,\n end: response.end,\n cStart: null,\n cEnd: null,\n selected: true,\n channelIds: response.channelIds,\n allChannels: false,\n layer_id: response.layerId,\n userId: response.userId\n };\n if (response.linkedPackage) {\n newAnn.linkedPackage = response.linkedPackage\n }\n\n // Check if all channels are selected\n if (newAnn.channelIds.length >= this.viewerChannels.length) {\n newAnn.allChannels = true;\n }\n\n // Find layer\n let curLIndex = 0;\n for (let i = 0; i < this.viewerAnnotations.length; i++) {\n if (this.viewerAnnotations[i].id === response.layerId) {\n curLIndex = i;\n break;\n }\n }\n\n this.$store.dispatch('createAnnotation', newAnn)\n .then(() => {\n this.sortAnns(this.viewerAnnotations[curLIndex].annotations);\n this.onAnnotationCreated()\n }).catch(error => {\n console.log(error)\n })\n }).catch(error => {\n console.log(error)\n })\n },\n updateAnnotation: function() {\n\n if (!this.activeAnnotation.id) {\n throw new TypeError(\"Trying to update an annotation that doesn't exists on server\", this.activeAnnotation.id)\n }\n\n let start = this.activeAnnotation.start\n let duration = this.activeAnnotation.duration\n\n // correct negative durations\n if (duration < 0 ) {\n duration = -duration;\n start = start - duration;\n this.activeAnnotation.start = start\n this.activeAnnotation.duration = duration\n this.activeAnnotation.end = start + duration\n }\n\n const annLayerId = this.activeAnnotation.layer_id\n const timeseriesId = this.activeViewer.content.nodeId\n const url = `${this.config.apiUrl}/timeseries/${timeseriesId}/layers/${annLayerId}/annotations/${this.activeAnnotation.id}`;\n\n const XhrBody = {\n name: '',\n channelIds: this.activeAnnotation.channelIds,\n label: this.activeAnnotation.label,\n description: this.activeAnnotation.description,\n layer_id: this.activeAnnotation.layer_id,\n start: start,\n end: start + duration\n }\n\n const self = this\n self.sendXhr(url, {\n method:'PUT',\n header: {\n 'Authorization': `Bearer ${this.$store.state.userToken}`\n },\n body:XhrBody\n } ).then(() => {\n self.$store.dispatch('updateAnnotation', this.activeAnnotation)\n self.onAnnotationUpdated()\n })\n .catch(self.handleXhrError.bind(this))\n },\n removeAnnotation: function(annotation) {\n let annLayerId = ''\n // annotation data structure properties vary depending on if the user\n // is canceling newly created annotation or not\n if (annotation.layer) {\n annLayerId = annotation.layer.id\n } else {\n annLayerId = annotation.layer_id\n }\n const timeseriesId = this.activeViewer.content.nodeId\n const url = `${this.config.apiUrl}/timeseries/${timeseriesId}/layers/${annLayerId}/annotations/${annotation.id}`;\n\n const self = this\n self.sendXhr(url, {\n method:'DELETE',\n header: {\n 'Authorization': `Bearer ${this.$store.state.userToken}`\n },\n } ).then(() => {\n self.$store.dispatch('deleteAnnotation', annotation)\n self.onAnnotationDeleted()\n })\n .catch(self.handleXhrError.bind(this))\n\n },\n sortAnns: function(annArray) {\n annArray.sort(function Comparator(a, b) {\n if (a.start < b.start) return -1;\n if (a.start > b.start) return 1;\n return 0;\n });\n },\n }\n} ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"timeseries-scrubber\"},[_c('div',{staticClass:\"dateWrap\"},[_c('div',[_vm._v(_vm._s(_vm.ts_start_str))]),_c('div',[_vm._v(_vm._s(_vm.fullDateStr))]),_c('div',[_vm._v(_vm._s(_vm.ts_end_str))])]),_c('div',{staticClass:\"noselect\"},[_c('div',{attrs:{\"id\":\"scrubber\",\"noselect\":\"\"}},[_c('div',{ref:\"canvasWrap\",attrs:{\"id\":\"canvasWrap\"}},[_c('canvas',{ref:\"segmentsCanvas\",staticClass:\"canvas\",style:(_vm.canvasStyle),attrs:{\"id\":\"segmentsCanvas\",\"width\":_vm._cpCanvasScaler(_vm.cWidth, _vm.pixelRatio,0),\"height\":_vm._cpCanvasScaler(_vm.viewportHeight-2, _vm.pixelRatio,0)}}),_c('canvas',{ref:\"annotationCanvas\",staticClass:\"canvas\",style:(_vm.canvasStyle),attrs:{\"id\":\"annotationCanvas\",\"width\":_vm._cpCanvasScaler(_vm.cWidth, _vm.pixelRatio, 0),\"height\":_vm._cpCanvasScaler(_vm.viewportHeight-2, _vm.pixelRatio,0)}}),_c('canvas',{ref:\"iCanvas\",staticClass:\"canvas\",style:(_vm.iCanvasStyle),attrs:{\"id\":\"iCanvas\",\"width\":_vm._cpCanvasScaler(_vm.cWidth, _vm.pixelRatio, 0),\"height\":_vm._cpCanvasScaler(_vm.viewportHeight, _vm.pixelRatio,0)},on:{\"click\":_vm._onTap,\"mousemove\":_vm._onMouseMove,\"mousedown\":_vm._onMouseDown,\"mouseup\":_vm._onMouseUp,\"mouseenter\":_vm._onMouseEnter,\"mouseout\":_vm._onMouseOut}})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"timeseries-scrubber\">\n <div class=\"dateWrap\">\n <div>{{ ts_start_str }}</div>\n <div>{{ fullDateStr }}</div>\n <div>{{ ts_end_str }}</div>\n </div>\n <div class=\"noselect\">\n <div id=\"scrubber\" noselect>\n <div id=\"canvasWrap\" ref=\"canvasWrap\">\n <canvas id=\"segmentsCanvas\" class=\"canvas\" ref=\"segmentsCanvas\"\n :width=\"_cpCanvasScaler(cWidth, pixelRatio,0)\"\n :height=\"_cpCanvasScaler(viewportHeight-2, pixelRatio,0)\"\n :style=\"canvasStyle\"></canvas>\n <canvas id=\"annotationCanvas\" class=\"canvas\" ref=\"annotationCanvas\"\n :width=\"_cpCanvasScaler(cWidth, pixelRatio, 0)\"\n :height=\"_cpCanvasScaler(viewportHeight-2, pixelRatio,0)\"\n :style=\"canvasStyle\"></canvas>\n <canvas id=\"iCanvas\" class=\"canvas\" ref=\"iCanvas\" :width=\"_cpCanvasScaler(cWidth, pixelRatio, 0)\" :height=\"_cpCanvasScaler(viewportHeight, pixelRatio,0)\"\n @click=\"_onTap\"\n v-on:mousemove=\"_onMouseMove\"\n v-on:mousedown=\"_onMouseDown\"\n v-on:mouseup=\"_onMouseUp\"\n v-on:mouseenter=\"_onMouseEnter\"\n v-on:mouseout=\"_onMouseOut\"\n :style=\"iCanvasStyle\"></canvas>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n import { map } from 'ramda'\n import ViewerActiveTool from '@/mixins/viewer-active-tool'\n import Request from '@/mixins/request'\n export default {\n name: 'TimeseriesScrubber',\n mixins: [\n Request,\n ViewerActiveTool\n ],\n props: {\n ts_start: Number,\n ts_end: Number,\n cWidth: Number,\n constants: Object,\n start: Number,\n duration: Number,\n cursorLoc:Number,\n labelWidth:Number\n },\n computed: {\n activeViewer: function() {\n return this.$store.getters.activeViewer\n },\n viewerChannels: function() {\n return this.$store.getters.viewerChannels\n },\n viewerAnnotations: function() {\n return this.$store.getters.viewerAnnotations\n },\n ts_start_str: function() {\n return this.getUTCTimeString(this.ts_start)\n },\n ts_end_str: function() {\n return this.getUTCTimeString(this.ts_end)\n },\n fullDateStr: function(){\n if (this.hoverTxt !== '') {\n return this.hoverTxt;\n } else if(this.start > 0) {\n const d = new Date(this.start/1000).toUTCString();\n return d.substring(0, d.length - 3);\n }\n return ''\n },\n canvasStyle: function() {\n return {\n width: this.labelWidth + this.cWidth - 8 + 5 +'px',\n height: '28px'\n }\n },\n iCanvasStyle: function() {\n return {\n width: this.labelWidth + this.cWidth - 8 + 5 +'px',\n height: '30px'\n }\n },\n scrubberCWidth: function() {\n return this.cWidth + this.labelWidth - 8 + 5\n },\n period: function() {\n return Math.floor((this.ts_end - this.ts_start) / this.cWidth)\n }\n },\n watch: {\n start: function() {\n this.render()\n },\n duration: function() {\n this.render()\n },\n cWidth: function() {\n this.render()\n }\n },\n data: function () {\n return {\n pixelRatio: 1,\n scrubberHeight: 28,\n viewportHeight: 30,\n mouseDown: false,\n hoverTxt:'',\n pointerMode: 'point',\n patternCnvs: null,\n annotations: [],\n segmentSpans: [],\n segments:[]\n }\n },\n mounted: function () {\n this.segments = new Array(5000);\n this.segments = this.segments.fill(0, 0, 4999);\n this.pixelRatio = this.getScreenPixelRatio()\n this.patternCnvs = this.createPinstripeCanvas()\n this.renderViewPort()\n },\n methods: {\n _cpCanvasScaler: function(sz, pixelRatio, offset) {\n return pixelRatio * (sz + offset);\n },\n getScreenPixelRatio: function() {\n let ctx = this.$refs.iCanvas.getContext('2d');\n let dpr = window.devicePixelRatio || 1\n let bsr = ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio || 1;\n return dpr / bsr;\n },\n getUTCTimeString: function(d) {\n if(d > 0) {\n d = d / 1000;\n d = new Date(d);\n return ( ('0' + d.getUTCHours()).slice(-2) + ':' +\n ('0' + d.getUTCMinutes()).slice(-2) + ':' + ('0' + d.getUTCSeconds()).slice(-2) );\n }\n },\n getUTCDateString: function(d, s) {\n if (s !== '') {\n return s;\n } else if(d > 0) {\n d = new Date(d/1000);\n return ( d.toDateString() );\n }\n },\n // ------- Mouse Interactions -------\n _onTap: function(e) {\n const cCoord = this.$refs.iCanvas.getBoundingClientRect();\n const cClickOffset = e.clientX - cCoord.left;\n const realStart = ( cClickOffset/this.scrubberCWidth ) * (this.ts_end - this.ts_start );\n this.$emit('setStart', realStart + this.ts_start)\n },\n _onMouseMove: function(e) {\n if (!this.mouseDown) {\n const cCoord = this.$refs.iCanvas.getBoundingClientRect();\n const cHoverOffset = e.clientX - cCoord.left;\n const cEnd = this.cStart + this.cDuration;\n const oldMode = this.pointerMode;\n const inResizeArea = cHoverOffset > this.cStart - 10 && cHoverOffset < cEnd + 10;\n if (inResizeArea) {\n this.pointerMode = 'drag';\n this.$refs.iCanvas.setAttribute('dragme', true);\n this.$refs.iCanvas.removeAttribute('resizeme');\n } else {\n this.pointerMode = 'point';\n this.$refs.iCanvas.removeAttribute('dragme');\n this.$refs.iCanvas.removeAttribute('resizeme');\n }\n //update hoverTxt\n const realStart = ( (cHoverOffset)/this.cWidth ) * (this.ts_end - this.ts_start ) + this.ts_start;\n const d = new Date(realStart/1000).toUTCString();\n this.hoverTxt = d.substring(0, d.length - 3);\n if (oldMode !== this.pointerMode) {\n this.render();\n }\n } else {\n // is Dragging\n const _dx = e.clientX - this.clickX\n const realStart = ( (_dx)/this.cWidth ) * (this.ts_end - this.ts_start );\n const setStart = this.startDragTime + realStart;\n this.$emit('setStart', setStart)\n const d = new Date((realStart+ this.ts_start)/1000);\n this.hoverTxt = d.toUTCString();\n }\n },\n _onMouseUp: function() {\n this.mouseDown = false;\n },\n _onMouseDown: function(e) {\n this.mouseDown = true;\n this.clickX = e.clientX\n this.startDragTime = this.start;\n },\n _onMouseEnter: function() {\n this.mouseDown = false;\n },\n _onMouseOut: function() {\n this.hoverTxt = '';\n },\n // -------\n // ------- Annotation Functions -------\n initSegmentSpans: function() {\n // GET SEGMENTS AND GAPS\n /*let fetchSpan = Math.min(this.constants['SEGMENTSPAN'], (this.ts_end - this.ts_start));\n for (let i=0; i<this.viewerChannels.length; i++) {\n this._requestSegmentSpan(this.viewerChannels[i].id,\n i, this.ts_start, (this.ts_start + fetchSpan), 0)\n }*/\n },\n getAnnotations: function() {\n const layerIds = map(obj => obj.id, this.viewerAnnotations);\n const baseUrl = `${this.config.apiUrl}/timeseries/${this.activeViewer.content.id}/annotations/window`;\n var url = baseUrl + `?api_key=${this.$store.state.userToken}&aggregation=count&start=${this.ts_start}&end=${this.ts_end}&period=${this.period}&mergePeriods=true`\n for (let i in layerIds) {\n url = url + `&layerIds=${layerIds[i]}`\n }\n this.sendXhr(url)\n .then(resp => {\n console.log(resp)\n this.annotations = resp;\n this.render();\n })\n },\n // -------\n // ------- Render Functions -------\n render: function() {\n this.renderViewPort();\n this.renderTimelimeLine();\n this.renderSegments();\n },\n renderViewPort: function() {\n this.$nextTick(() => {\n const ctx = this.$refs.iCanvas.getContext('2d');\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n ctx.clearRect(0, 0, this.cWidth, this.viewportHeight);\n this.cStart = ( (((this.start - this.ts_start)/(this.ts_end-this.ts_start)) * this.cWidth ) + 0.5) |0;\n this.cDuration = ((((this.duration)/(this.ts_end-this.ts_start)) * this.cWidth) +0.5) |0;\n // Viewport\n ctx.fillStyle = 'rgb(80,80,80)';\n ctx.strokeStyle= 'rgb(80,80,80)';\n ctx.strokeRect(this.cStart +0.5, 0.5, this.cDuration, this.viewportHeight-1);\n ctx.fillRect(this.cStart - 2, (this.viewportHeight/2 - 5) | 0, 2, 10);\n ctx.fillRect(this.cStart + this.cDuration + 1, (this.viewportHeight/2 - 5) | 0, 2, 10);\n // // Cursor\n const cursorCLoc = this.cStart + (this.cursorLoc*this.cDuration);\n if( cursorCLoc > (this.cStart +0.5) ) {\n ctx.strokeStyle = 'red';\n ctx.beginPath();\n ctx.moveTo(cursorCLoc, 0);\n ctx.lineTo(cursorCLoc, this.viewportHeight-1)\n ctx.stroke();\n }\n })\n },\n renderSegments: function() {\n this.$nextTick(() => {\n const ctx = this.$refs.segmentsCanvas.getContext('2d');\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n ctx.fillStyle = ctx.createPattern(this.patternCnvs, 'repeat');\n ctx.clearRect(0, 0, this.cWidth, this.viewportHeight);\n for (let i = 1; i < this.segmentSpans.length; i += 2) {\n const xStart = (this.cWidth * this.segmentSpans[i]) / 5000;\n const xEnd = (this.cWidth * this.segmentSpans[i + 1]) / 5000;\n ctx.fillRect(xStart, 2, xEnd - xStart, this.viewportHeight - 6)\n }\n })\n },\n renderTimelimeLine: function() {\n const ctx = this.$refs.annotationCanvas.getContext('2d');\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n ctx.clearRect(0, 0, this.cWidth, this.scrubberHeight);\n const xStart = this.ts_start;\n const xEnd = this.ts_end;\n const annotationLayers = this.annotations;\n let annotationIndex = 0;\n const layerSpacing = 0;\n const layerHeight = Math.floor(((this.scrubberHeight-2) / Object.keys(annotationLayers).length - layerSpacing));\n const annPanelLayers = this.viewerAnnotations;\n let color = 'rgb(0,0,0)';\n for ( const annotation in annotationLayers ) {\n // eslint-disable-next-line\n if (annotationLayers.hasOwnProperty(annotation)) {\n // find color\n for (let i=0; i<annPanelLayers.length; i++) {\n if (annPanelLayers[i].id === parseInt(annotation)) {\n annotationIndex = i;\n color = annPanelLayers[i].color;\n break;\n }\n }\n this.plotAnnotations(ctx, xStart, xEnd, layerSpacing, layerHeight, annotationLayers[annotation], annotationIndex, color);\n }\n }\n },\n plotAnnotations: function(ctx, xStart, xEnd, layerSpacing, layerHeight, annotations, rank, color) {\n this.$nextTick(() => {\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n ctx.fillStyle = color;\n for (let i = 0; i < annotations.length; i++) {\n if (annotations[i].value > 0) {\n const xPosStart = ((annotations[i].start - xStart) / (xEnd - xStart)) * this.cWidth;\n const xPosEnd = ((annotations[i].end - xStart) / (xEnd - xStart)) * this.cWidth;\n let cw = xPosEnd - xPosStart;\n if (cw < 1) {\n cw = 1;\n }\n const yPos = 1 + rank * ((layerHeight - 1) + layerSpacing) + rank;\n ctx.fillRect(xPosStart, yPos, cw, layerHeight);\n }\n }\n })\n },\n /** Creates a canvas filled with a 45-degree pinstripe.\n * @returns the filled HTMLCanvasElement. */\n createPinstripeCanvas: function() {\n const patternCanvas = document.createElement('canvas');\n const pctx = patternCanvas.getContext('2d', { antialias: true });\n const colour = 'rgb(220,220,220)';\n const CANVAS_SIDE_LENGTH = 5;\n const WIDTH = CANVAS_SIDE_LENGTH;\n const HEIGHT = CANVAS_SIDE_LENGTH;\n const DIVISIONS = 10;\n patternCanvas.width = WIDTH;\n patternCanvas.height = HEIGHT;\n pctx.fillStyle = colour;\n // Top line\n pctx.beginPath();\n pctx.moveTo(0, HEIGHT * (1 / DIVISIONS));\n pctx.lineTo(WIDTH * (1 / DIVISIONS), 0);\n pctx.lineTo(0, 0);\n pctx.lineTo(0, HEIGHT * (1 / DIVISIONS));\n pctx.fill();\n // Middle line\n pctx.beginPath();\n pctx.moveTo(WIDTH, HEIGHT * (1 / DIVISIONS));\n pctx.lineTo(WIDTH * (1 / DIVISIONS), HEIGHT);\n pctx.lineTo(0, HEIGHT);\n pctx.lineTo(0, HEIGHT * ((DIVISIONS - 1) / DIVISIONS));\n pctx.lineTo(WIDTH * ((DIVISIONS - 1) / DIVISIONS), 0);\n pctx.lineTo(WIDTH, 0);\n pctx.lineTo(WIDTH, HEIGHT * (1 / DIVISIONS));\n pctx.fill();\n // Bottom line\n pctx.beginPath();\n pctx.moveTo(WIDTH, HEIGHT * ((DIVISIONS - 1) / DIVISIONS));\n pctx.lineTo(WIDTH * ((DIVISIONS - 1) / DIVISIONS), HEIGHT);\n pctx.lineTo(WIDTH, HEIGHT);\n pctx.lineTo(WIDTH, HEIGHT * ((DIVISIONS - 1) / DIVISIONS));\n pctx.fill();\n return patternCanvas;\n },\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .timeseries-scrubber {\n //background: $white;\n padding: 0px 8px 8px 8px;\n }\n .dateWrap {\n padding: 8px 0;\n font-size: 12px;\n text-transform: uppercase;\n color: #71747C;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n }\n #scrubber {\n background: white;\n box-shadow: 0 0 0px 1px #c5c5c5 inset;\n box-sizing: border-box;\n position: relative;\n display: flex;\n }\n #canvasWrap {\n height: 30px;\n position: relative;\n }\n .noselect {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Chrome/Safari/Opera */\n -khtml-user-select: none; /* Konqueror */\n -moz-user-select: none; /* Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none; /* Non-prefixed version, currently not supported by any browser */\n }\n .canvas {\n position: absolute;\n top: 0;\n left: 0;\n cursor: pointer;\n }\n .canvas[dragme] {\n cursor: move;\n }\n .canvas[resizeme] {\n cursor: ew-resize;\n }\n #annotationCanvas {\n margin-top: 1px;\n }\n #iCanvas {\n margin-left: 0px\n }\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-120[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSScrubber.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-120[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSScrubber.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./TSScrubber.vue?vue&type=template&id=989235a2&scoped=true&\"\nimport script from \"./TSScrubber.vue?vue&type=script&lang=js&\"\nexport * from \"./TSScrubber.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TSScrubber.vue?vue&type=style&index=0&id=989235a2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"989235a2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"timeseries-viewer-canvas\"},[_c('div',{attrs:{\"id\":\"canvasWrapper\"}},[_c('timeseries-plot-canvas',{ref:\"plotCanvas\",attrs:{\"c-width\":_vm.cWidth,\"c-height\":_vm.cHeight,\"start\":_vm.start,\"ts_start\":_vm.tsStart,\"ts_end\":_vm.tsEnd,\"duration\":_vm.duration,\"constants\":_vm.constants,\"rs-period\":_vm.rsPeriod,\"global-zoom-mult\":_vm.globalZoomMult},on:{\"channelsInitialized\":_vm.channelsInitialized,\"setGlobalZoom\":_vm.setGlobalZoom}},[_c('canvas',{ref:\"axisArea\",staticClass:\"canvas\",style:(_vm.canvasStyle1),attrs:{\"slot\":\"axisCanvas\",\"id\":\"axisArea\",\"width\":_vm._cpCanvasScaler(_vm.cWidth, _vm.pixelRatio, 0),\"height\":_vm._cpCanvasScaler(_vm.cHeight, _vm.pixelRatio,0)},slot:\"axisCanvas\"}),_c('canvas',{ref:\"annArea\",staticClass:\"canvas\",style:(_vm.canvasStyle2),attrs:{\"slot\":\"annCanvas\",\"id\":\"annArea\",\"width\":_vm._cpCanvasScaler(_vm.cWidth, _vm.pixelRatio, 0),\"height\":_vm._cpCanvasScaler(_vm.pHeight, _vm.pixelRatio,0)},slot:\"annCanvas\"})]),_c('canvas',{ref:\"cursorArea\",staticClass:\"canvas\",style:(_vm.canvasStyle3),attrs:{\"id\":\"cursorArea\",\"width\":_vm._cpCanvasScaler(_vm.cWidth + 5, _vm.pixelRatio, 0),\"height\":_vm._cpCanvasScaler(_vm.cHeight, _vm.pixelRatio,0)}}),_c('canvas',{ref:\"iArea\",staticClass:\"canvas\",style:(_vm.canvasStyle1),attrs:{\"id\":\"iArea\",\"width\":_vm._cpCanvasScaler(_vm.cWidth, _vm.pixelRatio, 0),\"height\":_vm._cpCanvasScaler(_vm.cHeight, _vm.pixelRatio,0),\"tabindex\":\"-1\"},on:{\"wheel\":_vm._onMouseWheel,\"mousemove\":_vm._onMouseMove,\"mousedown\":_vm._onMouseDown,\"mouseup\":_vm._onMouseUp,\"mouseout\":_vm._onMouseOut,\"mouseenter\":_vm._onMouseEnter}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"timeseries-plot-canvas\"},[_c('canvas',{ref:\"blurArea\",staticClass:\"canvas\",style:(_vm.canvasStyle),attrs:{\"id\":\"blurArea\",\"width\":_vm._cpCanvasScaler(_vm.cWidth, _vm.pixelRatio, 0),\"height\":_vm._cpCanvasScaler(_vm.pHeight, _vm.pixelRatio, 0)}}),_vm._t(\"axisCanvas\"),_vm._t(\"annCanvas\"),_c('canvas',{ref:\"plotArea\",staticClass:\"canvas\",style:(_vm.canvasStyle),attrs:{\"id\":\"plotArea\",\"width\":_vm._cpCanvasScaler(_vm.cWidth, _vm.pixelRatio, 0),\"height\":_vm._cpCanvasScaler(_vm.pHeight, _vm.pixelRatio, 0)}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","<template>\n <div class=\"timeseries-plot-canvas\">\n <canvas id=\"blurArea\" class=\"canvas\" ref=\"blurArea\" \n :width=\"_cpCanvasScaler(cWidth, pixelRatio, 0)\" \n :height=\"_cpCanvasScaler(pHeight, pixelRatio, 0)\" \n :style=\"canvasStyle\" />\n <slot name=\"axisCanvas\">\n </slot>\n <slot name=\"annCanvas\">\n </slot>\n <canvas id=\"plotArea\" class=\"canvas\" ref=\"plotArea\"\n :width=\"_cpCanvasScaler(cWidth, pixelRatio, 0)\"\n :height=\"_cpCanvasScaler(pHeight, pixelRatio, 0)\"\n :style=\"canvasStyle\">\n </canvas>\n </div>\n</template>\n<script>\n import {\n compose,\n head,\n propEq,\n propOr,\n path,\n findIndex,\n sum,\n map,\n take,\n sortBy,\n prop\n } from 'ramda'\n\n import protobuf from 'protobufjs';\n\n export default {\n name: 'TimeseriesPlotCanvas',\n\n props: {\n cHeight: Number,\n cWidth: Number,\n start: Number,\n duration: Number,\n constants: Object,\n rsPeriod: Number,\n ts_start: Number,\n ts_end: Number,\n globalZoomMult: Number,\n },\n watch: {\n rsPeriod: function() {\n this.invalidate();\n this.requestedPages.clear();\n },\n viewerMontageScheme: function () {\n this.sendMontageMessage(this.viewerMontageScheme)\n }\n\n },\n computed: {\n activeViewer: function() {\n return this.$store.getters.activeViewer\n },\n viewerChannels: function() {\n return this.$store.getters.viewerChannels\n },\n viewerMontageScheme: function() {\n return this.$store.getters.viewerMontageScheme\n },\n canvasStyle: function() {\n return {\n width: this.cWidth + 'px',\n height: this.pHeight + 'px'\n }\n },\n pHeight: function () {\n return this.cHeight - 20\n },\n timeSeriesUrl: function() {\n return `wss://${process.env.VUE_APP_PENNSIEVE_API_LOCATION}/streaming/discover/ts/query?session=` + this.userToken + '&package=' + encodeURIComponent(this.packageId)\n },\n packageId: function() {\n return propOr('', 'packageId', this.activeViewer)\n },\n userToken: function() {\n return this.$store.getters.userToken\n }\n },\n data: function () {\n return {\n proto: {\n 'nested': {\n 'Event': {\n 'fields': {\n 'source': {\n 'type': 'string',\n 'id': 1\n },\n 'pageStart': {\n 'type': 'uint64',\n 'id': 2\n },\n 'pageEnd': {\n 'type': 'uint64',\n 'id': 3\n },\n 'samplePeriod': {\n 'type': 'double',\n 'id': 4\n },\n 'pointsPerEvent': {\n 'type': 'uint64',\n 'id': 5\n },\n 'isResampled': {\n 'type': 'bool',\n 'id': 6\n },\n 'data': {\n 'rule': 'repeated',\n 'type': 'double',\n 'id': 7\n },\n 'times': {\n 'rule': 'repeated',\n 'type': 'uint64',\n 'id': 8\n },\n 'spikeGroup': {\n 'rule': 'repeated',\n 'type': 'uint32',\n 'id': 9\n }\n }\n },\n 'Instruction': {\n 'fields': {\n 'command': {\n 'type': 'string',\n 'id': 1\n },\n 'argument': {\n 'type': 'string',\n 'id': 2\n }\n }\n },\n 'Segment': {\n 'fields': {\n 'startTs': {\n 'type': 'uint64',\n 'id': 1\n },\n 'source': {\n 'type': 'string',\n 'id': 2\n },\n 'lastUsed': {\n 'type': 'uint64',\n 'id': 3\n },\n 'unit': {\n 'type': 'string',\n 'id': 4\n },\n 'samplePeriod': {\n 'type': 'double',\n 'id': 5\n },\n 'requestedSamplePeriod': {\n 'type': 'double',\n 'id': 6\n },\n 'pageStart': {\n 'type': 'uint64',\n 'id': 7\n },\n 'isMinMax': {\n 'type': 'bool',\n 'id': 8\n },\n 'unitM': {\n 'type': 'uint64',\n 'id': 9\n },\n 'segmentType': {\n 'type': 'string',\n 'id': 10\n },\n 'nrPoints': {\n 'type': 'uint64',\n 'id': 11\n },\n 'data': {\n 'rule': 'repeated',\n 'type': 'double',\n 'id': 12\n },\n 'pageEnd': {\n 'type': 'uint64',\n 'id': 13\n },\n 'channelName': {\n 'type': 'string',\n 'id': 14\n }\n }\n },\n 'IngestSegment': {\n 'fields': {\n 'channelId': {\n 'type': 'string',\n 'id': 1\n },\n 'startTime': {\n 'type': 'uint64',\n 'id': 2\n },\n 'samplePeriod': {\n 'type': 'double',\n 'id': 3\n },\n 'data': {\n 'rule': 'repeated',\n 'type': 'double',\n 'id': 4\n }\n }\n },\n 'TimeSeriesMessage': {\n 'fields': {\n 'segment': {\n 'type': 'Segment',\n 'id': 3\n },\n 'event': {\n 'rule': 'repeated',\n 'type': 'Event',\n 'id': 4\n },\n 'instruction': {\n 'type': 'Instruction',\n 'id': 5\n },\n 'ingestSegment': {\n 'type': 'IngestSegment',\n 'id': 6\n },\n 'totalResponses': {\n 'type': 'uint64',\n 'id': 7\n },\n 'responseSequenceId': {\n 'type': 'uint64',\n 'id': 8\n }\n }\n }\n }\n },\n pixelRatio: 1,\n requestedPages: Object,\n chData: [],\n aSyncrequests: [],\n aSyncPreRequests: [],\n pageSize: 15000000,\n viewData: {\n start: 0,\n duration: 0,\n channels: []\n },\n renderCounter: 0,\n lastDataRender: null,\n lastViewPageRequest: null,\n prefetchTimer: Object,\n prefetchDelay: 100,\n autoScale:0,\n channelsReady:false,\n prevStart:0,\n prevDuration:0,\n websocket: Object,\n initWebsocket: true,\n segment: null,\n timeSeriesMessage:null,\n timeSeriesError:null,\n channelsList:null,\n catchUpRequestPages:null,\n }\n },\n\n mounted: function () {\n\n this.requestedPages = new Map();\n this.chData = [];\n this.aSyncrequests = [];\n this.throttledGetRenderData = this.throttle(this.renderDataOnMessage, 250, {leading:false});\n this.throttledDataRender = this.throttle(this._renderData, 50);\n\n // Timer loop to prefetch pages --> initiated in requestData()\n const that = this;\n this.preFetchRequestFnc = function() {\n const nrPending = that.aSyncPreRequests.length;\n if (nrPending > 0) {\n if (that.requestedPages.size < 3) {\n that.requestDataFromServer([that.aSyncPreRequests[0]]);\n that.aSyncPreRequests.splice(0, 1);\n }\n } else {\n clearInterval(that.prefetchTimer);\n that.isPrefetching = false;\n }\n }\n\n const protobufInstance = protobuf.Root.fromJSON(this.proto)\n this.segment = protobufInstance.Segment;\n this.timeSeriesMessage = protobufInstance.TimeSeriesMessage\n this.timeSeriesError = protobufInstance.TimeSeriesError\n this.channelsList = protobufInstance.ChannelsList\n\n this.requestedPages = new Map();\n this.openWebsocket()\n\n },\n\n methods: {\n\n throttle: function(func, wait, options) {\n let context;\n let args;\n let result;\n let timeout = null;\n let previous = 0;\n if (!options) options = {};\n const later = function() {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function() {\n const now = Date.now();\n if (!previous && options.leading === false) previous = now;\n const remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n },\n viewSegmComparator: function(a, b) {\n if (a.startTs< b.startTs) return -1;\n if (a.startTs > b.startTs) return 1;\n return 0;\n },\n _cpCanvasScaler: function(sz, pixelRatio, offset) {\n return pixelRatio * (sz + offset);\n },\n getScreenPixelRatio: function() {\n let ctx = this.$refs.plotArea.getContext('2d');\n let dpr = window.devicePixelRatio || 1\n let bsr = ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio || 1;\n\n return dpr / bsr;\n },\n getChannelId: function(channel) {\n const isViewingMontage = this.viewerMontageScheme !== 'NOT_MONTAGED'\n let id = propOr('', 'id', channel)\n let list = []\n if (isViewingMontage) {\n list = id.split('_')\n id = list.length ? head(list) : id // remove channel name from id\n }\n return id\n },\n initChannels: function(channels) {\n const chObjects = [];\n if (channels.length > 0) {\n\n const channelConfig = []\n\n for (let ic=0; ic<channels.length; ic++) {\n const curC = channels[ic].content;\n const curId = this.getChannelId(curC)\n const curChannel = {\n id: curId,\n label: curC.name,\n type: curC.channelType,\n segments: [],\n start: curC.start,\n end: curC.end,\n sampleFreq: curC.rate,\n unit: curC.unit,\n gaps: [], //channels[ic].gaps\n virtualId: curC.virtualId\n };\n\n const label = curChannel.label.split(/[ _-]/, 3)\n const label_prefix = label[0];\n let label_value = ( (label.length > 1) ? parseFloat(label[1]) : 0);\n label_value = ( (isNaN(label_value) ? label[1] : label_value));\n\n channelConfig.push({\n id: curChannel.id, // id of channel\n type: curChannel.type, // Type of channel (CONTINUOUS, UNIT)\n label: curChannel.label, // Label of channel\n label_split: label, // array of label segments\n label_prefix: label_prefix, // prefix for label\n label_value: label_value, // value for label\n dataSegments: [], // vector of segments rnages (start end ...)\n rank: ic, // rank for determining display order\n visible: true, // channel visible in viewer?\n plotAgainst: null, // for montaging\n rowBaseline: null, // offset for centering\n rowScale: 1, // for individual zoom\n rowAdjust: 0, // offset for centering\n selected: false, // Item is selected\n hover: false, // User is hovering over channel\n unit: curC.unit, // unit of data\n sf: curC.rate, // sampling rate\n filter: {}, // filter object (type, var0, var1, notch)\n hideFilter: true,\n isEditing: false,\n virtualId: curChannel.virtualId\n });\n\n chObjects.push(curChannel);\n }\n\n channelConfig.sort(function(a, b) {\n\n // If split into more than 2 segments, just sort on entire string\n if (a.label_split.length > 2 || b.label_split.length > 2) {\n return (a.label > b.label) ? 1 : ((b.label > a.label) ? -1 : 0);\n }\n\n // If prefix is similar, sort on value\n if (a.label_prefix === b.label_prefix) {\n return (a.label_value > b.label_value) ? 1 : ((b.label_value > a.label_value) ? -1 : 0);\n }\n\n // Sort on prefix\n return (a.label_prefix > b.label_prefix) ? 1 : ((b.label_prefix > a.label_prefix) ? -1 : 0);\n } );\n\n // Update rank on sorted channels\n for (let i = 0; i < channelConfig.length; i++) {\n channelConfig[i].rank = i;\n }\n\n this.$store.dispatch('setChannels', channelConfig)\n this.$emit('channelsInitialized', channels)\n\n }\n\n this.computeSummary(chObjects)\n this.chData = chObjects;\n this.autoScale = channels.length;\n this.channelsReady = true;\n\n return Promise.resolve()\n\n },\n computeSummary: function(channels) {\n\n if (channels.length === 0) {\n this.globalGaps = null\n return\n }\n\n this.globalGaps = path(['gaps', 0], channels);\n\n },\n // Find segment that contains timepoint val --> search over startPage property\n segmIndexOf: function(segmArray, val, first, startAtIndex) {\n\n if (!startAtIndex) {\n startAtIndex = 0;\n }\n let index;\n index = this._indexOfStart(segmArray, val, startAtIndex, segmArray.length - 1, first);\n\n if (index === -1) {\n index = 0;\n } else if (index < 0) {\n index = -index - 2;\n }\n return index;\n },\n\n // Find segment offset in segment array\n _indexOfStart: function(segmArray, val, min, max, firstIndex) {\n\n /*\n Return code status:\n Positive number: first index of the value\n Negative 1 (-1): belongs before the start of the dataset\n Other negative value: belongs after (-value - 2)\n */\n if (max < min) {\n let pred;\n if (max >= 0) {\n //return -max - 2;\n pred = max;\n } else {\n //return max;\n pred = -max - 2;\n }\n if (pred === -1) {\n return pred;\n }\n const predVal = segmArray[pred].pageStart;\n while (pred >= 0 && segmArray[pred].pageStart === predVal) {\n pred--;\n }\n pred++;\n return -pred - 2;\n }\n\n const mid = parseInt((min + max) / 2);\n\n if (segmArray[mid].pageStart > val) {\n return this._indexOfStart(segmArray, val, min, mid - 1, firstIndex);\n } else if (segmArray[mid].pageStart < val) {\n return this._indexOfStart(segmArray, val, mid + 1, max, firstIndex);\n } else {\n let index = mid;\n if (firstIndex) {\n while (index >= 0 && segmArray[index].pageStart === val) {\n index--;\n }\n index++;\n } else {\n while (index < segmArray.length && segmArray[index].pageStart === val) {\n index++;\n }\n index--;\n }\n return index;\n }\n },\n // Initiate render of data --> check visible channels and create viewData object.\n generatePoints: function() {\n\n // If not initialized --> return\n if (!this.viewerChannels) {\n return\n }\n\n this.viewData.start = this.start;\n this.viewData.duration = this.duration;\n\n // Get hidden channels and view-ids\n const hiddenChannels = [];\n const showChannels = [];\n const curChanViewIds = [];\n\n // Get IDS from channelConfig\n for (let i = 0; i < this.viewerChannels.length; i++) {\n const curConfig = this.viewerChannels[i];\n const id = this.getChannelId(curConfig.id)\n if (!curConfig.visible) {\n hiddenChannels.push(id);\n }\n curChanViewIds.push(id);\n }\n\n // Get IDS from viewData channels\n const viewDataChIds = [];\n for (let i = 0; i< this.viewData.channels.length; i++) {\n const channel = this.viewData.channels[i]\n const channelId = this.getChannelId(channel)\n viewDataChIds.push(channelId);\n }\n\n // Iterate over all channels and populate channelConfig\n const remViewChannels = [];\n for (let iChan = 0; iChan < this.chData.length; iChan++) {\n const curChan = this.chData[iChan];\n const curChanId = this.getChannelId(curChan)\n // Only return visible channels\n if (hiddenChannels.indexOf(curChanId) >= 0) {\n remViewChannels.push(curChanId);\n } else {\n showChannels.push(curChan);\n }\n }\n\n // removing channels from viewData when not shown.\n // Iterate backwards to prevent issues of indexing\n remViewChannels.sort();\n for (let i=(remViewChannels.length-1); i>=0; i--) {\n this.splice('viewData.channels', remViewChannels[i], 1);\n viewDataChIds.splice(remViewChannels[i], 1);\n }\n\n // Get viewDataChannels\n for (let i=0; i< showChannels.length; i++) {\n const curShowChannel = showChannels[i]\n const showChannelId = this.getChannelId(curShowChannel);\n const idx = viewDataChIds.indexOf(showChannelId);\n if (idx < 0 ) {\n this.viewData.channels.push({\n id: showChannelId,\n mean: null,\n firstRenderedIndex: 0,\n lastRenderedIndex: 0,\n blocks: []\n });\n\n }\n }\n\n // Request data on visible channels\n // Only request when pageForward key is released\n // if (!this.spacePressed && this.selectedTab === 'timeseries') {\n this.requestData(showChannels, this.start, this.duration);\n // }\n },\n // Getting data from cache and queue new reqeusts from server\n requestData: function(showChannels, start, duration ) {\n\n // If number of requestedpages is getting to big, reset websocket connection\n\n // TODO: BRING BACK\n // if (this.requestedPages.size > 20 ) {\n // clearTimeout(this.preFetchTime);\n // this.aSyncPreRequests = [];\n // this.reRequestPages();\n // this.openWebsocket();\n // return;\n // }\n\n\n // Init asnch requests for viewport pages\n this.aSyncRequests = [];\n\n // If we rerender the same viewport (as data comes in) --> don't change prefetch\n let updatePrefetchPages = false\n if (this.prevStart !== start || this.prevDuration !== duration) {\n this.aSyncPreRequests= []\n updatePrefetchPages = true\n }\n\n this.prevStart = start;\n this.prevDuration = duration;\n\n // Timestamp of first value in viewport\n const viewDataChIds = [];\n for (let i=0; i<this.viewData.channels.length; i++) {\n const cChannel = this.viewData.channels[i]\n viewDataChIds.push(cChannel);\n }\n\n // Iterate over channels and populate aSyncRequests and/or chanViewData\n for (let iChan = 0; iChan < showChannels.length; iChan++) {\n let continuationSegment = false;\n const curChan = showChannels[iChan];\n const chDataSegments = curChan.segments;\n const curChanId = this.getChannelId(curChan)\n // Get dataView\n const idx = findIndex(propEq('id', curChanId), viewDataChIds)\n const chanViewData = this.viewData.channels[idx];\n chanViewData.blocks = [];\n\n // Populate chanViewData until all data in scope is added, or requested from server.\n // Independent of actual request, populate viewData by pageSegments.\n let curTime = Math.floor(start/ this.pageSize) * this.pageSize;\n if (curTime < 0) {\n curTime = 0;\n }\n\n let firstSegment = 0;\n let segmOffset = 0;\n if (chDataSegments.length > 0) {\n firstSegment = this.segmIndexOf(chDataSegments, curTime, true, 0);\n }\n\n // Iterate over blocks in viewport and add to chanView, or asyncRequests\n let endRequestTime = start + duration + this.constants['PREFETCHPAGES']*this.pageSize;\n if (endRequestTime > this.ts_end) {\n endRequestTime = this.ts_end;\n }\n\n let curSegm;\n if (chDataSegments.length > 0) {\n curSegm = chDataSegments[firstSegment];\n }\n while ((curTime < endRequestTime) || continuationSegment) {\n continuationSegment = false;\n\n // If current time == start of current page in cache then page is correct.\n let inRange = false;\n if (curSegm) {\n inRange = curTime >= curSegm.pageStart && curTime <= curSegm.pageEnd;\n }\n if (inRange) {\n /*\n Data is already cached\n */\n let isViewPage = curSegm.startTs < start + duration;\n\n segmOffset += 1;\n //curTime = curSegm.startTs + curSegm.nrPoints*curSegm.samplePeriod;\n curTime = curSegm.pageEnd;\n\n // Only add to viewData if segment is not a prefetch page\n if (isViewPage) {\n chanViewData.blocks.push(curSegm);\n }\n\n const prevPageTime = curSegm.pageStart;\n curSegm = chDataSegments[firstSegment + segmOffset];\n if (!this.isStreaming && curSegm && prevPageTime === curSegm.pageStart) {\n continuationSegment = true;\n }\n\n } else {\n /*\n Data is not present on client and needs to be requested from server\n */\n\n // Check if segment is already being requested\n if (this.requestedPages.get(curTime)) {\n curTime += this.pageSize;\n if (curSegm && curTime >= curSegm.pageEnd) {\n while (curSegm.pageEnd < curTime) {\n segmOffset += 1;\n curSegm = chDataSegments[firstSegment + segmOffset];\n if (!curSegm) {\n break;\n }\n }\n }\n continue;\n }\n\n let isViewPage = curTime < start + duration;\n\n\n // Check if requested range is already requested by other channel --> update\n let isAdded = false;\n if (isViewPage) {\n\n //remove from pre-request\n for (let iA in this.aSyncPreRequests) {\n if (this.aSyncPreRequests[iA].start === curTime) {\n this.aSyncPreRequests.splice(iA, 1);\n break;\n }\n }\n\n\n for (let iA in this.aSyncRequests) {\n if (this.aSyncRequests[iA].start === curTime) {\n this.aSyncRequests[iA].channels.push(curChan);\n isAdded = true;\n }\n }\n if (!isAdded) {\n this.aSyncRequests.push({\n channels: [curChan],\n start: curTime,\n duration: this.pageSize,\n isInViewport: true,\n pixelWidth: Math.ceil(this.rsPeriod)});\n }\n\n\n } else {\n if (updatePrefetchPages) {\n for (let iA in this.aSyncPreRequests) {\n if (this.aSyncPreRequests[iA].start === curTime) {\n this.aSyncPreRequests[iA].channels.push(curChan);\n isAdded = true;\n }\n }\n if(!isAdded) {\n this.aSyncPreRequests.push({\n channels: [curChan],\n start: curTime,\n duration: this.pageSize,\n isInViewport: false,\n pixelWidth: Math.ceil(this.rsPeriod)});\n }\n }\n }\n curTime += this.pageSize;\n if (curSegm && curTime >= curSegm.pageEnd) {\n while (curSegm.pageEnd < curTime) {\n segmOffset += 1;\n curSegm = chDataSegments[firstSegment + segmOffset];\n if (!curSegm) {\n break;\n }\n }\n }\n }\n }\n\n // Sort the ChannelView pages\n chanViewData.blocks.sort(this.viewSegmComparator);\n }\n\n // Directly request all pages that are in the viewport\n if (this.aSyncRequests.length > 0) {\n\n // order requests to make sure request with start in viewport is first.\n let firstRequest = 0;\n for (let i=0; i<this.aSyncRequests.length; i++) {\n if (this.aSyncRequests[i].start >= this.start && this.aSyncRequests[i].start < (this.start +this.duration)) {\n firstRequest = i;\n }\n }\n\n this.requestDataFromServer(this.aSyncRequests, firstRequest);\n this.lastViewPageRequest = Date.now();\n }\n\n // Requests Pre-fetch pages throttled, after viewport pages are available\n if (this.aSyncPreRequests.length > 0 ) {\n if (!this.isPrefetching) {\n this.prefetchTimer = setInterval(this.preFetchRequestFnc, 150);\n this.isPrefetching = true;\n }\n }\n },\n // Request pages from the Server\n requestDataFromServer: function(requests, firstRequest = 0) {\n // Do the actual Websocket requests.\n if (requests.length > 0) {\n\n const datasetEndTime = this.ts_end;\n // check for last block\n for(let i = 0; i < requests.length; i++) {\n let curRequest;\n if (i === 0 ) {\n curRequest = requests[firstRequest];\n } else if (i === firstRequest) {\n curRequest = requests[0];\n } else {\n curRequest = requests[i];\n }\n\n // check for last block\n let requestEndTime = curRequest.start + curRequest.duration;\n if (requestEndTime > datasetEndTime) {\n requestEndTime = datasetEndTime;\n }\n\n const ws = this._websocket;\n if (ws && ws.readyState === 1 && curRequest.pixelWidth>0) {\n\n const virtualChannels = curRequest.channels.map(channel => {\n return { id: channel.id, name: channel.label, }\n })\n\n const req = {\n session: this.userToken,\n minMax: true,\n startTime: curRequest.start,\n endTime: requestEndTime,\n packageId: this.packageId,\n pixelWidth: curRequest.pixelWidth,\n virtualChannels\n };\n const reqJson = JSON.stringify(req);\n ws.send(reqJson);\n\n // ChannelCounter will capture number of expected packages for each channel\n // This number is set when first package arrives.\n const nrChannels = curRequest.channels.length;\n const channelCounter = new Map();\n for (let j=0; j < nrChannels; j++) {\n channelCounter.set(curRequest.channels[j].id, NaN);\n }\n\n this.requestedPages.set(curRequest.start,\n { count: nrChannels,\n counter: channelCounter,\n subPageCount: NaN,\n ts: (Date.now() + 550),\n inViewport: curRequest.isInViewport} );\n\n } else {\n console.log('Websocket Closed')\n return false;\n }\n }\n this.aSyncrequests = [];\n }\n return true;\n },\n\n invalidate: function() {\n console.log('Invalidating')\n\n clearTimeout(this.preFetchTime);\n this.aSyncPreRequests = [];\n this.globalGaps = [];\n this.requestedPages.clear()\n for (let i=0; i<this.chData.length; i++) {\n this.chData[i].segments = [];\n }\n for (let i=0; i<this.viewData.channels.length; i++) {\n this.viewData.channels[i].blocks = [];\n }\n this.renderAll()\n },\n // _________________\n // RENDER METHODS\n\n renderAll: function() {\n this.generatePoints();\n this._renderData();\n },\n // computes the channelConfig properties based on current settings of viewer.\n _computeChannelViews: function() {\n\n // find channel order based on rank\n const mapped = this.viewerChannels.map(function(el, i) { return { index: i, value: el.rank }; })\n mapped.sort(function(a, b) {return +(a.value > b.value) || +(a.value === b.value) - 1;});\n const rankedIds = mapped.map(function(el) {return el.index;});\n const interChannelDist = this.pHeight / this.nrVisibleChannels;\n\n // update properties\n // TODO: Bring back\n let curIdx = 0;\n let updatedBaseline = null\n for (let i = 0; i < rankedIds.length; i++) {\n const curRow = this.viewerChannels[rankedIds[i]];\n const oldBaseline = curRow.rowBaseline\n if (curRow.visible) {\n updatedBaseline = (0.5*interChannelDist) + curIdx * interChannelDist;\n // curRow.rowBaseline = (0.5*interChannelDist) + curIdx * interChannelDist;\n curIdx++;\n }\n if (oldBaseline != updatedBaseline) {\n this.$store.dispatch('updateViewChannel', {\n channelId: curRow.id,\n data: {\n rowBaseline: updatedBaseline\n }\n })\n\n\n }\n\n }\n },\n // Compute canvas coordinates from datarray\n getPointCoords: function(channelInfo, channelData, isRedraw) {\n // Iterate over channelData on single channel ---> channelData are continuous in time\n let segmLength = channelData.blocks.length;\n\n // find mean of rendered data\n switch (channelInfo.type) {\n case 'UNIT':\n if (!isRedraw) {\n for (let iSegm = 0; iSegm < segmLength; iSegm++) {\n\n const curSeg = channelData.blocks[iSegm];\n\n // Iterate over points in segment and set cx, cy, and cy2\n const curCData = curSeg.cData;\n const curData = curSeg.parsedData;\n const xOffset = this.constants['XOFFSET'];\n\n // create local variable for speed\n const length = curSeg.parsedData[0].length;\n const cXArray = curCData[0];\n const cYArray = curCData[1];\n const cY2Array = curCData[2];\n const XArray = curData[0];\n\n // RowBaseline is offset of channel in viewPort\n const rowBaseLine = channelInfo.rowBaseline | 0;\n\n // satrtTime\n const startT = this.start;\n\n // Pixel Period\n const rsP = this.rsPeriod;\n\n const spikeHeigth = (this.cHeight / (2 * (this.nrVisibleChannels + 1))) |0;\n\n\n for(let iPoint = 0; iPoint < length; iPoint++) {\n\n cXArray[iPoint] = (((xOffset + (XArray[iPoint] - startT ) / (rsP))));\n cYArray[iPoint] = rowBaseLine - spikeHeigth;\n cY2Array[iPoint] = rowBaseLine + spikeHeigth;\n }\n }\n }\n break;\n\n case 'CONTINUOUS':\n // eslint-disable-next-line\n let totalPointsInMean = 0\n\n if (!isRedraw) {\n channelData.mean = 0;\n channelData.median = 0;\n for (let iSegm = 0; iSegm < segmLength; iSegm++) {\n const curBlock = channelData.blocks[iSegm];\n if (curBlock.nrValidPoints > 0) {\n channelData.mean = ( curBlock.sumElem +\n (totalPointsInMean * channelData.mean)) / (totalPointsInMean + curBlock.nrValidPoints);\n channelData.median = ( curBlock.median +\n (totalPointsInMean * channelData.median)) / (totalPointsInMean + curBlock.nrValidPoints);\n totalPointsInMean += curBlock.nrValidPoints;\n }\n }\n }\n\n for (var iSegm = 0; iSegm < segmLength; iSegm++) {\n\n const curSeg = channelData.blocks[iSegm];\n\n // Find startIndex viewPort\n let startIndex = Math.floor((this.start - curSeg.startTs ) / curSeg.samplePeriod);\n curSeg.renderStartIndex = ((startIndex > 0) ? startIndex : 0)\n\n let endIndex = Math.floor( ((this.start + this.duration) - (curSeg.startTs + (curSeg.nrPoints*curSeg.samplePeriod))/curSeg.samplePeriod ));\n curSeg.renderEndIndex = endIndex >= 0 ? (curSeg.nrPoints-1) : (curSeg.nrPoints + endIndex);\n\n // console.log('start: ' + this.start + \" duration: \" + this.duration)\n // console.log('render-start: ' + curSeg.renderStartIndex + \" render-end: \" + curSeg.renderEndIndex)\n\n // Iterate over points in segment and set cx, cy, and cy2\n const curCData = curSeg.cData;\n const curData = curSeg.parsedData;\n const curScale = this.globalZoomMult * channelInfo.rowScale;\n const xOffset = this.constants['XOFFSET'];\n\n // create local variable for speed\n const length = curSeg.parsedData[0].length;\n const cXArray = curCData[0];\n const cYArray = curCData[1];\n const cY2Array = curCData[2];\n const XArray = curData[0];\n const YArray = curData[1];\n const Y2Array = curData[2];\n\n // RowBaseline is offset of channel in viewPort\n const rowBaseLine = channelInfo.rowBaseline;\n\n // chDatMean is mean value of channel in viewport\n let chDatCenterer = 0;\n if (this.constants['USEMEDIAN']) {\n chDatCenterer = channelData.median;\n } else {\n chDatCenterer = channelData.mean;\n }\n\n const rsp = this.rsPeriod;\n const startT = this.start;\n for(let iPoint = 0; iPoint < length; iPoint++) {\n\n cXArray[iPoint] = (((xOffset + (XArray[iPoint] - startT ) / rsp)));\n // console.log('xOffset: ' + xOffset + \" XArray[ipoint]: \" + XArray[iPoint] + \" startT: \" + startT )\n // console.log('cXArray[ipoint]: ' + cXArray[iPoint])\n cYArray[iPoint] = (((rowBaseLine + (YArray[iPoint] - chDatCenterer) * curScale)));\n\n if (curSeg.isMinMax) {\n\n // If min and max are the same --> force 1 pixel line.\n if (YArray[iPoint] === Y2Array[iPoint]) {\n cY2Array[iPoint] = cYArray[iPoint] + 1;\n }else {\n cY2Array[iPoint] = (((rowBaseLine + (Y2Array[iPoint] - chDatCenterer) * curScale)));\n }\n }\n }\n }\n break;\n }\n },\n _renderData: function(isRedraw=false) {\n const ba = this.$refs.blurArea;\n const ctxb = ba.getContext('2d');\n ctxb.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n ctxb.fillStyle = 'rgb(220,220,220)'\n\n\n const pa = this.$refs.plotArea;\n const ctx = pa.getContext('2d');\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n\n // clear canvas\n ctx.clearRect(0, 0, this.cWidth, this.cHeight);\n ctxb.clearRect(0, 0, this.cWidth, this.cHeight);\n\n // update number of visible channels\n const nrVisCh = this.viewerChannels.reduce((accumulator, currentValue) => {\n if(currentValue.visible) {\n return accumulator + 1\n }\n return accumulator\n }, 0)\n\n this.nrVisibleChannels = nrVisCh;\n\n // Update label Div\n // this.$.labelTemplate.render();\n\n // Compute the channel views for returned data\n this._computeChannelViews();\n\n ctx.save();\n // let allTimes = 0;\n for (let ch in this.viewData.channels ) {\n // eslint-disable-next-line\n if (this.viewData.channels.hasOwnProperty(ch)) {\n // const chTimeStart = new Date().getTime();\n\n const curChannelData = this.viewData.channels[ch];\n\n // Get channelview for current channel\n let curChannelView = null;\n curChannelView = this.viewerChannels.find((elem) => {\n return elem.id === curChannelData.id\n })\n\n if(!curChannelView || !curChannelView.visible) {\n continue;\n }\n\n // Render segment placeholders\n const startT = this.start;\n const rsP = this.rsPeriod;\n const xOffset = this.constants['XOFFSET'];\n const blurHeight = Math.min( Math.round((this.cHeight/this.viewData.channels.length)- 2), 10);\n for (let i = 0; i < curChannelView.dataSegments.length; i+=2) {\n if (curChannelView.dataSegments[i + 1] < startT) {\n continue\n }\n if (curChannelView.dataSegments[i] > (startT + this.duration)) {\n break;\n }\n let xPos1 = Math.floor((((xOffset + (curChannelView.dataSegments[i] - startT ) / (rsP)))));\n let xPos2 = Math.floor((((xOffset + (curChannelView.dataSegments[i + 1] - startT ) / (rsP)))));\n let yPos = Math.floor(curChannelView.rowBaseline - blurHeight/2);\n ctxb.fillRect(xPos1, yPos, xPos2-xPos1, blurHeight);\n }\n\n // Get canvas points for current channel\n this.getPointCoords(curChannelView, curChannelData, isRedraw);\n\n // check Channel-Type\n const nrBlocks = curChannelData.blocks.length;\n let channelType = 'Continuous';\n if (nrBlocks) {\n channelType = curChannelData.blocks[0].type;\n }\n\n // draw channel segments.\n if(curChannelView.hover) {\n if (curChannelView.selected) {\n ctx.strokeStyle = 'rgba(39,96,255,0.70)';\n ctx.fillStyle = 'rgba(39,96,255,0.70)';\n } else {\n ctx.strokeStyle = 'rgba(39,96,255,0.60)';\n ctx.fillStyle = 'rgba(39,96,255,0.60)';\n }\n\n } else if(curChannelView.selected) {\n ctx.strokeStyle = 'rgb(39,96,255)';\n ctx.fillStyle = 'rgb(39,96,255)';\n } else if (channelType === 'Neural') {\n ctx.strokeStyle = 'rgb(120,120,120)';\n } else {\n ctx.strokeStyle = 'black';\n ctx.fillStyle = 'black';\n }\n\n let lastBlockEnd = null;\n let doPolFill = true;\n let realSamplePeriod = 1000000 * (1/curChannelView.sf);\n\n for (let block = 0; block < nrBlocks; block++) {\n\n const curBlock = curChannelData.blocks[block];\n\n if (curBlock.nrPoints === 0) {\n continue;\n }\n\n const curData = curBlock.cData;\n const curDataLength = curBlock.nrPoints;\n const xVec = curData[0];\n const yVec = curData[1];\n const y2Vec = curData[2];\n\n let startIndex = curBlock.renderStartIndex;\n let endIndex = curBlock.renderEndIndex\n\n ctxb.clearRect(Math.floor(xVec[startIndex]), Math.floor(curChannelView.rowBaseline - blurHeight/2), Math.ceil(xVec[endIndex]-xVec[startIndex] + 2), blurHeight+1);\n\n // Check if minMax and render data\n switch (curBlock.type) {\n case 'Continuous':\n case 'realtime':\n\n if (curBlock.isMinMax) {\n /*\n Data is served as min/max per timespan. Based on render settings\n we render polygon through points, or render vertical lines.\n Default is rendering polygon for accuracy.\n */\n\n if ((curBlock.samplePeriod / realSamplePeriod) < 3) {\n doPolFill = false;\n }\n\n if (doPolFill) {\n\n ctx.beginPath();\n\n // set cursor to starting point of polygon\n if (block > 0 ) {//&& !this.isStreaming){\n if(xVec[startIndex] < (lastBlockEnd.x + 3)) {\n ctx.moveTo(lastBlockEnd.x, lastBlockEnd.y);\n } else {\n ctx.moveTo(xVec[startIndex], yVec[startIndex]);\n }\n\n } else{\n ctx.moveTo(xVec[startIndex], yVec[startIndex]);\n }\n\n // Draw lines in segment\n for (let i = startIndex; i < (endIndex+1); i++) {\n ctx.lineTo(xVec[i], yVec[i]);\n }\n for (let i2 = (endIndex-1); i2 >= startIndex; i2--) {\n ctx.lineTo(xVec[i2], y2Vec[i2]);\n }\n\n // Draw line to end of last segment\n if (block > 0 ) {//&& !this.isStreaming){\n if(xVec[startIndex] < (lastBlockEnd.x + 3)) {\n ctx.lineTo(lastBlockEnd.x, lastBlockEnd.y2);\n }\n }\n\n ctx.closePath();\n ctx.fill();\n } else {\n\n ctx.beginPath();\n for (let i = startIndex; i < (endIndex+1); i++) {\n\n ctx.lineTo(xVec[i], yVec[i]);\n ctx.lineTo(xVec[i], y2Vec[i]);\n ctx.moveTo(xVec[i], yVec[i]);\n }\n ctx.stroke();\n }\n\n } else {\n if(block===0) {\n ctx.beginPath();\n ctx.moveTo(xVec[startIndex], yVec[startIndex]);\n } else if(xVec[startIndex] > (lastBlockEnd.x + 2)) {\n ctx.moveTo(xVec[startIndex], yVec[startIndex]);\n }\n for (let i = startIndex; i < (endIndex+1); i++) {\n ctx.lineTo(xVec[i], yVec[i]);\n }\n if (block===(nrBlocks-1)) {\n ctx.stroke();\n }\n\n }\n break;\n case 'Neural':\n\n /* is neural event data\n render timestamps as vertical lines. We are currently assuming\n single cluster of event --> single color. V2 should include\n coloring based on cluster number.\n */\n\n // Assume that the data is sorted by cluster\n ctx.beginPath();\n for (let i = 0; i < curDataLength; i++) {\n ctx.moveTo(xVec[i], yVec[i] );\n ctx.lineTo(xVec[i], y2Vec[i] );\n }\n ctx.stroke();\n\n\n }\n\n lastBlockEnd = {\n x: xVec[curDataLength -1],\n y: yVec[curDataLength -1],\n y2: y2Vec[curDataLength -1]\n }\n\n }\n\n // const chTimeEnd = new Date().getTime();\n // allTimes = allTimes +(chTimeEnd-chTimeStart);\n }\n }\n ctx.restore();\n // console.log('render time: ' + allTimes)\n },\n\n // Function that is called with the throttledDataRenderer\n renderDataOnMessage: function() {\n this.generatePoints();\n if (this.autoScale === 0) {\n this.autoScale--; // Set to -1 (no autoscale)\n this.autoScaleViewData();\n } else {\n this._renderData();\n }\n\n },\n // Method sets the global zoom multiplier based on the viewport data buffer.\n // This is called once when first page is available\n autoScaleViewData: function() {\n console.log('autoscale')\n let sumMedian = 0;\n let nrSeg = 0;\n let allChannels = this.viewData.channels;\n const allSums = []\n for (let i=0; i<allChannels.length; i++) {\n\n\n let curBlocks = allChannels[i].blocks;\n for (let j=0; j<curBlocks.length; j++) {\n if(curBlocks[j].type !== 'Continuous') {\n continue;\n }\n\n sumMedian += this.standardDeviation(curBlocks[j].parsedData[1]);\n nrSeg++;\n allSums.push({channel: i, sumMedian})\n }\n }\n const percentage = allSums.length * .80;\n const median = this.calcSumMedian(percentage, allSums);\n const avgStd = median / nrSeg;\n if (!isNaN(avgStd)) {\n this.$emit('setGlobalZoom', (this.cHeight / allSums.length) / (2 * avgStd))\n }\n },\n /**\n * Calculate median sum for list of channels\n * @param {Number} percentage\n * @param {Array} list\n * @returns {Number}\n */\n calcSumMedian: (percentage, list) => compose(\n sum,\n map(prop('sumMedian')),\n take(percentage),\n sortBy(prop('sumMedian'))\n )(list),\n\n // Helper function for autoscale\n standardDeviation: function(values) {\n const avg = this.average(values);\n\n const squareDiffs = values.map(function(value) {\n const diff = value - avg;\n const sqrDiff = diff * diff;\n return sqrDiff;\n });\n\n const avgSquareDiff = this.average(squareDiffs);\n\n const stdDev = Math.sqrt(avgSquareDiff);\n return stdDev;\n },\n // Helper function for autoscale\n average: function(data) {\n const sum = data.reduce(function(sum, value) {\n return sum + value;\n }, 0);\n\n const avg = sum / data.length;\n return avg;\n },\n // Get all pages that are partially returned and re-request\n reRequestPages: function() {\n\n const requestPages = [];\n this.requestedPages.forEach(function(value, key) {\n // Only rerequest pages where we already have partial return\n if (!isNaN(value.subPageCount)) {\n\n // only include channels with partial return\n const channels = [];\n value.counter.forEach(function(count, chId) {\n if (!isNaN(count) && count > 0) {\n channels.push(chId)\n }\n })\n\n if (channels.length > 0) {\n requestPages.push({\n channels: channels,\n start: key,\n duration: this.pageSize,\n isInViewport: true,\n pixelWidth: this.rsPeriod\n });\n }\n }\n }, this);\n\n // clear requestedPages\n this.requestedPages.clear();\n\n this.catchUpRequestPages = requestPages;\n },\n\n\n // _________________\n // WEBSOCKET METHODS\n openWebsocket: function() {\n //if the websocket is opening or already open, don't open a new one\n if (this._websocket && (this._websocket.readyState === 0 || this._websocket.readyState === 1) ) {\n return;\n }\n\n let url = this.timeSeriesUrl\n this._websocket = new WebSocket(url);\n this._websocket.onopen = this._onWebsocketOpen.bind(this);\n this._websocket.onclose = this._onWebsocketClose.bind(this);\n this._websocket.onmessage = this._onWebsocketMessage.bind(this);\n\n },\n sendMontageMessage: function (value) {\n if (this._websocket && this._websocket.readyState === 1) {\n const payload = { montage: value, packageId: this.packageId }\n this._websocket.send(JSON.stringify(payload))\n } else {\n this.async(() => {this.sendMontageMessage(value)}, 500)\n }\n },\n _onWebsocketClose: function() {\n console.log('Websocket closed function')\n clearTimeout(this.preFetchTime);\n this.aSyncPreRequests = [];\n this.openWebsocket();\n },\n _onWebsocketFinalClose: function() {\n console.log('Websocket closed forever');\n },\n _onWebsocketOpen: function() {\n console.log('Websocket is opened')\n if (this.initWebsocket) {\n let chIds = [];\n for (let i=0; i<this.viewerChannels.length; i++) {\n chIds.push(this.viewerChannels[i].id)\n }\n let message = {'channelFiltersToClear':chIds};\n // clear filters\n this.sendFilterMessage(message);\n // clear montage\n const payload = { montage: 'NOT_MONTAGED', packageId: this.packageId }\n this._websocket.send(JSON.stringify(payload))\n this.initWebsocket = false;\n }\n\n if (this.catchUpRequestPages && this.catchUpRequestPages.length > 0) {\n this.requestDataFromServer(this.catchUpRequestPages);\n }\n this.catchUpRequestPages = [];\n\n if(this.isStreaming) {\n this.initStream();\n }\n\n this.generatePoints();\n },\n _onWebsocketMessage: function(msg) {\n // process json messages\n if (typeof msg.data === 'string') {\n let data = {}\n\n try {\n data = JSON.parse(msg.data)\n } catch (e) {\n this.$store.dispatch('setViewerErrors', { error: 'JSON Parse Error' })\n }\n\n if (data.channelDetails) {\n // const baseChannels = this.activeViewer.channels\n const virtualChannels = data.channelDetails.map(({ id, name, unit, channelType, end, start, rate }) => {\n // const baseChannel = baseChannels.find(ch => (ch.content.id === id))\n const content = {\n id,\n name,\n channelType: channelType,\n label: name,\n unit: unit,\n rate: rate,\n start: start,\n end: end,\n virtualId: `${id}_${name}`\n }\n // ensure that channel ids are unique for montages\n if (this.viewerMontageScheme !== 'NOT_MONTAGED') {\n content.id = `${id}_${name}`\n }\n return { content, properties: [] }\n })\n\n this.initChannels(virtualChannels)\n .then(() => {\n this.invalidate()\n this.renderAll()\n })\n } else if (data.error) {\n this.$store.dispatch('setViewerErrors', data)\n }\n\n // short circuit\n return\n }\n\n // process protobuf messages\n const myReader = new FileReader();\n myReader.parent = this;\n myReader.addEventListener('loadend', function(e) {\n const buffer = e.srcElement ? e.srcElement.result : e.target.result; //arraybuffer object\n const barray = new Uint8Array(buffer)\n\n const timeSeriesMessage = this.parent.timeSeriesMessage.decode(barray);\n const segment = timeSeriesMessage.segment;\n\n // Handle Neural Data\n if (timeSeriesMessage.event && timeSeriesMessage.event.length>0 && timeSeriesMessage.event[0].pageStart) {\n\n const tsEvent = timeSeriesMessage.event[0];\n const dataPoints = [[], []];\n const nrVal = tsEvent.times.length/2;\n\n let curI = 0;\n for (let i = 0; i < nrVal; i++) {\n dataPoints[0].push( tsEvent.times[curI]);\n dataPoints[1].push( tsEvent.times[curI + 1]);\n curI += 2;\n }\n\n let cData = new Array(3);\n let k=0;\n while (k < 3) {\n cData[k] = new Float32Array(dataPoints[0].length);\n k++;\n }\n\n const segm = {\n chId: tsEvent.source,\n lastUsed: 0,\n unit: 'uV',\n samplePeriod: tsEvent.samplePeriod,\n pageStart: tsEvent.pageStart,\n pageEnd: tsEvent.pageEnd,\n startTs: tsEvent.pageStart,\n isMinMax: tsEvent.isResampled,\n unitM: 1,\n type: 'Neural',\n nrPoints: nrVal,\n parsedData: dataPoints,\n cData: cData\n };\n\n this.parent.dataCallback({\n pageStart: tsEvent.pageStart,\n data: segm,\n type: 'Neural',\n nrResponses: timeSeriesMessage.totalResponses\n });\n }\n\n // Handle Regular Timeseries data package.\n if (segment !== null) {\n // Check if viewer is still interested in the arriving data\n if (segment.requestedSamplePeriod !== Math.ceil(this.parent.rsPeriod)) {\n return\n }\n\n // create array from points of data.\n let nrVal = null;\n if (segment.isMinMax) {\n // Create min/max vectors\n nrVal = segment.data.length/2;\n } else {\n //its just one big list of values\n nrVal = segment.data.length;\n }\n\n const parsedData = new Array(3);\n const startTs = segment.startTs\n\n let sumElem = 0;\n let nrValidPoints = 0;\n let i = 0;\n while (i < 3) {\n parsedData[i] = new Float64Array(nrVal);\n i++;\n }\n\n if (segment.isMinMax) {\n // Create min/max vectors\n let curI = 0;\n for (let i = 0; i < nrVal; i++) {\n let curY = -segment.data[curI];\n let curY2 = -segment.data[curI + 1];\n parsedData[0][i] = startTs + (i * segment.samplePeriod);\n parsedData[1][i] = curY;\n parsedData[2][i] = curY2;\n if (!isNaN(curY)) {\n nrValidPoints++;\n sumElem += curY + (curY2 - curY)/2;\n }\n curI += 2;\n\n }\n\n } else {\n //its just one big list of values\n for (let i = 0; i < nrVal; i++) {\n let curY = -segment.data[i];\n parsedData[0][i] = startTs + (i * segment.samplePeriod);\n parsedData[1][i] = curY;\n if (!isNaN(curY)) {\n nrValidPoints++;\n sumElem += curY;\n }\n }\n }\n\n let elemMedian = 0;\n if (this.parent.constants['USEMEDIAN']) {\n const sortedYvals = Array.prototype.slice.call(parsedData[1]).sort();\n if (segment.isMinMax) {\n elemMedian = sortedYvals[Math.round(sortedYvals.length/2)];\n } else {\n elemMedian = sortedYvals[Math.round(sortedYvals.length)];\n }\n }\n\n let cData = new Array(3);\n let k=0;\n while (k < 3) {\n cData[k] = new Float32Array(parsedData[0].length);\n k++;\n }\n\n const segm = {\n chId: segment.source,\n lastUsed: segment.lastUsed,\n unit:segment.unit,\n samplePeriod: segment.samplePeriod,\n pageStart: segment.pageStart,\n pageEnd: segment.pageEnd,\n startTs: startTs,\n isMinMax: segment.isMinMax,\n unitM: segment.unitM,\n type: segment.segmentType,\n nrPoints: nrVal,\n cData: cData,\n parsedData: parsedData,\n median: elemMedian,\n sumElem: sumElem,\n nrValidPoints: nrValidPoints,\n name: segment.channelName,\n label: segment.channelName,\n virtualId: `${segment.source}_${segment.channelName}`\n };\n\n if(segm.nrPoints>0) {\n\n this.parent.dataCallback({\n pageStart: segment.pageStart,\n data: segm,\n type: segment.segmentType,\n nrResponses: timeSeriesMessage.totalResponses\n });\n } else {\n // Check if already in Gap Array\n this.parent.dataCallback({\n pageStart: segment.pageStart,\n data: segm,\n nrResponses: timeSeriesMessage.totalResponses,\n type: 'gap'\n });\n\n }\n }\n });\n\n myReader.readAsArrayBuffer(msg.data);\n },\n sendFilterMessage: function(msg) {\n if (this._websocket && this._websocket.readyState === 1) {\n const parms = msg.filterParameters || [];\n parms.forEach( p => {\n if (!this.isTruthy(p)) {\n return;\n }\n });\n this._websocket.send(JSON.stringify(msg));\n } else {\n this.async(() => {this.sendFilterMessage(msg)}, 200);\n }\n },\n isTruthy: val => val && val !== '' && !val.isNaN,\n calcFilterType: function(low, high, notch) {\n switch(true) {\n case !this.isTruthy(low) && !this.isTruthy(high) && !notch:\n return 'clear';\n case this.isTruthy(low) && this.isTruthy(high):\n return 'bandpass';\n case this.isTruthy(low):\n return 'highpass';\n case this.isTruthy(high):\n return 'lowpass';\n default:\n return 'bandstop';\n }\n },\n // Callback method for async data fetch from server\n dataCallback: function(obj) {\n\n // Autoscale counter is set to number > 0 for first request, and autoscale is triggered when\n // counter reaches 0.\n if (this.autoScale > 0) {\n this.autoScale--;\n }\n\n // Find channel for object in chData\n let curChData = null;\n for (let ch = 0; ch < this.chData.length; ch++) {\n if (this.chData[ch].label === obj.data.label) {\n curChData = this.chData[ch];\n break;\n }\n }\n\n // Based on Obj type, handle placement in cache differently\n switch(obj.type) {\n\n case 'gap':\n case 'Neural': //neural and continuous data get put in the cache the same way\n case 'Continuous':\n\n // Check if data already exists in chData (happens when zoom out, and back in before data is there)\n // eslint-disable-next-line\n let addData = false;\n // eslint-disable-next-line\n let curSegments = curChData && curChData.segments;\n if (curSegments && obj.type !== 'gap') {\n addData = true;\n if (curSegments.length > 0) {\n let fIndex = this.segmIndexOf(curSegments, obj.data.startTs, true, 0);\n\n // Iterate over all segments in CHData with same pageStart to see if page is already present\n while( curSegments[fIndex] && curSegments[fIndex].pageStart === obj.data.pageStart) {\n if (curSegments[fIndex].startTs === obj.data.startTs) {\n addData = false;\n break;\n }\n fIndex++;\n }\n }\n }\n\n // Remove returned page from the list of requested Pages.\n // eslint-disable-next-line\n let requestedPage = this.requestedPages.get(obj.data.pageStart);\n // array or page IDs (timestamp, based on viewport)\n // array of channel IDs\n if (requestedPage) {\n\n // Update time\n requestedPage.ts = Date.now();\n\n let countForChannel = requestedPage.counter.get(obj.data.chId);\n if (isNaN(countForChannel)) {\n countForChannel = obj.nrResponses -1;\n requestedPage.counter.set(obj.data.chId, countForChannel);\n requestedPage.subPageCount = countForChannel;\n } else {\n countForChannel = countForChannel - 1;\n requestedPage.counter.set(obj.data.chId, countForChannel);\n }\n\n if (countForChannel <= 0) {\n let isComplete = true;\n for (let value2 of requestedPage.counter.values()) {\n if (value2 > 0 || isNaN(value2)) {\n isComplete = false;\n break;\n }\n }\n if (isComplete) {\n this.requestedPages.delete(obj.data.pageStart);\n // console.log('isComplete')\n }\n\n }\n\n }\n\n // Add data to local cache\n if (addData) {\n curSegments.push(obj.data);\n\n // Resort segments in each channel afer adding data\n curSegments.sort(function Comparator(a, b) {\n if (a.startTs < b.startTs) return -1;\n if (a.startTs > b.startTs) return 1;\n return 0;\n });\n\n // Check if returned page falls in viewport\n if (obj.pageStart < (this.start + this.duration)) {\n this.throttledGetRenderData();\n }\n }\n\n break;\n\n case 'realtime':\n console.log('No Longer Supporting RealTime Data')\n break;\n }\n\n }\n\n }\n }\n\n</script>\n\n<style lang=\"scss\" scoped>\n .canvas {\n position: absolute;\n top: 0;\n left: 0;\n margin-left: 5px;\n cursor: ew-resize;\n outline: none;\n }\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-120[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSPlotCanvas.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-120[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSPlotCanvas.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TSPlotCanvas.vue?vue&type=template&id=0a32917c&scoped=true&\"\nimport script from \"./TSPlotCanvas.vue?vue&type=script&lang=js&\"\nexport * from \"./TSPlotCanvas.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TSPlotCanvas.vue?vue&type=style&index=0&id=0a32917c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0a32917c\",\n null\n \n)\n\nexport default component.exports","<template>\n <div class=\"timeseries-viewer-canvas\">\n\n <div id=\"canvasWrapper\">\n <timeseries-plot-canvas\n ref=\"plotCanvas\"\n :c-width=\"cWidth\"\n :c-height=\"cHeight\"\n :start=\"start\"\n :ts_start=\"tsStart\"\n :ts_end=\"tsEnd\"\n :duration=\"duration\"\n :constants=\"constants\"\n :rs-period=\"rsPeriod\"\n :global-zoom-mult=\"globalZoomMult\"\n @channelsInitialized=\"channelsInitialized\"\n @setGlobalZoom=\"setGlobalZoom\"\n >\n <canvas\n id=\"axisArea\"\n ref=\"axisArea\"\n slot=\"axisCanvas\"\n class=\"canvas\"\n :width=\"_cpCanvasScaler(cWidth, pixelRatio, 0)\"\n :height=\"_cpCanvasScaler(cHeight, pixelRatio,0)\"\n :style=\"canvasStyle1\"\n />\n <canvas\n id=\"annArea\"\n ref=\"annArea\"\n slot=\"annCanvas\"\n class=\"canvas\"\n :width=\"_cpCanvasScaler(cWidth, pixelRatio, 0)\"\n :height=\"_cpCanvasScaler(pHeight, pixelRatio,0)\"\n :style=\"canvasStyle2\"\n />\n </timeseries-plot-canvas>\n\n <canvas\n id=\"cursorArea\"\n ref=\"cursorArea\"\n class=\"canvas\"\n :width=\"_cpCanvasScaler(cWidth + 5, pixelRatio, 0)\"\n :height=\"_cpCanvasScaler(cHeight, pixelRatio,0)\"\n :style=\"canvasStyle3\"\n />\n\n<!-- <timeseries-annotation-canvas-->\n<!-- ref=\"annCanvas\"-->\n<!-- :c-width=\"cWidth\"-->\n<!-- :c-height=\"cHeight\"-->\n<!-- :constants=\"constants\"-->\n<!-- :annotations-canvas=\"this.$refs.annArea\"-->\n<!-- :pixel-ratio=\"pixelRatio\"-->\n<!-- :rs-period=\"rsPeriod\"-->\n<!-- :start=\"start\"-->\n<!-- :duration=\"duration\"-->\n<!-- :ts-end=\"tsEnd\"-->\n<!-- :pointer-mode=\"pointerMode\"-->\n<!-- @annLayersInitialized=\"onAnnLayersInitialized\"-->\n<!-- @annotationsReceived=\"onAnnotationsReceived\"-->\n<!-- @closeAnnotationLayerWindow=\"onCloseAnnotationLayerWindow\"-->\n<!-- @updateAnnotation=\"onUpdateAnnotation\"-->\n<!-- />-->\n\n <canvas\n id=\"iArea\"\n ref=\"iArea\"\n class=\"canvas\"\n :width=\"_cpCanvasScaler(cWidth, pixelRatio, 0)\"\n :height=\"_cpCanvasScaler(cHeight, pixelRatio,0)\"\n :style=\"canvasStyle1\"\n tabindex=\"-1\"\n @wheel=\"_onMouseWheel\"\n @mousemove=\"_onMouseMove\"\n @mousedown=\"_onMouseDown\"\n @mouseup=\"_onMouseUp\"\n @mouseout=\"_onMouseOut\"\n @mouseenter=\"_onMouseEnter\"\n />\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable no-case-declarations */\n import { find, propEq } from 'ramda'\n import ViewerActiveTool from '@/mixins/viewer-active-tool'\n import Request from '@/mixins/request'\n import TimeseriesPlotCanvas from '@/components/TSPlotCanvas.vue'\n export default {\n name: 'TimeseriesViewerCanvas',\n components:{\n TimeseriesPlotCanvas\n // 'timeseries-annotation-canvas': () => import('@/components/viewers/TSViewer/TSAnnotationCanvas.vue')\n },\n mixins: [\n Request,\n ViewerActiveTool\n ],\n props: {\n windowHeight: Number,\n windowWidth: Number,\n duration: Number,\n start: Number,\n cHeight: Number,\n cWidth: Number,\n globalZoomMult: Number,\n constants: Object,\n tsStart: Number,\n tsEnd: Number,\n cursorLoc: Number,\n },\n computed: {\n viewerChannels: function() {\n return this.$store.getters.viewerChannels\n },\n viewerAnnotations: function() {\n return this.$store.getters.viewerAnnotations\n },\n viewerActiveTool: function() {\n return this.$store.getters.viewerActiveTool\n },\n pHeight: function() {\n return this.cHeight -20;\n },\n cursorWidth: function() {\n return this.cWidth + this.constants['CURSOROFFSET']\n },\n blurCanvas: function() {\n return this.$refs.blurCanvas\n },\n canvasStyle1: function() {\n return {\n width: this.cWidth + 'px',\n height: this.cHeight + 'px'\n }\n },\n canvasStyle2: function() {\n return {\n width: this.cWidth + 'px',\n height: this.pHeight + 'px'\n }\n },\n canvasStyle3: function() {\n return {\n width: this.cursorWidth + 'px',\n height: this.cHeight + 'px'\n }\n },\n },\n watch: {\n cHeight: function () {\n this.resize()\n },\n cWidth: function () {\n this.resize()\n },\n start: function() {\n this.renderAll()\n },\n duration: function() {\n this.$refs.plotCanvas.invalidate()\n this.updateRsPeriod(this.cWidth, this.duration)\n this.renderAll()\n },\n globalZoomMult: function() {\n this.$nextTick(() => {\n this.$refs.plotCanvas.throttledDataRender()\n })\n },\n viewerChannels: function () {\n this.$nextTick(() => {\n this.renderAll()\n })\n },\n pointerMode: function () {\n this.$refs.iArea.removeAttribute('col_resize');\n this.$refs.iArea.removeAttribute('active');\n this.$refs.iArea.removeAttribute('point')\n switch (this.pointerMode) {\n case 'cursor_hover':\n console.log('hover')\n this.$refs.iArea.removeAttribute('point')\n this.$refs.iArea.setAttribute('cursor_hover', true)\n break\n case 'annResize-left':\n console.log('left')\n this.$refs.iArea.setAttribute('col_resize', true)\n break\n case 'annResize-right':\n console.log('right')\n this.$refs.iArea.setAttribute('col_resize', true)\n break\n case 'annSelect':\n this.$refs.iArea.setAttribute('active', true)\n break\n case 'pan':\n break;\n case 'pointer':\n this.$refs.iArea.setAttribute('point', true);\n break;\n case 'annotate':\n this.$refs.iArea.setAttribute('point', true);\n break;\n default:\n console.log('other')\n this.$refs.iArea.removeAttribute('point');\n this.$refs.iArea.removeAttribute('cursor_hover');\n break\n }\n this.$nextTick(() => {\n this.renderAnnotationCanvas()\n })\n }\n },\n data: function () {\n return {\n summary: {},\n rsPeriod:0,\n pageSize:0,\n lastrRsUpdate:0,\n pixelRatio: 1, // Pixel Ratio of screen (1 for regular, >1 for high-res screens)\n mouseDown: false,\n resizeClicked: false,\n pointerMode: 'pan',\n trackDirection: false,\n startDragCoord: {x: 0, y: 0},\n defaultLabels: ['Event', 'Artifact', 'Seizure', 'Mark', 'Stim On', 'Stim Off', 'Start', 'Stop'],\n labelSelect: 0\n }\n },\n mounted: function () {\n this.pixelRatio = this.getScreenPixelRatio();\n },\n methods: {\n // resetFocusedAnnotation: function() {\n // this.$refs.annCanvas.resetFocusedAnnotation()\n // },\n // createAnnotationLayer: function(newLayer) {\n // this.$refs.annCanvas.createAnnotationLayer(newLayer)\n // },\n // getNextAnnotation: function() {\n // let cursorOffset = (this.cursorLoc*this.cWidth - this.constants['CURSOROFFSET']) * this.rsPeriod\n // let nextAnn = this.$refs.annCanvas.findNextAnnotation(this.start + cursorOffset)\n // return nextAnn.start - cursorOffset\n // },\n // getPreviousAnnotation: function() {\n // let cursorOffset = (this.cursorLoc*this.cWidth - this.constants['CURSOROFFSET']) * this.rsPeriod\n // let nextAnn = this.$refs.annCanvas.findPreviousAnnotation(this.start + cursorOffset)\n // return nextAnn.start - cursorOffset\n // },\n // onUpdateAnnotation: function(annotation) {\n // this.$emit('updateAnnotation', annotation)\n // },\n // onCloseAnnotationLayerWindow: function() {\n // this.$emit('closeAnnotationLayerWindow')\n // },\n onAnnotationsReceived: function() {\n this.renderAll(100)\n },\n onAnnLayersInitialized: function() {\n this.$emit('annLayersInitialized')\n },\n setGlobalZoom: function(value) {\n this.$emit('setGlobalZoom', value)\n },\n channelsInitialized: function(channels) {\n this.$emit('channelsInitialized', channels)\n },\n _onMouseWheel: function(e) {\n e.stopPropagation();\n e.preventDefault();\n if(e.shiftKey) {\n if (Math.abs(e.deltaY) > Math.abs(e.deltaX)) {\n if (e.deltaY >0) {\n this.$emit('setDuration', this.duration*1.1 )\n } else {\n this.$emit('setDuration', this.duration/1.1 )\n }\n }\n }else{\n if (Math.abs(e.deltaY) > Math.abs(e.deltaX)) {\n if (e.deltaY > 0 ) {\n this.$emit('setGlobalZoom',this.globalZoomMult*1.2);\n } else {\n this.$emit('setGlobalZoom',this.globalZoomMult/1.2);\n }\n }\n }\n },\n _onMouseUp: function(e) {\n this.resizeClicked = false;\n this.mouseDown = false;\n switch (this.pointerMode) {\n case 'pointer':\n this.clearICanvas()\n const append = e.metaKey;\n const yEnd = e.clientY - this.$refs.iArea.getBoundingClientRect().top\n const yStart = this.startDragCoord.y - this.$refs.iArea.getBoundingClientRect().top\n const channels = this.viewerChannels.map(channel => {\n if (append === false) {\n channel.selected = false\n }\n if( (channel.rowBaseline > yStart && channel.rowBaseline < yEnd) ||\n (channel.rowBaseline < yStart && channel.rowBaseline > yEnd)) {\n channel.selected = true\n }\n return channel\n })\n this.$store.dispatch('setChannels', channels)\n break\n case 'annSelect':\n this.clearICanvas()\n // this.$refs.annCanvas.selectFocusedAnn()\n break\n case 'annotate':\n let curLIndex = null;\n for (let i=0; i<this.viewerAnnotations.length; i++) {\n if (this.viewerAnnotations[i].selected) {\n curLIndex = i;\n break;\n }\n }\n // No layers\n if (curLIndex === null) {\n return;\n }\n const selectedChannels = this.$store.getters['viewerSelectedChannels']\n const allChannels = selectedChannels.length === this.viewerChannels.length || selectedChannels.length === 0\n const duration = (e.clientX - this.startDragCoord.x) * this.rsPeriod\n const startTime = this.startDragTimeStamp + ( (this.startDragCoord.x - this.$refs.iArea.getBoundingClientRect().left) * this.rsPeriod)\n const newAnn = {\n name: '',\n id: null,\n label: this.defaultLabels[this.labelSelect],\n description: '',\n start: startTime,\n duration: duration,\n end: startTime + duration,\n cStart: null,\n cEnd: null,\n selected: true,\n channelIds: selectedChannels,\n allChannels: allChannels,\n layer_id: this.viewerAnnotations[curLIndex].id,\n userId: null\n };\n this.$store.dispatch('setActiveAnnotation', newAnn)\n this.$emit(\"addAnnotation\", startTime, duration, allChannels, this.defaultLabels[this.labelSelect], '', this.viewerAnnotations[curLIndex] )\n break;\n case 'annResize-left':\n case 'annResize-right':\n // this.$refs.annCanvas.onMouseUp()\n }\n },\n clearICanvas: function() {\n const iCanvas = this.$refs.iArea;\n const ctx = iCanvas.getContext('2d');\n ctx.clearRect(0, 0, this.cWidth, this.cHeight);\n },\n _onMouseDown: function(evt) {\n this.mouseDown = true;\n this.startDragTimeStamp = this.start\n this.startDragCoord.x = evt.clientX\n this.startDragCoord.y = evt.clientY\n // switch(this.pointerMode) {\n // case 'annResize-left':\n // case 'annResize-right':\n // this.resizeClicked = true\n // this.$refs.annCanvas.onMouseDown(evt.clientX - cCoord.left, evt.clientY - cCoord.top)\n // break;\n // }\n },\n _onMouseOut: function() {\n this.mouseDown = false;\n },\n _onMouseEnter: function(e) {\n if (e.buttons === 1) {\n this.mouseDown = true;\n } else {\n this.mouseDown = false;\n }\n },\n _onMouseMove: function(e) {\n e.preventDefault();\n e.stopPropagation();\n switch (this.viewerActiveTool) {\n case 'pan':\n if( this.mouseDown){\n // Update StartTime and get new data\n const setStart = this.startDragTimeStamp - ((e.clientX-this.startDragCoord.x) * this.rsPeriod);\n this.$emit('setStart', setStart)\n } else {\n // this.pointerMode = this.$refs.annCanvas.onMouseMove(mX,mY, this.pointerMode, this.mouseDown)\n }\n break;\n case 'pointer':\n if( this.mouseDown){\n this.renderSelectBox(e.clientX, e.clientY);\n } else {\n // this.pointerMode = this.$refs.annCanvas.onMouseMove(mX,mY, this.pointerMode , this.mouseDown)\n }\n break;\n case 'annotate':\n if( this.mouseDown && this.pointerMode == 'annotate') {\n this.renderAnnotationBox(e.clientX)\n } else if (this.mouseDown && ['annResize-left', 'annResize-right'].includes(this.pointerMode)) {\n // this.pointerMode = this.$refs.annCanvas.onMouseMove(mX,mY, this.pointerMode, this.mouseDown)\n this.renderAll()\n } else {\n // this.pointerMode = this.$refs.annCanvas.onMouseMove(mX,mY, this.pointerMode, this.mouseDown)\n }\n break;\n }\n },\n resize: function() {\n this.updateRsPeriod(this.cWidth, this.duration)\n this.renderAll(25)\n },\n updateRsPeriod: function(w, d) {\n const oldRs = this.rsPeriod;\n const newPeriod = (d / w);\n if (newPeriod !== oldRs) {\n this.invalidateCache = true;\n this.lastRsUpdate = Date.now();\n this.rsPeriod = newPeriod;\n this.pageSize = Math.floor(this.duration / this.constants['PAGESIZEDIVIDER']);\n }\n },\n _cpCanvasScaler: function(sz, pixelRatio, offset) {\n return pixelRatio * (sz + offset);\n },\n renderAll: function(delay, requestLeadingEdge = true) {\n if (!this.renderFnc || delay !== this.renderThrottle || this.requestLeadingEdge !== requestLeadingEdge) {\n this.renderFnc = this.throttle(this._renderAll, delay, {leading: requestLeadingEdge} );\n this.renderThrottle = delay;\n this.requestLeadingEdge = requestLeadingEdge;\n }\n this.renderFnc(this);\n },\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n throttle: function(func, wait, options) {\n let context;\n let args;\n let result;\n let timeout = null;\n let previous = 0;\n if (!options) options = {};\n const later = function() {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function() {\n const now = Date.now();\n if (!previous && options.leading === false) previous = now;\n const remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n },\n renderAnnotationCanvas: function() {\n this.clearICanvas()\n // this.$refs.annCanvas.render()\n },\n _renderAll: function() {\n this.$nextTick(() => {\n this._renderAxis();\n this._renderCursor();\n this.$refs.plotCanvas.renderAll()\n // TODO: Bring back when supporting public annotations.\n // this.$refs.annCanvas.render()\n })\n },\n // Render the X and Y axis, and time ticks\n _renderAxis: function() {\n const pa = this.$refs.axisArea;\n const ctx = pa.getContext('2d');\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n // clear canvas\n ctx.clearRect(0, 0, this.cWidth, this.cHeight);\n ctx.stroke();\n // render side/bottom line\n ctx.beginPath();\n ctx.lineWidth = 1;\n ctx.moveTo(this.constants.XOFFSET+0.5, 0.5);\n ctx.lineTo(this.constants.XOFFSET+0.5, (this.pHeight +0.5));\n ctx.lineTo(this.cWidth+0.5, (this.pHeight+0.5));\n ctx.stroke();\n // Render y-ticks\n let tickOffset = (((this.pHeight/(2*this.nrVisibleChannels))+0.5)<<1)>>1;\n ctx.lineWidth=0.5;\n for (let i = 0; i< this.nrVisibleChannels; i++) {\n ctx.beginPath();\n ctx.moveTo(this.constants.XOFFSET - 2, tickOffset);\n ctx.lineTo(this.constants.XOFFSET + 2, tickOffset);\n ctx.stroke();\n tickOffset += this.pHeight/this.nrVisibleChannels;\n }\n // --- --- --- --- ---\n // Render x-ticks\n const gridSpacing = this.constants['XGRIDSPACING'] * Math.ceil(this.duration / 100000000);\n const nrGridLines = Math.ceil(this.duration / gridSpacing) + 1;\n const labelDecimator = Math.ceil( this.constants['NRPXPERLABEL'] / (gridSpacing / this.rsPeriod));\n let curXLabelIdx = 1;\n // XLOC1 is time to first timeIndicator line\n const xLoc1 = (gridSpacing - (this.start % gridSpacing) ) % gridSpacing;\n // Iterate over all potential time-lines\n for(let i = 0; i < nrGridLines; i++) {\n // actual time of the timeline = canvas start time + xLoc1 time\n let realX = this.start + xLoc1 + i * gridSpacing;\n if (realX > this.tsEnd) {\n break;\n }\n // curLoc is pixel coordinates of realX\n const realOffset = realX - this.start;\n const curLoc = ( this.constants['XOFFSET'] + (realOffset / this.rsPeriod) );\n const roundedCurLoc = Math.round(curLoc);\n if (roundedCurLoc > 1) {\n ctx.save();\n ctx.beginPath();\n ctx.lineWidth=0.5;\n ctx.strokeStyle='rgb(235,235,235)';\n ctx.moveTo(roundedCurLoc + 0.5, 0.5);\n ctx.lineTo(roundedCurLoc+ 0.5, this.pHeight -0.5);\n ctx.stroke();\n ctx.restore();\n // Render X-Label when appropriate\n const test = (((realX / gridSpacing) + gridSpacing / 10) % labelDecimator) |0;\n if( test === 1 || labelDecimator === 1 ) {\n ctx.beginPath();\n ctx.lineWidth = 1;\n ctx.moveTo(roundedCurLoc+ 0.5, this.pHeight - 3);\n ctx.lineTo(roundedCurLoc+ 0.5, this.pHeight + 3);\n ctx.stroke();\n const d = new Date(realX/1000);\n ctx.font = '12px sans-serif';\n ctx.fillStyle = 'rgb(150,150,150)';\n ctx.fillText(this.getUTCTimeString(d), roundedCurLoc - 20.5, this.cHeight-0.2);\n curXLabelIdx = curXLabelIdx + 1;\n }\n }\n }\n },\n // Render the selection box on click-drag using point for selecting channels\n renderSelectBox: function(curX, curY) {\n const iCanvas = this.$refs.iArea;\n const ctx = iCanvas.getContext('2d');\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n ctx.clearRect(0, 0, this.cWidth, this.cHeight);\n ctx.beginPath();\n ctx.lineWidth=2;\n ctx.strokeStyle='#295eff';\n ctx.setLineDash([5, 5, 15, 5]);\n const xStart = curX - iCanvas.getBoundingClientRect().left;\n const yStart = curY - iCanvas.getBoundingClientRect().top;\n ctx.rect(xStart, yStart, -curX+this.startDragCoord.x, -curY+this.startDragCoord.y);\n ctx.stroke();\n },\n _renderCursor: function() {\n // --- --- --- --- ---\n // Render cursor\n const pa = this.$refs.cursorArea;\n const ctx = pa.getContext('2d');\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n ctx.clearRect(0, 0, (this.cWidth + this.constants['CURSOROFFSET']), this.cHeight);\n ctx.save()\n ctx.beginPath();\n ctx.fillStyle = 'red';\n const cCursorLoc = this.cursorLoc * this.cWidth\n if (cCursorLoc > this.constants['CURSOROFFSET']) {\n ctx.strokeStyle = 'red';\n ctx.moveTo(cCursorLoc, 0);\n ctx.lineTo(cCursorLoc, this.pHeight);\n ctx.stroke();\n } else {\n ctx.moveTo(cCursorLoc, this.pHeight);\n }\n ctx.beginPath();\n ctx.lineTo(cCursorLoc - 5, this.pHeight + 8);\n ctx.lineTo(cCursorLoc + 5, this.pHeight + 8);\n ctx.lineTo(cCursorLoc, this.pHeight );\n ctx.fill();\n ctx.restore();\n },\n // Render an annotation during dragging mouse while creating annotation\n renderAnnotationBox: function(curX) {\n const iCanvas = this.$refs.iArea\n const ctx = iCanvas.getContext('2d');\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n const annotationHeight = this.constants['ANNOTATIONLABELHEIGHT'];\n const halfAnnotationHeight = (annotationHeight/2) |0;\n // Find active layer\n let curLIndex = null;\n for (let i=0; i<this.viewerAnnotations.length; i++) {\n if (this.viewerAnnotations[i].selected) {\n curLIndex = i;\n break;\n }\n }\n // No active Layers\n if (curLIndex === null) {\n return;\n }\n ctx.save();\n ctx.clearRect(0, 0, this.cWidth, this.cHeight);\n ctx.lineWidth = 1;\n // Determine if the user is adding annotation to specific channels\n const selectedChannels = this.$store.getters['viewerSelectedChannels']\n const allChannels = selectedChannels.length === this.viewerChannels.length || selectedChannels.length === 0\n const xStart = curX - iCanvas.getBoundingClientRect().left;\n const dx = -curX + this.startDragCoord.x\n if (allChannels) {\n ctx.fillStyle = 'rgba(0,0,0,0.1)';\n ctx.fillRect(xStart, 0, dx, this.pHeight);\n ctx.fillStyle = this.viewerAnnotations[curLIndex].color;\n ctx.strokeStyle = ctx.fillStyle;\n let lblStart = xStart -1;\n let lblEnd = dx +2;\n if (dx < 0) {\n lblStart = xStart +1;\n lblEnd = dx-2;\n }\n ctx.fillRect(lblStart, 0, lblEnd, annotationHeight);\n ctx.setLineDash([5, 5, 5, 5]);\n ctx.beginPath();\n ctx.moveTo(xStart, annotationHeight);\n ctx.lineTo(xStart, this.pHeight );\n ctx.stroke();\n ctx.beginPath();\n ctx.moveTo(xStart+dx, annotationHeight);\n ctx.lineTo(xStart+dx, this.pHeight );\n ctx.stroke();\n } else {\n let minOffset = this.cHeight | 0;\n let maxOffset = 0;\n const channelConfig = this.viewerChannels;\n ctx.fillStyle = this.viewerAnnotations[curLIndex].color;\n ctx.strokeStyle=ctx.fillStyle;\n let lblStart = xStart -1;\n let lblEnd = dx +2;\n if (dx < 0) {\n lblStart = xStart +1;\n lblEnd = dx-2;\n }\n for (let ch=0; ch< channelConfig.length; ch++) {\n const curChannelView = channelConfig[ch];\n if(curChannelView.selected && curChannelView.visible) {\n const channelOffset = curChannelView.rowBaseline |0;\n if (channelOffset < minOffset) { minOffset = channelOffset; }\n if (channelOffset > maxOffset) { maxOffset = channelOffset; }\n ctx.fillRect(lblStart, channelOffset - halfAnnotationHeight, lblEnd, annotationHeight);\n }\n }\n ctx.fillStyle = 'rgba(0,0,0,0.1)';\n ctx.setLineDash([5, 5, 5, 5]);\n ctx.fillRect(xStart -1, minOffset+halfAnnotationHeight,\n dx +2, maxOffset-minOffset -annotationHeight);\n ctx.beginPath();\n ctx.moveTo(xStart, minOffset +halfAnnotationHeight);\n ctx.lineTo(xStart, maxOffset-halfAnnotationHeight );\n ctx.moveTo(xStart+dx, minOffset +halfAnnotationHeight);\n ctx.lineTo(xStart+dx, maxOffset -halfAnnotationHeight);\n ctx.stroke();\n }\n ctx.restore();\n },\n getScreenPixelRatio: function() {\n let ctx = this.$refs.iArea.getContext('2d');\n let dpr = window.devicePixelRatio || 1\n let bsr = ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio || 1;\n return dpr / bsr;\n },\n getUTCTimeString: function(d) {\n return ( ('0' + d.getUTCHours()).slice(-2) + ':' +\n ('0' + d.getUTCMinutes()).slice(-2) + ':' + ('0' + d.getUTCSeconds()).slice(-2) );\n },\n setFilters: function(payload) {\n let input0 = parseFloat(payload.input0)\n let input1 = parseFloat(payload.input1)\n let message = {};\n switch (payload.filterType) {\n case 'clear':\n message = {'channelFiltersToClear':payload.selChannels};\n break;\n case 'bandpass':\n let bp_center = (input0 + input1) / 2;\n let bp_width = Math.abs( (input1 - input0) / 2 )\n message = {'filter':payload.filterType, 'filterParameters': [4, bp_center, bp_width], 'channels':payload.selChannels};\n break;\n case 'highpass':\n message = {'filter':payload.filterType, 'filterParameters': [4, input0], 'channels':payload.selChannels};\n break;\n case 'lowpass':\n message = {'filter':payload.filterType, 'filterParameters': [4, input0], 'channels':payload.selChannels};\n break;\n case 'bandstop':\n let bs_width = 10;\n const bs_center = payload.notchFreq;\n message = {'filter':payload.filterType, 'filterParameters': [4, bs_center, bs_width], 'channels':payload.selChannels};\n break;\n default:\n return;\n }\n this.$refs.plotCanvas.sendFilterMessage(message)\n for (let i=0; i<payload.selChannels.length; i++) {\n let channelId = payload.selChannels[i]\n let channel = find(propEq('id', channelId), this.viewerChannels)\n if (payload.filterType === 'clear') {\n channel.filter = {}\n } else {\n channel.filter = {\n type: payload.filterType,\n input0: input0,\n input1: input1,\n notchFreq: payload.notchFreq\n }\n }\n this.$store.dispatch('updateChannel', channel)\n }\n this.$refs.plotCanvas.invalidate();\n this.renderAll();\n }\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .timeseries-viewer-canvas {\n display: flex;\n background-color: white;\n flex: 1;\n }\n #canvasWrapper {\n position: relative;\n }\n #channelCanvas {\n display: flex;\n }\n .canvas {\n position: absolute;\n top: 0;\n left: 0;\n margin-left: 5px;\n cursor: ew-resize;\n outline: none;\n }\n .canvas[active]{\n cursor: pointer;\n }\n .canvas[col_resize]{\n cursor: col-resize;\n }\n .canvas[point]{\n cursor: default;\n }\n .canvas[cursor_hover]{\n cursor: col-resize;\n }\n #cursorArea {\n margin-left: 0;\n }\n #annotationPopover {\n position: absolute;\n opacity: 0;\n display: none;\n top: 75px;\n z-index: 1000;\n left: 400px;\n }\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-120[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSViewerCanvas.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-120[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSViewerCanvas.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TSViewerCanvas.vue?vue&type=template&id=0f680526&scoped=true&\"\nimport script from \"./TSViewerCanvas.vue?vue&type=script&lang=js&\"\nexport * from \"./TSViewerCanvas.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TSViewerCanvas.vue?vue&type=style&index=0&id=0f680526&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f680526\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"timeseries-viewer-toolbar\"},[_c('div',{attrs:{\"id\":\"left-controls\"}},[_c('el-tooltip',{attrs:{\"placement\":\"top-end\",\"content\":\"Toggle Time Zoom Controls\"}},[_c('button',{staticClass:\"btn-icon\",on:{\"click\":function($event){return _vm.toggleTimeZoom()}}},[_c('svg',{staticClass:\"svg-fill icon\",attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M13.653125,14.3537502 L11.29125,11.9918752 C11.6475,11.4075002 11.8525,10.7200002 11.8525,9.98562517 C11.8525,7.85000017 10.001875,6.00000017 7.86625,6.00000017 C5.730625,5.99937517 4,7.73062517 4,9.86625017 C4,12.0012502 5.850625,13.8518752 7.985625,13.8518752 C8.69625,13.8518752 9.360625,13.6587502 9.9325,13.3243752 L12.306875,15.7000002 C12.539375,15.9318752 12.91625,15.9318752 13.148125,15.7000002 L13.7375,15.1106252 C13.969375,14.8787502 13.885,14.5856252 13.653125,14.3537502 Z M5.19,9.86625017 C5.19,8.38750017 6.388125,7.18937517 7.86625,7.18937517 C9.345,7.18937517 10.6625,8.50625017 10.6625,9.98562517 C10.6625,11.4637502 9.46375,12.6625002 7.985625,12.6625002 C6.506875,12.6618752 5.19,11.3443752 5.19,9.86625017 Z M16,3 L13,6 L13,4 L9,4 L9,2 L13,2 L13,6.2778623e-16 L16,3 Z M3,6 L2.66453526e-15,3 L3,-7.66951701e-17 L3,2 L9,2 L9,4 L3,4 L3,6 Z\"}})])])]),(_vm.showTimeZoom)?_c('el-input-number',{attrs:{\"precision\":1,\"step\":5,\"max\":this.constants['MAXDURATION'],\"size\":\"mini\",\"controls-position\":\"right\"},model:{value:(_vm.durationInSeconds),callback:function ($$v) {_vm.durationInSeconds=$$v},expression:\"durationInSeconds\"}}):_vm._e(),_c('el-tooltip',{attrs:{\"placement\":\"top-end\",\"content\":\"Toggle Vertical Zoom Controls\"}},[_c('button',{staticClass:\"btn-icon\",on:{\"click\":function($event){return _vm.toggleVerticalZoom()}}},[_c('svg',{staticClass:\"svg-fill icon\",attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M15.715625,12.416875 L13.35375,10.055 C13.71,9.470625 13.915,8.783125 13.915,8.04875 C13.915,5.913125 12.064375,4.063125 9.92875,4.063125 C7.793125,4.0625 6.0625,5.79375 6.0625,7.929375 C6.0625,10.064375 7.913125,11.915 10.048125,11.915 C10.75875,11.915 11.423125,11.721875 11.995,11.3875 L14.369375,13.763125 C14.601875,13.995 14.97875,13.995 15.210625,13.763125 L15.8,13.17375 C16.031875,12.941875 15.9475,12.64875 15.715625,12.416875 Z M7.2525,7.929375 C7.2525,6.450625 8.450625,5.2525 9.92875,5.2525 C11.4075,5.2525 12.725,6.569375 12.725,8.04875 C12.725,9.526875 11.52625,10.725625 10.048125,10.725625 C8.569375,10.725 7.2525,9.4075 7.2525,7.929375 Z M3,0 L6,3 L4,3 L4,7 L2,7 L2,3 L0,3 L3,0 Z M6,13 L3,16 L0,13 L2,13 L2,7 L4,7 L4,13 L6,13 Z\"}})])])]),(_vm.showVertZoom)?_c('el-button-group',[_c('el-button',{attrs:{\"icon\":\"el-icon-plus\",\"size\":\"mini\"},on:{\"click\":_vm.incrementZoom}}),_c('el-button',{attrs:{\"icon\":\"el-icon-minus\",\"size\":\"mini\"},on:{\"click\":_vm.decrementZoom}})],1):_vm._e()],1),_c('div',{attrs:{\"id\":\"center-controls\"}},[_c('el-tooltip',{attrs:{\"placement\":\"top-end\",\"content\":\"Page Back\"}},[_c('button',{staticClass:\"btn-icon\",on:{\"click\":function($event){return _vm.pageBack()}}},[_c('svg',{staticClass:\"svg-fill icon\",attrs:{\"width\":\"18\",\"height\":\"12\",\"viewBox\":\"0 0 12 12\"}},[_c('path',{attrs:{\"d\":\"M10.959,0.571 L3.756,5.52 C3.756,5.52 3.477,5.721 3.477,6.001 C3.477,6.281 3.756,6.48 3.756,6.48 L10.959,11.431 C11.531,11.811 12,11.53 12,10.805 L12,1.196 C12,0.469 11.531,0.188 10.959,0.571 Z M2,0 L1,0 C0.447,0 0,0.048 0,0.6 L0,11.4 C0,11.952 0.447,12 1,12 L2,12 C2.553,12 3,11.952 3,11.4 L3,0.6 C3,0.048 2.553,0 2,0 Z\"}})])])]),_c('el-tooltip',{attrs:{\"placement\":\"top-end\",\"content\":\"Automatic Forward\"}},[_c('button',{staticClass:\"btn-icon\",on:{\"click\":function($event){return _vm.togglePlayback()}}},[(_vm.isPlaying)?_c('svg',{staticClass:\"svg-fill icon\",attrs:{\"width\":\"18\",\"height\":\"12\",\"viewBox\":\"0 0 10 12\"}},[_c('path',{attrs:{\"d\":\"M2,0 C2.553,0 3,0.048 3,0.6 L3,11.4 C3,11.952 2.553,12 2,12 L1,12 C0.447,12 0,11.952 0,11.4 L0,0.6 C0,0.048 0.447,0 1,0 L2,0 Z M9,0 C9.553,0 10,0.048 10,0.6 L10,11.4 C10,11.952 9.553,12 9,12 L8,12 C7.447,12 7,11.952 7,11.4 L7,0.6 C7,0.048 7.447,0 8,0 L9,0 Z\"}})]):_c('svg',{staticClass:\"svg-fill icon\",attrs:{\"width\":\"18\",\"height\":\"12\",\"viewBox\":\"0 0 10 12\"}},[_c('path',{attrs:{\"d\":\"M10,6.001 C10,6.3 9.695,6.515 9.695,6.515 L1.134,11.818 C0.51,12.227 0,11.924 0,11.149 L0,0.852 C0,0.075 0.51,-0.226 1.135,0.182 L9.696,5.487 C9.695,5.487 10,5.702 10,6.001 Z\"}})])])]),_c('el-tooltip',{attrs:{\"placement\":\"top-end\",\"content\":\"Next Page\"}},[_c('button',{staticClass:\"btn-icon\",on:{\"click\":function($event){return _vm.pageForward()}}},[_c('svg',{staticClass:\"svg-fill icon\",attrs:{\"width\":\"18\",\"height\":\"12\",\"viewBox\":\"0 0 12 12\"}},[_c('path',{attrs:{\"d\":\"M8.244,5.52 L1.041,0.571 C0.469,0.188 0,0.469 0,1.196 L0,10.805 C0,11.53 0.469,11.811 1.041,11.43 L8.244,6.479 C8.244,6.479 8.523,6.28 8.523,6.001 C8.523,5.721 8.244,5.52 8.244,5.52 Z M10,0 L11,0 C11.553,0 12,0.048 12,0.6 L12,11.4 C12,11.952 11.553,12 11,12 L10,12 C9.447,12 9,11.952 9,11.4 L9,0.6 C9,0.048 9.447,0 10,0 Z\"}})])])])],1),_c('div',{attrs:{\"id\":\"right-controls\"}},[_c('el-tooltip',{attrs:{\"placement\":\"top-end\",\"content\":\"Toggle Play Back Speed Controls\"}},[_c('button',{staticClass:\"btn-icon\",on:{\"click\":function($event){return _vm.togglePlaybackSpeed()}}},[_c('svg',{staticClass:\"svg-fill icon\",attrs:{\"width\":\"22\",\"height\":\"20\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M5.1008,5.396 C4.7432,5.616 6.0584,8.7896 6.3792,9.3064 C6.6592,9.7616 7.2536,9.9 7.7056,9.6216 C8.16,9.34 8.3016,8.7464 8.0216,8.2936 C7.704,7.7752 5.4576,5.1752 5.1008,5.396 Z M4.8328,1.9216 C5.5752,1.6632 6.3704,1.52 7.2,1.52 C8.0296,1.52 8.8248,1.6632 9.5672,1.9216 C9.8304,2.0128 10.1792,1.8296 10.0248,1.4328 C9.912,1.1448 9.8032,0.8632 9.7592,0.7488 C9.6544,0.4776 9.2792,0.2536 9.116,0.2168 C8.4984,0.0776 7.8584,0 7.2,0 C6.5416,0 5.9016,0.0776 5.2832,0.2168 C5.12,0.2536 4.7456,0.4776 4.6408,0.7488 C4.5968,0.8632 4.4872,1.1448 4.3752,1.4328 C4.2208,1.8296 4.5696,2.0136 4.8328,1.9216 Z M14.4784,2.5488 C14.3248,2.3648 14.1616,2.1848 13.988,2.0112 C13.8152,1.8376 13.6352,1.6752 13.452,1.5208 C13.3296,1.4176 12.9696,1.3336 12.7416,1.5616 C12.5144,1.7896 11.4232,2.8792 11.4232,2.8792 C11.7448,3.1096 12.0576,3.3632 12.3472,3.652 C12.6368,3.9408 12.8888,4.2536 13.12,4.576 C13.12,4.576 14.2104,3.4864 14.4376,3.2584 C14.6664,3.0296 14.5824,2.6704 14.4784,2.5488 Z M7.2,2.32 C3.62,2.32 0.7192,5.2208 0.7192,8.8 C0.7192,12.38 3.62,15.2808 7.2,15.2808 C10.7784,15.2808 13.68,12.38 13.68,8.8 C13.68,5.2216 10.7784,2.32 7.2,2.32 Z M7.2,13.6808 C4.5056,13.6808 2.32,11.496 2.32,8.8008 C2.32,6.1056 4.5048,3.9208 7.2,3.9208 C9.8952,3.9208 12.0808,6.1056 12.0808,8.8008 C12.0808,11.4952 9.8952,13.6808 7.2,13.6808 Z\"}})])])]),(_vm.showPlaybackSpeed)?_c('el-select',{staticClass:\"playSelect\",attrs:{\"placeholder\":\"Select\",\"size\":\"mini\"},model:{value:(_vm.selectedPlaySpeed),callback:function ($$v) {_vm.selectedPlaySpeed=$$v},expression:\"selectedPlaySpeed\"}},_vm._l((_vm.playSpeedOptions),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.label,\"value\":item.value}})}),1):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"timeseries-viewer-toolbar\">\n <div id=\"left-controls\">\n <el-tooltip\n placement=\"top-end\"\n content=\"Toggle Time Zoom Controls\">\n <button\n class=\"btn-icon\"\n @click=\"toggleTimeZoom()\">\n <svg\n class=\"svg-fill icon\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M13.653125,14.3537502 L11.29125,11.9918752 C11.6475,11.4075002 11.8525,10.7200002 11.8525,9.98562517 C11.8525,7.85000017 10.001875,6.00000017 7.86625,6.00000017 C5.730625,5.99937517 4,7.73062517 4,9.86625017 C4,12.0012502 5.850625,13.8518752 7.985625,13.8518752 C8.69625,13.8518752 9.360625,13.6587502 9.9325,13.3243752 L12.306875,15.7000002 C12.539375,15.9318752 12.91625,15.9318752 13.148125,15.7000002 L13.7375,15.1106252 C13.969375,14.8787502 13.885,14.5856252 13.653125,14.3537502 Z M5.19,9.86625017 C5.19,8.38750017 6.388125,7.18937517 7.86625,7.18937517 C9.345,7.18937517 10.6625,8.50625017 10.6625,9.98562517 C10.6625,11.4637502 9.46375,12.6625002 7.985625,12.6625002 C6.506875,12.6618752 5.19,11.3443752 5.19,9.86625017 Z M16,3 L13,6 L13,4 L9,4 L9,2 L13,2 L13,6.2778623e-16 L16,3 Z M3,6 L2.66453526e-15,3 L3,-7.66951701e-17 L3,2 L9,2 L9,4 L3,4 L3,6 Z\"/>\n </svg>\n </button>\n </el-tooltip>\n\n <el-input-number\n v-model=\"durationInSeconds\"\n v-if=\"showTimeZoom\"\n :precision=\"1\"\n :step=\"5\"\n :max=\"this.constants['MAXDURATION']\"\n size=\"mini\"\n controls-position=\"right\">\n </el-input-number>\n\n <el-tooltip\n placement=\"top-end\"\n content=\"Toggle Vertical Zoom Controls\">\n <button\n class=\"btn-icon\"\n @click=\"toggleVerticalZoom()\">\n <svg\n class=\"svg-fill icon\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M15.715625,12.416875 L13.35375,10.055 C13.71,9.470625 13.915,8.783125 13.915,8.04875 C13.915,5.913125 12.064375,4.063125 9.92875,4.063125 C7.793125,4.0625 6.0625,5.79375 6.0625,7.929375 C6.0625,10.064375 7.913125,11.915 10.048125,11.915 C10.75875,11.915 11.423125,11.721875 11.995,11.3875 L14.369375,13.763125 C14.601875,13.995 14.97875,13.995 15.210625,13.763125 L15.8,13.17375 C16.031875,12.941875 15.9475,12.64875 15.715625,12.416875 Z M7.2525,7.929375 C7.2525,6.450625 8.450625,5.2525 9.92875,5.2525 C11.4075,5.2525 12.725,6.569375 12.725,8.04875 C12.725,9.526875 11.52625,10.725625 10.048125,10.725625 C8.569375,10.725 7.2525,9.4075 7.2525,7.929375 Z M3,0 L6,3 L4,3 L4,7 L2,7 L2,3 L0,3 L3,0 Z M6,13 L3,16 L0,13 L2,13 L2,7 L4,7 L4,13 L6,13 Z\"/>\n </svg>\n </button>\n </el-tooltip>\n\n <el-button-group v-if=\"showVertZoom\">\n <el-button icon=\"el-icon-plus\" size=\"mini\" @click=\"incrementZoom\"></el-button>\n <el-button icon=\"el-icon-minus\" size=\"mini\" @click=\"decrementZoom\"></el-button>\n </el-button-group>\n </div>\n\n <div id=\"center-controls\">\n <el-tooltip\n placement=\"top-end\"\n content=\"Page Back\">\n <button\n class=\"btn-icon\"\n @click=\"pageBack()\">\n <svg\n class=\"svg-fill icon\"\n width=\"18\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n >\n <path d=\"M10.959,0.571 L3.756,5.52 C3.756,5.52 3.477,5.721 3.477,6.001 C3.477,6.281 3.756,6.48 3.756,6.48 L10.959,11.431 C11.531,11.811 12,11.53 12,10.805 L12,1.196 C12,0.469 11.531,0.188 10.959,0.571 Z M2,0 L1,0 C0.447,0 0,0.048 0,0.6 L0,11.4 C0,11.952 0.447,12 1,12 L2,12 C2.553,12 3,11.952 3,11.4 L3,0.6 C3,0.048 2.553,0 2,0 Z\"/>\n </svg>\n </button>\n </el-tooltip>\n<!-- \n <el-tooltip\n placement=\"top-end\"\n content=\"Previous Annotation\">\n <button\n class=\"btn-icon\"\n @click=\"previousAnnotation()\">\n <svg-icon\n name=\"next-annotation-left-facing\"\n height=\"12\"\n width=\"18\"/>\n </button>\n </el-tooltip> -->\n \n <el-tooltip\n placement=\"top-end\"\n content=\"Automatic Forward\">\n <button\n class=\"btn-icon\"\n @click=\"togglePlayback()\">\n <svg\n v-if=\"isPlaying\"\n class=\"svg-fill icon\"\n width=\"18\"\n height=\"12\"\n viewBox=\"0 0 10 12\"\n >\n <path d=\"M2,0 C2.553,0 3,0.048 3,0.6 L3,11.4 C3,11.952 2.553,12 2,12 L1,12 C0.447,12 0,11.952 0,11.4 L0,0.6 C0,0.048 0.447,0 1,0 L2,0 Z M9,0 C9.553,0 10,0.048 10,0.6 L10,11.4 C10,11.952 9.553,12 9,12 L8,12 C7.447,12 7,11.952 7,11.4 L7,0.6 C7,0.048 7.447,0 8,0 L9,0 Z\"/>\n </svg>\n <svg\n v-else\n class=\"svg-fill icon\"\n width=\"18\"\n height=\"12\"\n viewBox=\"0 0 10 12\"\n >\n <path d='M10,6.001 C10,6.3 9.695,6.515 9.695,6.515 L1.134,11.818 C0.51,12.227 0,11.924 0,11.149 L0,0.852 C0,0.075 0.51,-0.226 1.135,0.182 L9.696,5.487 C9.695,5.487 10,5.702 10,6.001 Z'/>\n </svg>\n </button>\n </el-tooltip>\n<!--\n <el-tooltip\n placement=\"top-end\"\n content=\"Next Annotation\">\n <button\n class=\"btn-icon\"\n @click=\"nextAnnotation()\">\n <svg-icon\n name=\"next-annotation-right-facing\"\n height=\"12\"\n width=\"18\"/>\n </button>\n \n </el-tooltip> -->\n \n <el-tooltip\n placement=\"top-end\"\n content=\"Next Page\">\n <button\n class=\"btn-icon\"\n @click=\"pageForward()\">\n <svg\n class=\"svg-fill icon\"\n width=\"18\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n >\n <path d=\"M8.244,5.52 L1.041,0.571 C0.469,0.188 0,0.469 0,1.196 L0,10.805 C0,11.53 0.469,11.811 1.041,11.43 L8.244,6.479 C8.244,6.479 8.523,6.28 8.523,6.001 C8.523,5.721 8.244,5.52 8.244,5.52 Z M10,0 L11,0 C11.553,0 12,0.048 12,0.6 L12,11.4 C12,11.952 11.553,12 11,12 L10,12 C9.447,12 9,11.952 9,11.4 L9,0.6 C9,0.048 9.447,0 10,0 Z\"/>\n </svg>\n </button>\n </el-tooltip>\n </div>\n <div id=\"right-controls\">\n<!-- <el-tooltip-->\n<!-- placement=\"top-end\"-->\n<!-- content=\"Montaging Controls\">-->\n<!-- <el-select v-model=\"selectedMontage\" placeholder=\"Select\" size=\"mini\" @change=\"updateMontageScheme\">-->\n<!-- <el-option-->\n<!-- v-for=\"item in montageOptions\"-->\n<!-- :key=\"item.value\"-->\n<!-- :label=\"item.label\"-->\n<!-- :value=\"item.value\">-->\n<!-- </el-option>-->\n<!-- </el-select>-->\n<!-- </el-tooltip>-->\n\n <el-tooltip\n placement=\"top-end\"\n content=\"Toggle Play Back Speed Controls\">\n <button\n class=\"btn-icon\"\n @click=\"togglePlaybackSpeed()\">\n <svg\n class=\"svg-fill icon\"\n width=\"22\"\n height=\"20\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M5.1008,5.396 C4.7432,5.616 6.0584,8.7896 6.3792,9.3064 C6.6592,9.7616 7.2536,9.9 7.7056,9.6216 C8.16,9.34 8.3016,8.7464 8.0216,8.2936 C7.704,7.7752 5.4576,5.1752 5.1008,5.396 Z M4.8328,1.9216 C5.5752,1.6632 6.3704,1.52 7.2,1.52 C8.0296,1.52 8.8248,1.6632 9.5672,1.9216 C9.8304,2.0128 10.1792,1.8296 10.0248,1.4328 C9.912,1.1448 9.8032,0.8632 9.7592,0.7488 C9.6544,0.4776 9.2792,0.2536 9.116,0.2168 C8.4984,0.0776 7.8584,0 7.2,0 C6.5416,0 5.9016,0.0776 5.2832,0.2168 C5.12,0.2536 4.7456,0.4776 4.6408,0.7488 C4.5968,0.8632 4.4872,1.1448 4.3752,1.4328 C4.2208,1.8296 4.5696,2.0136 4.8328,1.9216 Z M14.4784,2.5488 C14.3248,2.3648 14.1616,2.1848 13.988,2.0112 C13.8152,1.8376 13.6352,1.6752 13.452,1.5208 C13.3296,1.4176 12.9696,1.3336 12.7416,1.5616 C12.5144,1.7896 11.4232,2.8792 11.4232,2.8792 C11.7448,3.1096 12.0576,3.3632 12.3472,3.652 C12.6368,3.9408 12.8888,4.2536 13.12,4.576 C13.12,4.576 14.2104,3.4864 14.4376,3.2584 C14.6664,3.0296 14.5824,2.6704 14.4784,2.5488 Z M7.2,2.32 C3.62,2.32 0.7192,5.2208 0.7192,8.8 C0.7192,12.38 3.62,15.2808 7.2,15.2808 C10.7784,15.2808 13.68,12.38 13.68,8.8 C13.68,5.2216 10.7784,2.32 7.2,2.32 Z M7.2,13.6808 C4.5056,13.6808 2.32,11.496 2.32,8.8008 C2.32,6.1056 4.5048,3.9208 7.2,3.9208 C9.8952,3.9208 12.0808,6.1056 12.0808,8.8008 C12.0808,11.4952 9.8952,13.6808 7.2,13.6808 Z\"/>\n </svg> \n </button>\n </el-tooltip>\n\n <el-select\n v-model=\"selectedPlaySpeed\"\n v-if=\"showPlaybackSpeed\"\n placeholder=\"Select\"\n size=\"mini\"\n class=\"playSelect\">\n <el-option\n v-for=\"item in playSpeedOptions\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\">\n </el-option>\n </el-select>\n\n </div>\n\n </div>\n</template>\n\n<script>\n export default {\n name: 'TimeseriesViewerToolbar',\n computed: {\n durationInSeconds: {\n // getter\n get: function () {\n return this.duration / 1e6\n },\n // setter\n set: function (newValue) {\n this.$emit('updateDuration', newValue)\n }\n }\n },\n props: {\n constants: Object,\n duration: Number,\n start: Number\n },\n data: function () {\n return {\n showVertZoom: true,\n showTimeZoom: true,\n showPlaybackSpeed: true,\n selectedTimeRange: 0,\n isPlaying: false,\n montageOptions: [{\n value: 'NOT_MONTAGED',\n label: 'Continuous (Default)'\n }, {\n value: 'REFERENTIAL_VS_CZ',\n label: 'Referential Montage'\n }, {\n value: 'BIPOLAR_ANT_POS',\n label: 'Ant/Post Montage'\n }, {\n value: 'BIPOLAR_TRANSVERSE',\n label: 'Transverse Montage'\n }],\n selectedMontage: '',\n playSpeedOptions: [{\n value: 0.5,\n label: '0.5x'\n }, {\n value: 1,\n label: '1x'\n }, {\n value: 2,\n label: '2x'\n }, {\n value: 5,\n label: '5x'\n },\n {\n value: 10,\n label: '10x'\n }],\n selectedPlaySpeed: null,\n intervalTimer: null,\n intervalPeriod: 150,\n intervalPage: 1000000\n }\n },\n mounted: function () {\n this.selectedMontage = 'NOT_MONTAGED'\n this.selectedPlaySpeed = 1\n },\n methods: {\n updateMontageScheme: function (value) {\n console.log('Updating Montage Scheme:' + value)\n this.$store.dispatch('setViewerMontageScheme', value)\n },\n updatePlaybackSpeed: function (value) {\n console.log('Updating Playback Speed:' + value)\n },\n toggleTimeZoom: function () {\n this.showTimeZoom = !this.showTimeZoom\n },\n toggleVerticalZoom: function () {\n this.showVertZoom = !this.showVertZoom\n },\n togglePlaybackSpeed: function () {\n this.showPlaybackSpeed = !this.showPlaybackSpeed\n },\n togglePlayback: function () {\n if(this.isPlaying === false) {\n this.startPlay();\n } else {\n this.stopPlay();\n }\n },\n pageBack: function() {\n this.$emit('pageBack')\n },\n pageForward: function() {\n this.$emit('pageForward')\n },\n incrementZoom: function() {\n this.$emit('incrementZoom')\n },\n decrementZoom: function() {\n this.$emit('decrementZoom')\n },\n updateDuration: function() {\n this.$emit('updateDuration',this.selectedTimeRange)\n },\n nextAnnotation: function () {\n this.$emit('nextAnnotation')\n },\n previousAnnotation: function () {\n this.$emit('previousAnnotation')\n },\n startPlay: function() {\n this.isPlaying = true\n let that = this;\n this.intervalTimerFnc = function() {\n that.$emit('setStart', that.start + (that.intervalPage * that.selectedPlaySpeed))\n that.intervalTimer = setTimeout( that.intervalTimerFnc, that.intervalPeriod);\n }\n this.intervalTimer = setTimeout(this.intervalTimerFnc, this.intervalPeriod);\n },\n stopPlay: function() {\n this.isPlaying = false\n this.intervalPeriod = 150;\n clearInterval(this.intervalTimer);\n }\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .timeseries-viewer-toolbar {\n border-top: 1px solid #DADADA;\n background: #F7F7F7;\n display: flex;\n padding: 8px 0;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n }\n .icon {\n vertical-align: middle;\n padding-bottom: 1px;\n }\n .btn-icon {\n color: #928D85;\n margin-left: 8px;\n margin-right: 2px;\n &:last-child {\n margin-right:8px;\n }\n &.selected, &:hover, &[focused] {\n color: #5039F7;\n }\n &[disabled] {\n color: #E7E5E1;\n }\n }\n .playSelect {\n width: 75px;\n margin-right: 8px;\n }\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-120[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSViewerToolbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-120[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSViewerToolbar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TSViewerToolbar.vue?vue&type=template&id=09a81dc6&scoped=true&\"\nimport script from \"./TSViewerToolbar.vue?vue&type=script&lang=js&\"\nexport * from \"./TSViewerToolbar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TSViewerToolbar.vue?vue&type=style&index=0&id=09a81dc6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"09a81dc6\",\n null\n \n)\n\nexport default component.exports","<template>\n <div\n ref=\"ts_viewer\"\n class=\"timeseries-viewer\"\n >\n <timeseries-scrubber\n ref=\"scrubber\"\n :ts_start=\"ts_start\"\n :ts_end=\"ts_end\"\n :c-width=\"cWidth\"\n :label-width=\"labelWidth\"\n :cursor-loc=\"cursorLoc\"\n :start=\"start\"\n :duration=\"duration\"\n :constants=\"constants\"\n @setStart=\"updateStart\"\n />\n\n <div id=\"channelCanvas\">\n <!-- Channel labels -->\n <div\n id=\"channelLabels\"\n ref=\"channelLabels\"\n :style=\"channelStyle\"\n >\n <div\n v-for=\"item in viewerChannels\"\n v-show=\"item.visible\"\n :key=\"item.label\"\n >\n <div\n class=\"chLabelWrap\"\n :data-id=\"item.id\"\n @tap=\"onLabelTap\"\n >\n <div class=\"labelDiv\" :style=\"_cpStyleLabels\">\n {{ item.label }}\n </div>\n <div\n class=\"chLabelIndWrap\"\n v-if=\"!hideLabelInfo\"\n :selected=\"item.selected\"\n >\n <div\n class=\"chLabelInd\"\n\n >\n {{ _computeLabelInfo(item, globalZoomMult, item.rowScale) }}\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Timeseries viewport -->\n <timeseries-viewer-canvas\n ref=\"viewerCanvas\"\n :window_height=\"window_height\"\n :window_width=\"window_width\"\n :duration=\"duration\"\n :start=\"start\"\n :c-width=\"cWidth\"\n :c-height=\"cHeight\"\n :constants=\"constants\"\n :ts-start=\"ts_start\"\n :ts-end=\"ts_end\"\n :cursor-loc=\"cursorLoc\"\n :global-zoom-mult=\"globalZoomMult\"\n @setStart=\"updateStart\"\n @setCursor=\"setCursor\"\n @setGlobalZoom=\"setGlobalZoom\"\n @setDuration=\"setDuration\"\n @channelsInitialized=\"onChannelsInitialized\"\n @annLayersInitialized=\"onAnnLayersInitialized\"\n @closeAnnotationLayerWindow=\"onCloseAnnotationLayerWindow\"\n @addAnnotation=\"onOpenAnnotationWindow\"\n @updateAnnotation=\"onUpdateAnnotation\"\n />\n </div>\n\n <timeseries-viewer-toolbar\n :constants=\"constants\"\n :duration=\"duration\"\n :start=\"start\"\n @pageBack=\"onPageBack\"\n @pageForward=\"onPageForward\"\n @incrementZoom=\"onIncrementZoom\"\n @decrementZoom=\"onDecrementZoom\"\n @updateDuration=\"onUpdateDuration\"\n @nextAnnotation=\"onNextAnnotation\"\n @previousAnnotation=\"onPreviousAnnotation\"\n @setStart=\"updateStart\"\n />\n\n<!-- <timeseries-filter-modal-->\n<!-- ref=\"filterWindow\"-->\n<!-- :filter-window-open=\"filterWindowOpen\"-->\n<!-- @closeWindow=\"onCloseFilterWindow\"-->\n<!-- />-->\n\n<!-- <timeseries-annotation-modal-->\n<!-- ref=\"annotationModal\"-->\n<!-- :visible.sync=\"annotationWindowOpen\"-->\n<!-- @closeWindow=\"onCloseAnnotationWindow\"-->\n<!-- @createUpdateAnnotation=\"onCreateUpdateAnnotation\"-->\n<!-- />-->\n\n<!-- <timeseries-annotation-layer-modal-->\n<!-- ref=\"layerModal\"-->\n<!-- :annotation-layer-window-open=\"annotationLayerWindowOpen\"-->\n<!-- @closeWindow=\"onCloseAnnotationLayerWindow\"-->\n<!-- @createLayer=\"onCreateAnnotationLayer\"-->\n<!-- />-->\n\n </div>\n</template>\n\n<script>\n import {\n head,\n propOr,\n isEmpty\n } from 'ramda'\n import ViewerActiveTool from '@/mixins/viewer-active-tool'\n import Request from '@/mixins/request'\n import TsAnnotation from '@/mixins/ts-annotation'\n import TimeseriesScrubber from '@/components/TSScrubber.vue'\n import TimeseriesViewerCanvas from '@/components/TSViewerCanvas.vue'\n import TimeseriesViewerToolbar from '@/components/TSViewerToolbar.vue'\n export default {\n name: 'TimeseriesViewer',\n components:{\n TimeseriesScrubber,\n TimeseriesViewerCanvas,\n TimeseriesViewerToolbar\n //'timeseries-filter-modal': () => import('@/components/viewers/TSViewer/TSFilterModal.vue'),\n //'timeseries-annotation-layer-modal': () => import('@/components/viewers/TSViewer/TSViewerLayerWindow.vue'),\n //'timeseries-annotation-modal': () => import('@/components/viewers/TSViewer/TSAnnotationModal.vue')\n },\n mixins: [\n Request,\n ViewerActiveTool,\n TsAnnotation,\n ],\n watch: {\n viewerSidePanelOpen: {\n handler: function() {\n // console.log('resized triggered')\n this.onResize()\n },\n immediate: true\n },\n userToken: {\n handler: async function(token) {\n await this.$store.dispatch('updateUserToken', token)\n },\n immediate: true\n },\n packageId: {\n handler: async function(id) {\n await this.$store.dispatch('openViewer', {\n packageId: id,\n packageType: this.packageType\n })\n },\n immediate: true\n }\n },\n props: {\n userToken: {\n type: String,\n default: () => ''\n },\n packageId: {\n type: String,\n default: () => ''\n },\n packageType: {\n type: String,\n default: () => ''\n }\n },\n computed: {\n viewerChannels: function() {\n return this.$store.getters.viewerChannels\n },\n viewerAnnotations: function() {\n return this.$store.getters.viewerAnnotations\n },\n viewerSidePanelOpen: function() {\n return this.$store.getters.viewerSidePanelOpen\n },\n viewerMontageScheme: function() {\n return this.$store.getters.viewerMontageScheme\n },\n channelStyle: function() {\n return {\n height: this.window_height - 110 + 'px'\n }\n },\n hideLabelInfo: function() {\n let hide = false;\n const nrChannels = this.nrVisChannels\n if (this.cHeight/nrChannels < 30) {\n hide = true;\n }\n return hide;\n },\n nrVisChannels: function() {\n return this.viewerChannels.reduce((accumulator, currentValue) => {\n if(currentValue.visible) {\n return accumulator + 1\n }\n return accumulator\n }, 0)\n },\n _cpStyleLabels: function() {\n const h = Math.max(1, Math.min(12, (this.window_height - 110)/this.nrVisChannels-2));\n return 'font-size:' + h + 'px; height:' + h + 'px';\n },\n },\n data: function () {\n return {\n constants: {\n TIMEUNIT: 'microSeconds', // Basis for time\n XOFFSET: 0, // X-offset of graph in canvas\n XGRIDSPACING: 1000000, // Time in microseconds between vertical lines\n NRPXPERLABEL: 150, // Number of pixels per label on x-axis\n USEREALTIME: true, // If true than interpret timepoints as UTC microseconds.\n DEFAULTDPI: 96, // Default pixels per inch\n ANNOTATIONLABELHEIGHT: 20, // Height of annotation label\n ROUNDDATAPIXELS: false, // If true, canvas point will be rounded to integer pixels for faster render (faster)\n MINMAXPOLYGON: true, // If true, then polygon is rendered thru minMax values, otherwise vertical lines (faster)\n PAGESIZEDIVIDER: 0.5, // Number of pages that span the current canvas.\n PREFETCHPAGES: 2, // Number of pages to read ahead of view.\n LIMITANNFETCH: 500, // Maximum number of annotations that are fetched per request\n USEMEDIAN: false, // Use Median instead of mean for centering channels\n CURSOROFFSET: 5, // Offset of cursor canvas\n SEGMENTSPAN: 1209600000000, // One week of gap-data is returned per request.\n MAXRECURSION: 20, // Maximum recursion depth of gap-data requests (max 2 years)\n MAXDURATION: 600000000, // Maximum duration window (5min)\n INITDURATION: 15000000 // Initial duration window (15sec)\n },\n summary: {},\n ts_start: null,\n ts_end: null,\n window_height: 0,\n window_width:0,\n start:0, // Start Timestamp of viewer in microseconds\n duration: 0, // Length of data in viewer in microseconds (ignore gaps)\n cWidth: 0,\n cHeight: 0,\n labelWidth:0,\n globalZoomMult: 1,\n cursorLoc: 1/10,\n filterWindowOpen: false,\n annotationWindowOpen: false,\n annotationLayerWindowOpen: false,\n annotationDelete: null,\n isTsAnnotationDeleteDialogVisible: false,\n }\n },\n mounted: function () {\n this.window_height = window.innerHeight - 144 - 250;\n this.window_width = this.$refs.ts_viewer.offsetWidth\n window.addEventListener('resize', this.onResize)\n const labelDiv = this.$refs.channelLabels\n this.labelWidth = labelDiv.clientWidth\n this.cWidth = (this.window_width - labelDiv.clientWidth - 5 - 10)\n this.cHeight = (this.window_height - 88)\n this.duration = this.constants['INITDURATION']\n },\n beforeDestroy() {\n window.removeEventListener('resize', this.onResize)\n },\n methods: {\n openEditAnnotationDialog: function(annotation) {\n this.$store.dispatch('setActiveAnnotation', annotation).then(() =>{\n this.$refs.viewerCanvas.renderAnnotationCanvas()\n this.annotationWindowOpen = true\n })\n },\n onUpdateAnnotation: function(annotation) {\n this.openEditAnnotationDialog(annotation)\n },\n onCreateUpdateAnnotation: function(annotation) {\n this.annotationWindowOpen = false\n if (annotation.id) {\n this.updateAnnotation()\n } else {\n this.addAnnotation()\n }\n },\n onAnnotationUpdated: function() {\n this.$refs.viewerCanvas.renderAnnotationCanvas()\n },\n onOpenAnnotationWindow: function() {\n this.annotationWindowOpen = true\n },\n confirmDeleteAnnotation: function(annotation) {\n this.annotationDelete = annotation\n this.isTsAnnotationDeleteDialogVisible = true\n },\n deleteAnnotation: function(annotation) {\n this.isTsAnnotationDeleteDialogVisible = false\n this.removeAnnotation(annotation)\n },\n onAnnotationDeleted: function() {\n this.$refs.viewerCanvas.renderAnnotationCanvas()\n },\n onAddAnnotation: function (start, duration, onAll, label, description, layer) {\n this.addAnnotation(start, duration, onAll, label, description, layer)\n },\n onAnnotationCreated: function() {\n this.$refs.viewerCanvas.renderAnnotationCanvas()\n },\n onCreateAnnotationLayer: function (newLayer) {\n this.$refs.viewerCanvas.createAnnotationLayer(newLayer)\n },\n onCloseAnnotationLayerWindow: function() {\n this.annotationLayerWindowOpen = false\n },\n onCloseAnnotationWindow: function() {\n this.$refs.viewerCanvas.resetFocusedAnnotation()\n this.$refs.viewerCanvas.renderAnnotationCanvas()\n this.annotationWindowOpen = false\n },\n onCloseFilterWindow: function() {\n this.filterWindowOpen = false\n },\n onLabelTap: function(e) {\n e.stopPropagation();\n e.preventDefault();\n const append = e.detail.sourceEvent.metaKey;\n this.selectChannel({channelId: e.currentTarget.dataset.id, append:append});\n this.$refs.viewerCanvas.renderAll()\n },\n onNextAnnotation: function () {\n this.start = this.$refs.viewerCanvas.getNextAnnotation()\n },\n onPreviousAnnotation: function () {\n this.start = this.$refs.viewerCanvas.getPreviousAnnotation()\n },\n onUpdateDuration: function(value) {\n this.setDuration(value * 1e6)\n },\n onIncrementZoom: function () {\n this.globalZoomMult = this.globalZoomMult * 1.25\n },\n onDecrementZoom: function () {\n this.globalZoomMult = this.globalZoomMult * 0.8\n },\n onAnnLayersInitialized: function () {\n this.$refs.scrubber.getAnnotations()\n },\n onChannelsInitialized: function (channels) {\n this.initViewerStart((channels))\n // TODO: Bring back\n // this.$refs.scrubber.initSegmentSpans()\n // Resize the canvas as label length likely changed\n this.$nextTick(() => {\n this.onResize()\n })\n },\n onPageBack: function() {\n //TODO: Update logic to track gap over all channels\n let setStart = this.start - (3*this.duration)/4\n\n //TODO: Bring back when we have segment sections information\n // let channelOneSegments = this.viewerChannels[0].dataSegments\n //\n // let i = 0;\n // for(let segment in channelOneSegments) {\n // if (channelOneSegments[segment] > setStart) {\n // break\n // }\n // i++\n // }\n //\n // // If new page completely in gap --> set start to next timestamp with data\n // if(i % 2 == 0) {\n // setStart = channelOneSegments[i-1] - 0.5*this.duration\n // }\n this.start = setStart\n },\n onPageForward: function() {\n //TODO: Update logic to track gap over all channels\n let setStart = this.start + (3*this.duration)/4\n\n //TODO: Bring back when we have segment sections information\n // let channelOneSegments = this.viewerChannels[0].dataSegments\n //\n // let i = 0;\n // for(let segment in channelOneSegments) {\n // if (channelOneSegments[segment] > setStart) {\n // break\n // }\n // i++\n // }\n //\n // // If new page completely in gap --> set start to next timestamp with data\n // if(i % 2 == 0) {\n // setStart = channelOneSegments[i] - 0.5*this.duration\n // }\n\n this.start = setStart\n },\n selectAnnotation: function(payload) {\n let rsPeriod = this.$refs.viewerCanvas.rsPeriod\n this.updateStart(payload.annotation.start - ((this.cursorLoc*this.cWidth - this.constants['CURSOROFFSET']) * rsPeriod))\n },\n selectChannel: function(payload) {\n const _channels = this.viewerChannels.map(channel => {\n const selected = channel.selected\n if (payload['append'] === false) {\n channel.selected = false\n }\n if (payload['channelId'] === channel.id) {\n channel.selected = !selected\n }\n return channel\n })\n this.$store.dispatch('setChannels', _channels)\n },\n selectChannels: function(ids, append) {\n const channels = this.viewerChannels.map(channel => {\n if (append === false) {\n channel.selected = false\n }\n if( channel.id in ids) {\n channel.selected = true\n }\n return channel\n })\n this.$store.dispatch('setChannels', channels)\n },\n updateStart: function(value) {\n // console.log('setting start to: ' + value)\n this.start = value\n },\n setCursor: function(value) {\n // set the cursor location as a fraction of the width of the canvas\n this.cursorLoc = value\n },\n setGlobalZoom: function(value) {\n // console.log('setGlobalZoom')\n this.globalZoomMult = value\n },\n setDuration: function(value) {\n if (value > this.constants['MAXDURATION']) {\n this.duration = this.constants['MAXDURATION']\n } else {\n this.duration = value\n }\n },\n getChannelId: function(channel) {\n const isViewingMontage = this.viewerMontageScheme !== 'NOT_MONTAGED'\n let id = propOr('', 'id', channel)\n let list = []\n if (isViewingMontage) {\n list = id.split('_')\n id = list.length ? head(list) : id // remove channel name from id\n }\n return id\n },\n onResize() {\n if (this.$refs.ts_viewer === undefined) {\n return\n }\n this.window_height = window.innerHeight - 144 - 250;\n this.window_width = this.$refs.ts_viewer.offsetWidth\n const labelDiv = this.$refs.channelLabels;\n this.labelWidth = labelDiv.clientWidth\n this.cWidth = (this.window_width - labelDiv.clientWidth - 16);\n this.cHeight = (this.window_height - 88);\n },\n _computeLabelInfo: function(item, globalZoomMult, rowscale) {\n const n = ( ( (this.constants['DEFAULTDPI'] * window.devicePixelRatio)/(globalZoomMult * rowscale) )/25.4).toFixed(1);\n return n+ ' ' + item.unit + '/mm'\n },\n initViewerStart: function(channels) {\n // const channels = this.activeViewer.channels\n if (channels.length > 0) {\n // Find Global start and end\n this.ts_start = channels[0].content.start\n this.ts_end = channels[0].content.end\n for (let ic = 1; ic<channels.length; ic++) {\n if (channels[ic].content.start < this.ts_start) {\n this.ts_start = channels[ic].content.start\n }\n if (channels[ic].content.end > this.ts_end) {\n this.ts_end = channels[ic].content.end\n }\n }\n this.start = this.ts_start\n }\n },\n openLayerWindow: function(payload) {\n const layerModal = this.$refs.layerModal\n layerModal.isCreating = payload.isCreating\n if (!payload.isCreating) {\n layerModal.layer = payload.layer\n } else {\n layerModal.layer = {}\n // layerModal.setColorByIndex(this.viewerAnnotations.length % layerModal.colorOptions.length)\n }\n this.annotationLayerWindowOpen = true\n },\n openFilterWindow: function(payload) {\n const channels = propOr([], 'channels', payload);\n const filter = propOr('', 'filter', payload);\n const filterWindow = this.$refs.filterWindow;\n filterWindow.onChannels = channels;\n if (!isEmpty(filter)) {\n filterWindow.input0 = filter.input0;\n filterWindow.input1 = filter.input1;\n for (let i=0; i<filterWindow._filters.length; i++) {\n if (filterWindow._filters[i].value === filter.type) {\n filterWindow.selectedFilter = filter.type;\n break;\n }\n }\n for (let i=0; i<filterWindow._notchValues.length; i++) {\n if (filterWindow._notchValues[i].value === filter.notchFreq) {\n filterWindow.selectedNotch = filter.notchFreq;\n break;\n }\n }\n } else {\n filterWindow.input0 = NaN;\n filterWindow.input1 = NaN;\n filterWindow.selectedFilter = null;\n filterWindow.selectedNotch = null;\n }\n this.filterWindowOpen = true\n },\n setTimeseriesFilters: function(payload) {\n this.$refs.viewerCanvas.setFilters(payload)\n }\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .timeseries-viewer {\n display: flex;\n flex-direction: column;\n }\n #channelCanvas {\n display: flex;\n height:100%;\n background-color: white;\n //flex: 1;\n }\n #channelLabels {\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n line-height: normal;\n margin-bottom: 40px;\n min-width: 75px;\n }\n .chLabelWrap {\n display: flex;\n flex-direction: column;\n align-items: center;\n cursor: pointer;\n }\n .chLabelIndWrap {\n position: relative;\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n width: 100%;\n color: #3c54a4;\n }\n .chLabelInd {\n font-size: 0.6em;\n min-width: 70px;\n color: rgb(150,150,150);\n text-align: right;\n white-space: nowrap;\n }\n .labelDiv[selected] {\n color:#295eff; /*#ff9800;/*#358855;*/\n }\n .chLabelIndWrap[selected]{\n color:#295eff; /*#ff9800; /*#358855;*/\n }\n .labelDiv {\n align-self: flex-end;\n white-space: nowrap;\n color: var(--neuron);\n }\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-120[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-120[0].rules[0].use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TSViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TSViewer.vue?vue&type=template&id=1d6b8d00&scoped=true&\"\nimport script from \"./TSViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./TSViewer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TSViewer.vue?vue&type=style&index=0&id=1d6b8d00&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d6b8d00\",\n null\n \n)\n\nexport default component.exports","export const viewerSidePanelTypes = Object.freeze({\n INFO_PANEL: 'infoPanel',\n DISCUSSION: 'discussion',\n FILE_BROWSER: 'fileBrowser',\n ANNOTATIONS: 'annotations',\n CHANNELS: 'channels'\n})\nexport const viewerToolTypes = Object.freeze({\n PAN: 'pan',\n ANNOTATION_SHAPE: 'annotationShape',\n ANNOTATION_DRAW: 'annotationDraw',\n MEASURE: 'measure',\n ANNOTATE: 'annotate',\n POINTER: 'pointer'\n})","import { propOr, propEq, findIndex, mergeWith } from 'ramda'\nimport { viewerSidePanelTypes, viewerToolTypes } from '@/utils/constants'\n\nconst store = {\n state: {\n userToken: '',\n selectedPackage: {},\n // active viewer contains the package info response\n activeViewer: {},\n viewerSidePanelOpen: false,\n viewerSlideInfo: {\n curRotation: 0,\n curZoom: 0,\n isMeasuring: false,\n measureLength: 0,\n zoomPerClick: 0,\n minZoom: 0,\n maxZoom: 0\n },\n viewerChannels: [],\n viewerAnnotations: [],\n activeAnnotationLayer: {},\n activeAnnotation: {},\n viewerErrors: {},\n\n //TODO make strings enum constants\n viewerSidePanelView: viewerSidePanelTypes.INFO_PANEL,\n viewerActiveTool: viewerToolTypes.PAN,\n viewerMontageScheme: 'NOT_MONTAGED',\n },\n\n getters: {\n viewerSelectedChannels: state => {\n return state.viewerChannels.filter(channel => {\n return channel.selected\n })\n },\n viewerChannels: state => state.viewerChannels,\n viewerMontageScheme: state => state.viewerMontageScheme,\n activeViewer: state => state.activeViewer,\n viewerActiveTool: state => state.viewerActiveTool,\n activeAnnotation: state => state.activeAnnotation,\n viewerSidePanelOpen: state => state.viewerSidePanelOpen,\n viewerAnnotations: state => state.viewerAnnotations,\n userToken: state => state.userToken\n },\n\n mutations: {\n //TODO figure out why we clear state twice?\n CLEAR_STATE(state) {\n //reset all state to initial state\n const _initialState = initialState()\n // need to iteratively set keys to preserve reactivity\n Object.keys(_initialState).forEach(key => state[key] = _initialState[key])\n },\n OPEN_VIEWER(state, viewer) {\n state.activeViewer = viewer\n },\n SET_SIDE_PANEL(state, sidePanel) {\n state.viewerSidePanelOpen = sidePanel.open\n state.viewerSidePanelView = sidePanel.view\n },\n SET_ACTIVE_TOOL(state, tool) {\n state.viewerActiveTool = tool\n },\n UPDATE_VIEWER_SLIDE_INFO (state, newSlideInfo) {\n state.viewerSlideInfo = newSlideInfo\n },\n SET_CHANNELS (state, channels) {\n state.viewerChannels = channels\n },\n UPDATE_VIEW_CHANNEL (state, data) {\n if (data.channelId) {\n const channelIndex = findIndex(propEq('id', data.channelId), state.viewerChannels)\n for (let d in data.data) {\n state.viewerChannels[channelIndex][d] = data.data[d]\n }\n }\n },\n SET_ACTIVE_ANNOTATION_LAYER (state, data) {\n state.activeAnnotationLayer = data\n state.viewerAnnotations.forEach(index => index.selected = false)\n const layerIndex = findIndex(propEq('id', data), state.viewerAnnotations)\n state.viewerAnnotations[layerIndex].selected = true\n\n },\n SET_ACTIVE_ANNOTATION (state, data) {\n state.viewerAnnotations.forEach( index =>\n index.annotations.forEach(ann =>\n ann.selected = false\n )\n )\n if (data.id) {\n const layerIndex = findIndex(propEq('id', data.layer_id), state.viewerAnnotations)\n const annotationIndex = findIndex(propEq('id', data.id), state.viewerAnnotations[layerIndex].annotations)\n state.viewerAnnotations[layerIndex].annotations[annotationIndex].selected = true\n }\n state.activeAnnotation = data\n },\n SET_ANNOTATIONS (state, data) {\n state.viewerAnnotations = data\n },\n SET_DISCUSSIONS (state, { discussions, comments }) {\n state.viewerDiscussions = {\n discussions,\n comments\n }\n },\n SET_VIEWER_ERRORS (state, data) {\n state.viewerErrors = data\n },\n SET_VIEWER_MONTAGE_SCHEME (state, data) {\n state.viewerMontageScheme = data\n },\n UPDATE_USER_TOKEN(state, data) {\n state.userToken = data\n },\n // Leveraged to get individual package state to package details route\n SELECT_PACKAGE(state, data) {\n state.selectedPackage = data\n },\n },\n\n actions: {\n openViewer: ({ commit }, evt) =>\n commit('OPEN_VIEWER', evt),\n setSidePanel: ({ commit }, evt) =>\n commit('SET_SIDE_PANEL', evt),\n setActiveTool: ({ commit }, evt) =>\n commit('SET_ACTIVE_TOOL', evt),\n setChannels: ({ commit }, evt) => {\n commit('SET_CHANNELS', evt)},\n updateViewChannel: ({commit}, data) => {\n commit('UPDATE_VIEW_CHANNEL', data)},\n setActiveAnnotationLayer: ({ commit }, evt) =>\n commit('SET_ACTIVE_ANNOTATION_LAYER', evt),\n setAnnotations: ({ commit }, annotations) =>\n commit('SET_ANNOTATIONS', annotations),\n setActiveAnnotation: ({ commit }, data) =>\n commit('SET_ACTIVE_ANNOTATION', data),\n updateViewerSlideInfo: ({ commit }, evt) => {\n const newSlideInfo = mergeWith(this.state.viewerSlideInfo, evt)\n commit('UPDATE_VIEWER_SLIDE_INFO', newSlideInfo)\n },\n setDiscussions: ({commit}, discussionData) => {\n const discussions = propOr([], 'discussions', discussionData)\n const comments = propOr({}, 'comments', discussionData)\n commit('SET_DISCUSSIONS', { discussions, comments })\n },\n setViewerErrors: ({ commit }, evt) =>\n commit('SET_VIEWER_ERRORS', evt),\n setViewerMontageScheme: ({commit}, evt) =>\n commit('SET_VIEWER_MONTAGE_SCHEME', evt),\n setSelectedPackage: ({commit}, evt) => commit('SELECT_PACKAGE', evt),\n updateUserToken: ({commit}, evt) =>\n commit('UPDATE_USER_TOKEN', evt)\n }\n}\n\nconst initialState = () => ({\n activeViewer: {},\n viewerSidePanelOpen: false,\n viewerSlideInfo: {\n curRotation: 0,\n curZoom: 0,\n isMeasuring: false,\n measureLength: 0,\n zoomPerClick: 0,\n minZoom: 0,\n maxZoom: 0\n },\n viewerChannels: [],\n viewerAnnotations: [],\n activeAnnotationLayer: {},\n activeAnnotation: {},\n viewerErrors: {},\n\n //TODO make strings enum constants\n viewerSidePanelView: viewerSidePanelTypes.INFO_PANEL,\n viewerActiveTool: viewerToolTypes.PAN,\n viewerMontageScheme: 'NOT_MONTAGED'\n})\n\nexport default store","import TSViewer from './TSViewer.vue'\nimport store from '../store'\nexport default {\n install (Vue, options) {\n if (!options || !options.store) {\n throw new Error('Please initialise plugin with a Vuex store.')\n }\n \n options.store.registerModule('tsviewer', store)\n \n Vue.component('ts-viewer', TSViewer)\n }\n}","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["root","factory","exports","module","define","amd","self","this","asPromise","fn","ctx","params","Array","arguments","length","offset","index","pending","Promise","resolve","reject","err","apply","base64","string","p","n","charAt","Math","ceil","b64","s64","i","encode","buffer","start","end","t","parts","chunk","j","b","push","String","fromCharCode","slice","join","invalidEncoding","decode","c","charCodeAt","undefined","Error","test","codegen","functionParams","functionName","body","Codegen","formatStringOrScope","source","toString","verbose","console","log","scopeKeys","Object","keys","scopeParams","scopeValues","scopeOffset","Function","formatParams","formatOffset","replace","$0","$1","value","Number","floor","JSON","stringify","functionNameOverride","EventEmitter","_listeners","prototype","on","evt","off","listeners","splice","emit","args","fetch","inquire","fs","filename","options","callback","xhr","readFile","contents","XMLHttpRequest","binary","onreadystatechange","readyState","status","response","responseText","Uint8Array","overrideMimeType","responseType","open","send","Float32Array","f32","f8b","le","writeFloat_f32_cpy","val","buf","pos","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloatLE","writeFloatBE","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","isNaN","round","exponent","LN2","mantissa","pow","readFloat_ieee754","readUint","uint","NaN","Infinity","bind","writeUintLE","writeUintBE","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","lo","hi","moduleName","mod","eval","e","path","isAbsolute","normalize","split","absolute","prefix","shift","originPath","includePath","alreadyNormalized","pool","alloc","size","SIZE","MAX","slab","call","utf8","len","read","write","c1","c2","getCurrentScript","descriptor","getOwnPropertyDescriptor","document","currentScript","get","pageSource","inlineScriptSourceRegExp","inlineScriptSource","ieStackRegExp","ffStackRegExp","stackDetails","exec","stack","scriptLocation","line","currentLocation","location","href","hash","scripts","getElementsByTagName","documentElement","outerHTML","RegExp","trim","src","innerHTML","global","isCallable","tryToString","TypeError","argument","isConstructor","wellKnownSymbol","create","defineProperty","UNSCOPABLES","ArrayPrototype","configurable","key","S","unicode","isPrototypeOf","it","Prototype","isObject","ArrayBuffer","DataView","fails","isExtensible","NAME","Constructor","NATIVE_ARRAY_BUFFER","DESCRIPTORS","hasOwn","classof","createNonEnumerableProperty","defineBuiltIn","getPrototypeOf","setPrototypeOf","uid","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","klass","isTypedArray","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","ARRAY","TypedArrayConstructor","error","error2","exportTypedArrayStaticMethod","uncurryThis","FunctionName","defineBuiltIns","anInstance","toIntegerOrInfinity","toLength","toIndex","IEEE754","getOwnPropertyNames","arrayFill","arraySlice","setToStringTag","InternalStateModule","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","getInternalState","setInternalState","set","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","$DataView","DataViewPrototype","RangeError","fill","reverse","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","count","isLittleEndian","intIndex","store","byteLength","bytes","byteOffset","conversion","INCORRECT_ARRAY_BUFFER_NAME","name","constructor","testView","$setInt8","setInt8","getInt8","setUint8","unsafe","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toObject","toAbsoluteIndex","lengthOfArrayLike","min","copyWithin","target","O","to","from","inc","argumentsLength","endPos","$forEach","arrayMethodIsStrict","STRICT_METHOD","forEach","callbackfn","list","result","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIterator","getIteratorMethod","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","step","iterator","next","iteratorMethod","done","toIndexedObject","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","indexOf","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","boundFunction","map","filter","some","every","find","findIndex","filterReject","$lastIndexOf","lastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","V8_VERSION","SPECIES","METHOD_NAME","array","foo","Boolean","method","aCallable","IS_RIGHT","memo","left","right","max","k","fin","mergeSort","comparefn","middle","insertionSort","merge","element","llength","rlength","lindex","rindex","isArray","originalArray","arraySpeciesConstructor","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","object","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","$Error","TEST","arg","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","iterate","defineIterator","setSpecies","fastKey","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","ADDER","iterable","type","first","last","AS_ENTRIES","previous","state","entry","getEntry","removed","clear","data","prev","has","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","$","isForced","InternalMetadataModule","checkCorrectnessOfIteration","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","REPLACE","entries","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","f","F","IteratorPrototype","createPropertyDescriptor","Iterators","returnThis","IteratorConstructor","ENUMERABLE_NEXT","bitmap","enumerable","writable","toPropertyKey","propertyKey","makeBuiltIn","defineGlobalProperty","simple","IS_PURE","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","values","proto","wrappedWellKnownSymbolModule","Symbol","EXISTS","createElement","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentCreateElement","classList","DOMTokenListPrototype","userAgent","firefox","match","window","Deno","UA","Pebble","process","getBuiltIn","version","versions","v8","webkit","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","sham","regexpExec","RegExpPrototype","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","uncurriedNativeRegExpMethod","nativeMethod","regexp","str","arg2","forceStringMethod","$exec","preventExtensions","NATIVE_BIND","FunctionPrototype","Reflect","hasOwnProperty","getDescriptor","aFunction","namespace","getMethod","usingIterator","V","P","func","check","globalThis","g","a","abs","mantissaLength","exponentLength","eMax","eBias","rt","nBits","propertyIsEnumerable","Wrapper","NewTarget","NewTargetPrototype","functionToString","inspectSource","cause","hiddenKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","id","setMetadata","objectID","weakData","getWeakData","onFreeze","meta","NATIVE_WEAK_MAP","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","wmget","wmhas","wmset","metadata","facade","STATE","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","replacement","feature","detection","POLYFILL","NATIVE","toLowerCase","isInteger","isFinite","MATCH","isRegExp","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","unboundFunction","iterFn","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","innerResult","innerError","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","obj","enforceInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","trunc","x","flush","head","notify","toggle","node","promise","then","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","parent","domain","exit","enter","nextTick","createTextNode","observe","characterData","task","NATIVE_SYMBOL","keyFor","getOwnPropertySymbols","symbol","PromiseCapability","$$resolve","$$reject","$default","activeXDocument","definePropertiesModule","enumBugKeys","html","GT","LT","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","style","display","appendChild","contentWindow","NullProtoObject","ActiveXObject","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","props","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","$getOwnPropertyNames","windowNames","getWindowNames","internalObjectKeys","concat","CORRECT_PROTOTYPE_GETTER","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","__proto__","input","pref","valueOf","getOwnPropertySymbolsModule","NativePromiseConstructor","IS_BROWSER","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability","promiseCapability","all","Target","Source","Queue","tail","item","R","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","group","raw","groups","sticky","charsAdded","strCopy","multiline","hasIndices","ignoreCase","dotAll","$RegExp","MISSED_STICKY","TAG","SHARED","mode","copyright","license","aConstructor","defaultConstructor","requireObjectCoercible","CONVERT_TO_STRING","second","position","codeAt","whitespaces","non","whitespace","ltrim","rtrim","SymbolPrototype","TO_PRIMITIVE","hint","defer","channel","port","validateArgumentsLength","setImmediate","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","run","runner","listener","event","post","postMessage","protocol","host","handler","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","integer","toPositiveInteger","BYTES","isSymbol","ordinaryToPrimitive","exoticToPrim","toPrimitive","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","isIntegralNumber","toOffset","typedArrayFrom","nativeDefineProperty","nativeGetOwnPropertyDescriptor","BYTES_PER_ELEMENT","fromList","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","addElement","typedArrayOffset","$length","$len","arrayFromConstructorAndList","typedArraySpeciesConstructor","speciesConstructor","postfix","random","passed","required","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","proxyAccessor","normalizeStringArgument","installErrorCause","clearErrorStack","ERROR_STACK_INSTALLABLE","FULL_NAME","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","ERROR_NAME","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","message","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","A","addToUnscopables","$filter","HAS_SPECIES_SUPPORT","$find","FIND","SKIPS_HOLES","INCORRECT_ITERATION","$includes","BROKEN_ON_SPARSE","ARRAY_ITERATOR","Arguments","$map","un$Slice","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","chr","v","getSortCompare","y","itemsLength","items","arrayLength","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","exportWebAssemblyErrorCauseWrapper","init","FUNCTION_NAME_EXISTS","nameRE","regExpExec","$stringify","numberToString","tester","low","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","replacer","$replacer","fixIllFormed","space","collection","collectionStrong","thisNumberValue","NUMBER","NativeNumber","NumberPrototype","toNumeric","primValue","toNumber","third","radix","maxCode","digits","parseInt","NumberWrapper","$repeat","repeat","un$ToFixed","toFixed","acc","x2","multiply","divide","dataToString","s","fractionDigits","z","fractDigits","$freeze","freeze","$getOwnPropertySymbols","nativeGetPrototypeOf","nativeKeys","newPromiseCapabilityModule","perform","PROMISE_STATICS_INCORRECT_ITERATION","capability","$promiseResolve","remaining","alreadyCalled","real","onRejected","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","microtask","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","wrap","race","r","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","un$Test","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","callRegExpExec","MAX_UINT32","$push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","rx","res","unicodeMatching","q","$trim","forcedStringTrimMethod","defineWellKnownSymbol","$toString","nativeObjectCreate","getOwnPropertyNamesExternal","defineSymbolToPrimitive","HIDDEN","QObject","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","properties","$create","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","desc","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","sym","relativeIndex","$ArrayCopyWithin","u$ArrayCopyWithin","$every","$fill","fromSpeciesAndList","$findIndex","predicate","createTypedArrayConstructor","$indexOf","ArrayIterators","arrayValues","arrayKeys","arrayEntries","GENERIC","ITERATOR_IS_VALUES","typedArrayValues","$join","$reduceRight","$reduce","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","TO_OBJECT_BUG","$some","ACCEPT_INCORRECT_ARGUMENTS","expected","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","___CSS_LOADER_EXPORT___","cssWithMappingToString","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","_k","timeType","commonRe","json","nested","google","protobuf","Any","fields","type_url","Duration","seconds","nanos","Timestamp","Empty","Struct","keyType","Value","oneofs","oneof","nullValue","numberValue","stringValue","boolValue","structValue","listValue","NullValue","NULL_VALUE","ListValue","rule","DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue","FieldMask","paths","file","converter","Enum","util","genValuePartial_fromObject","gen","field","fieldIndex","prop","resolvedType","repeated","typeDefault","fullName","isUnsigned","genValuePartial_toObject","fromObject","mtype","fieldsArray","safeProp","compareFieldsById","repeatedFields","mapFields","normalFields","partOf","valuesById","long","high","unsigned","arrayDefault","hasKs2","_fieldsArray","decoder","types","missing","ref","defaults","basic","packed","rfield","encoder","genTypePartial","wireType","mapKey","optional","ReflectionObject","className","Namespace","comment","comments","reserved","fromJSON","enm","toJSON","toJSONOptions","keepComments","isString","isReservedId","isReservedName","allow_alias","remove","Field","Type","ruleRe","extend","defaultValue","Long","extensionField","declaringField","_packed","getOption","setOption","ifNotSet","resolved","lookupTypeOrEnum","fromNumber","newBuffer","emptyObject","emptyArray","ctor","d","fieldId","fieldType","fieldRule","decorateType","decorateEnum","fieldName","_configure","Type_","load","Root","loadSync","build","verifier","OneOf","MapField","Service","Method","Message","wrappers","configure","Writer","BufferWriter","Reader","BufferReader","rpc","roots","tokenize","parse","resolvedKeyType","fieldKeyType","fieldValueType","$type","writer","encodeDelimited","reader","decodeDelimited","verify","requestType","requestStream","responseStream","parsedOptions","resolvedRequestType","resolvedResponseType","lookupType","arrayToJSON","_nestedArray","clearCache","addJSON","toArray","nestedArray","nestedJson","ns","getEnum","setOptions","onAdd","onRemove","ptr","part","resolveAll","lookup","filterTypes","parentAlreadyChecked","found","lookupEnum","lookupService","Service_","Enum_","unshift","_handleAdd","_handleRemove","setParsedOption","propName","opt","newValue","setProperty","newOpt","Root_","fieldNames","addFieldsToParent","oneofName","oneOfGetter","oneOfSetter","keepCase","base10Re","base10NegRe","base16Re","base16NegRe","base8Re","base8NegRe","numberRe","nameRe","typeRefRe","fqTypeRefRe","pkg","imports","weakImports","syntax","token","preferTrailingComment","tn","alternateCommentMode","peek","skip","cmnt","isProto3","applyCase","camelCase","illegal","insideTryCatch","readString","readValue","acceptTypeRef","parseNumber","readRanges","acceptStrings","parseId","substring","parseFloat","acceptNegative","parsePackage","parseImport","whichImports","parseSyntax","parseCommon","parseOption","parseType","parseEnum","parseService","parseExtension","ifBlock","fnIf","fnElse","trailingLine","parseMapField","parseField","parseOneOf","extensions","parseInlineOptions","parseGroup","lcFirst","ucFirst","valueType","parseEnumValue","isCustom","option","substr","optionValue","parseOptionValue","prevValue","simpleValue","service","parseMethod","commentText","reference","LongBits","indexOutOfRange","writeLength","create_array","Buffer","isBuffer","readLongVarint","bits","readFixed32_end","readFixed64","_slice","subarray","uint32","int32","sint32","bool","fixed32","sfixed32","float","double","skipType","BufferReader_","int64","uint64","sint64","zzDecode","fixed64","sfixed64","utf8Slice","deferred","files","SYNC","resolvePath","sync","finish","cb","getBundledFileName","idx","altname","parsed","queued","weak","readFileSync","isNode","exposeRe","tryHandleExtension","extendedType","sisterField","parse_","common_","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","endedByRPC","_methodsArray","inherited","methodsArray","rpcService","methodName","isReserved","m","delimRe","stringDoubleRe","stringSingleRe","setCommentRe","setCommentAltRe","setCommentSplitRe","whitespaceRe","unescapeRe","unescapeMap","unescape","commentType","commentLine","commentLineEmpty","commentIsLeading","stringDelim","subject","setComment","isLeading","lookback","commentOffset","lines","isDoubleSlashCommentLine","startOffset","endOffset","findEndOfLine","lineText","isComment","cursor","curr","isDoc","isLeadingComment","delim","actual","equals","ret","_fieldsById","_oneofsArray","_ctor","fieldsById","oneofsArray","generateConstructor","ctorProperties","setup","originalThis","fork","ldelim","typeName","bake","o","safePropBackslashRe","safePropQuoteRe","toUpperCase","camelCaseRe","decorateRoot","decorateEnumIndex","dst","setProp","zero","zzEncode","zeroHash","fromString","toLong","fromHash","toHash","mask","part0","part1","part2","newError","CustomError","captureStackTrace","isset","isSet","utf8Write","_Buffer_from","_Buffer_allocUnsafe","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","fromBits","ProtocolError","fieldMap","longs","enums","encoding","allocUnsafe","invalid","genVerifyValue","genVerifyKey","seenFirstField","oneofProp","googleApi","messageName","Op","State","states","writeByte","writeVarint32","VarintOp","writeVarint64","writeFixed32","_push","writeBytes","reset","BufferWriter_","writeStringBuffer","writeBytesBuffer","copy","__esModule","default","locals","listToStyles","parentId","styles","newStyles","css","sourceMap","hasDocument","DEBUG","stylesInDom","singletonElement","singletonCounter","isProduction","ssrIdKey","isOldIE","navigator","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","addStyle","createStyleElement","styleElement","update","querySelector","parentNode","styleIndex","applyToSingletonTag","applyToTag","newObj","replaceText","textStore","styleSheet","cssText","cssNode","childNodes","insertBefore","setAttribute","ssrId","sources","btoa","encodeURIComponent","firstChild","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","toStringTag","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","ts_start","ts_end","cWidth","labelWidth","cursorLoc","duration","constants","updateStart","_l","directives","rawName","expression","label","onLabelTap","_v","_s","hideLabelInfo","_e","selected","_computeLabelInfo","globalZoomMult","rowScale","window_height","window_width","cHeight","setCursor","setGlobalZoom","setDuration","onChannelsInitialized","onAnnLayersInitialized","onCloseAnnotationLayerWindow","onOpenAnnotationWindow","onUpdateAnnotation","onPageBack","onPageForward","onIncrementZoom","onDecrementZoom","onUpdateDuration","onNextAnnotation","onPreviousAnnotation","staticRenderFns","_typeof","_regeneratorRuntime","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","displayName","isGeneratorFunction","genFun","mark","awrap","async","iter","pop","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","asyncGeneratorStep","_next","_throw","_asyncToGenerator","_isPlaceholder","f1","f2","_b","_a","_dispatchable","methodNames","transducerCreator","transducer","xf","functor","XWrap","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","thisObj","_arrayReduce","_iterableReduce","_methodReduce","symIterator","reduce","XMap","_xfBase","_xmap","received","combined","argsIdx","combinedIdx","_isArguments","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","contains","nIdx","ks","checkArgsLength","f3","_pipe","methodname","pipe","compose","_arrayFromIterator","_includesWith","pred","_functionName","_objectIs","is","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","typeA","keysA","extendedStackA","extendedStackB","pad","Date","toISOString","XTake","_xtake","xs","_isTypedArray","XFind","_xfind","XFindIndex","_xfindIndex","nextKey","assign","isEmpty","pathsArray","pathAr","mergeWithKey","l","mergeWith","_","_r","propEq","propOr","sortBy","aa","bb","computed","viewerActiveTool","$store","getters","watch","setActiveTool","immediate","activeTool","_isString","_trimValues","isLoading","sendXhr","url","opts","returnRawResponse","optsHeader","headers","optsBody","requestOpts","resp","finishLoading","catch","$nextTick","handleXhrError","handleLogout","$emit","mixins","Request","activeViewer","viewerChannels","viewerAnnotations","viewerSidePanelOpen","activeAnnotation","addAnnotation","onAll","allChannels","layer_id","onChannels","ch","curChannelView","visible","getChannelId","XhrBody","channelIds","timeseriesId","nodeId","config","apiUrl","header","userToken","newAnn","cStart","cEnd","layerId","userId","linkedPackage","curLIndex","dispatch","sortAnns","annotations","onAnnotationCreated","updateAnnotation","annLayerId","onAnnotationUpdated","removeAnnotation","annotation","onAnnotationDeleted","annArray","ts_start_str","fullDateStr","ts_end_str","_cpCanvasScaler","pixelRatio","viewportHeight","_onTap","_onMouseMove","_onMouseDown","_onMouseUp","_onMouseEnter","_onMouseOut","ViewerActiveTool","canvasStyle","width","height","iCanvasStyle","scrubberCWidth","period","scrubberHeight","mouseDown","hoverTxt","pointerMode","patternCnvs","segmentSpans","segments","mounted","getScreenPixelRatio","getUTCTimeString","getUTCDateString","initSegmentSpans","getAnnotations","renderViewPort","renderSegments","renderTimelimeLine","annotationIndex","color","plotAnnotations","cw","createPinstripeCanvas","antialias","patternCanvas","pctx","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","component","tsStart","tsEnd","rsPeriod","channelsInitialized","slot","pHeight","_onMouseWheel","_t","_arrayLikeToArray","arr","arr2","_unsupportedIterableToArray","minLen","arrayLikeToArray","_createForOfIteratorHelper","allowArrayLike","unsupportedIterableToArray","normalCompletion","didErr","_e2","viewerMontageScheme","timeSeriesUrl","packageId","requestedPages","chData","aSyncrequests","aSyncPreRequests","pageSize","viewData","channels","renderCounter","lastDataRender","lastViewPageRequest","prefetchTimer","prefetchDelay","autoScale","channelsReady","prevStart","prevDuration","websocket","initWebsocket","segment","timeSeriesMessage","timeSeriesError","channelsList","catchUpRequestPages","leading","clearInterval","throttle","timeout","clearTimeout","viewSegmComparator","initChannels","sampleFreq","unit","gaps","virtualId","label_value","channelConfig","label_split","label_prefix","dataSegments","rank","plotAgainst","rowBaseline","rowAdjust","hover","sf","hideFilter","isEditing","chObjects","computeSummary","segmIndexOf","startAtIndex","_indexOfStart","generatePoints","hiddenChannels","curChanViewIds","viewDataChIds","remViewChannels","showChannels","mean","firstRenderedIndex","lastRenderedIndex","blocks","requestData","updatePrefetchPages","chanViewData","curTime","firstSegment","endRequestTime","curSegm","continuationSegment","inRange","segmOffset","isAdded","isInViewport","pixelWidth","firstRequest","requestDataFromServer","curRequest","requestEndTime","session","minMax","startTime","endTime","virtualChannels","ws","channelCounter","subPageCount","ts","inViewport","invalidate","renderAll","_computeChannelViews","mapped","updatedBaseline","curIdx","channelId","getPointCoords","cXArray","cYArray","cY2Array","channelData","totalPointsInMean","curSeg","chDatCenterer","_renderData","ctxb","channelType","doPolFill","lastBlockEnd","y2","renderDataOnMessage","autoScaleViewData","sumMedian","nrSeg","allSums","calcSumMedian","sum","take","standardDeviation","average","reRequestPages","requestPages","openWebsocket","sendMontageMessage","montage","_onWebsocketClose","_onWebsocketFinalClose","_onWebsocketOpen","chIds","_onWebsocketMessage","myReader","dataPoints","curI","cData","chId","lastUsed","samplePeriod","pageStart","pageEnd","startTs","isMinMax","unitM","nrPoints","parsedData","nrResponses","nrVal","nrValidPoints","sumElem","elemMedian","median","rate","sendFilterMessage","parms","isTruthy","calcFilterType","dataCallback","curChData","addData","fIndex","requestedPage","countForChannel","isComplete","curSegments","components","TimeseriesPlotCanvas","windowHeight","windowWidth","cursorWidth","blurCanvas","canvasStyle1","canvasStyle2","canvasStyle3","summary","lastrRsUpdate","resizeClicked","trackDirection","startDragCoord","defaultLabels","labelSelect","onAnnotationsReceived","clearICanvas","resize","updateRsPeriod","renderAnnotationCanvas","_renderAll","_renderAxis","tickOffset","curXLabelIdx","renderSelectBox","_renderCursor","renderAnnotationBox","lblStart","lblEnd","minOffset","maxOffset","dx","setFilters","input0","input1","notchFreq","$event","toggleTimeZoom","model","$$v","durationInSeconds","toggleVerticalZoom","incrementZoom","decrementZoom","pageBack","togglePlayback","pageForward","togglePlaybackSpeed","selectedPlaySpeed","showVertZoom","showTimeZoom","showPlaybackSpeed","selectedTimeRange","isPlaying","montageOptions","selectedMontage","playSpeedOptions","intervalTimer","intervalPeriod","intervalPage","updateMontageScheme","updatePlaybackSpeed","updateDuration","nextAnnotation","previousAnnotation","startPlay","stopPlay","TimeseriesScrubber","TimeseriesViewerCanvas","TimeseriesViewerToolbar","TsAnnotation","packageType","channelStyle","hide","nrVisChannels","_cpStyleLabels","TIMEUNIT","XOFFSET","XGRIDSPACING","NRPXPERLABEL","USEREALTIME","DEFAULTDPI","ANNOTATIONLABELHEIGHT","ROUNDDATAPIXELS","MINMAXPOLYGON","PAGESIZEDIVIDER","PREFETCHPAGES","LIMITANNFETCH","USEMEDIAN","CURSOROFFSET","SEGMENTSPAN","MAXRECURSION","MAXDURATION","INITDURATION","filterWindowOpen","annotationWindowOpen","annotationLayerWindowOpen","annotationDelete","isTsAnnotationDeleteDialogVisible","beforeDestroy","openEditAnnotationDialog","onCreateUpdateAnnotation","confirmDeleteAnnotation","deleteAnnotation","onAddAnnotation","onCreateAnnotationLayer","onCloseAnnotationWindow","onCloseFilterWindow","append","selectAnnotation","selectChannel","selectChannels","onResize","initViewerStart","openLayerWindow","layerModal","openFilterWindow","filterWindow","setTimeseriesFilters","viewerSidePanelTypes","INFO_PANEL","DISCUSSION","FILE_BROWSER","ANNOTATIONS","CHANNELS","viewerToolTypes","PAN","ANNOTATION_SHAPE","ANNOTATION_DRAW","MEASURE","ANNOTATE","POINTER","selectedPackage","viewerSlideInfo","curRotation","curZoom","isMeasuring","measureLength","zoomPerClick","minZoom","maxZoom","activeAnnotationLayer","viewerErrors","viewerSidePanelView","viewerSelectedChannels","mutations","CLEAR_STATE","_initialState","initialState","OPEN_VIEWER","viewer","SET_SIDE_PANEL","sidePanel","SET_ACTIVE_TOOL","tool","UPDATE_VIEWER_SLIDE_INFO","newSlideInfo","SET_CHANNELS","UPDATE_VIEW_CHANNEL","channelIndex","SET_ACTIVE_ANNOTATION_LAYER","layerIndex","SET_ACTIVE_ANNOTATION","ann","SET_ANNOTATIONS","SET_DISCUSSIONS","discussions","viewerDiscussions","SET_VIEWER_ERRORS","SET_VIEWER_MONTAGE_SCHEME","UPDATE_USER_TOKEN","SELECT_PACKAGE","actions","openViewer","commit","setSidePanel","setChannels","updateViewChannel","setActiveAnnotationLayer","setAnnotations","setActiveAnnotation","updateViewerSlideInfo","setDiscussions","discussionData","setViewerErrors","setViewerMontageScheme","setSelectedPackage","updateUserToken","install","Vue","registerModule","TSViewer"],"sourceRoot":""}
|