{"version":3,"file":"static/js/419.cea65e3e.chunk.js","mappings":"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AG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GA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","sources":["../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/construct.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/get.js","../node_modules/@babel/runtime/helpers/isNativeFunction.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../node_modules/@coinbase/wallet-sdk/dist/CoinbaseWalletSDK.js","../node_modules/@coinbase/wallet-sdk/dist/components/LinkFlow.js","../node_modules/@coinbase/wallet-sdk/dist/components/QRCode.js","../node_modules/@coinbase/wallet-sdk/dist/components/Snackbar-css.js","../node_modules/@coinbase/wallet-sdk/dist/components/Snackbar.js","../node_modules/@coinbase/wallet-sdk/dist/components/Spinner-css.js","../node_modules/@coinbase/wallet-sdk/dist/components/Spinner.js","../node_modules/@coinbase/wallet-sdk/dist/components/TryExtensionLinkDialog-css.js","../node_modules/@coinbase/wallet-sdk/dist/components/TryExtensionLinkDialog.js","../node_modules/@coinbase/wallet-sdk/dist/components/icons/QRLogo.js","../node_modules/@coinbase/wallet-sdk/dist/components/icons/globe-icon-svg.js","../node_modules/@coinbase/wallet-sdk/dist/components/icons/link-icon-svg.js","../node_modules/@coinbase/wallet-sdk/dist/components/icons/lock-icon-svg.js","../node_modules/@coinbase/wallet-sdk/dist/connection/ClientMessage.js","../node_modules/@coinbase/wallet-sdk/dist/connection/EventListener.js","../node_modules/@coinbase/wallet-sdk/dist/connection/RxWebSocket.js","../node_modules/@coinbase/wallet-sdk/dist/connection/ServerMessage.js","../node_modules/@coinbase/wallet-sdk/dist/connection/WalletSDKConnection.js","../node_modules/@coinbase/wallet-sdk/dist/index.js","../node_modules/@coinbase/wallet-sdk/dist/lib/ScopedLocalStorage.js","../node_modules/@coinbase/wallet-sdk/dist/lib/cssReset-css.js","../node_modules/@coinbase/wallet-sdk/dist/lib/cssReset.js","../node_modules/@coinbase/wallet-sdk/dist/provider/CoinbaseWalletProvider.js","../node_modules/@coinbase/wallet-sdk/dist/provider/FilterPolyfill.js","../node_modules/@coinbase/wallet-sdk/dist/provider/JSONRPC.js","../node_modules/@coinbase/wallet-sdk/dist/provider/SubscriptionManager.js","../node_modules/@coinbase/wallet-sdk/dist/provider/WalletSDKUI.js","../node_modules/@coinbase/wallet-sdk/dist/provider/WalletUIError.js","../node_modules/@coinbase/wallet-sdk/dist/relay/RelayMessage.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Session.js","../node_modules/@coinbase/wallet-sdk/dist/relay/WalletSDKRelay.js","../node_modules/@coinbase/wallet-sdk/dist/relay/WalletSDKRelayAbstract.js","../node_modules/@coinbase/wallet-sdk/dist/relay/WalletSDKRelayEventManager.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Web3Method.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Web3RequestCanceledMessage.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Web3RequestMessage.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Web3Response.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Web3ResponseMessage.js","../node_modules/@coinbase/wallet-sdk/dist/relay/aes256gcm.js","../node_modules/@coinbase/wallet-sdk/dist/types.js","../node_modules/@coinbase/wallet-sdk/dist/util.js","../node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/abi.js","../node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/index.js","../node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/util.js","../node_modules/@coinbase/wallet-sdk/dist/vendor-js/qrcode-svg/index.js","../node_modules/@coinbase/wallet-sdk/dist/version.js","../node_modules/@coinbase/wallet-sdk/node_modules/bn.js/lib/bn.js","../../src/classes.ts","../../src/error-constants.ts","../../src/errors.ts","../../src/index.ts","../../src/utils.ts","../index.ts","../node_modules/async-mutex/lib/Mutex.js","../node_modules/async-mutex/lib/Semaphore.js","../node_modules/async-mutex/lib/index.js","../node_modules/async-mutex/lib/withTimeout.js","../node_modules/bind-decorator/index.js","../node_modules/eth-block-tracker/src/base.js","../node_modules/eth-block-tracker/src/polling.js","../node_modules/eth-json-rpc-filters/base-filter-history.js","../node_modules/eth-json-rpc-filters/base-filter.js","../node_modules/eth-json-rpc-filters/block-filter.js","../node_modules/eth-json-rpc-filters/getBlocksForRange.js","../node_modules/eth-json-rpc-filters/hexUtils.js","../node_modules/eth-json-rpc-filters/index.js","../node_modules/eth-json-rpc-filters/log-filter.js","../node_modules/eth-json-rpc-filters/node_modules/pify/index.js","../node_modules/eth-json-rpc-filters/subscriptionManager.js","../node_modules/eth-json-rpc-filters/tx-filter.js","../node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine/src/createScaffoldMiddleware.js","../node_modules/eth-json-rpc-middleware/scaffold.js","../node_modules/eth-query/index.js","../node_modules/events/events.js","../node_modules/fast-safe-stringify/index.js","../node_modules/for-each/index.js","../node_modules/has-tostringtag/shams.js","../node_modules/is-arguments/index.js","../node_modules/is-callable/index.js","../node_modules/is-generator-function/index.js","../node_modules/is-typed-array/index.js","../node_modules/js-sha256/src/sha256.js","../../src/JsonRpcEngine.ts","../../src/createAsyncMiddleware.ts","../../src/createScaffoldMiddleware.ts","../../src/getUniqueId.ts","../../src/idRemapMiddleware.ts","../../src/mergeMiddleware.ts","../node_modules/json-rpc-random-id/index.js","../node_modules/keccak/js.js","../node_modules/keccak/lib/api/index.js","../node_modules/keccak/lib/api/keccak.js","../node_modules/keccak/lib/api/shake.js","../node_modules/keccak/lib/keccak-state-unroll.js","../node_modules/keccak/lib/keccak.js","../node_modules/pify/index.js","../node_modules/preact/src/constants.js","../node_modules/preact/src/util.js","../node_modules/preact/src/options.js","../node_modules/preact/src/create-element.js","../node_modules/preact/src/component.js","../node_modules/preact/src/create-context.js","../node_modules/preact/src/diff/children.js","../node_modules/preact/src/diff/props.js","../node_modules/preact/src/diff/index.js","../node_modules/preact/src/render.js","../node_modules/preact/src/clone-element.js","../node_modules/preact/src/diff/catch-error.js","../node_modules/preact/hooks/src/index.js","../node_modules/readable-stream/errors-browser.js","../node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/readable-stream/lib/_stream_readable.js","../node_modules/readable-stream/lib/_stream_transform.js","../node_modules/readable-stream/lib/_stream_writable.js","../node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/readable-stream/readable-browser.js","../node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts","../node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts","../node_modules/rxjs/src/internal/scheduler/animationFrame.ts","../node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts","../node_modules/rxjs/src/internal/util/isObservable.ts","../node_modules/rxjs/src/internal/observable/bindCallback.ts","../node_modules/rxjs/src/internal/observable/bindNodeCallback.ts","../node_modules/rxjs/src/internal/observable/forkJoin.ts","../node_modules/rxjs/src/internal/observable/fromEvent.ts","../node_modules/rxjs/src/internal/observable/fromEventPattern.ts","../node_modules/rxjs/src/internal/observable/generate.ts","../node_modules/rxjs/src/internal/observable/iif.ts","../node_modules/rxjs/src/internal/observable/interval.ts","../node_modules/rxjs/src/internal/observable/never.ts","../node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts","../node_modules/rxjs/src/internal/observable/pairs.ts","../node_modules/rxjs/src/internal/observable/partition.ts","../node_modules/rxjs/src/internal/observable/range.ts","../node_modules/rxjs/src/internal/observable/using.ts","../node_modules/rxjs/src/internal/AsyncSubject.ts","../node_modules/rxjs/src/internal/BehaviorSubject.ts","../node_modules/rxjs/src/internal/Notification.ts","../node_modules/rxjs/src/internal/Observable.ts","../node_modules/rxjs/src/internal/util/toSubscriber.ts","../node_modules/rxjs/src/internal/Observer.ts","../node_modules/rxjs/src/internal/OuterSubscriber.ts","../node_modules/rxjs/src/internal/ReplaySubject.ts","../node_modules/rxjs/src/internal/Scheduler.ts","../node_modules/rxjs/src/internal/Subject.ts","../node_modules/rxjs/src/internal/SubjectSubscription.ts","../node_modules/rxjs/src/internal/Subscriber.ts","../node_modules/rxjs/src/internal/Subscription.ts","../node_modules/rxjs/src/internal/config.ts","../node_modules/rxjs/src/internal/innerSubscribe.ts","../node_modules/rxjs/src/internal/observable/ConnectableObservable.ts","../node_modules/rxjs/src/internal/observable/combineLatest.ts","../node_modules/rxjs/src/internal/observable/concat.ts","../node_modules/rxjs/src/internal/observable/defer.ts","../node_modules/rxjs/src/internal/observable/empty.ts","../node_modules/rxjs/src/internal/observable/from.ts","../node_modules/rxjs/src/internal/observable/fromArray.ts","../node_modules/rxjs/src/internal/observable/merge.ts","../node_modules/rxjs/src/internal/observable/of.ts","../node_modules/rxjs/src/internal/observable/race.ts","../node_modules/rxjs/src/internal/observable/throwError.ts","../node_modules/rxjs/src/internal/observable/timer.ts","../node_modules/rxjs/src/internal/observable/zip.ts","../node_modules/rxjs/src/internal/operators/concatAll.ts","../node_modules/rxjs/src/internal/operators/filter.ts","../node_modules/rxjs/src/internal/operators/groupBy.ts","../node_modules/rxjs/src/internal/operators/map.ts","../node_modules/rxjs/src/internal/operators/mergeAll.ts","../node_modules/rxjs/src/internal/operators/mergeMap.ts","../node_modules/rxjs/src/internal/operators/observeOn.ts","../node_modules/rxjs/src/internal/operators/refCount.ts","../node_modules/rxjs/src/internal/scheduled/scheduleArray.ts","../node_modules/rxjs/src/internal/scheduled/scheduled.ts","../node_modules/rxjs/src/internal/util/isInteropObservable.ts","../node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts","../node_modules/rxjs/src/internal/scheduled/schedulePromise.ts","../node_modules/rxjs/src/internal/util/isIterable.ts","../node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts","../node_modules/rxjs/src/internal/scheduler/AsyncAction.ts","../node_modules/rxjs/src/internal/scheduler/Action.ts","../node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts","../node_modules/rxjs/src/internal/util/Immediate.ts","../node_modules/rxjs/src/internal/scheduler/AsapAction.ts","../node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts","../node_modules/rxjs/src/internal/scheduler/asap.ts","../node_modules/rxjs/src/internal/scheduler/async.ts","../node_modules/rxjs/src/internal/scheduler/QueueAction.ts","../node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts","../node_modules/rxjs/src/internal/scheduler/queue.ts","../node_modules/rxjs/src/internal/symbol/iterator.ts","../node_modules/rxjs/src/internal/symbol/rxSubscriber.ts","../node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts","../node_modules/rxjs/src/internal/util/EmptyError.ts","../node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","../node_modules/rxjs/src/internal/util/TimeoutError.ts","../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","../node_modules/rxjs/src/internal/util/canReportError.ts","../node_modules/rxjs/src/internal/util/hostReportError.ts","../node_modules/rxjs/src/internal/util/identity.ts","../node_modules/rxjs/src/internal/util/isFunction.ts","../node_modules/rxjs/src/internal/util/isNumeric.ts","../node_modules/rxjs/src/internal/util/isObject.ts","../node_modules/rxjs/src/internal/util/isPromise.ts","../node_modules/rxjs/src/internal/util/isScheduler.ts","../node_modules/rxjs/src/internal/util/not.ts","../node_modules/rxjs/src/internal/util/pipe.ts","../node_modules/rxjs/src/internal/util/subscribeTo.ts","../node_modules/rxjs/src/internal/util/subscribeToObservable.ts","../node_modules/rxjs/src/internal/util/subscribeToPromise.ts","../node_modules/rxjs/src/internal/util/subscribeToIterable.ts","../node_modules/rxjs/src/internal/util/subscribeToArray.ts","../node_modules/rxjs/src/internal/InnerSubscriber.ts","../node_modules/rxjs/src/internal/util/subscribeToResult.ts","../node_modules/rxjs/src/internal/operators/audit.ts","../node_modules/rxjs/src/internal/operators/auditTime.ts","../node_modules/rxjs/src/internal/operators/buffer.ts","../node_modules/rxjs/src/internal/operators/bufferCount.ts","../node_modules/rxjs/src/internal/operators/bufferTime.ts","../node_modules/rxjs/src/internal/operators/bufferToggle.ts","../node_modules/rxjs/src/internal/operators/bufferWhen.ts","../node_modules/rxjs/src/internal/operators/catchError.ts","../node_modules/rxjs/src/internal/operators/combineAll.ts","../node_modules/rxjs/src/internal/operators/combineLatest.ts","../node_modules/rxjs/src/internal/operators/concat.ts","../node_modules/rxjs/src/internal/operators/concatMap.ts","../node_modules/rxjs/src/internal/operators/concatMapTo.ts","../node_modules/rxjs/src/internal/operators/count.ts","../node_modules/rxjs/src/internal/operators/debounce.ts","../node_modules/rxjs/src/internal/operators/debounceTime.ts","../node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts","../node_modules/rxjs/src/internal/util/isDate.ts","../node_modules/rxjs/src/internal/operators/delay.ts","../node_modules/rxjs/src/internal/operators/delayWhen.ts","../node_modules/rxjs/src/internal/operators/dematerialize.ts","../node_modules/rxjs/src/internal/operators/distinct.ts","../node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts","../node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts","../node_modules/rxjs/src/internal/operators/throwIfEmpty.ts","../node_modules/rxjs/src/internal/operators/take.ts","../node_modules/rxjs/src/internal/operators/elementAt.ts","../node_modules/rxjs/src/internal/operators/endWith.ts","../node_modules/rxjs/src/internal/operators/every.ts","../node_modules/rxjs/src/internal/operators/exhaust.ts","../node_modules/rxjs/src/internal/operators/exhaustMap.ts","../node_modules/rxjs/src/internal/operators/expand.ts","../node_modules/rxjs/src/internal/operators/finalize.ts","../node_modules/rxjs/src/internal/operators/find.ts","../node_modules/rxjs/src/internal/operators/findIndex.ts","../node_modules/rxjs/src/internal/operators/first.ts","../node_modules/rxjs/src/internal/operators/ignoreElements.ts","../node_modules/rxjs/src/internal/operators/isEmpty.ts","../node_modules/rxjs/src/internal/operators/takeLast.ts","../node_modules/rxjs/src/internal/operators/last.ts","../node_modules/rxjs/src/internal/operators/mapTo.ts","../node_modules/rxjs/src/internal/operators/materialize.ts","../node_modules/rxjs/src/internal/operators/scan.ts","../node_modules/rxjs/src/internal/operators/reduce.ts","../node_modules/rxjs/src/internal/operators/max.ts","../node_modules/rxjs/src/internal/operators/merge.ts","../node_modules/rxjs/src/internal/operators/mergeMapTo.ts","../node_modules/rxjs/src/internal/operators/mergeScan.ts","../node_modules/rxjs/src/internal/operators/min.ts","../node_modules/rxjs/src/internal/operators/multicast.ts","../node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts","../node_modules/rxjs/src/internal/operators/pairwise.ts","../node_modules/rxjs/src/internal/operators/partition.ts","../node_modules/rxjs/src/internal/operators/pluck.ts","../node_modules/rxjs/src/internal/operators/publish.ts","../node_modules/rxjs/src/internal/operators/publishBehavior.ts","../node_modules/rxjs/src/internal/operators/publishLast.ts","../node_modules/rxjs/src/internal/operators/publishReplay.ts","../node_modules/rxjs/src/internal/operators/race.ts","../node_modules/rxjs/src/internal/operators/repeat.ts","../node_modules/rxjs/src/internal/operators/repeatWhen.ts","../node_modules/rxjs/src/internal/operators/retry.ts","../node_modules/rxjs/src/internal/operators/retryWhen.ts","../node_modules/rxjs/src/internal/operators/sample.ts","../node_modules/rxjs/src/internal/operators/sampleTime.ts","../node_modules/rxjs/src/internal/operators/sequenceEqual.ts","../node_modules/rxjs/src/internal/operators/share.ts","../node_modules/rxjs/src/internal/operators/shareReplay.ts","../node_modules/rxjs/src/internal/operators/single.ts","../node_modules/rxjs/src/internal/operators/skip.ts","../node_modules/rxjs/src/internal/operators/skipLast.ts","../node_modules/rxjs/src/internal/operators/skipUntil.ts","../node_modules/rxjs/src/internal/operators/skipWhile.ts","../node_modules/rxjs/src/internal/operators/startWith.ts","../node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts","../node_modules/rxjs/src/internal/operators/subscribeOn.ts","../node_modules/rxjs/src/internal/operators/switchMap.ts","../node_modules/rxjs/src/internal/operators/switchAll.ts","../node_modules/rxjs/src/internal/operators/switchMapTo.ts","../node_modules/rxjs/src/internal/operators/takeUntil.ts","../node_modules/rxjs/src/internal/operators/takeWhile.ts","../node_modules/rxjs/src/internal/operators/tap.ts","../node_modules/rxjs/src/internal/operators/throttle.ts","../node_modules/rxjs/src/internal/operators/throttleTime.ts","../node_modules/rxjs/src/internal/operators/timeInterval.ts","../node_modules/rxjs/src/internal/operators/timeoutWith.ts","../node_modules/rxjs/src/internal/operators/timeout.ts","../node_modules/rxjs/src/internal/operators/timestamp.ts","../node_modules/rxjs/src/internal/operators/toArray.ts","../node_modules/rxjs/src/internal/operators/window.ts","../node_modules/rxjs/src/internal/operators/windowCount.ts","../node_modules/rxjs/src/internal/operators/windowTime.ts","../node_modules/rxjs/src/internal/operators/windowToggle.ts","../node_modules/rxjs/src/internal/operators/windowWhen.ts","../node_modules/rxjs/src/internal/operators/withLatestFrom.ts","../node_modules/rxjs/src/internal/operators/zip.ts","../node_modules/rxjs/src/internal/operators/zipAll.ts","../node_modules/rxjs/node_modules/tslib/tslib.es6.js","../node_modules/safe-buffer/index.js","../node_modules/safe-event-emitter/index.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/util-deprecate/browser.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/support/types.js","../node_modules/util/util.js","../node_modules/which-typed-array/index.js","../node_modules/xtend/immutable.js","../node_modules/available-typed-arrays/index.js","../node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js"],"sourcesContent":["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}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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\nfunction _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}\n\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nfunction _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}\n\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var superPropBase = require(\"./superPropBase.js\");\n\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n\n return _get.apply(this, arguments);\n}\n\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nfunction _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 module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\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}\n\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _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}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeFunction = require(\"./isNativeFunction.js\");\n\nvar construct = require(\"./construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoinbaseWalletSDK = void 0;\nconst ScopedLocalStorage_1 = require(\"./lib/ScopedLocalStorage\");\nconst CoinbaseWalletProvider_1 = require(\"./provider/CoinbaseWalletProvider\");\nconst WalletSDKUI_1 = require(\"./provider/WalletSDKUI\");\nconst WalletSDKRelay_1 = require(\"./relay/WalletSDKRelay\");\nconst WalletSDKRelayEventManager_1 = require(\"./relay/WalletSDKRelayEventManager\");\nconst util_1 = require(\"./util\");\nconst LINK_API_URL = process.env.LINK_API_URL || \"https://www.walletlink.org\";\nconst SDK_VERSION = process.env.SDK_VERSION || require(\"../package.json\").version || \"unknown\";\nclass CoinbaseWalletSDK {\n /**\n * Constructor\n * @param options Coinbase Wallet SDK constructor options\n */\n constructor(options) {\n var _a, _b;\n this._appName = \"\";\n this._appLogoUrl = null;\n this._relay = null;\n this._relayEventManager = null;\n const linkAPIUrl = options.linkAPIUrl || LINK_API_URL;\n let uiConstructor;\n if (!options.uiConstructor) {\n uiConstructor = opts => new WalletSDKUI_1.WalletSDKUI(opts);\n }\n else {\n uiConstructor = options.uiConstructor;\n }\n if (typeof options.overrideIsMetaMask === \"undefined\") {\n this._overrideIsMetaMask = false;\n }\n else {\n this._overrideIsMetaMask = options.overrideIsMetaMask;\n }\n this._overrideIsCoinbaseWallet = (_a = options.overrideIsCoinbaseWallet) !== null && _a !== void 0 ? _a : true;\n this._overrideIsCoinbaseBrowser =\n (_b = options.overrideIsCoinbaseBrowser) !== null && _b !== void 0 ? _b : false;\n this._eventListener = options.eventListener;\n const u = new URL(linkAPIUrl);\n const origin = `${u.protocol}//${u.host}`;\n this._storage = new ScopedLocalStorage_1.ScopedLocalStorage(`-walletlink:${origin}`); // needs migration to preserve local states\n this._storage.setItem(\"version\", CoinbaseWalletSDK.VERSION);\n if (this.walletExtension) {\n return;\n }\n this._relayEventManager = new WalletSDKRelayEventManager_1.WalletSDKRelayEventManager();\n this._relay = new WalletSDKRelay_1.WalletSDKRelay({\n linkAPIUrl,\n version: SDK_VERSION,\n darkMode: !!options.darkMode,\n uiConstructor,\n storage: this._storage,\n relayEventManager: this._relayEventManager,\n eventListener: this._eventListener,\n });\n this.setAppInfo(options.appName, options.appLogoUrl);\n if (!!options.headlessMode)\n return;\n this._relay.attachUI();\n }\n /**\n * Create a Web3 Provider object\n * @param jsonRpcUrl Ethereum JSON RPC URL (Default: \"\")\n * @param chainId Ethereum Chain ID (Default: 1)\n * @returns A Web3 Provider\n */\n makeWeb3Provider(jsonRpcUrl = \"\", chainId = 1) {\n const extension = this.walletExtension;\n if (extension) {\n if (!this.isCipherProvider(extension)) {\n extension.setProviderInfo(jsonRpcUrl, chainId);\n }\n return extension;\n }\n const relay = this._relay;\n if (!relay || !this._relayEventManager || !this._storage) {\n throw new Error(\"Relay not initialized, should never happen\");\n }\n if (!jsonRpcUrl)\n relay.setConnectDisabled(true);\n return new CoinbaseWalletProvider_1.CoinbaseWalletProvider({\n relayProvider: () => Promise.resolve(relay),\n relayEventManager: this._relayEventManager,\n storage: this._storage,\n jsonRpcUrl,\n chainId,\n qrUrl: this.getQrUrl(),\n eventListener: this._eventListener,\n overrideIsMetaMask: this._overrideIsMetaMask,\n overrideIsCoinbaseWallet: this._overrideIsCoinbaseWallet,\n overrideIsCoinbaseBrowser: this._overrideIsCoinbaseBrowser,\n });\n }\n /**\n * Set application information\n * @param appName Application name\n * @param appLogoUrl Application logo image URL\n */\n setAppInfo(appName, appLogoUrl) {\n var _a;\n this._appName = appName || \"DApp\";\n this._appLogoUrl = appLogoUrl || (0, util_1.getFavicon)();\n const extension = this.walletExtension;\n if (extension) {\n if (!this.isCipherProvider(extension)) {\n extension.setAppInfo(this._appName, this._appLogoUrl);\n }\n }\n else {\n (_a = this._relay) === null || _a === void 0 ? void 0 : _a.setAppInfo(this._appName, this._appLogoUrl);\n }\n }\n /**\n * Disconnect. After disconnecting, this will reload the web page to ensure\n * all potential stale state is cleared.\n */\n disconnect() {\n var _a;\n const extension = this.walletExtension;\n if (extension) {\n void extension.close();\n }\n else {\n (_a = this._relay) === null || _a === void 0 ? void 0 : _a.resetAndReload();\n }\n }\n /**\n * Return QR URL for mobile wallet connection, will return null if extension is installed\n */\n getQrUrl() {\n var _a, _b;\n return (_b = (_a = this._relay) === null || _a === void 0 ? void 0 : _a.getQRCodeUrl()) !== null && _b !== void 0 ? _b : null;\n }\n get walletExtension() {\n var _a;\n return (_a = window.coinbaseWalletExtension) !== null && _a !== void 0 ? _a : window.walletLinkExtension;\n }\n isCipherProvider(provider) {\n // @ts-expect-error isCipher walletlink property\n return typeof provider.isCipher === \"boolean\" && provider.isCipher;\n }\n}\nexports.CoinbaseWalletSDK = CoinbaseWalletSDK;\nCoinbaseWalletSDK.VERSION = SDK_VERSION;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkFlow = void 0;\nconst preact_1 = require(\"preact\");\nconst rxjs_1 = require(\"rxjs\");\nconst TryExtensionLinkDialog_1 = require(\"./TryExtensionLinkDialog\");\nclass LinkFlow {\n constructor(options) {\n this.extensionUI$ = new rxjs_1.BehaviorSubject({});\n this.subscriptions = new rxjs_1.Subscription();\n this.isConnected = false;\n this.isOpen = false;\n this.onCancel = null;\n this.root = null;\n // if true, hide QR code in LinkFlow (which happens if no jsonRpcUrl is provided)\n this.connectDisabled = false;\n this.darkMode = options.darkMode;\n this.version = options.version;\n this.sessionId = options.sessionId;\n this.sessionSecret = options.sessionSecret;\n this.linkAPIUrl = options.linkAPIUrl;\n this.isParentConnection = options.isParentConnection;\n this.connected$ = options.connected$;\n }\n attach(el) {\n this.root = document.createElement(\"div\");\n this.root.className = \"-cbwsdk-link-flow-root\";\n el.appendChild(this.root);\n this.render();\n this.subscriptions.add(this.connected$.subscribe(v => {\n if (this.isConnected !== v) {\n this.isConnected = v;\n this.render();\n }\n }));\n }\n detach() {\n var _a;\n if (!this.root) {\n return;\n }\n this.subscriptions.unsubscribe();\n (0, preact_1.render)(null, this.root);\n (_a = this.root.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.root);\n }\n setConnectDisabled(connectDisabled) {\n this.connectDisabled = connectDisabled;\n }\n open(options) {\n this.isOpen = true;\n this.onCancel = options.onCancel;\n this.render();\n }\n close() {\n this.isOpen = false;\n this.onCancel = null;\n this.render();\n }\n render() {\n if (!this.root) {\n return;\n }\n const subscription = this.extensionUI$.subscribe(() => {\n if (!this.root) {\n return;\n }\n (0, preact_1.render)((0, preact_1.h)(TryExtensionLinkDialog_1.TryExtensionLinkDialog, { darkMode: this.darkMode, version: this.version, sessionId: this.sessionId, sessionSecret: this.sessionSecret, linkAPIUrl: this.linkAPIUrl, isOpen: this.isOpen, isConnected: this.isConnected, isParentConnection: this.isParentConnection, onCancel: this.onCancel, connectDisabled: this.connectDisabled }), this.root);\n });\n this.subscriptions.add(subscription);\n }\n}\nexports.LinkFlow = LinkFlow;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QRCode = void 0;\nconst preact_1 = require(\"preact\");\nconst hooks_1 = require(\"preact/hooks\");\nconst qrcode_svg_1 = __importDefault(require(\"../vendor-js/qrcode-svg\"));\nconst QRCode = props => {\n const [svg, setSvg] = (0, hooks_1.useState)(\"\");\n (0, hooks_1.useEffect)(() => {\n var _a, _b;\n const qrcode = new qrcode_svg_1.default({\n content: props.content,\n background: props.bgColor || \"#ffffff\",\n color: props.fgColor || \"#000000\",\n container: \"svg\",\n ecl: \"M\",\n width: (_a = props.width) !== null && _a !== void 0 ? _a : 256,\n height: (_b = props.height) !== null && _b !== void 0 ? _b : 256,\n padding: 0,\n image: props.image,\n });\n const base64 = Buffer.from(qrcode.svg(), \"utf8\").toString(\"base64\");\n setSvg(`data:image/svg+xml;base64,${base64}`);\n });\n return svg ? (0, preact_1.h)(\"img\", { src: svg, alt: \"QR Code\" }) : null;\n};\nexports.QRCode = QRCode;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `.-cbwsdk-css-reset .-gear-container{margin-left:16px !important;margin-right:9px !important;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:opacity .25s}.-cbwsdk-css-reset .-gear-container *{user-select:none}.-cbwsdk-css-reset .-gear-container svg{opacity:0;position:absolute}.-cbwsdk-css-reset .-gear-icon{height:12px;width:12px;z-index:10000}.-cbwsdk-css-reset .-cbwsdk-snackbar{align-items:flex-end;display:flex;flex-direction:column;position:fixed;right:0;top:0;z-index:2147483647}.-cbwsdk-css-reset .-cbwsdk-snackbar *{user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance{display:flex;flex-direction:column;margin:8px 16px 0 16px;overflow:visible;text-align:left;transform:translateX(0);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header:hover .-gear-container svg{opacity:1}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header{display:flex;align-items:center;background:#fff;overflow:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-cblogo{margin:8px 8px 8px 8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-message{color:#000;font-size:13px;line-height:1.5;user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu{background:#fff;transition:opacity .25s ease-in-out,transform .25s linear,visibility 0s;visibility:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;opacity:0;flex-direction:column;padding-left:8px;padding-right:8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:last-child{margin-bottom:8px !important}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover{background:#f5f7f8;border-radius:6px;transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover span{color:#050f19;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover svg path{fill:#000;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item{visibility:inherit;height:35px;margin-top:8px;margin-bottom:0;display:flex;flex-direction:row;align-items:center;padding:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item *{visibility:inherit;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover{background:rgba(223,95,103,.2);transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover svg path{fill:#df5f67;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover span{color:#df5f67;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-info{color:#aaa;font-size:13px;margin:0 8px 0 32px;position:absolute}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-hidden{opacity:0;text-align:left;transform:translateX(25%);transition:opacity .5s linear}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-expanded .-cbwsdk-snackbar-instance-menu{opacity:1;display:flex;transform:translateY(8px);visibility:visible}`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SnackbarInstance = exports.SnackbarContainer = exports.Snackbar = void 0;\nconst clsx_1 = __importDefault(require(\"clsx\"));\nconst preact_1 = require(\"preact\");\nconst hooks_1 = require(\"preact/hooks\");\nconst Snackbar_css_1 = __importDefault(require(\"./Snackbar-css\"));\nconst cblogo = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNDkyIDEwLjQxOWE4LjkzIDguOTMgMCAwMTguOTMtOC45M2gxMS4xNjNhOC45MyA4LjkzIDAgMDE4LjkzIDguOTN2MTEuMTYzYTguOTMgOC45MyAwIDAxLTguOTMgOC45M0gxMC40MjJhOC45MyA4LjkzIDAgMDEtOC45My04LjkzVjEwLjQxOXoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjQxOSAwSDIxLjU4QzI3LjMzNSAwIDMyIDQuNjY1IDMyIDEwLjQxOVYyMS41OEMzMiAyNy4zMzUgMjcuMzM1IDMyIDIxLjU4MSAzMkgxMC40MkM0LjY2NSAzMiAwIDI3LjMzNSAwIDIxLjU4MVYxMC40MkMwIDQuNjY1IDQuNjY1IDAgMTAuNDE5IDB6bTAgMS40ODhhOC45MyA4LjkzIDAgMDAtOC45MyA4LjkzdjExLjE2M2E4LjkzIDguOTMgMCAwMDguOTMgOC45M0gyMS41OGE4LjkzIDguOTMgMCAwMDguOTMtOC45M1YxMC40MmE4LjkzIDguOTMgMCAwMC04LjkzLTguOTNIMTAuNDJ6IiBmaWxsPSIjZmZmIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45OTggMjYuMDQ5Yy01LjU0OSAwLTEwLjA0Ny00LjQ5OC0xMC4wNDctMTAuMDQ3IDAtNS41NDggNC40OTgtMTAuMDQ2IDEwLjA0Ny0xMC4wNDYgNS41NDggMCAxMC4wNDYgNC40OTggMTAuMDQ2IDEwLjA0NiAwIDUuNTQ5LTQuNDk4IDEwLjA0Ny0xMC4wNDYgMTAuMDQ3eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMi43NjIgMTQuMjU0YzAtLjgyMi42NjctMS40ODkgMS40ODktMS40ODloMy40OTdjLjgyMiAwIDEuNDg4LjY2NiAxLjQ4OCAxLjQ4OXYzLjQ5N2MwIC44MjItLjY2NiAxLjQ4OC0xLjQ4OCAxLjQ4OGgtMy40OTdhMS40ODggMS40ODggMCAwMS0xLjQ4OS0xLjQ4OHYtMy40OTh6IiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+`;\nconst gearIcon = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDYuNzV2LTEuNWwtMS43Mi0uNTdjLS4wOC0uMjctLjE5LS41Mi0uMzItLjc3bC44MS0xLjYyLTEuMDYtMS4wNi0xLjYyLjgxYy0uMjQtLjEzLS41LS4yNC0uNzctLjMyTDYuNzUgMGgtMS41bC0uNTcgMS43MmMtLjI3LjA4LS41My4xOS0uNzcuMzJsLTEuNjItLjgxLTEuMDYgMS4wNi44MSAxLjYyYy0uMTMuMjQtLjI0LjUtLjMyLjc3TDAgNS4yNXYxLjVsMS43Mi41N2MuMDguMjcuMTkuNTMuMzIuNzdsLS44MSAxLjYyIDEuMDYgMS4wNiAxLjYyLS44MWMuMjQuMTMuNS4yMy43Ny4zMkw1LjI1IDEyaDEuNWwuNTctMS43MmMuMjctLjA4LjUyLS4xOS43Ny0uMzJsMS42Mi44MSAxLjA2LTEuMDYtLjgxLTEuNjJjLjEzLS4yNC4yMy0uNS4zMi0uNzdMMTIgNi43NXpNNiA4LjVhMi41IDIuNSAwIDAxMC01IDIuNSAyLjUgMCAwMTAgNXoiIGZpbGw9IiMwNTBGMTkiLz48L3N2Zz4=`;\nclass Snackbar {\n constructor(options) {\n this.items = new Map();\n this.nextItemKey = 0;\n this.root = null;\n this.darkMode = options.darkMode;\n }\n attach(el) {\n this.root = document.createElement(\"div\");\n this.root.className = \"-cbwsdk-snackbar-root\";\n el.appendChild(this.root);\n this.render();\n }\n presentItem(itemProps) {\n const key = this.nextItemKey++;\n this.items.set(key, itemProps);\n this.render();\n return () => {\n this.items.delete(key);\n this.render();\n };\n }\n clear() {\n this.items.clear();\n this.render();\n }\n render() {\n if (!this.root) {\n return;\n }\n (0, preact_1.render)((0, preact_1.h)(\"div\", null,\n (0, preact_1.h)(exports.SnackbarContainer, { darkMode: this.darkMode }, Array.from(this.items.entries()).map(([key, itemProps]) => ((0, preact_1.h)(exports.SnackbarInstance, Object.assign({}, itemProps, { key: key })))))), this.root);\n }\n}\nexports.Snackbar = Snackbar;\nconst SnackbarContainer = props => ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-snackbar-container\") },\n (0, preact_1.h)(\"style\", null, Snackbar_css_1.default),\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar\" }, props.children)));\nexports.SnackbarContainer = SnackbarContainer;\nconst SnackbarInstance = ({ autoExpand, message, menuItems, }) => {\n const [hidden, setHidden] = (0, hooks_1.useState)(true);\n const [expanded, setExpanded] = (0, hooks_1.useState)(autoExpand !== null && autoExpand !== void 0 ? autoExpand : false);\n (0, hooks_1.useEffect)(() => {\n const timers = [\n window.setTimeout(() => {\n setHidden(false);\n }, 1),\n window.setTimeout(() => {\n setExpanded(true);\n }, 10000),\n ];\n return () => {\n timers.forEach(window.clearTimeout);\n };\n });\n const toggleExpanded = () => {\n setExpanded(!expanded);\n };\n return ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-snackbar-instance\", hidden && \"-cbwsdk-snackbar-instance-hidden\", expanded && \"-cbwsdk-snackbar-instance-expanded\") },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar-instance-header\", onClick: toggleExpanded },\n (0, preact_1.h)(\"img\", { src: cblogo, class: \"-cbwsdk-snackbar-instance-header-cblogo\" }),\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar-instance-header-message\" }, message),\n (0, preact_1.h)(\"div\", { class: \"-gear-container\" },\n !expanded && ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"circle\", { cx: \"12\", cy: \"12\", r: \"12\", fill: \"#F5F7F8\" }))),\n (0, preact_1.h)(\"img\", { src: gearIcon, class: \"-gear-icon\", title: \"Expand\" }))),\n menuItems && menuItems.length > 0 && ((0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar-instance-menu\" }, menuItems.map((action, i) => ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-snackbar-instance-menu-item\", action.isRed && \"-cbwsdk-snackbar-instance-menu-item-is-red\"), onClick: action.onClick, key: i },\n (0, preact_1.h)(\"svg\", { width: action.svgWidth, height: action.svgHeight, viewBox: \"0 0 10 11\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": action.defaultFillRule, \"clip-rule\": action.defaultClipRule, d: action.path, fill: \"#AAAAAA\" })),\n (0, preact_1.h)(\"span\", { class: (0, clsx_1.default)(\"-cbwsdk-snackbar-instance-menu-item-info\", action.isRed &&\n \"-cbwsdk-snackbar-instance-menu-item-info-is-red\") }, action.info))))))));\n};\nexports.SnackbarInstance = SnackbarInstance;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `.-cbwsdk-css-reset .-cbwsdk-spinner{display:inline-block}.-cbwsdk-css-reset .-cbwsdk-spinner svg{display:inline-block;animation:2s linear infinite -cbwsdk-spinner-svg}.-cbwsdk-css-reset .-cbwsdk-spinner svg circle{animation:1.9s ease-in-out infinite both -cbwsdk-spinner-circle;display:block;fill:rgba(0,0,0,0);stroke-dasharray:283;stroke-dashoffset:280;stroke-linecap:round;stroke-width:10px;transform-origin:50% 50%}@keyframes -cbwsdk-spinner-svg{0%{transform:rotateZ(0deg)}100%{transform:rotateZ(360deg)}}@keyframes -cbwsdk-spinner-circle{0%,25%{stroke-dashoffset:280;transform:rotate(0)}50%,75%{stroke-dashoffset:75;transform:rotate(45deg)}100%{stroke-dashoffset:280;transform:rotate(360deg)}}`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Spinner = void 0;\nconst preact_1 = require(\"preact\");\nconst Spinner_css_1 = __importDefault(require(\"./Spinner-css\"));\nconst Spinner = props => {\n var _a;\n const size = (_a = props.size) !== null && _a !== void 0 ? _a : 64;\n const color = props.color || \"#000\";\n return ((0, preact_1.h)(\"div\", { class: \"-cbwsdk-spinner\" },\n (0, preact_1.h)(\"style\", null, Spinner_css_1.default),\n (0, preact_1.h)(\"svg\", { viewBox: \"0 0 100 100\", xmlns: \"http://www.w3.org/2000/svg\", style: { width: size, height: size } },\n (0, preact_1.h)(\"circle\", { style: { cx: 50, cy: 50, r: 45, stroke: color } }))));\n};\nexports.Spinner = Spinner;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `.-cbwsdk-css-reset .-cbwsdk-extension-dialog{z-index:2147483647;position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-backdrop{z-index:2147483647;position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);transition:opacity .25s}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-backdrop-hidden{opacity:0}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box{display:flex;position:relative;max-width:500px;flex-direction:column;transform:scale(1);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-hidden{opacity:0;transform:scale(0.85)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top{display:flex;flex-direction:row;background-color:#fff;border-radius:8px;overflow:hidden;min-height:300px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-subtext{margin-top:15px;font-size:12px;line-height:1.5}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-install-region{display:flex;flex-basis:50%;flex-direction:column;justify-content:center;padding:32px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-install-region button{display:block;border-radius:8px;background-color:#1652f0;color:#fff;width:90%;min-width:fit-content;height:44px;margin-top:16px;font-size:16px;padding-left:16px;padding-right:16px;cursor:pointer;font-weight:500;text-align:center}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-info-region{display:flex;flex-basis:50%;flex-direction:column;justify-content:center;background-color:#fafbfc}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-description{display:flex;flex-direction:row;align-items:center;padding-top:14px;padding-bottom:14px;padding-left:24px;padding-right:32px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-description-icon-wrapper{display:block;position:relative;width:40px;height:40px;flex-shrink:0;flex-grow:0;border-radius:20px;background-color:#fff;box-shadow:0px 0px 8px rgba(0,0,0,.04),0px 16px 24px rgba(0,0,0,.06)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-description-icon-wrapper img{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-description-text{margin-left:16px;flex-grow:1;font-size:13px;line-height:19px;color:#000;align-self:center}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom{display:flex;flex-direction:row;overflow:hidden;border-radius:8px;background-color:#fff;margin-top:8px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-description-region{display:flex;flex-direction:column;justify-content:center;padding:32px;flex-grow:1}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-description{font-size:13px;line-height:19px;margin-top:12px;color:#aaa}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-description a{font-size:inherit;line-height:inherit;color:#1652f0;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-region{position:relative;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;padding-left:24px;padding-right:24px;padding-top:16px;padding-bottom:16px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-wrapper{position:relative;display:block;padding:8px;border-radius:8px;box-shadow:0px 4px 12px rgba(0,0,0,.1)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-wrapper img{display:block}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-connecting{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:rgba(255,255,255,.95)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-connecting>p{font-size:12px;font-weight:bold;color:#000;margin-top:16px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel{position:absolute;-webkit-appearance:none;display:flex;align-items:center;justify-content:center;top:16px;right:16px;width:24px;height:24px;border-radius:12px;background-color:#fafbfc;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x{position:relative;display:block;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x::before,.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x::after{content:\"\";position:absolute;display:block;top:-1px;left:-7px;width:14px;height:1px;background-color:#000;transition:background-color .2s}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x::before{transform:rotate(45deg)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x::after{transform:rotate(135deg)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel:hover .-cbwsdk-link-dialog-box-cancel-x-a,.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel:hover .-cbwsdk-link-dialog-box-cancel-x-b{background-color:#000}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-container{display:block}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-container-hidden{display:none}.-cbwsdk-css-reset .-cbwsdk-extension-dialog h2{display:block;text-align:left;font-size:22px;font-weight:600;line-height:28px;color:#000}`;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TryExtensionLinkDialog = void 0;\nconst clsx_1 = __importDefault(require(\"clsx\"));\nconst preact_1 = require(\"preact\");\nconst hooks_1 = require(\"preact/hooks\");\nconst util_1 = require(\"../util\");\nconst version_1 = require(\"../version\");\nconst globe_icon_svg_1 = __importDefault(require(\"./icons/globe-icon-svg\"));\nconst link_icon_svg_1 = __importDefault(require(\"./icons/link-icon-svg\"));\nconst lock_icon_svg_1 = __importDefault(require(\"./icons/lock-icon-svg\"));\nconst QRLogo_1 = __importDefault(require(\"./icons/QRLogo\"));\nconst QRCode_1 = require(\"./QRCode\");\nconst Spinner_1 = require(\"./Spinner\");\nconst TryExtensionLinkDialog_css_1 = __importDefault(require(\"./TryExtensionLinkDialog-css\"));\nconst TryExtensionLinkDialog = props => {\n const [isContainerHidden, setContainerHidden] = (0, hooks_1.useState)(!props.isOpen);\n const [isDialogHidden, setDialogHidden] = (0, hooks_1.useState)(!props.isOpen);\n (0, hooks_1.useEffect)(() => {\n const { isOpen } = props;\n const timers = [\n window.setTimeout(() => {\n setDialogHidden(!isOpen);\n }, 10),\n ];\n if (isOpen) {\n setContainerHidden(false);\n }\n else {\n timers.push(window.setTimeout(() => {\n setContainerHidden(true);\n }, 360));\n }\n return () => {\n timers.forEach(window.clearTimeout);\n };\n }, [props.isOpen]);\n return ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-container\", isContainerHidden && \"-cbwsdk-extension-dialog-container-hidden\") },\n (0, preact_1.h)(\"style\", null, TryExtensionLinkDialog_css_1.default),\n (0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-backdrop\", isDialogHidden && \"-cbwsdk-extension-dialog-backdrop-hidden\") }),\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog\" },\n (0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-box\", isDialogHidden && \"-cbwsdk-extension-dialog-box-hidden\") },\n (0, preact_1.h)(TryExtensionBox, { onInstallClick: () => {\n window.open(\"https://api.wallet.coinbase.com/rpc/v2/desktop/chrome\", \"_blank\");\n } }),\n !props.connectDisabled ? ((0, preact_1.h)(ScanQRBox, { darkMode: props.darkMode, version: props.version, sessionId: props.sessionId, sessionSecret: props.sessionSecret, linkAPIUrl: props.linkAPIUrl, isConnected: props.isConnected, isParentConnection: props.isParentConnection })) : null,\n props.onCancel && (0, preact_1.h)(CancelButton, { onClick: props.onCancel })))));\n};\nexports.TryExtensionLinkDialog = TryExtensionLinkDialog;\nconst TryExtensionBox = ({ onInstallClick }) => {\n const [isClicked, setIsClicked] = (0, hooks_1.useState)(false);\n const clickHandler = (0, hooks_1.useCallback)(() => {\n if (isClicked) {\n window.location.reload();\n }\n else {\n onInstallClick();\n setIsClicked(true);\n }\n }, [onInstallClick, isClicked]);\n return ((0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-top\" },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-top-install-region\" },\n (0, preact_1.h)(\"h2\", null, \"Try the Coinbase Wallet extension\"),\n isClicked && ((0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-top-subtext\" }, \"After installing Coinbase Wallet, refresh the page and connect again.\")),\n (0, preact_1.h)(\"button\", { type: \"button\", onClick: clickHandler }, isClicked ? \"Refresh\" : \"Install\")),\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-top-info-region\" },\n (0, preact_1.h)(DescriptionItem, { icon: link_icon_svg_1.default, text: \"Connect to crypto apps with one click\" }),\n (0, preact_1.h)(DescriptionItem, { icon: lock_icon_svg_1.default, text: \"Your private key is stored securely\" }),\n (0, preact_1.h)(DescriptionItem, { icon: globe_icon_svg_1.default, text: \"Works with Ethereum, Polygon, and more\" }))));\n};\nconst ScanQRBox = props => {\n const qrUrl = (0, util_1.createQrUrl)(props.sessionId, props.sessionSecret, props.linkAPIUrl, props.isParentConnection);\n return ((0, preact_1.h)(\"div\", { \"data-testid\": \"scan-qr-box\", class: \"-cbwsdk-extension-dialog-box-bottom\" },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-bottom-description-region\" },\n (0, preact_1.h)(\"h2\", null, \"Or scan to connect\"),\n (0, preact_1.h)(\"body\", { class: \"-cbwsdk-extension-dialog-box-bottom-description\" },\n \"Open\",\n \" \",\n (0, preact_1.h)(\"a\", { href: \"https://wallet.coinbase.com/\", target: \"_blank\", rel: \"noopener noreferrer\" }, \"Coinbase Wallet\"),\n \" \",\n \"on your mobile phone and scan\")),\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-bottom-qr-region\" },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-bottom-qr-wrapper\" },\n (0, preact_1.h)(QRCode_1.QRCode, { content: qrUrl, width: 150, height: 150, fgColor: \"#000\", bgColor: \"transparent\", image: {\n svg: QRLogo_1.default,\n width: 34,\n height: 34,\n } })),\n (0, preact_1.h)(\"input\", { type: \"hidden\", name: \"cbwsdk-version\", value: version_1.LIB_VERSION }),\n (0, preact_1.h)(\"input\", { type: \"hidden\", value: qrUrl }),\n !props.isConnected && ((0, preact_1.h)(\"div\", { \"data-testid\": \"connecting-spinner\", class: \"-cbwsdk-extension-dialog-box-bottom-qr-connecting\" },\n (0, preact_1.h)(Spinner_1.Spinner, { size: 36, color: \"#000\" }),\n (0, preact_1.h)(\"p\", null, \"Connecting...\"))))));\n};\nconst DescriptionItem = props => {\n return ((0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-top-description\" },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-top-description-icon-wrapper\" },\n (0, preact_1.h)(\"img\", { src: props.icon })),\n (0, preact_1.h)(\"body\", { class: \"-cbwsdk-extension-dialog-box-top-description-text\" }, props.text)));\n};\nconst CancelButton = props => ((0, preact_1.h)(\"button\", { type: \"button\", class: \"-cbwsdk-extension-dialog-box-cancel\", onClick: props.onClick },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-cancel-x\" })));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `\n\n\n\n\n\n\n`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggMEMzLjU4IDAgMCAzLjU4IDAgOHMzLjU4IDggOCA4IDgtMy41OCA4LTgtMy41OC04LTgtOFptNS45MSA3aC0xLjk0Yy0uMS0xLjU3LS40Mi0zLS45MS00LjE1IDEuNDguODggMi41NSAyLjM4IDIuODUgNC4xNVpNOCAxNGMtLjQ1IDAtMS43Mi0xLjc3LTEuOTUtNWgzLjljLS4yMyAzLjIzLTEuNSA1LTEuOTUgNVpNNi4wNSA3QzYuMjggMy43NyA3LjU1IDIgOCAyYy40NSAwIDEuNzIgMS43NyAxLjk1IDVoLTMuOVpNNC45NCAyLjg1QzQuNDYgNCA0LjEzIDUuNDMgNC4wMyA3SDIuMDljLjMtMS43NyAxLjM3LTMuMjcgMi44NS00LjE1Wk0yLjA5IDloMS45NGMuMSAxLjU3LjQyIDMgLjkxIDQuMTVBNS45OTggNS45OTggMCAwIDEgMi4wOSA5Wm04Ljk3IDQuMTVjLjQ4LTEuMTUuODEtMi41OC45MS00LjE1aDEuOTRhNS45OTggNS45OTggMCAwIDEtMi44NSA0LjE1WiIgZmlsbD0iIzE2NTJGMCIvPjwvc3ZnPg==`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTciIGhlaWdodD0iMTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjYzNSAyLjExN2EzLjg4OSAzLjg4OSAwIDAgMC01LjUyMSAwTDYuODkgNS4zMzVBMy44OTQgMy44OTQgMCAwIDAgNS44IDguNzM5Yy4wODMuNTA2LjI2OCAxLjAxMS41NTMgMS40NjYuMTUxLjI1My4zMzYuNDcyLjUzNy42OTFsLjYyMS42MjQgMS4xNDEtMS4xNDYtLjYyLS42MjRhMi4xMDUgMi4xMDUgMCAwIDEtLjQ4Ny0uNzQxIDIuMzQgMi4zNCAwIDAgMSAuNTAzLTIuNTFsMy4yMDYtMy4yMmEyLjI5MyAyLjI5MyAwIDAgMSAzLjIzOSAwYy44OS44OTQuODkgMi4zNDMgMCAzLjI1M2wtMS41MjcgMS41MzNjLjIzNC42NC4zMzUgMS4zMzEuMzAyIDIuMDA1bDIuMzgzLTIuMzkyYzEuNTEtMS41MzQgMS40OTMtNC4wMjgtLjAxNy01LjU2MVoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBkPSJNMTEuMjcxIDcuNzQ1YTMuMTMgMy4xMyAwIDAgMC0uNTU0LS42OWwtLjYyLS42MjQtMS4xNDIgMS4xNDYuNjIxLjYyM2MuMjE4LjIyLjM4Ni40ODkuNDg3Ljc1OC4zMzUuODI2LjE2NyAxLjgyLS41MDQgMi40OTRsLTMuMjA1IDMuMjE5YTIuMjkzIDIuMjkzIDAgMCAxLTMuMjQgMCAyLjMxNiAyLjMxNiAwIDAgMSAwLTMuMjUybDEuNTI4LTEuNTM0YTQuODE1IDQuODE1IDAgMCAxLS4yODUtMi4wMDVsLTIuMzgzIDIuMzkzYTMuOTI3IDMuOTI3IDAgMCAwIDAgNS41NDQgMy45MDkgMy45MDkgMCAwIDAgNS41MzggMGwzLjIwNS0zLjIxOWEzLjk1OCAzLjk1OCAwIDAgMCAxLjA5MS0zLjQwNCA0LjIxMSA0LjIxMSAwIDAgMC0uNTM3LTEuNDQ5WiIgZmlsbD0iIzE2NTJGMCIvPjwvc3ZnPg==`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgN3Y5aDE0VjdIMVptNy41IDQuMzlWMTRoLTF2LTIuNjFjLS40NC0uMTktLjc1LS42My0uNzUtMS4xNGExLjI1IDEuMjUgMCAwIDEgMi41IDBjMCAuNTEtLjMxLjk1LS43NSAxLjE0Wk01LjY3IDZWNC4zM0M1LjY3IDMuMDUgNi43MSAyIDggMnMyLjMzIDEuMDUgMi4zMyAyLjMzVjZoMlY0LjMzQzEyLjMzIDEuOTQgMTAuMzkgMCA4IDBTMy42NyAxLjk0IDMuNjcgNC4zM1Y2aDJaIiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientMessagePublishEvent = exports.ClientMessageSetSessionConfig = exports.ClientMessageGetSessionConfig = exports.ClientMessageIsLinked = exports.ClientMessageHostSession = void 0;\nfunction ClientMessageHostSession(params) {\n return Object.assign({ type: \"HostSession\" }, params);\n}\nexports.ClientMessageHostSession = ClientMessageHostSession;\nfunction ClientMessageIsLinked(params) {\n return Object.assign({ type: \"IsLinked\" }, params);\n}\nexports.ClientMessageIsLinked = ClientMessageIsLinked;\nfunction ClientMessageGetSessionConfig(params) {\n return Object.assign({ type: \"GetSessionConfig\" }, params);\n}\nexports.ClientMessageGetSessionConfig = ClientMessageGetSessionConfig;\nfunction ClientMessageSetSessionConfig(params) {\n return Object.assign({ type: \"SetSessionConfig\" }, params);\n}\nexports.ClientMessageSetSessionConfig = ClientMessageSetSessionConfig;\nfunction ClientMessagePublishEvent(params) {\n return Object.assign({ type: \"PublishEvent\" }, params);\n}\nexports.ClientMessagePublishEvent = ClientMessagePublishEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EVENTS = void 0;\nexports.EVENTS = {\n STARTED_CONNECTING: \"walletlink_sdk.started.connecting\",\n CONNECTED_STATE_CHANGE: \"walletlink_sdk.connected\",\n DISCONNECTED: \"walletlink_sdk.disconnected\",\n METADATA_DESTROYED: \"walletlink_sdk_metadata_destroyed\",\n LINKED: \"walletlink_sdk.linked\",\n FAILURE: \"walletlink_sdk.generic_failure\",\n SESSION_CONFIG_RECEIVED: \"walletlink_sdk.session_config_event_received\",\n ETH_ACCOUNTS_STATE: \"walletlink_sdk.eth_accounts_state\",\n SESSION_STATE_CHANGE: \"walletlink_sdk.session_state_change\",\n UNLINKED_ERROR_STATE: \"walletlink_sdk.unlinked_error_state\",\n SKIPPED_CLEARING_SESSION: \"walletlink_sdk.skipped_clearing_session\",\n GENERAL_ERROR: \"walletlink_sdk.general_error\",\n WEB3_REQUEST: \"walletlink_sdk.web3.request\",\n WEB3_REQUEST_PUBLISHED: \"walletlink_sdk.web3.request_published\",\n WEB3_RESPONSE: \"walletlink_sdk.web3.response\",\n UNKNOWN_ADDRESS_ENCOUNTERED: \"walletlink_sdk.unknown_address_encountered\",\n};\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RxWebSocket = exports.ConnectionState = void 0;\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nvar ConnectionState;\n(function (ConnectionState) {\n ConnectionState[ConnectionState[\"DISCONNECTED\"] = 0] = \"DISCONNECTED\";\n ConnectionState[ConnectionState[\"CONNECTING\"] = 1] = \"CONNECTING\";\n ConnectionState[ConnectionState[\"CONNECTED\"] = 2] = \"CONNECTED\";\n})(ConnectionState = exports.ConnectionState || (exports.ConnectionState = {}));\n/**\n * Rx-ified WebSocket\n */\nclass RxWebSocket {\n /**\n * Constructor\n * @param url WebSocket server URL\n * @param [WebSocketClass] Custom WebSocket implementation\n */\n constructor(url, WebSocketClass = WebSocket) {\n this.WebSocketClass = WebSocketClass;\n this.webSocket = null;\n this.connectionStateSubject = new rxjs_1.BehaviorSubject(ConnectionState.DISCONNECTED);\n this.incomingDataSubject = new rxjs_1.Subject();\n this.url = url.replace(/^http/, \"ws\");\n }\n /**\n * Make a websocket connection\n * @returns an Observable that completes when connected\n */\n connect() {\n if (this.webSocket) {\n return (0, rxjs_1.throwError)(new Error(\"webSocket object is not null\"));\n }\n return new rxjs_1.Observable(obs => {\n let webSocket;\n try {\n this.webSocket = webSocket = new this.WebSocketClass(this.url);\n }\n catch (err) {\n obs.error(err);\n return;\n }\n this.connectionStateSubject.next(ConnectionState.CONNECTING);\n webSocket.onclose = evt => {\n this.clearWebSocket();\n obs.error(new Error(`websocket error ${evt.code}: ${evt.reason}`));\n this.connectionStateSubject.next(ConnectionState.DISCONNECTED);\n };\n webSocket.onopen = _ => {\n obs.next();\n obs.complete();\n this.connectionStateSubject.next(ConnectionState.CONNECTED);\n };\n webSocket.onmessage = evt => {\n this.incomingDataSubject.next(evt.data);\n };\n }).pipe((0, operators_1.take)(1));\n }\n /**\n * Disconnect from server\n */\n disconnect() {\n const { webSocket } = this;\n if (!webSocket) {\n return;\n }\n this.clearWebSocket();\n this.connectionStateSubject.next(ConnectionState.DISCONNECTED);\n try {\n webSocket.close();\n }\n catch (_a) { }\n }\n /**\n * Emit current connection state and subsequent changes\n * @returns an Observable for the connection state\n */\n get connectionState$() {\n return this.connectionStateSubject.asObservable();\n }\n /**\n * Emit incoming data from server\n * @returns an Observable for the data received\n */\n get incomingData$() {\n return this.incomingDataSubject.asObservable();\n }\n /**\n * Emit incoming JSON data from server. non-JSON data are ignored\n * @returns an Observable for parsed JSON data\n */\n get incomingJSONData$() {\n return this.incomingData$.pipe((0, operators_1.flatMap)(m => {\n let j;\n try {\n j = JSON.parse(m);\n }\n catch (err) {\n return (0, rxjs_1.empty)();\n }\n return (0, rxjs_1.of)(j);\n }));\n }\n /**\n * Send data to server\n * @param data text to send\n */\n sendData(data) {\n const { webSocket } = this;\n if (!webSocket) {\n throw new Error(\"websocket is not connected\");\n }\n webSocket.send(data);\n }\n clearWebSocket() {\n const { webSocket } = this;\n if (!webSocket) {\n return;\n }\n this.webSocket = null;\n webSocket.onclose = null;\n webSocket.onerror = null;\n webSocket.onmessage = null;\n webSocket.onopen = null;\n }\n}\nexports.RxWebSocket = RxWebSocket;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isServerMessageFail = void 0;\nfunction isServerMessageFail(msg) {\n return (msg &&\n msg.type === \"Fail\" &&\n typeof msg.id === \"number\" &&\n typeof msg.sessionId === \"string\" &&\n typeof msg.error === \"string\");\n}\nexports.isServerMessageFail = isServerMessageFail;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletSDKConnection = void 0;\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nconst Session_1 = require(\"../relay/Session\");\nconst types_1 = require(\"../types\");\nconst ClientMessage_1 = require(\"./ClientMessage\");\nconst EventListener_1 = require(\"./EventListener\");\nconst RxWebSocket_1 = require(\"./RxWebSocket\");\nconst ServerMessage_1 = require(\"./ServerMessage\");\nconst HEARTBEAT_INTERVAL = 10000;\nconst REQUEST_TIMEOUT = 60000;\n/**\n * Coinbase Wallet Connection\n */\nclass WalletSDKConnection {\n /**\n * Constructor\n * @param sessionId Session ID\n * @param sessionKey Session Key\n * @param linkAPIUrl Coinbase Wallet link server URL\n * @param [WebSocketClass] Custom WebSocket implementation\n */\n constructor(sessionId, sessionKey, linkAPIUrl, eventListener, WebSocketClass = WebSocket) {\n this.sessionId = sessionId;\n this.sessionKey = sessionKey;\n this.eventListener = eventListener;\n this.subscriptions = new rxjs_1.Subscription();\n this.destroyed = false;\n this.lastHeartbeatResponse = 0;\n this.nextReqId = (0, types_1.IntNumber)(1);\n this.connectedSubject = new rxjs_1.BehaviorSubject(false);\n this.linkedSubject = new rxjs_1.BehaviorSubject(false);\n this.sessionConfigSubject = new rxjs_1.ReplaySubject(1);\n const ws = new RxWebSocket_1.RxWebSocket(linkAPIUrl + \"/rpc\", WebSocketClass);\n this.ws = ws;\n // attempt to reconnect every 5 seconds when disconnected\n this.subscriptions.add(ws.connectionState$\n .pipe((0, operators_1.tap)(state => {\n var _a;\n return (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.CONNECTED_STATE_CHANGE, {\n state,\n sessionIdHash: Session_1.Session.hash(sessionId),\n });\n }), \n // ignore initial DISCONNECTED state\n (0, operators_1.skip)(1), \n // if DISCONNECTED and not destroyed\n (0, operators_1.filter)(cs => cs === RxWebSocket_1.ConnectionState.DISCONNECTED && !this.destroyed), \n // wait 5 seconds\n (0, operators_1.delay)(5000), \n // check whether it's destroyed again\n (0, operators_1.filter)(_ => !this.destroyed), \n // reconnect\n (0, operators_1.flatMap)(_ => ws.connect()), (0, operators_1.retry)())\n .subscribe());\n // perform authentication upon connection\n this.subscriptions.add(ws.connectionState$\n .pipe(\n // ignore initial DISCONNECTED and CONNECTING states\n (0, operators_1.skip)(2), (0, operators_1.switchMap)(cs => (0, rxjs_1.iif)(() => cs === RxWebSocket_1.ConnectionState.CONNECTED, \n // if CONNECTED, authenticate, and then check link status\n this.authenticate().pipe((0, operators_1.tap)(_ => this.sendIsLinked()), (0, operators_1.tap)(_ => this.sendGetSessionConfig()), (0, operators_1.map)(_ => true)), \n // if not CONNECTED, emit false immediately\n (0, rxjs_1.of)(false))), (0, operators_1.distinctUntilChanged)(), (0, operators_1.catchError)(_ => (0, rxjs_1.of)(false)))\n .subscribe(connected => this.connectedSubject.next(connected)));\n // send heartbeat every n seconds while connected\n this.subscriptions.add(ws.connectionState$\n .pipe(\n // ignore initial DISCONNECTED state\n (0, operators_1.skip)(1), (0, operators_1.switchMap)(cs => (0, rxjs_1.iif)(() => cs === RxWebSocket_1.ConnectionState.CONNECTED, \n // if CONNECTED, start the heartbeat timer\n (0, rxjs_1.timer)(0, HEARTBEAT_INTERVAL))))\n .subscribe(i => \n // first timer event updates lastHeartbeat timestamp\n // subsequent calls send heartbeat message\n i === 0 ? this.updateLastHeartbeat() : this.heartbeat()));\n // handle server's heartbeat responses\n this.subscriptions.add(ws.incomingData$\n .pipe((0, operators_1.filter)(m => m === \"h\"))\n .subscribe(_ => this.updateLastHeartbeat()));\n // handle link status updates\n this.subscriptions.add(ws.incomingJSONData$\n .pipe((0, operators_1.filter)(m => [\"IsLinkedOK\", \"Linked\"].includes(m.type)))\n .subscribe(m => {\n var _a;\n const msg = m;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.LINKED, {\n sessionIdHash: Session_1.Session.hash(sessionId),\n linked: msg.linked,\n type: m.type,\n onlineGuests: msg.onlineGuests,\n });\n this.linkedSubject.next(msg.linked || msg.onlineGuests > 0);\n }));\n // handle session config updates\n this.subscriptions.add(ws.incomingJSONData$\n .pipe((0, operators_1.filter)(m => [\"GetSessionConfigOK\", \"SessionConfigUpdated\"].includes(m.type)))\n .subscribe(m => {\n var _a;\n const msg = m;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.SESSION_CONFIG_RECEIVED, {\n sessionIdHash: Session_1.Session.hash(sessionId),\n metadata_keys: msg && msg.metadata ? Object.keys(msg.metadata) : undefined,\n });\n this.sessionConfigSubject.next({\n webhookId: msg.webhookId,\n webhookUrl: msg.webhookUrl,\n metadata: msg.metadata,\n });\n }));\n }\n /**\n * Make a connection to the server\n */\n connect() {\n var _a;\n if (this.destroyed) {\n throw new Error(\"instance is destroyed\");\n }\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.STARTED_CONNECTING, {\n sessionIdHash: Session_1.Session.hash(this.sessionId),\n });\n this.ws.connect().subscribe();\n }\n /**\n * Terminate connection, and mark as destroyed. To reconnect, create a new\n * instance of WalletSDKConnection\n */\n destroy() {\n var _a;\n this.subscriptions.unsubscribe();\n this.ws.disconnect();\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.DISCONNECTED, {\n sessionIdHash: Session_1.Session.hash(this.sessionId),\n });\n this.destroyed = true;\n }\n get isDestroyed() {\n return this.destroyed;\n }\n /**\n * Emit true if connected and authenticated, else false\n * @returns an Observable\n */\n get connected$() {\n return this.connectedSubject.asObservable();\n }\n /**\n * Emit once connected\n * @returns an Observable\n */\n get onceConnected$() {\n return this.connected$.pipe((0, operators_1.filter)(v => v), (0, operators_1.take)(1), (0, operators_1.map)(() => void 0));\n }\n /**\n * Emit true if linked (a guest has joined before)\n * @returns an Observable\n */\n get linked$() {\n return this.linkedSubject.asObservable();\n }\n /**\n * Emit once when linked\n * @returns an Observable\n */\n get onceLinked$() {\n return this.linked$.pipe((0, operators_1.filter)(v => v), (0, operators_1.take)(1), (0, operators_1.map)(() => void 0));\n }\n /**\n * Emit current session config if available, and subsequent updates\n * @returns an Observable for the session config\n */\n get sessionConfig$() {\n return this.sessionConfigSubject.asObservable();\n }\n /**\n * Emit incoming Event messages\n * @returns an Observable for the messages\n */\n get incomingEvent$() {\n return this.ws.incomingJSONData$.pipe((0, operators_1.filter)(m => {\n if (m.type !== \"Event\") {\n return false;\n }\n const sme = m;\n return (typeof sme.sessionId === \"string\" &&\n typeof sme.eventId === \"string\" &&\n typeof sme.event === \"string\" &&\n typeof sme.data === \"string\");\n }), (0, operators_1.map)(m => m));\n }\n /**\n * Set session metadata in SessionConfig object\n * @param key\n * @param value\n * @returns an Observable that completes when successful\n */\n setSessionMetadata(key, value) {\n const message = (0, ClientMessage_1.ClientMessageSetSessionConfig)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n metadata: { [key]: value },\n });\n return this.onceConnected$.pipe((0, operators_1.flatMap)(_ => this.makeRequest(message)), (0, operators_1.map)(res => {\n if ((0, ServerMessage_1.isServerMessageFail)(res)) {\n throw new Error(res.error || \"failed to set session metadata\");\n }\n }));\n }\n /**\n * Publish an event and emit event ID when successful\n * @param event event name\n * @param data event data\n * @param callWebhook whether the webhook should be invoked\n * @returns an Observable that emits event ID when successful\n */\n publishEvent(event, data, callWebhook = false) {\n const message = (0, ClientMessage_1.ClientMessagePublishEvent)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n event,\n data,\n callWebhook,\n });\n return this.onceLinked$.pipe((0, operators_1.flatMap)(_ => this.makeRequest(message)), (0, operators_1.map)(res => {\n if ((0, ServerMessage_1.isServerMessageFail)(res)) {\n throw new Error(res.error || \"failed to publish event\");\n }\n return res.eventId;\n }));\n }\n sendData(message) {\n this.ws.sendData(JSON.stringify(message));\n }\n updateLastHeartbeat() {\n this.lastHeartbeatResponse = Date.now();\n }\n heartbeat() {\n if (Date.now() - this.lastHeartbeatResponse > HEARTBEAT_INTERVAL * 2) {\n this.ws.disconnect();\n return;\n }\n try {\n this.ws.sendData(\"h\");\n }\n catch (_a) { }\n }\n makeRequest(message, timeout = REQUEST_TIMEOUT) {\n const reqId = message.id;\n try {\n this.sendData(message);\n }\n catch (err) {\n return (0, rxjs_1.throwError)(err);\n }\n // await server message with corresponding id\n return this.ws.incomingJSONData$.pipe((0, operators_1.timeoutWith)(timeout, (0, rxjs_1.throwError)(new Error(`request ${reqId} timed out`))), (0, operators_1.filter)(m => m.id === reqId), (0, operators_1.take)(1));\n }\n authenticate() {\n const msg = (0, ClientMessage_1.ClientMessageHostSession)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n sessionKey: this.sessionKey,\n });\n return this.makeRequest(msg).pipe((0, operators_1.map)(res => {\n if ((0, ServerMessage_1.isServerMessageFail)(res)) {\n throw new Error(res.error || \"failed to authentcate\");\n }\n }));\n }\n sendIsLinked() {\n const msg = (0, ClientMessage_1.ClientMessageIsLinked)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n });\n this.sendData(msg);\n }\n sendGetSessionConfig() {\n const msg = (0, ClientMessage_1.ClientMessageGetSessionConfig)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n });\n this.sendData(msg);\n }\n}\nexports.WalletSDKConnection = WalletSDKConnection;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoinbaseWalletProvider = exports.CoinbaseWalletSDK = void 0;\nconst CoinbaseWalletSDK_1 = require(\"./CoinbaseWalletSDK\");\nconst CoinbaseWalletProvider_1 = require(\"./provider/CoinbaseWalletProvider\");\nvar CoinbaseWalletSDK_2 = require(\"./CoinbaseWalletSDK\");\nObject.defineProperty(exports, \"CoinbaseWalletSDK\", { enumerable: true, get: function () { return CoinbaseWalletSDK_2.CoinbaseWalletSDK; } });\nvar CoinbaseWalletProvider_2 = require(\"./provider/CoinbaseWalletProvider\");\nObject.defineProperty(exports, \"CoinbaseWalletProvider\", { enumerable: true, get: function () { return CoinbaseWalletProvider_2.CoinbaseWalletProvider; } });\nexports.default = CoinbaseWalletSDK_1.CoinbaseWalletSDK;\nif (typeof window !== \"undefined\") {\n window.CoinbaseWalletSDK = CoinbaseWalletSDK_1.CoinbaseWalletSDK;\n window.CoinbaseWalletProvider = CoinbaseWalletProvider_1.CoinbaseWalletProvider;\n /**\n * @deprecated Use `window.CoinbaseWalletSDK`\n */\n window.WalletLink = CoinbaseWalletSDK_1.CoinbaseWalletSDK;\n /**\n * @deprecated Use `window.CoinbaseWalletProvider`\n */\n window.WalletLinkProvider = CoinbaseWalletProvider_1.CoinbaseWalletProvider;\n}\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopedLocalStorage = void 0;\nclass ScopedLocalStorage {\n constructor(scope) {\n this.scope = scope;\n }\n setItem(key, value) {\n localStorage.setItem(this.scopedKey(key), value);\n }\n getItem(key) {\n return localStorage.getItem(this.scopedKey(key));\n }\n removeItem(key) {\n localStorage.removeItem(this.scopedKey(key));\n }\n clear() {\n const prefix = this.scopedKey(\"\");\n const keysToRemove = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (typeof key === \"string\" && key.startsWith(prefix)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach(key => localStorage.removeItem(key));\n }\n scopedKey(key) {\n return `${this.scope}:${key}`;\n }\n}\nexports.ScopedLocalStorage = ScopedLocalStorage;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `@namespace svg \"http://www.w3.org/2000/svg\";.-cbwsdk-css-reset,.-cbwsdk-css-reset *{animation:none;animation-delay:0;animation-direction:normal;animation-duration:0;animation-fill-mode:none;animation-iteration-count:1;animation-name:none;animation-play-state:running;animation-timing-function:ease;backface-visibility:visible;background:0;background-attachment:scroll;background-clip:border-box;background-color:rgba(0,0,0,0);background-image:none;background-origin:padding-box;background-position:0 0;background-position-x:0;background-position-y:0;background-repeat:repeat;background-size:auto auto;border:0;border-style:none;border-width:medium;border-color:inherit;border-bottom:0;border-bottom-color:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:none;border-bottom-width:medium;border-collapse:separate;border-image:none;border-left:0;border-left-color:inherit;border-left-style:none;border-left-width:medium;border-radius:0;border-right:0;border-right-color:inherit;border-right-style:none;border-right-width:medium;border-spacing:0;border-top:0;border-top-color:inherit;border-top-left-radius:0;border-top-right-radius:0;border-top-style:none;border-top-width:medium;bottom:auto;box-shadow:none;box-sizing:border-box;caption-side:top;clear:none;clip:auto;color:inherit;columns:auto;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-rule-color:currentColor;column-rule-style:none;column-rule-width:none;column-span:1;column-width:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:block;empty-cells:show;float:none;font:normal;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;height:auto;hyphens:none;left:auto;letter-spacing:normal;line-height:normal;list-style:none;list-style-image:none;list-style-position:outside;list-style-type:disc;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:0;outline:0;outline-color:invert;outline-style:none;outline-width:medium;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;pointer-events:auto;position:static;quotes:\"\\\\201C\" \"\\\\201D\" \"\\\\2018\" \"\\\\2019\";right:auto;tab-size:8;table-layout:auto;text-align:inherit;text-align-last:auto;text-decoration:none;text-decoration-color:inherit;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-shadow:none;text-transform:none;top:auto;transform:none;transform-style:flat;transition:none;transition-delay:0s;transition-duration:0s;transition-property:none;transition-timing-function:ease;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:0;width:auto;word-spacing:normal;z-index:auto}.-cbwsdk-css-reset *{box-sizing:border-box;display:initial;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;line-height:1}.-cbwsdk-css-reset [class*=container]{margin:0;padding:0}.-cbwsdk-css-reset style{display:none}`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.injectCssReset = void 0;\nconst cssReset_css_1 = __importDefault(require(\"./cssReset-css\"));\nfunction injectCssReset() {\n const styleEl = document.createElement(\"style\");\n styleEl.type = \"text/css\";\n styleEl.appendChild(document.createTextNode(cssReset_css_1.default));\n document.documentElement.appendChild(styleEl);\n}\nexports.injectCssReset = injectCssReset;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoinbaseWalletProvider = void 0;\nconst safe_event_emitter_1 = __importDefault(require(\"@metamask/safe-event-emitter\"));\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst eth_rpc_errors_1 = require(\"eth-rpc-errors\");\nconst EventListener_1 = require(\"../connection/EventListener\");\nconst Session_1 = require(\"../relay/Session\");\nconst WalletSDKRelayAbstract_1 = require(\"../relay/WalletSDKRelayAbstract\");\nconst util_1 = require(\"../util\");\nconst eth_eip712_util_1 = __importDefault(require(\"../vendor-js/eth-eip712-util\"));\nconst FilterPolyfill_1 = require(\"./FilterPolyfill\");\nconst JSONRPC_1 = require(\"./JSONRPC\");\nconst SubscriptionManager_1 = require(\"./SubscriptionManager\");\nconst DEFAULT_CHAIN_ID_KEY = \"DefaultChainId\";\nconst DEFAULT_JSON_RPC_URL = \"DefaultJsonRpcUrl\";\n// Indicates chain has been switched by switchEthereumChain or addEthereumChain request\nconst HAS_CHAIN_BEEN_SWITCHED_KEY = \"HasChainBeenSwitched\";\nconst HAS_CHAIN_OVERRIDDEN_FROM_RELAY = \"HasChainOverriddenFromRelay\";\nclass CoinbaseWalletProvider extends safe_event_emitter_1.default {\n constructor(options) {\n var _a, _b;\n super();\n this._filterPolyfill = new FilterPolyfill_1.FilterPolyfill(this);\n this._subscriptionManager = new SubscriptionManager_1.SubscriptionManager(this);\n this._relay = null;\n this._addresses = [];\n this.hasMadeFirstChainChangedEmission = false;\n this._send = this.send.bind(this);\n this._sendAsync = this.sendAsync.bind(this);\n this.setProviderInfo = this.setProviderInfo.bind(this);\n this.updateProviderInfo = this.updateProviderInfo.bind(this);\n this.getChainId = this.getChainId.bind(this);\n this.setAppInfo = this.setAppInfo.bind(this);\n this.enable = this.enable.bind(this);\n this.close = this.close.bind(this);\n this.send = this.send.bind(this);\n this.sendAsync = this.sendAsync.bind(this);\n this.request = this.request.bind(this);\n this._setAddresses = this._setAddresses.bind(this);\n this.scanQRCode = this.scanQRCode.bind(this);\n this.genericRequest = this.genericRequest.bind(this);\n this._jsonRpcUrlFromOpts = options.jsonRpcUrl;\n this._overrideIsMetaMask = options.overrideIsMetaMask;\n this._relayProvider = options.relayProvider;\n this._storage = options.storage;\n this._relayEventManager = options.relayEventManager;\n this._eventListener = options.eventListener;\n this.isCoinbaseWallet = (_a = options.overrideIsCoinbaseWallet) !== null && _a !== void 0 ? _a : true;\n this.isCoinbaseBrowser = (_b = options.overrideIsCoinbaseBrowser) !== null && _b !== void 0 ? _b : false;\n this.qrUrl = options.qrUrl;\n this.supportsAddressSwitching = options.supportsAddressSwitching;\n const chainId = this.getChainId();\n const chainIdStr = (0, util_1.prepend0x)(chainId.toString(16));\n // indicate that we've connected, for EIP-1193 compliance\n this.emit(\"connect\", { chainIdStr });\n const cachedAddresses = this._storage.getItem(WalletSDKRelayAbstract_1.LOCAL_STORAGE_ADDRESSES_KEY);\n if (cachedAddresses) {\n const addresses = cachedAddresses.split(\" \");\n if (addresses[0] !== \"\") {\n this._addresses = addresses.map(address => (0, util_1.ensureAddressString)(address));\n this.emit(\"accountsChanged\", addresses);\n }\n }\n this._subscriptionManager.events.on(\"notification\", (notification) => {\n this.emit(\"message\", {\n type: notification.method,\n data: notification.params,\n });\n });\n if (this._addresses.length > 0) {\n void this.initializeRelay();\n }\n window.addEventListener(\"message\", event => {\n var _a;\n if (event.data.type !== \"walletLinkMessage\")\n return; // compatibility with CBW extension\n if (event.data.data.action === \"defaultChainChanged\") {\n const _chainId = event.data.data.chainId;\n const jsonRpcUrl = (_a = event.data.data.jsonRpcUrl) !== null && _a !== void 0 ? _a : this.jsonRpcUrl;\n this.updateProviderInfo(jsonRpcUrl, Number(_chainId), true);\n }\n });\n }\n get selectedAddress() {\n return this._addresses[0] || undefined;\n }\n get networkVersion() {\n return this.getChainId().toString(10);\n }\n get chainId() {\n return (0, util_1.prepend0x)(this.getChainId().toString(16));\n }\n get isWalletLink() {\n // backward compatibility\n return true;\n }\n /**\n * Some DApps (i.e. Alpha Homora) seem to require the window.ethereum object return\n * true for this method.\n */\n get isMetaMask() {\n return this._overrideIsMetaMask;\n }\n get host() {\n return this.jsonRpcUrl;\n }\n get connected() {\n return true;\n }\n isConnected() {\n return true;\n }\n get jsonRpcUrl() {\n var _a;\n return ((_a = this._storage.getItem(DEFAULT_JSON_RPC_URL)) !== null && _a !== void 0 ? _a : this._jsonRpcUrlFromOpts);\n }\n set jsonRpcUrl(value) {\n this._storage.setItem(DEFAULT_JSON_RPC_URL, value);\n }\n get isChainOverridden() {\n return this._storage.getItem(HAS_CHAIN_OVERRIDDEN_FROM_RELAY) === \"true\";\n }\n set isChainOverridden(value) {\n this._storage.setItem(HAS_CHAIN_OVERRIDDEN_FROM_RELAY, value.toString());\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n setProviderInfo(jsonRpcUrl, chainId) {\n if (this.isChainOverridden)\n return;\n this.updateProviderInfo(jsonRpcUrl, this.getChainId(), false);\n }\n updateProviderInfo(jsonRpcUrl, chainId, fromRelay) {\n const hasChainSwitched = this._storage.getItem(HAS_CHAIN_BEEN_SWITCHED_KEY) === \"true\";\n if (hasChainSwitched && fromRelay)\n return;\n if (fromRelay) {\n this.isChainOverridden = true;\n }\n this.jsonRpcUrl = jsonRpcUrl;\n // emit chainChanged event if necessary\n const originalChainId = this.getChainId();\n this._storage.setItem(DEFAULT_CHAIN_ID_KEY, chainId.toString(10));\n const chainChanged = (0, util_1.ensureIntNumber)(chainId) !== originalChainId;\n if (chainChanged || !this.hasMadeFirstChainChangedEmission) {\n this.emit(\"chainChanged\", this.getChainId());\n this.hasMadeFirstChainChangedEmission = true;\n }\n }\n async watchAsset(type, address, symbol, decimals, image, chainId) {\n const relay = await this.initializeRelay();\n const result = await relay.watchAsset(type, address, symbol, decimals, image, chainId === null || chainId === void 0 ? void 0 : chainId.toString()).promise;\n return !!result.result;\n }\n async addEthereumChain(chainId, rpcUrls, blockExplorerUrls, chainName, iconUrls, nativeCurrency) {\n var _a, _b;\n if ((0, util_1.ensureIntNumber)(chainId) === this.getChainId()) {\n return false;\n }\n const relay = await this.initializeRelay();\n const isWhitelistedNetworkOrStandalone = relay.inlineAddEthereumChain(chainId.toString());\n if (!this._isAuthorized() && !isWhitelistedNetworkOrStandalone) {\n await relay.requestEthereumAccounts().promise;\n }\n const res = await relay.addEthereumChain(chainId.toString(), rpcUrls, iconUrls, blockExplorerUrls, chainName, nativeCurrency).promise;\n if (((_a = res.result) === null || _a === void 0 ? void 0 : _a.isApproved) === true) {\n this._storage.setItem(HAS_CHAIN_BEEN_SWITCHED_KEY, \"true\");\n this.updateProviderInfo(rpcUrls[0], chainId, false);\n }\n return ((_b = res.result) === null || _b === void 0 ? void 0 : _b.isApproved) === true;\n }\n async switchEthereumChain(chainId) {\n if ((0, util_1.ensureIntNumber)(chainId) === this.getChainId()) {\n return;\n }\n const relay = await this.initializeRelay();\n const res = await relay.switchEthereumChain(chainId.toString(10)).promise;\n if (res.errorCode) {\n throw eth_rpc_errors_1.ethErrors.provider.custom({\n code: res.errorCode,\n });\n }\n const switchResponse = res.result;\n if (switchResponse.isApproved && switchResponse.rpcUrl.length > 0) {\n this._storage.setItem(HAS_CHAIN_BEEN_SWITCHED_KEY, \"true\");\n this.updateProviderInfo(switchResponse.rpcUrl, chainId, false);\n }\n }\n setAppInfo(appName, appLogoUrl) {\n void this.initializeRelay().then(relay => relay.setAppInfo(appName, appLogoUrl));\n }\n async enable() {\n var _a;\n (_a = this._eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.ETH_ACCOUNTS_STATE, {\n method: \"provider::enable\",\n addresses_length: this._addresses.length,\n sessionIdHash: this._relay ? Session_1.Session.hash(this._relay.session.id) : null,\n });\n if (this._addresses.length > 0) {\n return [...this._addresses];\n }\n return await this._send(JSONRPC_1.JSONRPCMethod.eth_requestAccounts);\n }\n async close() {\n const relay = await this.initializeRelay();\n relay.resetAndReload();\n }\n send(requestOrMethod, callbackOrParams) {\n // send(method, params): Promise\n if (typeof requestOrMethod === \"string\") {\n const method = requestOrMethod;\n const params = Array.isArray(callbackOrParams)\n ? callbackOrParams\n : callbackOrParams !== undefined\n ? [callbackOrParams]\n : [];\n const request = {\n jsonrpc: \"2.0\",\n id: 0,\n method,\n params,\n };\n return this._sendRequestAsync(request).then(res => res.result);\n }\n // send(JSONRPCRequest | JSONRPCRequest[], callback): void\n if (typeof callbackOrParams === \"function\") {\n const request = requestOrMethod;\n const callback = callbackOrParams;\n return this._sendAsync(request, callback);\n }\n // send(JSONRPCRequest[]): JSONRPCResponse[]\n if (Array.isArray(requestOrMethod)) {\n const requests = requestOrMethod;\n return requests.map(r => this._sendRequest(r));\n }\n // send(JSONRPCRequest): JSONRPCResponse\n const req = requestOrMethod;\n return this._sendRequest(req);\n }\n async sendAsync(request, callback) {\n if (typeof callback !== \"function\") {\n throw new Error(\"callback is required\");\n }\n // send(JSONRPCRequest[], callback): void\n if (Array.isArray(request)) {\n const arrayCb = callback;\n this._sendMultipleRequestsAsync(request)\n .then(responses => arrayCb(null, responses))\n .catch(err => arrayCb(err, null));\n return;\n }\n // send(JSONRPCRequest, callback): void\n const cb = callback;\n return this._sendRequestAsync(request)\n .then(response => cb(null, response))\n .catch(err => cb(err, null));\n }\n async request(args) {\n if (!args || typeof args !== \"object\" || Array.isArray(args)) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidRequest({\n message: \"Expected a single, non-array, object argument.\",\n data: args,\n });\n }\n const { method, params } = args;\n if (typeof method !== \"string\" || method.length === 0) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidRequest({\n message: \"'args.method' must be a non-empty string.\",\n data: args,\n });\n }\n if (params !== undefined &&\n !Array.isArray(params) &&\n (typeof params !== \"object\" || params === null)) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidRequest({\n message: \"'args.params' must be an object or array if provided.\",\n data: args,\n });\n }\n const newParams = params === undefined ? [] : params;\n // Coinbase Wallet Requests\n const id = this._relayEventManager.makeRequestId();\n const result = await this._sendRequestAsync({\n method,\n params: newParams,\n jsonrpc: \"2.0\",\n id,\n });\n return result.result;\n }\n async scanQRCode(match) {\n const relay = await this.initializeRelay();\n const res = await relay.scanQRCode((0, util_1.ensureRegExpString)(match)).promise;\n if (typeof res.result !== \"string\") {\n throw new Error(\"result was not a string\");\n }\n return res.result;\n }\n async genericRequest(data, action) {\n const relay = await this.initializeRelay();\n const res = await relay.genericRequest(data, action).promise;\n if (typeof res.result !== \"string\") {\n throw new Error(\"result was not a string\");\n }\n return res.result;\n }\n supportsSubscriptions() {\n return false;\n }\n subscribe() {\n throw new Error(\"Subscriptions are not supported\");\n }\n unsubscribe() {\n throw new Error(\"Subscriptions are not supported\");\n }\n disconnect() {\n return true;\n }\n _sendRequest(request) {\n const response = {\n jsonrpc: \"2.0\",\n id: request.id,\n };\n const { method } = request;\n response.result = this._handleSynchronousMethods(request);\n if (response.result === undefined) {\n throw new Error(`Coinbase Wallet does not support calling ${method} synchronously without ` +\n `a callback. Please provide a callback parameter to call ${method} ` +\n `asynchronously.`);\n }\n return response;\n }\n _setAddresses(addresses) {\n if (!Array.isArray(addresses)) {\n throw new Error(\"addresses is not an array\");\n }\n const newAddresses = addresses.map(address => (0, util_1.ensureAddressString)(address));\n if (JSON.stringify(newAddresses) === JSON.stringify(this._addresses)) {\n return;\n }\n if (this._addresses.length > 0 && this.supportsAddressSwitching === false) {\n /**\n * The extension currently doesn't support switching selected wallet index\n * make sure walletlink doesn't update it's address in this case\n */\n return;\n }\n this._addresses = newAddresses;\n this.emit(\"accountsChanged\", this._addresses);\n this._storage.setItem(WalletSDKRelayAbstract_1.LOCAL_STORAGE_ADDRESSES_KEY, newAddresses.join(\" \"));\n }\n _sendRequestAsync(request) {\n return new Promise((resolve, reject) => {\n try {\n const syncResult = this._handleSynchronousMethods(request);\n if (syncResult !== undefined) {\n return resolve({\n jsonrpc: \"2.0\",\n id: request.id,\n result: syncResult,\n });\n }\n const filterPromise = this._handleAsynchronousFilterMethods(request);\n if (filterPromise !== undefined) {\n filterPromise\n .then(res => resolve(Object.assign(Object.assign({}, res), { id: request.id })))\n .catch(err => reject(err));\n return;\n }\n const subscriptionPromise = this._handleSubscriptionMethods(request);\n if (subscriptionPromise !== undefined) {\n subscriptionPromise\n .then(res => resolve({\n jsonrpc: \"2.0\",\n id: request.id,\n result: res.result,\n }))\n .catch(err => reject(err));\n return;\n }\n }\n catch (err) {\n return reject(err);\n }\n this._handleAsynchronousMethods(request)\n .then(res => res && resolve(Object.assign(Object.assign({}, res), { id: request.id })))\n .catch(err => reject(err));\n });\n }\n _sendMultipleRequestsAsync(requests) {\n return Promise.all(requests.map(r => this._sendRequestAsync(r)));\n }\n _handleSynchronousMethods(request) {\n const { method } = request;\n const params = request.params || [];\n switch (method) {\n case JSONRPC_1.JSONRPCMethod.eth_accounts:\n return this._eth_accounts();\n case JSONRPC_1.JSONRPCMethod.eth_coinbase:\n return this._eth_coinbase();\n case JSONRPC_1.JSONRPCMethod.eth_uninstallFilter:\n return this._eth_uninstallFilter(params);\n case JSONRPC_1.JSONRPCMethod.net_version:\n return this._net_version();\n case JSONRPC_1.JSONRPCMethod.eth_chainId:\n return this._eth_chainId();\n default:\n return undefined;\n }\n }\n async _handleAsynchronousMethods(request) {\n const { method } = request;\n const params = request.params || [];\n switch (method) {\n case JSONRPC_1.JSONRPCMethod.eth_requestAccounts:\n return this._eth_requestAccounts();\n case JSONRPC_1.JSONRPCMethod.eth_sign:\n return this._eth_sign(params);\n case JSONRPC_1.JSONRPCMethod.eth_ecRecover:\n return this._eth_ecRecover(params);\n case JSONRPC_1.JSONRPCMethod.personal_sign:\n return this._personal_sign(params);\n case JSONRPC_1.JSONRPCMethod.personal_ecRecover:\n return this._personal_ecRecover(params);\n case JSONRPC_1.JSONRPCMethod.eth_signTransaction:\n return this._eth_signTransaction(params);\n case JSONRPC_1.JSONRPCMethod.eth_sendRawTransaction:\n return this._eth_sendRawTransaction(params);\n case JSONRPC_1.JSONRPCMethod.eth_sendTransaction:\n return this._eth_sendTransaction(params);\n case JSONRPC_1.JSONRPCMethod.eth_signTypedData_v1:\n return this._eth_signTypedData_v1(params);\n case JSONRPC_1.JSONRPCMethod.eth_signTypedData_v2:\n return this._throwUnsupportedMethodError();\n case JSONRPC_1.JSONRPCMethod.eth_signTypedData_v3:\n return this._eth_signTypedData_v3(params);\n case JSONRPC_1.JSONRPCMethod.eth_signTypedData_v4:\n case JSONRPC_1.JSONRPCMethod.eth_signTypedData:\n return this._eth_signTypedData_v4(params);\n case JSONRPC_1.JSONRPCMethod.cbWallet_arbitrary:\n return this._cbwallet_arbitrary(params);\n case JSONRPC_1.JSONRPCMethod.wallet_addEthereumChain:\n return this._wallet_addEthereumChain(params);\n case JSONRPC_1.JSONRPCMethod.wallet_switchEthereumChain:\n return this._wallet_switchEthereumChain(params);\n case JSONRPC_1.JSONRPCMethod.wallet_watchAsset:\n return this._wallet_watchAsset(params);\n }\n const relay = await this.initializeRelay();\n return relay.makeEthereumJSONRPCRequest(request, this.jsonRpcUrl);\n }\n _handleAsynchronousFilterMethods(request) {\n const { method } = request;\n const params = request.params || [];\n switch (method) {\n case JSONRPC_1.JSONRPCMethod.eth_newFilter:\n return this._eth_newFilter(params);\n case JSONRPC_1.JSONRPCMethod.eth_newBlockFilter:\n return this._eth_newBlockFilter();\n case JSONRPC_1.JSONRPCMethod.eth_newPendingTransactionFilter:\n return this._eth_newPendingTransactionFilter();\n case JSONRPC_1.JSONRPCMethod.eth_getFilterChanges:\n return this._eth_getFilterChanges(params);\n case JSONRPC_1.JSONRPCMethod.eth_getFilterLogs:\n return this._eth_getFilterLogs(params);\n }\n return undefined;\n }\n _handleSubscriptionMethods(request) {\n switch (request.method) {\n case JSONRPC_1.JSONRPCMethod.eth_subscribe:\n case JSONRPC_1.JSONRPCMethod.eth_unsubscribe:\n return this._subscriptionManager.handleRequest(request);\n }\n return undefined;\n }\n _isKnownAddress(addressString) {\n try {\n const addressStr = (0, util_1.ensureAddressString)(addressString);\n const lowercaseAddresses = this._addresses.map(address => (0, util_1.ensureAddressString)(address));\n return lowercaseAddresses.includes(addressStr);\n }\n catch (_a) { }\n return false;\n }\n _ensureKnownAddress(addressString) {\n var _a;\n if (!this._isKnownAddress(addressString)) {\n (_a = this._eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.UNKNOWN_ADDRESS_ENCOUNTERED);\n throw new Error(\"Unknown Ethereum address\");\n }\n }\n _prepareTransactionParams(tx) {\n const fromAddress = tx.from\n ? (0, util_1.ensureAddressString)(tx.from)\n : this.selectedAddress;\n if (!fromAddress) {\n throw new Error(\"Ethereum address is unavailable\");\n }\n this._ensureKnownAddress(fromAddress);\n const toAddress = tx.to ? (0, util_1.ensureAddressString)(tx.to) : null;\n const weiValue = tx.value != null ? (0, util_1.ensureBN)(tx.value) : new bn_js_1.default(0);\n const data = tx.data ? (0, util_1.ensureBuffer)(tx.data) : Buffer.alloc(0);\n const nonce = tx.nonce != null ? (0, util_1.ensureIntNumber)(tx.nonce) : null;\n const gasPriceInWei = tx.gasPrice != null ? (0, util_1.ensureBN)(tx.gasPrice) : null;\n const maxFeePerGas = tx.maxFeePerGas != null ? (0, util_1.ensureBN)(tx.maxFeePerGas) : null;\n const maxPriorityFeePerGas = tx.maxPriorityFeePerGas != null\n ? (0, util_1.ensureBN)(tx.maxPriorityFeePerGas)\n : null;\n const gasLimit = tx.gas != null ? (0, util_1.ensureBN)(tx.gas) : null;\n const chainId = this.getChainId();\n return {\n fromAddress,\n toAddress,\n weiValue,\n data,\n nonce,\n gasPriceInWei,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasLimit,\n chainId,\n };\n }\n _isAuthorized() {\n return this._addresses.length > 0;\n }\n _requireAuthorization() {\n if (!this._isAuthorized()) {\n throw eth_rpc_errors_1.ethErrors.provider.unauthorized({});\n }\n }\n _throwUnsupportedMethodError() {\n throw eth_rpc_errors_1.ethErrors.provider.unsupportedMethod({});\n }\n async _signEthereumMessage(message, address, addPrefix, typedDataJson) {\n this._ensureKnownAddress(address);\n try {\n const relay = await this.initializeRelay();\n const res = await relay.signEthereumMessage(message, address, addPrefix, typedDataJson).promise;\n return { jsonrpc: \"2.0\", id: 0, result: res.result };\n }\n catch (err) {\n if (typeof err.message === \"string\" &&\n err.message.match(/(denied|rejected)/i)) {\n throw eth_rpc_errors_1.ethErrors.provider.userRejectedRequest(\"User denied message signature\");\n }\n throw err;\n }\n }\n async _ethereumAddressFromSignedMessage(message, signature, addPrefix) {\n const relay = await this.initializeRelay();\n const res = await relay.ethereumAddressFromSignedMessage(message, signature, addPrefix).promise;\n return { jsonrpc: \"2.0\", id: 0, result: res.result };\n }\n _eth_accounts() {\n return [...this._addresses];\n }\n _eth_coinbase() {\n return this.selectedAddress || null;\n }\n _net_version() {\n return this.getChainId().toString(10);\n }\n _eth_chainId() {\n return (0, util_1.hexStringFromIntNumber)(this.getChainId());\n }\n getChainId() {\n const chainIdStr = this._storage.getItem(DEFAULT_CHAIN_ID_KEY) || \"1\";\n const chainId = parseInt(chainIdStr, 10);\n return (0, util_1.ensureIntNumber)(chainId);\n }\n async _eth_requestAccounts() {\n var _a;\n (_a = this._eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.ETH_ACCOUNTS_STATE, {\n method: \"provider::_eth_requestAccounts\",\n addresses_length: this._addresses.length,\n sessionIdHash: this._relay ? Session_1.Session.hash(this._relay.session.id) : null,\n });\n if (this._addresses.length > 0) {\n return Promise.resolve({\n jsonrpc: \"2.0\",\n id: 0,\n result: this._addresses,\n });\n }\n let res;\n try {\n const relay = await this.initializeRelay();\n res = await relay.requestEthereumAccounts().promise;\n }\n catch (err) {\n if (typeof err.message === \"string\" &&\n err.message.match(/(denied|rejected)/i)) {\n throw eth_rpc_errors_1.ethErrors.provider.userRejectedRequest(\"User denied account authorization\");\n }\n throw err;\n }\n if (!res.result) {\n throw new Error(\"accounts received is empty\");\n }\n this._setAddresses(res.result);\n return { jsonrpc: \"2.0\", id: 0, result: this._addresses };\n }\n _eth_sign(params) {\n this._requireAuthorization();\n const address = (0, util_1.ensureAddressString)(params[0]);\n const message = (0, util_1.ensureBuffer)(params[1]);\n return this._signEthereumMessage(message, address, false);\n }\n _eth_ecRecover(params) {\n const message = (0, util_1.ensureBuffer)(params[0]);\n const signature = (0, util_1.ensureBuffer)(params[1]);\n return this._ethereumAddressFromSignedMessage(message, signature, false);\n }\n _personal_sign(params) {\n this._requireAuthorization();\n const message = (0, util_1.ensureBuffer)(params[0]);\n const address = (0, util_1.ensureAddressString)(params[1]);\n return this._signEthereumMessage(message, address, true);\n }\n _personal_ecRecover(params) {\n const message = (0, util_1.ensureBuffer)(params[0]);\n const signature = (0, util_1.ensureBuffer)(params[1]);\n return this._ethereumAddressFromSignedMessage(message, signature, true);\n }\n async _eth_signTransaction(params) {\n this._requireAuthorization();\n const tx = this._prepareTransactionParams(params[0] || {});\n try {\n const relay = await this.initializeRelay();\n const res = await relay.signEthereumTransaction(tx).promise;\n return { jsonrpc: \"2.0\", id: 0, result: res.result };\n }\n catch (err) {\n if (typeof err.message === \"string\" &&\n err.message.match(/(denied|rejected)/i)) {\n throw eth_rpc_errors_1.ethErrors.provider.userRejectedRequest(\"User denied transaction signature\");\n }\n throw err;\n }\n }\n async _eth_sendRawTransaction(params) {\n const signedTransaction = (0, util_1.ensureBuffer)(params[0]);\n const relay = await this.initializeRelay();\n const res = await relay.submitEthereumTransaction(signedTransaction, this.getChainId()).promise;\n return { jsonrpc: \"2.0\", id: 0, result: res.result };\n }\n async _eth_sendTransaction(params) {\n this._requireAuthorization();\n const tx = this._prepareTransactionParams(params[0] || {});\n try {\n const relay = await this.initializeRelay();\n const res = await relay.signAndSubmitEthereumTransaction(tx).promise;\n return { jsonrpc: \"2.0\", id: 0, result: res.result };\n }\n catch (err) {\n if (typeof err.message === \"string\" &&\n err.message.match(/(denied|rejected)/i)) {\n throw eth_rpc_errors_1.ethErrors.provider.userRejectedRequest(\"User denied transaction signature\");\n }\n throw err;\n }\n }\n async _eth_signTypedData_v1(params) {\n this._requireAuthorization();\n const typedData = (0, util_1.ensureParsedJSONObject)(params[0]);\n const address = (0, util_1.ensureAddressString)(params[1]);\n this._ensureKnownAddress(address);\n const message = eth_eip712_util_1.default.hashForSignTypedDataLegacy({ data: typedData });\n const typedDataJSON = JSON.stringify(typedData, null, 2);\n return this._signEthereumMessage(message, address, false, typedDataJSON);\n }\n async _eth_signTypedData_v3(params) {\n this._requireAuthorization();\n const address = (0, util_1.ensureAddressString)(params[0]);\n const typedData = (0, util_1.ensureParsedJSONObject)(params[1]);\n this._ensureKnownAddress(address);\n const message = eth_eip712_util_1.default.hashForSignTypedData_v3({ data: typedData });\n const typedDataJSON = JSON.stringify(typedData, null, 2);\n return this._signEthereumMessage(message, address, false, typedDataJSON);\n }\n async _eth_signTypedData_v4(params) {\n this._requireAuthorization();\n const address = (0, util_1.ensureAddressString)(params[0]);\n const typedData = (0, util_1.ensureParsedJSONObject)(params[1]);\n this._ensureKnownAddress(address);\n const message = eth_eip712_util_1.default.hashForSignTypedData_v4({ data: typedData });\n const typedDataJSON = JSON.stringify(typedData, null, 2);\n return this._signEthereumMessage(message, address, false, typedDataJSON);\n }\n /** @deprecated */\n async _cbwallet_arbitrary(params) {\n const action = params[0];\n const data = params[1];\n if (typeof data !== \"string\") {\n throw new Error(\"parameter must be a string\");\n }\n if (typeof action !== \"object\" || action === null) {\n throw new Error(\"parameter must be an object\");\n }\n const result = await this.genericRequest(action, data);\n return { jsonrpc: \"2.0\", id: 0, result };\n }\n async _wallet_addEthereumChain(params) {\n var _a, _b, _c, _d;\n const request = params[0];\n if (((_a = request.rpcUrls) === null || _a === void 0 ? void 0 : _a.length) === 0) {\n return {\n jsonrpc: \"2.0\",\n id: 0,\n error: { code: 2, message: `please pass in at least 1 rpcUrl` },\n };\n }\n if (!request.chainName || request.chainName.trim() === \"\") {\n throw eth_rpc_errors_1.ethErrors.provider.custom({\n code: 0,\n message: \"chainName is a required field\",\n });\n }\n if (!request.nativeCurrency) {\n throw eth_rpc_errors_1.ethErrors.provider.custom({\n code: 0,\n message: \"nativeCurrency is a required field\",\n });\n }\n const chainIdNumber = parseInt(request.chainId, 16);\n const success = await this.addEthereumChain(chainIdNumber, (_b = request.rpcUrls) !== null && _b !== void 0 ? _b : [], (_c = request.blockExplorerUrls) !== null && _c !== void 0 ? _c : [], request.chainName, (_d = request.iconUrls) !== null && _d !== void 0 ? _d : [], request.nativeCurrency);\n if (success) {\n return { jsonrpc: \"2.0\", id: 0, result: null };\n }\n else {\n return {\n jsonrpc: \"2.0\",\n id: 0,\n error: { code: 2, message: `unable to add ethereum chain` },\n };\n }\n }\n async _wallet_switchEthereumChain(params) {\n const request = params[0];\n await this.switchEthereumChain(parseInt(request.chainId, 16));\n return { jsonrpc: \"2.0\", id: 0, result: null };\n }\n async _wallet_watchAsset(params) {\n var _a;\n const request = (Array.isArray(params) ? params[0] : params);\n if (((_a = request.type) === null || _a === void 0 ? void 0 : _a.length) === 0) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidParams({\n message: \"type is a required field\",\n });\n }\n if (request.type !== \"ERC20\") {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidParams({\n message: `Asset of type '${request.type}' not supported`,\n });\n }\n if (!(request === null || request === void 0 ? void 0 : request.options)) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidParams({\n message: \"options is a required field\",\n });\n }\n if (!request.options.address) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidParams({\n message: \"option address is a required option\",\n });\n }\n const chainId = this.getChainId();\n const { address, symbol, image, decimals } = request.options;\n const res = await this.watchAsset(request.type, address, symbol, decimals, image, chainId);\n return { jsonrpc: \"2.0\", id: 0, result: res };\n }\n _eth_uninstallFilter(params) {\n const filterId = (0, util_1.ensureHexString)(params[0]);\n return this._filterPolyfill.uninstallFilter(filterId);\n }\n async _eth_newFilter(params) {\n const param = params[0];\n const filterId = await this._filterPolyfill.newFilter(param);\n return { jsonrpc: \"2.0\", id: 0, result: filterId };\n }\n async _eth_newBlockFilter() {\n const filterId = await this._filterPolyfill.newBlockFilter();\n return { jsonrpc: \"2.0\", id: 0, result: filterId };\n }\n async _eth_newPendingTransactionFilter() {\n const filterId = await this._filterPolyfill.newPendingTransactionFilter();\n return { jsonrpc: \"2.0\", id: 0, result: filterId };\n }\n _eth_getFilterChanges(params) {\n const filterId = (0, util_1.ensureHexString)(params[0]);\n return this._filterPolyfill.getFilterChanges(filterId);\n }\n _eth_getFilterLogs(params) {\n const filterId = (0, util_1.ensureHexString)(params[0]);\n return this._filterPolyfill.getFilterLogs(filterId);\n }\n initializeRelay() {\n if (this._relay) {\n return Promise.resolve(this._relay);\n }\n return this._relayProvider().then(relay => {\n relay.setAccountsCallback(accounts => this._setAddresses(accounts));\n relay.setChainCallback((chainId, jsonRpcUrl) => {\n this.updateProviderInfo(jsonRpcUrl, parseInt(chainId, 10), true);\n });\n this._relay = relay;\n return relay;\n });\n }\n}\nexports.CoinbaseWalletProvider = CoinbaseWalletProvider;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterFromParam = exports.FilterPolyfill = void 0;\nconst types_1 = require(\"../types\");\nconst util_1 = require(\"../util\");\nconst TIMEOUT = 5 * 60 * 1000; // 5 minutes\nconst JSONRPC_TEMPLATE = {\n jsonrpc: \"2.0\",\n id: 0,\n};\nclass FilterPolyfill {\n constructor(provider) {\n this.logFilters = new Map(); // \n this.blockFilters = new Set(); // \n this.pendingTransactionFilters = new Set(); // \n this.cursors = new Map(); // \n this.timeouts = new Map(); // \n this.nextFilterId = (0, types_1.IntNumber)(1);\n this.provider = provider;\n }\n async newFilter(param) {\n const filter = filterFromParam(param);\n const id = this.makeFilterId();\n const cursor = await this.setInitialCursorPosition(id, filter.fromBlock);\n console.log(`Installing new log filter(${id}):`, filter, \"initial cursor position:\", cursor);\n this.logFilters.set(id, filter);\n this.setFilterTimeout(id);\n return (0, util_1.hexStringFromIntNumber)(id);\n }\n async newBlockFilter() {\n const id = this.makeFilterId();\n const cursor = await this.setInitialCursorPosition(id, \"latest\");\n console.log(`Installing new block filter (${id}) with initial cursor position:`, cursor);\n this.blockFilters.add(id);\n this.setFilterTimeout(id);\n return (0, util_1.hexStringFromIntNumber)(id);\n }\n async newPendingTransactionFilter() {\n const id = this.makeFilterId();\n const cursor = await this.setInitialCursorPosition(id, \"latest\");\n console.log(`Installing new block filter (${id}) with initial cursor position:`, cursor);\n this.pendingTransactionFilters.add(id);\n this.setFilterTimeout(id);\n return (0, util_1.hexStringFromIntNumber)(id);\n }\n uninstallFilter(filterId) {\n const id = (0, util_1.intNumberFromHexString)(filterId);\n console.log(`Uninstalling filter (${id})`);\n this.deleteFilter(id);\n return true;\n }\n getFilterChanges(filterId) {\n const id = (0, util_1.intNumberFromHexString)(filterId);\n if (this.timeouts.has(id)) {\n // extend timeout\n this.setFilterTimeout(id);\n }\n if (this.logFilters.has(id)) {\n return this.getLogFilterChanges(id);\n }\n else if (this.blockFilters.has(id)) {\n return this.getBlockFilterChanges(id);\n }\n else if (this.pendingTransactionFilters.has(id)) {\n return this.getPendingTransactionFilterChanges(id);\n }\n return Promise.resolve(filterNotFoundError());\n }\n async getFilterLogs(filterId) {\n const id = (0, util_1.intNumberFromHexString)(filterId);\n const filter = this.logFilters.get(id);\n if (!filter) {\n return filterNotFoundError();\n }\n return this.sendAsyncPromise(Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { method: \"eth_getLogs\", params: [paramFromFilter(filter)] }));\n }\n makeFilterId() {\n return (0, types_1.IntNumber)(++this.nextFilterId);\n }\n sendAsyncPromise(request) {\n return new Promise((resolve, reject) => {\n this.provider.sendAsync(request, (err, response) => {\n if (err) {\n return reject(err);\n }\n if (Array.isArray(response) || response == null) {\n return reject(new Error(`unexpected response received: ${JSON.stringify(response)}`));\n }\n resolve(response);\n });\n });\n }\n deleteFilter(id) {\n console.log(`Deleting filter (${id})`);\n this.logFilters.delete(id);\n this.blockFilters.delete(id);\n this.pendingTransactionFilters.delete(id);\n this.cursors.delete(id);\n this.timeouts.delete(id);\n }\n async getLogFilterChanges(id) {\n const filter = this.logFilters.get(id);\n const cursorPosition = this.cursors.get(id);\n if (!cursorPosition || !filter) {\n return filterNotFoundError();\n }\n const currentBlockHeight = await this.getCurrentBlockHeight();\n const toBlock = filter.toBlock === \"latest\" ? currentBlockHeight : filter.toBlock;\n if (cursorPosition > currentBlockHeight) {\n return emptyResult();\n }\n if (cursorPosition > filter.toBlock) {\n return emptyResult();\n }\n console.log(`Fetching logs from ${cursorPosition} to ${toBlock} for filter ${id}`);\n const response = await this.sendAsyncPromise(Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { method: \"eth_getLogs\", params: [\n paramFromFilter(Object.assign(Object.assign({}, filter), { fromBlock: cursorPosition, toBlock })),\n ] }));\n if (Array.isArray(response.result)) {\n const blocks = response.result.map(log => (0, util_1.intNumberFromHexString)(log.blockNumber || \"0x0\"));\n const highestBlock = Math.max(...blocks);\n if (highestBlock && highestBlock > cursorPosition) {\n const newCursorPosition = (0, types_1.IntNumber)(highestBlock + 1);\n console.log(`Moving cursor position for filter (${id}) from ${cursorPosition} to ${newCursorPosition}`);\n this.cursors.set(id, newCursorPosition);\n }\n }\n return response;\n }\n async getBlockFilterChanges(id) {\n const cursorPosition = this.cursors.get(id);\n if (!cursorPosition) {\n return filterNotFoundError();\n }\n const currentBlockHeight = await this.getCurrentBlockHeight();\n if (cursorPosition > currentBlockHeight) {\n return emptyResult();\n }\n console.log(`Fetching blocks from ${cursorPosition} to ${currentBlockHeight} for filter (${id})`);\n const blocks = (await Promise.all(\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n (0, util_1.range)(cursorPosition, currentBlockHeight + 1).map(i => this.getBlockHashByNumber((0, types_1.IntNumber)(i))))).filter(hash => !!hash);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n const newCursorPosition = (0, types_1.IntNumber)(cursorPosition + blocks.length);\n console.log(`Moving cursor position for filter (${id}) from ${cursorPosition} to ${newCursorPosition}`);\n this.cursors.set(id, newCursorPosition);\n return Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { result: blocks });\n }\n async getPendingTransactionFilterChanges(_id) {\n // pending transaction filters are not supported\n return Promise.resolve(emptyResult());\n }\n async setInitialCursorPosition(id, startBlock) {\n const currentBlockHeight = await this.getCurrentBlockHeight();\n const initialCursorPosition = typeof startBlock === \"number\" && startBlock > currentBlockHeight\n ? startBlock\n : currentBlockHeight;\n this.cursors.set(id, initialCursorPosition);\n return initialCursorPosition;\n }\n setFilterTimeout(id) {\n const existing = this.timeouts.get(id);\n if (existing) {\n window.clearTimeout(existing);\n }\n const timeout = window.setTimeout(() => {\n console.log(`Filter (${id}) timed out`);\n this.deleteFilter(id);\n }, TIMEOUT);\n this.timeouts.set(id, timeout);\n }\n async getCurrentBlockHeight() {\n const { result } = await this.sendAsyncPromise(Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { method: \"eth_blockNumber\", params: [] }));\n return (0, util_1.intNumberFromHexString)((0, util_1.ensureHexString)(result));\n }\n async getBlockHashByNumber(blockNumber) {\n const response = await this.sendAsyncPromise(Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { method: \"eth_getBlockByNumber\", params: [(0, util_1.hexStringFromIntNumber)(blockNumber), false] }));\n if (response.result && typeof response.result.hash === \"string\") {\n return (0, util_1.ensureHexString)(response.result.hash);\n }\n return null;\n }\n}\nexports.FilterPolyfill = FilterPolyfill;\nfunction filterFromParam(param) {\n return {\n fromBlock: intBlockHeightFromHexBlockHeight(param.fromBlock),\n toBlock: intBlockHeightFromHexBlockHeight(param.toBlock),\n addresses: param.address === undefined\n ? null\n : Array.isArray(param.address)\n ? param.address\n : [param.address],\n topics: param.topics || [],\n };\n}\nexports.filterFromParam = filterFromParam;\nfunction paramFromFilter(filter) {\n const param = {\n fromBlock: hexBlockHeightFromIntBlockHeight(filter.fromBlock),\n toBlock: hexBlockHeightFromIntBlockHeight(filter.toBlock),\n topics: filter.topics,\n };\n if (filter.addresses !== null) {\n param.address = filter.addresses;\n }\n return param;\n}\nfunction intBlockHeightFromHexBlockHeight(value) {\n if (value === undefined || value === \"latest\" || value === \"pending\") {\n return \"latest\";\n }\n else if (value === \"earliest\") {\n return (0, types_1.IntNumber)(0);\n }\n else if ((0, util_1.isHexString)(value)) {\n return (0, util_1.intNumberFromHexString)(value);\n }\n throw new Error(`Invalid block option: ${String(value)}`);\n}\nfunction hexBlockHeightFromIntBlockHeight(value) {\n if (value === \"latest\") {\n return value;\n }\n return (0, util_1.hexStringFromIntNumber)(value);\n}\nfunction filterNotFoundError() {\n return Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { error: { code: -32000, message: \"filter not found\" } });\n}\nfunction emptyResult() {\n return Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { result: [] });\n}\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JSONRPCMethod = void 0;\nvar JSONRPCMethod;\n(function (JSONRPCMethod) {\n // synchronous or asynchronous\n JSONRPCMethod[\"eth_accounts\"] = \"eth_accounts\";\n JSONRPCMethod[\"eth_coinbase\"] = \"eth_coinbase\";\n JSONRPCMethod[\"net_version\"] = \"net_version\";\n JSONRPCMethod[\"eth_chainId\"] = \"eth_chainId\";\n JSONRPCMethod[\"eth_uninstallFilter\"] = \"eth_uninstallFilter\";\n // asynchronous only\n JSONRPCMethod[\"eth_requestAccounts\"] = \"eth_requestAccounts\";\n JSONRPCMethod[\"eth_sign\"] = \"eth_sign\";\n JSONRPCMethod[\"eth_ecRecover\"] = \"eth_ecRecover\";\n JSONRPCMethod[\"personal_sign\"] = \"personal_sign\";\n JSONRPCMethod[\"personal_ecRecover\"] = \"personal_ecRecover\";\n JSONRPCMethod[\"eth_signTransaction\"] = \"eth_signTransaction\";\n JSONRPCMethod[\"eth_sendRawTransaction\"] = \"eth_sendRawTransaction\";\n JSONRPCMethod[\"eth_sendTransaction\"] = \"eth_sendTransaction\";\n JSONRPCMethod[\"eth_signTypedData_v1\"] = \"eth_signTypedData_v1\";\n JSONRPCMethod[\"eth_signTypedData_v2\"] = \"eth_signTypedData_v2\";\n JSONRPCMethod[\"eth_signTypedData_v3\"] = \"eth_signTypedData_v3\";\n JSONRPCMethod[\"eth_signTypedData_v4\"] = \"eth_signTypedData_v4\";\n JSONRPCMethod[\"eth_signTypedData\"] = \"eth_signTypedData\";\n JSONRPCMethod[\"cbWallet_arbitrary\"] = \"walletlink_arbitrary\";\n JSONRPCMethod[\"wallet_addEthereumChain\"] = \"wallet_addEthereumChain\";\n JSONRPCMethod[\"wallet_switchEthereumChain\"] = \"wallet_switchEthereumChain\";\n JSONRPCMethod[\"wallet_watchAsset\"] = \"wallet_watchAsset\";\n // asynchronous pub/sub\n JSONRPCMethod[\"eth_subscribe\"] = \"eth_subscribe\";\n JSONRPCMethod[\"eth_unsubscribe\"] = \"eth_unsubscribe\";\n // asynchronous filter methods\n JSONRPCMethod[\"eth_newFilter\"] = \"eth_newFilter\";\n JSONRPCMethod[\"eth_newBlockFilter\"] = \"eth_newBlockFilter\";\n JSONRPCMethod[\"eth_newPendingTransactionFilter\"] = \"eth_newPendingTransactionFilter\";\n JSONRPCMethod[\"eth_getFilterChanges\"] = \"eth_getFilterChanges\";\n JSONRPCMethod[\"eth_getFilterLogs\"] = \"eth_getFilterLogs\";\n})(JSONRPCMethod = exports.JSONRPCMethod || (exports.JSONRPCMethod = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubscriptionManager = void 0;\nconst PollingBlockTracker = require(\"eth-block-tracker\");\nconst createSubscriptionManager = require(\"eth-json-rpc-filters/subscriptionManager\");\nconst noop = () => { };\nclass SubscriptionManager {\n constructor(provider) {\n const blockTracker = new PollingBlockTracker({\n provider,\n pollingInterval: 15 * 1000,\n setSkipCacheFlag: true,\n });\n const { events, middleware } = createSubscriptionManager({\n blockTracker,\n provider,\n });\n this.events = events;\n this.subscriptionMiddleware = middleware;\n }\n async handleRequest(request) {\n const result = {};\n await this.subscriptionMiddleware(request, result, noop, noop);\n return result;\n }\n destroy() {\n this.subscriptionMiddleware.destroy();\n }\n}\nexports.SubscriptionManager = SubscriptionManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletSDKUI = void 0;\nconst LinkFlow_1 = require(\"../components/LinkFlow\");\nconst Snackbar_1 = require(\"../components/Snackbar\");\nconst cssReset_1 = require(\"../lib/cssReset\");\nclass WalletSDKUI {\n constructor(options) {\n this.attached = false;\n this.snackbar = new Snackbar_1.Snackbar({\n darkMode: options.darkMode,\n });\n this.linkFlow = new LinkFlow_1.LinkFlow({\n darkMode: options.darkMode,\n version: options.version,\n sessionId: options.session.id,\n sessionSecret: options.session.secret,\n linkAPIUrl: options.linkAPIUrl,\n connected$: options.connected$,\n isParentConnection: false,\n });\n }\n attach() {\n if (this.attached) {\n throw new Error(\"Coinbase Wallet SDK UI is already attached\");\n }\n const el = document.documentElement;\n const container = document.createElement(\"div\");\n container.className = \"-cbwsdk-css-reset\";\n el.appendChild(container);\n this.linkFlow.attach(container);\n this.snackbar.attach(container);\n this.attached = true;\n (0, cssReset_1.injectCssReset)();\n }\n setConnectDisabled(connectDisabled) {\n this.linkFlow.setConnectDisabled(connectDisabled);\n }\n /* istanbul ignore next */\n addEthereumChain(_options) {\n // no-op\n }\n /* istanbul ignore next */\n watchAsset(_options) {\n // no-op\n }\n /* istanbul ignore next */\n switchEthereumChain(_options) {\n // no-op\n }\n requestEthereumAccounts(options) {\n this.linkFlow.open({ onCancel: options.onCancel });\n }\n hideRequestEthereumAccounts() {\n this.linkFlow.close();\n }\n /* istanbul ignore next */\n signEthereumMessage(_) {\n // No-op\n }\n /* istanbul ignore next */\n signEthereumTransaction(_) {\n // No-op\n }\n /* istanbul ignore next */\n submitEthereumTransaction(_) {\n // No-op\n }\n /* istanbul ignore next */\n ethereumAddressFromSignedMessage(_) {\n // No-op\n }\n showConnecting(options) {\n let snackbarProps;\n if (options.isUnlinkedErrorState) {\n snackbarProps = {\n autoExpand: true,\n message: \"Connection lost\",\n menuItems: [\n {\n isRed: false,\n info: \"Reset connection\",\n svgWidth: \"10\",\n svgHeight: \"11\",\n path: \"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",\n defaultFillRule: \"evenodd\",\n defaultClipRule: \"evenodd\",\n onClick: options.onResetConnection,\n },\n ],\n };\n }\n else {\n snackbarProps = {\n message: \"Confirm on phone\",\n menuItems: [\n {\n isRed: true,\n info: \"Cancel transaction\",\n svgWidth: \"11\",\n svgHeight: \"11\",\n path: \"M10.3711 1.52346L9.21775 0.370117L5.37109 4.21022L1.52444 0.370117L0.371094 1.52346L4.2112 5.37012L0.371094 9.21677L1.52444 10.3701L5.37109 6.53001L9.21775 10.3701L10.3711 9.21677L6.53099 5.37012L10.3711 1.52346Z\",\n defaultFillRule: \"inherit\",\n defaultClipRule: \"inherit\",\n onClick: options.onCancel,\n },\n {\n isRed: false,\n info: \"Reset connection\",\n svgWidth: \"10\",\n svgHeight: \"11\",\n path: \"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",\n defaultFillRule: \"evenodd\",\n defaultClipRule: \"evenodd\",\n onClick: options.onResetConnection,\n },\n ],\n };\n }\n return this.snackbar.presentItem(snackbarProps);\n }\n /* istanbul ignore next */\n reloadUI() {\n document.location.reload();\n }\n /* istanbul ignore next */\n inlineAccountsResponse() {\n return false;\n }\n /* istanbul ignore next */\n inlineAddEthereumChain(_chainId) {\n return false;\n }\n /* istanbul ignore next */\n inlineWatchAsset() {\n return false;\n }\n /* istanbul ignore next */\n inlineSwitchEthereumChain() {\n return false;\n }\n /* istanbul ignore next */\n isStandalone() {\n return false;\n }\n}\nexports.WalletSDKUI = WalletSDKUI;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletUIError = void 0;\nclass WalletUIError extends Error {\n constructor(message, errorCode) {\n super(message);\n this.message = message;\n this.errorCode = errorCode;\n }\n}\nexports.WalletUIError = WalletUIError;\nWalletUIError.UserRejectedRequest = new WalletUIError(\"User rejected request\");\nWalletUIError.SwitchEthereumChainUnsupportedChainId = new WalletUIError(\"Unsupported chainId\", 4902);\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RelayMessageType = void 0;\nvar RelayMessageType;\n(function (RelayMessageType) {\n RelayMessageType[\"SESSION_ID_REQUEST\"] = \"SESSION_ID_REQUEST\";\n RelayMessageType[\"SESSION_ID_RESPONSE\"] = \"SESSION_ID_RESPONSE\";\n RelayMessageType[\"LINKED\"] = \"LINKED\";\n RelayMessageType[\"UNLINKED\"] = \"UNLINKED\";\n RelayMessageType[\"WEB3_REQUEST\"] = \"WEB3_REQUEST\";\n RelayMessageType[\"WEB3_REQUEST_CANCELED\"] = \"WEB3_REQUEST_CANCELED\";\n RelayMessageType[\"WEB3_RESPONSE\"] = \"WEB3_RESPONSE\";\n})(RelayMessageType = exports.RelayMessageType || (exports.RelayMessageType = {}));\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Session = void 0;\nconst js_sha256_1 = require(\"js-sha256\");\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nconst util_1 = require(\"../util\");\nconst STORAGE_KEY_SESSION_ID = \"session:id\";\nconst STORAGE_KEY_SESSION_SECRET = \"session:secret\";\nconst STORAGE_KEY_SESSION_LINKED = \"session:linked\";\nclass Session {\n constructor(storage, id, secret, linked) {\n this._storage = storage;\n this._id = id || (0, util_1.randomBytesHex)(16);\n this._secret = secret || (0, util_1.randomBytesHex)(32);\n const hash = js_sha256_1.sha256.create();\n hash.update(`${this._id}, ${this._secret} WalletLink`); // ensure old sessions stay connected\n this._key = hash.hex();\n this._linked = !!linked;\n }\n static load(storage) {\n const id = storage.getItem(STORAGE_KEY_SESSION_ID);\n const linked = storage.getItem(STORAGE_KEY_SESSION_LINKED);\n const secret = storage.getItem(STORAGE_KEY_SESSION_SECRET);\n if (id && secret) {\n return new Session(storage, id, secret, linked === \"1\");\n }\n return null;\n }\n static get persistedSessionIdChange$() {\n return (0, rxjs_1.fromEvent)(window, \"storage\").pipe((0, operators_1.filter)(evt => evt.key === STORAGE_KEY_SESSION_ID), (0, operators_1.map)(evt => ({\n oldValue: evt.oldValue || null,\n newValue: evt.newValue || null,\n })));\n }\n /**\n * Takes in a session ID and returns the sha256 hash of it.\n * @param sessionId session ID\n */\n static hash(sessionId) {\n const hash = js_sha256_1.sha256.create();\n return hash.update(sessionId).hex();\n }\n get id() {\n return this._id;\n }\n get secret() {\n return this._secret;\n }\n get key() {\n return this._key;\n }\n get linked() {\n return this._linked;\n }\n set linked(val) {\n this._linked = val;\n this.persistLinked();\n }\n save() {\n this._storage.setItem(STORAGE_KEY_SESSION_ID, this._id);\n this._storage.setItem(STORAGE_KEY_SESSION_SECRET, this._secret);\n this.persistLinked();\n return this;\n }\n persistLinked() {\n this._storage.setItem(STORAGE_KEY_SESSION_LINKED, this._linked ? \"1\" : \"0\");\n }\n}\nexports.Session = Session;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletSDKRelay = void 0;\nconst bind_decorator_1 = __importDefault(require(\"bind-decorator\"));\nconst eth_rpc_errors_1 = require(\"eth-rpc-errors\");\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nconst EventListener_1 = require(\"../connection/EventListener\");\nconst WalletSDKConnection_1 = require(\"../connection/WalletSDKConnection\");\nconst WalletUIError_1 = require(\"../provider/WalletUIError\");\nconst util_1 = require(\"../util\");\nconst aes256gcm = __importStar(require(\"./aes256gcm\"));\nconst Session_1 = require(\"./Session\");\nconst WalletSDKRelayAbstract_1 = require(\"./WalletSDKRelayAbstract\");\nconst Web3Method_1 = require(\"./Web3Method\");\nconst Web3RequestCanceledMessage_1 = require(\"./Web3RequestCanceledMessage\");\nconst Web3RequestMessage_1 = require(\"./Web3RequestMessage\");\nconst Web3Response_1 = require(\"./Web3Response\");\nconst Web3ResponseMessage_1 = require(\"./Web3ResponseMessage\");\nclass WalletSDKRelay extends WalletSDKRelayAbstract_1.WalletSDKRelayAbstract {\n constructor(options) {\n super();\n this.accountsCallback = null;\n this.chainCallback = null;\n this.appName = \"\";\n this.appLogoUrl = null;\n this.subscriptions = new rxjs_1.Subscription();\n this.linkAPIUrl = options.linkAPIUrl;\n this.storage = options.storage;\n this._session =\n Session_1.Session.load(options.storage) || new Session_1.Session(options.storage).save();\n this.relayEventManager = options.relayEventManager;\n this.eventListener = options.eventListener;\n this.connection = new WalletSDKConnection_1.WalletSDKConnection(this._session.id, this._session.key, this.linkAPIUrl, this.eventListener);\n this.subscriptions.add(this.connection.sessionConfig$.subscribe({\n next: sessionConfig => {\n this.onSessionConfigChanged(sessionConfig);\n },\n error: () => {\n var _a;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.GENERAL_ERROR, {\n message: \"error while invoking session config callback\",\n });\n },\n }));\n this.subscriptions.add(this.connection.incomingEvent$\n .pipe((0, operators_1.filter)(m => m.event === \"Web3Response\"))\n .subscribe({ next: this.handleIncomingEvent }));\n this.subscriptions.add(this.connection.linked$\n .pipe((0, operators_1.skip)(1), (0, operators_1.tap)((linked) => {\n var _a;\n this.isLinked = linked;\n const cachedAddresses = this.storage.getItem(WalletSDKRelayAbstract_1.LOCAL_STORAGE_ADDRESSES_KEY);\n if (linked) {\n // Only set linked session variable one way\n this.session.linked = linked;\n }\n this.isUnlinkedErrorState = false;\n if (cachedAddresses) {\n const addresses = cachedAddresses.split(\" \");\n const wasConnectedViaStandalone = this.storage.getItem(\"IsStandaloneSigning\") === \"true\";\n if (addresses[0] !== \"\" &&\n !linked &&\n this.session.linked &&\n !wasConnectedViaStandalone) {\n this.isUnlinkedErrorState = true;\n const sessionIdHash = this.getSessionIdHash();\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.UNLINKED_ERROR_STATE, {\n sessionIdHash,\n });\n }\n }\n }))\n .subscribe());\n // if session is marked destroyed, reset and reload\n this.subscriptions.add(this.connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => !!c.metadata && c.metadata.__destroyed === \"1\"))\n .subscribe(() => {\n var _a;\n const alreadyDestroyed = this.connection.isDestroyed;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.METADATA_DESTROYED, {\n alreadyDestroyed,\n sessionIdHash: this.getSessionIdHash(),\n });\n return this.resetAndReload();\n }));\n this.subscriptions.add(this.connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata && c.metadata.WalletUsername !== undefined))\n .pipe((0, operators_1.mergeMap)(c => aes256gcm.decrypt(c.metadata.WalletUsername, this._session.secret)))\n .subscribe({\n next: walletUsername => {\n this.storage.setItem(WalletSDKRelayAbstract_1.WALLET_USER_NAME_KEY, walletUsername);\n },\n error: () => {\n var _a;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"username\",\n });\n },\n }));\n this.subscriptions.add(this.connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata && c.metadata.AppVersion !== undefined))\n .pipe((0, operators_1.mergeMap)(c => aes256gcm.decrypt(c.metadata.AppVersion, this._session.secret)))\n .subscribe({\n next: appVersion => {\n this.storage.setItem(WalletSDKRelayAbstract_1.APP_VERSION_KEY, appVersion);\n },\n error: () => {\n var _a;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"appversion\",\n });\n },\n }));\n this.subscriptions.add(this.connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata &&\n c.metadata.ChainId !== undefined &&\n c.metadata.JsonRpcUrl !== undefined))\n .pipe((0, operators_1.mergeMap)(c => (0, rxjs_1.zip)(aes256gcm.decrypt(c.metadata.ChainId, this._session.secret), aes256gcm.decrypt(c.metadata.JsonRpcUrl, this._session.secret))))\n .pipe((0, operators_1.distinctUntilChanged)())\n .subscribe({\n next: ([chainId, jsonRpcUrl]) => {\n if (this.chainCallback) {\n this.chainCallback(chainId, jsonRpcUrl);\n }\n },\n error: () => {\n var _a;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"chainId|jsonRpcUrl\",\n });\n },\n }));\n this.subscriptions.add(this.connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata && c.metadata.EthereumAddress !== undefined))\n .pipe((0, operators_1.mergeMap)(c => aes256gcm.decrypt(c.metadata.EthereumAddress, this._session.secret)))\n .subscribe({\n next: selectedAddress => {\n if (this.accountsCallback) {\n this.accountsCallback([selectedAddress]);\n }\n if (WalletSDKRelay.accountRequestCallbackIds.size > 0) {\n // We get the ethereum address from the metadata. If for whatever\n // reason we don't get a response via an explicit web3 message\n // we can still fulfill the eip1102 request.\n Array.from(WalletSDKRelay.accountRequestCallbackIds.values()).forEach(id => {\n const message = (0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.RequestEthereumAccountsResponse)([\n selectedAddress,\n ]),\n });\n this.invokeCallback(Object.assign(Object.assign({}, message), { id }));\n });\n WalletSDKRelay.accountRequestCallbackIds.clear();\n }\n },\n error: () => {\n var _a;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"selectedAddress\",\n });\n },\n }));\n this.ui = options.uiConstructor({\n linkAPIUrl: options.linkAPIUrl,\n version: options.version,\n darkMode: options.darkMode,\n session: this._session,\n connected$: this.connection.connected$,\n });\n this.connection.connect();\n }\n attachUI() {\n this.ui.attach();\n }\n resetAndReload() {\n this.connection\n .setSessionMetadata(\"__destroyed\", \"1\")\n .pipe((0, operators_1.timeout)(1000), (0, operators_1.catchError)(_ => (0, rxjs_1.of)(null)))\n .subscribe(_ => {\n var _a, _b, _c;\n try {\n this.subscriptions.unsubscribe();\n }\n catch (err) {\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error unsubscribing\",\n });\n }\n (_b = this.eventListener) === null || _b === void 0 ? void 0 : _b.onEvent(EventListener_1.EVENTS.SESSION_STATE_CHANGE, {\n method: \"relay::resetAndReload\",\n sessionMetadataChange: \"__destroyed, 1\",\n sessionIdHash: this.getSessionIdHash(),\n });\n this.connection.destroy();\n /**\n * Only clear storage if the session id we have in memory matches the one on disk\n * Otherwise, in the case where we have 2 tabs, another tab might have cleared\n * storage already. In that case if we clear storage again, the user will be in\n * a state where the first tab allows the user to connect but the session that\n * was used isn't persisted. This leaves the user in a state where they aren't\n * connected to the mobile app.\n */\n const storedSession = Session_1.Session.load(this.storage);\n if ((storedSession === null || storedSession === void 0 ? void 0 : storedSession.id) === this._session.id) {\n this.storage.clear();\n }\n else if (storedSession) {\n (_c = this.eventListener) === null || _c === void 0 ? void 0 : _c.onEvent(EventListener_1.EVENTS.SKIPPED_CLEARING_SESSION, {\n sessionIdHash: this.getSessionIdHash(),\n storedSessionIdHash: Session_1.Session.hash(storedSession.id),\n });\n }\n this.ui.reloadUI();\n }, (err) => {\n var _a;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.FAILURE, {\n method: \"relay::resetAndReload\",\n message: `failed to reset and reload with ${err}`,\n sessionIdHash: this.getSessionIdHash(),\n });\n });\n }\n setAppInfo(appName, appLogoUrl) {\n this.appName = appName;\n this.appLogoUrl = appLogoUrl;\n }\n getStorageItem(key) {\n return this.storage.getItem(key);\n }\n get session() {\n return this._session;\n }\n setStorageItem(key, value) {\n this.storage.setItem(key, value);\n }\n signEthereumMessage(message, address, addPrefix, typedDataJson) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.signEthereumMessage,\n params: {\n message: (0, util_1.hexStringFromBuffer)(message, true),\n address,\n addPrefix,\n typedDataJson: typedDataJson || null,\n },\n });\n }\n ethereumAddressFromSignedMessage(message, signature, addPrefix) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.ethereumAddressFromSignedMessage,\n params: {\n message: (0, util_1.hexStringFromBuffer)(message, true),\n signature: (0, util_1.hexStringFromBuffer)(signature, true),\n addPrefix,\n },\n });\n }\n signEthereumTransaction(params) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.signEthereumTransaction,\n params: {\n fromAddress: params.fromAddress,\n toAddress: params.toAddress,\n weiValue: (0, util_1.bigIntStringFromBN)(params.weiValue),\n data: (0, util_1.hexStringFromBuffer)(params.data, true),\n nonce: params.nonce,\n gasPriceInWei: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n maxFeePerGas: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n maxPriorityFeePerGas: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n gasLimit: params.gasLimit ? (0, util_1.bigIntStringFromBN)(params.gasLimit) : null,\n chainId: params.chainId,\n shouldSubmit: false,\n },\n });\n }\n signAndSubmitEthereumTransaction(params) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.signEthereumTransaction,\n params: {\n fromAddress: params.fromAddress,\n toAddress: params.toAddress,\n weiValue: (0, util_1.bigIntStringFromBN)(params.weiValue),\n data: (0, util_1.hexStringFromBuffer)(params.data, true),\n nonce: params.nonce,\n gasPriceInWei: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n maxFeePerGas: params.maxFeePerGas\n ? (0, util_1.bigIntStringFromBN)(params.maxFeePerGas)\n : null,\n maxPriorityFeePerGas: params.maxPriorityFeePerGas\n ? (0, util_1.bigIntStringFromBN)(params.maxPriorityFeePerGas)\n : null,\n gasLimit: params.gasLimit ? (0, util_1.bigIntStringFromBN)(params.gasLimit) : null,\n chainId: params.chainId,\n shouldSubmit: true,\n },\n });\n }\n submitEthereumTransaction(signedTransaction, chainId) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.submitEthereumTransaction,\n params: {\n signedTransaction: (0, util_1.hexStringFromBuffer)(signedTransaction, true),\n chainId,\n },\n });\n }\n scanQRCode(regExp) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.scanQRCode,\n params: { regExp },\n });\n }\n getQRCodeUrl() {\n return (0, util_1.createQrUrl)(this._session.id, this._session.secret, this.linkAPIUrl, false);\n }\n genericRequest(data, action) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.generic,\n params: {\n action,\n data,\n },\n });\n }\n sendGenericMessage(request) {\n return this.sendRequest(request);\n }\n sendRequest(request) {\n let hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n const promise = new Promise((resolve, reject) => {\n if (!this.ui.isStandalone()) {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n this.relayEventManager.callbacks.set(id, response => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n if (this.ui.isStandalone()) {\n this.sendRequestStandalone(id, request);\n }\n else {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n setConnectDisabled(disabled) {\n this.ui.setConnectDisabled(disabled);\n }\n setAccountsCallback(accountsCallback) {\n this.accountsCallback = accountsCallback;\n }\n setChainCallback(chainCallback) {\n this.chainCallback = chainCallback;\n }\n publishWeb3RequestEvent(id, request) {\n var _a;\n const message = (0, Web3RequestMessage_1.Web3RequestMessage)({ id, request });\n const storedSession = Session_1.Session.load(this.storage);\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.WEB3_REQUEST, {\n eventId: message.id,\n method: `relay::${message.request.method}`,\n sessionIdHash: this.getSessionIdHash(),\n storedSessionIdHash: storedSession ? Session_1.Session.hash(storedSession.id) : \"\",\n isSessionMismatched: ((storedSession === null || storedSession === void 0 ? void 0 : storedSession.id) !== this._session.id).toString(),\n });\n this.subscriptions.add(this.publishEvent(\"Web3Request\", message, true).subscribe({\n next: _ => {\n var _a;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.WEB3_REQUEST_PUBLISHED, {\n eventId: message.id,\n method: `relay::${message.request.method}`,\n sessionIdHash: this.getSessionIdHash(),\n storedSessionIdHash: storedSession\n ? Session_1.Session.hash(storedSession.id)\n : \"\",\n isSessionMismatched: ((storedSession === null || storedSession === void 0 ? void 0 : storedSession.id) !== this._session.id).toString(),\n });\n },\n error: err => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id: message.id,\n response: {\n method: message.request.method,\n errorMessage: err.message,\n },\n }));\n },\n }));\n }\n publishWeb3RequestCanceledEvent(id) {\n const message = (0, Web3RequestCanceledMessage_1.Web3RequestCanceledMessage)(id);\n this.subscriptions.add(this.publishEvent(\"Web3RequestCanceled\", message, false).subscribe());\n }\n publishEvent(event, message, callWebhook) {\n const secret = this.session.secret;\n return new rxjs_1.Observable(subscriber => {\n void aes256gcm\n .encrypt(JSON.stringify(Object.assign(Object.assign({}, message), { origin: location.origin })), secret)\n .then((encrypted) => {\n subscriber.next(encrypted);\n subscriber.complete();\n });\n }).pipe((0, operators_1.mergeMap)((encrypted) => {\n return this.connection.publishEvent(event, encrypted, callWebhook);\n }));\n }\n handleIncomingEvent(event) {\n try {\n this.subscriptions.add(aes256gcm\n .decrypt(event.data, this.session.secret)\n .pipe((0, operators_1.map)(c => JSON.parse(c)))\n .subscribe({\n next: json => {\n const message = (0, Web3ResponseMessage_1.isWeb3ResponseMessage)(json) ? json : null;\n if (!message) {\n return;\n }\n this.handleWeb3ResponseMessage(message);\n },\n error: () => {\n var _a;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"incomingEvent\",\n });\n },\n }));\n }\n catch (_a) {\n return;\n }\n }\n handleWeb3ResponseMessage(message) {\n var _a;\n const { response } = message;\n (_a = this.eventListener) === null || _a === void 0 ? void 0 : _a.onEvent(EventListener_1.EVENTS.WEB3_RESPONSE, {\n eventId: message.id,\n method: `relay::${response.method}`,\n sessionIdHash: this.getSessionIdHash(),\n });\n if ((0, Web3Response_1.isRequestEthereumAccountsResponse)(response)) {\n WalletSDKRelay.accountRequestCallbackIds.forEach(id => this.invokeCallback(Object.assign(Object.assign({}, message), { id })));\n WalletSDKRelay.accountRequestCallbackIds.clear();\n return;\n }\n this.invokeCallback(message);\n }\n handleErrorResponse(id, method, error, errorCode) {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.ErrorResponse)(method, (error !== null && error !== void 0 ? error : WalletUIError_1.WalletUIError.UserRejectedRequest).message, errorCode),\n }));\n }\n invokeCallback(message) {\n const callback = this.relayEventManager.callbacks.get(message.id);\n if (callback) {\n callback(message.response);\n this.relayEventManager.callbacks.delete(message.id);\n }\n }\n requestEthereumAccounts() {\n const request = {\n method: Web3Method_1.Web3Method.requestEthereumAccounts,\n params: {\n appName: this.appName,\n appLogoUrl: this.appLogoUrl || null,\n },\n };\n const hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n const promise = new Promise((resolve, reject) => {\n var _a;\n this.relayEventManager.callbacks.set(id, response => {\n this.ui.hideRequestEthereumAccounts();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const userAgent = ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) || null;\n if (userAgent &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent)) {\n window.location.href = `https://go.cb-w.com/xoXnYwQimhb?cb_url=${encodeURIComponent(window.location.href)}`;\n return;\n }\n if (this.ui.inlineAccountsResponse()) {\n const onAccounts = (accounts) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.RequestEthereumAccountsResponse)(accounts),\n }));\n };\n this.ui.requestEthereumAccounts({\n onCancel: cancel,\n onAccounts,\n });\n }\n else {\n this.ui.requestEthereumAccounts({\n onCancel: cancel,\n });\n }\n WalletSDKRelay.accountRequestCallbackIds.add(id);\n if (!this.ui.inlineAccountsResponse() && !this.ui.isStandalone()) {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n watchAsset(type, address, symbol, decimals, image, chainId) {\n const request = {\n method: Web3Method_1.Web3Method.watchAsset,\n params: {\n type,\n options: {\n address,\n symbol,\n decimals,\n image,\n },\n chainId,\n },\n };\n let hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n if (!this.ui.inlineWatchAsset()) {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n const promise = new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, response => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const _cancel = (_error) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.WatchAssetReponse)(false),\n }));\n };\n const approve = () => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.WatchAssetReponse)(true),\n }));\n };\n if (this.ui.inlineWatchAsset()) {\n this.ui.watchAsset({\n onApprove: approve,\n onCancel: _cancel,\n type,\n address,\n symbol,\n decimals,\n image,\n chainId,\n });\n }\n if (!this.ui.inlineWatchAsset() && !this.ui.isStandalone()) {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { cancel, promise };\n }\n addEthereumChain(chainId, rpcUrls, iconUrls, blockExplorerUrls, chainName, nativeCurrency) {\n const request = {\n method: Web3Method_1.Web3Method.addEthereumChain,\n params: {\n chainId,\n rpcUrls,\n blockExplorerUrls,\n chainName,\n iconUrls,\n nativeCurrency,\n },\n };\n let hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n if (!this.ui.inlineAddEthereumChain(chainId)) {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n const promise = new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, response => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const _cancel = (_error) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.AddEthereumChainResponse)({\n isApproved: false,\n rpcUrl: \"\",\n }),\n }));\n };\n const approve = (rpcUrl) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.AddEthereumChainResponse)({ isApproved: true, rpcUrl }),\n }));\n };\n if (this.ui.inlineAddEthereumChain(chainId)) {\n this.ui.addEthereumChain({\n onCancel: _cancel,\n onApprove: approve,\n chainId: request.params.chainId,\n rpcUrls: request.params.rpcUrls,\n blockExplorerUrls: request.params.blockExplorerUrls,\n chainName: request.params.chainName,\n iconUrls: request.params.iconUrls,\n nativeCurrency: request.params.nativeCurrency,\n });\n }\n if (!this.ui.inlineAddEthereumChain(chainId) && !this.ui.isStandalone()) {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n switchEthereumChain(chainId) {\n const request = {\n method: Web3Method_1.Web3Method.switchEthereumChain,\n params: {\n chainId,\n },\n };\n let hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n if (!this.ui.inlineSwitchEthereumChain()) {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n const promise = new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, response => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage && response.errorCode) {\n return reject(eth_rpc_errors_1.ethErrors.provider.custom({\n code: response.errorCode,\n message: `Unrecognized chain ID. Try adding the chain using addEthereumChain first.`,\n }));\n }\n else if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const _cancel = (error) => {\n if (typeof error === \"number\") {\n // backward compatibility\n const errorCode = error;\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.ErrorResponse)(Web3Method_1.Web3Method.switchEthereumChain, WalletUIError_1.WalletUIError.SwitchEthereumChainUnsupportedChainId.message, errorCode),\n }));\n }\n else if (error instanceof WalletUIError_1.WalletUIError) {\n this.handleErrorResponse(id, Web3Method_1.Web3Method.switchEthereumChain, error, error.errorCode);\n }\n else {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.SwitchEthereumChainResponse)({\n isApproved: false,\n rpcUrl: \"\",\n }),\n }));\n }\n };\n const approve = (rpcUrl) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.SwitchEthereumChainResponse)({\n isApproved: true,\n rpcUrl,\n }),\n }));\n };\n this.ui.switchEthereumChain({\n onCancel: _cancel,\n onApprove: approve,\n chainId: request.params.chainId,\n });\n if (!this.ui.inlineSwitchEthereumChain() && !this.ui.isStandalone()) {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n inlineAddEthereumChain(chainId) {\n return this.ui.inlineAddEthereumChain(chainId);\n }\n getSessionIdHash() {\n return Session_1.Session.hash(this._session.id);\n }\n sendRequestStandalone(id, request) {\n const _cancel = (error) => {\n this.handleErrorResponse(id, request.method, error);\n };\n const onSuccess = (response) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response,\n }));\n };\n switch (request.method) {\n case Web3Method_1.Web3Method.signEthereumMessage:\n this.ui.signEthereumMessage({\n request,\n onSuccess,\n onCancel: _cancel,\n });\n break;\n case Web3Method_1.Web3Method.signEthereumTransaction:\n this.ui.signEthereumTransaction({\n request,\n onSuccess,\n onCancel: _cancel,\n });\n break;\n case Web3Method_1.Web3Method.submitEthereumTransaction:\n this.ui.submitEthereumTransaction({\n request,\n onSuccess,\n onCancel: _cancel,\n });\n break;\n case Web3Method_1.Web3Method.ethereumAddressFromSignedMessage:\n this.ui.ethereumAddressFromSignedMessage({\n request,\n onSuccess,\n });\n break;\n default:\n _cancel();\n break;\n }\n }\n onSessionConfigChanged(_nextSessionConfig) { }\n}\nWalletSDKRelay.accountRequestCallbackIds = new Set();\n__decorate([\n bind_decorator_1.default\n], WalletSDKRelay.prototype, \"resetAndReload\", null);\n__decorate([\n bind_decorator_1.default\n], WalletSDKRelay.prototype, \"handleIncomingEvent\", null);\nexports.WalletSDKRelay = WalletSDKRelay;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletSDKRelayAbstract = exports.APP_VERSION_KEY = exports.LOCAL_STORAGE_ADDRESSES_KEY = exports.WALLET_USER_NAME_KEY = void 0;\nconst eth_rpc_errors_1 = require(\"eth-rpc-errors\");\nexports.WALLET_USER_NAME_KEY = \"walletUsername\";\nexports.LOCAL_STORAGE_ADDRESSES_KEY = \"Addresses\";\nexports.APP_VERSION_KEY = \"AppVersion\";\nclass WalletSDKRelayAbstract {\n async makeEthereumJSONRPCRequest(request, jsonRpcUrl) {\n if (!jsonRpcUrl)\n throw new Error(\"Error: No jsonRpcUrl provided\");\n return window\n .fetch(jsonRpcUrl, {\n method: \"POST\",\n body: JSON.stringify(request),\n mode: \"cors\",\n headers: { \"Content-Type\": \"application/json\" },\n })\n .then(res => res.json())\n .then(json => {\n if (!json) {\n throw eth_rpc_errors_1.ethErrors.rpc.parse({});\n }\n const response = json;\n const { error } = response;\n if (error) {\n throw (0, eth_rpc_errors_1.serializeError)(error);\n }\n return response;\n });\n }\n}\nexports.WalletSDKRelayAbstract = WalletSDKRelayAbstract;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletSDKRelayEventManager = void 0;\nconst util_1 = require(\"../util\");\nclass WalletSDKRelayEventManager {\n constructor() {\n this._nextRequestId = 0;\n this.callbacks = new Map();\n }\n makeRequestId() {\n // max nextId == max int32 for compatibility with mobile\n this._nextRequestId = (this._nextRequestId + 1) % 0x7fffffff;\n const id = this._nextRequestId;\n const idStr = (0, util_1.prepend0x)(id.toString(16));\n // unlikely that this will ever be an issue, but just to be safe\n const callback = this.callbacks.get(idStr);\n if (callback) {\n this.callbacks.delete(idStr);\n }\n return id;\n }\n}\nexports.WalletSDKRelayEventManager = WalletSDKRelayEventManager;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Web3Method = void 0;\nvar Web3Method;\n(function (Web3Method) {\n Web3Method[\"requestEthereumAccounts\"] = \"requestEthereumAccounts\";\n Web3Method[\"signEthereumMessage\"] = \"signEthereumMessage\";\n Web3Method[\"signEthereumTransaction\"] = \"signEthereumTransaction\";\n Web3Method[\"submitEthereumTransaction\"] = \"submitEthereumTransaction\";\n Web3Method[\"ethereumAddressFromSignedMessage\"] = \"ethereumAddressFromSignedMessage\";\n Web3Method[\"scanQRCode\"] = \"scanQRCode\";\n Web3Method[\"generic\"] = \"generic\";\n Web3Method[\"childRequestEthereumAccounts\"] = \"childRequestEthereumAccounts\";\n Web3Method[\"addEthereumChain\"] = \"addEthereumChain\";\n Web3Method[\"switchEthereumChain\"] = \"switchEthereumChain\";\n Web3Method[\"makeEthereumJSONRPCRequest\"] = \"makeEthereumJSONRPCRequest\";\n Web3Method[\"watchAsset\"] = \"watchAsset\";\n})(Web3Method = exports.Web3Method || (exports.Web3Method = {}));\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Web3RequestCanceledMessage = void 0;\nconst RelayMessage_1 = require(\"./RelayMessage\");\nfunction Web3RequestCanceledMessage(id) {\n return { type: RelayMessage_1.RelayMessageType.WEB3_REQUEST_CANCELED, id };\n}\nexports.Web3RequestCanceledMessage = Web3RequestCanceledMessage;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Web3RequestMessage = void 0;\nconst RelayMessage_1 = require(\"./RelayMessage\");\nfunction Web3RequestMessage(params) {\n return Object.assign({ type: RelayMessage_1.RelayMessageType.WEB3_REQUEST }, params);\n}\nexports.Web3RequestMessage = Web3RequestMessage;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EthereumAddressFromSignedMessageResponse = exports.SubmitEthereumTransactionResponse = exports.SignEthereumTransactionResponse = exports.SignEthereumMessageResponse = exports.isRequestEthereumAccountsResponse = exports.WatchAssetReponse = exports.RequestEthereumAccountsResponse = exports.SwitchEthereumChainResponse = exports.AddEthereumChainResponse = exports.ErrorResponse = void 0;\nconst Web3Method_1 = require(\"./Web3Method\");\nfunction ErrorResponse(method, errorMessage, errorCode) {\n return { method, errorMessage, errorCode };\n}\nexports.ErrorResponse = ErrorResponse;\nfunction AddEthereumChainResponse(addResponse) {\n return {\n method: Web3Method_1.Web3Method.addEthereumChain,\n result: addResponse,\n };\n}\nexports.AddEthereumChainResponse = AddEthereumChainResponse;\nfunction SwitchEthereumChainResponse(switchResponse) {\n return {\n method: Web3Method_1.Web3Method.switchEthereumChain,\n result: switchResponse,\n };\n}\nexports.SwitchEthereumChainResponse = SwitchEthereumChainResponse;\nfunction RequestEthereumAccountsResponse(addresses) {\n return { method: Web3Method_1.Web3Method.requestEthereumAccounts, result: addresses };\n}\nexports.RequestEthereumAccountsResponse = RequestEthereumAccountsResponse;\nfunction WatchAssetReponse(success) {\n return { method: Web3Method_1.Web3Method.watchAsset, result: success };\n}\nexports.WatchAssetReponse = WatchAssetReponse;\nfunction isRequestEthereumAccountsResponse(res) {\n return res && res.method === Web3Method_1.Web3Method.requestEthereumAccounts;\n}\nexports.isRequestEthereumAccountsResponse = isRequestEthereumAccountsResponse;\nfunction SignEthereumMessageResponse(signature) {\n return { method: Web3Method_1.Web3Method.signEthereumMessage, result: signature };\n}\nexports.SignEthereumMessageResponse = SignEthereumMessageResponse;\nfunction SignEthereumTransactionResponse(signedData) {\n return { method: Web3Method_1.Web3Method.signEthereumTransaction, result: signedData };\n}\nexports.SignEthereumTransactionResponse = SignEthereumTransactionResponse;\nfunction SubmitEthereumTransactionResponse(txHash) {\n return { method: Web3Method_1.Web3Method.submitEthereumTransaction, result: txHash };\n}\nexports.SubmitEthereumTransactionResponse = SubmitEthereumTransactionResponse;\nfunction EthereumAddressFromSignedMessageResponse(address) {\n return {\n method: Web3Method_1.Web3Method.ethereumAddressFromSignedMessage,\n result: address,\n };\n}\nexports.EthereumAddressFromSignedMessageResponse = EthereumAddressFromSignedMessageResponse;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWeb3ResponseMessage = exports.Web3ResponseMessage = void 0;\nconst RelayMessage_1 = require(\"./RelayMessage\");\nfunction Web3ResponseMessage(params) {\n return Object.assign({ type: RelayMessage_1.RelayMessageType.WEB3_RESPONSE }, params);\n}\nexports.Web3ResponseMessage = Web3ResponseMessage;\nfunction isWeb3ResponseMessage(msg) {\n return msg && msg.type === RelayMessage_1.RelayMessageType.WEB3_RESPONSE;\n}\nexports.isWeb3ResponseMessage = isWeb3ResponseMessage;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = void 0;\nconst rxjs_1 = require(\"rxjs\");\nconst util_1 = require(\"../util\");\n/**\n *\n * @param plainText string to be encrypted\n * @param secret hex representation of 32-byte secret\n * returns hex string representation of bytes in the order: initialization vector (iv),\n * auth tag, encrypted plaintext. IV is 12 bytes. Auth tag is 16 bytes. Remaining bytes are the\n * encrypted plainText.\n */\nasync function encrypt(plainText, secret) {\n if (secret.length !== 64)\n throw Error(`secret must be 256 bits`);\n const ivBytes = crypto.getRandomValues(new Uint8Array(12));\n const secretKey = await crypto.subtle.importKey(\"raw\", (0, util_1.hexStringToUint8Array)(secret), { name: \"aes-gcm\" }, false, [\"encrypt\", \"decrypt\"]);\n const enc = new TextEncoder();\n // Will return encrypted plainText with auth tag (ie MAC or checksum) appended at the end\n const encryptedResult = await window.crypto.subtle.encrypt({\n name: \"AES-GCM\",\n iv: ivBytes,\n }, secretKey, enc.encode(plainText));\n const tagLength = 16;\n const authTag = encryptedResult.slice(encryptedResult.byteLength - tagLength);\n const encryptedPlaintext = encryptedResult.slice(0, encryptedResult.byteLength - tagLength);\n const authTagBytes = new Uint8Array(authTag);\n const encryptedPlaintextBytes = new Uint8Array(encryptedPlaintext);\n const concatted = new Uint8Array([\n ...ivBytes,\n ...authTagBytes,\n ...encryptedPlaintextBytes,\n ]);\n return (0, util_1.uint8ArrayToHex)(concatted);\n}\nexports.encrypt = encrypt;\n/**\n *\n * @param cipherText hex string representation of bytes in the order: initialization vector (iv),\n * auth tag, encrypted plaintext. IV is 12 bytes. Auth tag is 16 bytes.\n * @param secret hex string representation of 32-byte secret\n *\n * TODO: Update rxjs for promises\n */\nfunction decrypt(cipherText, secret) {\n if (secret.length !== 64)\n throw Error(`secret must be 256 bits`);\n return new rxjs_1.Observable(subscriber => {\n void (async function () {\n const secretKey = await crypto.subtle.importKey(\"raw\", (0, util_1.hexStringToUint8Array)(secret), { name: \"aes-gcm\" }, false, [\"encrypt\", \"decrypt\"]);\n const encrypted = (0, util_1.hexStringToUint8Array)(cipherText);\n const ivBytes = encrypted.slice(0, 12);\n const authTagBytes = encrypted.slice(12, 28);\n const encryptedPlaintextBytes = encrypted.slice(28);\n const concattedBytes = new Uint8Array([\n ...encryptedPlaintextBytes,\n ...authTagBytes,\n ]);\n const algo = {\n name: \"AES-GCM\",\n iv: new Uint8Array(ivBytes),\n };\n try {\n const decrypted = await window.crypto.subtle.decrypt(algo, secretKey, concattedBytes);\n const decoder = new TextDecoder();\n subscriber.next(decoder.decode(decrypted));\n subscriber.complete();\n }\n catch (err) {\n subscriber.error(err);\n }\n })();\n });\n}\nexports.decrypt = decrypt;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RegExpString = exports.IntNumber = exports.BigIntString = exports.AddressString = exports.HexString = exports.OpaqueType = void 0;\nfunction OpaqueType() {\n return (value) => value;\n}\nexports.OpaqueType = OpaqueType;\nexports.HexString = OpaqueType();\nexports.AddressString = OpaqueType();\nexports.BigIntString = OpaqueType();\nfunction IntNumber(num) {\n return Math.floor(num);\n}\nexports.IntNumber = IntNumber;\nexports.RegExpString = OpaqueType();\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createQrUrl = exports.getFavicon = exports.range = exports.isBigNumber = exports.ensureParsedJSONObject = exports.ensureBN = exports.ensureRegExpString = exports.ensureIntNumber = exports.ensureBuffer = exports.ensureAddressString = exports.ensureEvenLengthHexString = exports.ensureHexString = exports.isHexString = exports.prepend0x = exports.strip0x = exports.has0xPrefix = exports.hexStringFromIntNumber = exports.intNumberFromHexString = exports.bigIntStringFromBN = exports.hexStringFromBuffer = exports.hexStringToUint8Array = exports.uint8ArrayToHex = exports.randomBytesHex = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst qs_1 = require(\"qs\");\nconst types_1 = require(\"./types\");\nconst INT_STRING_REGEX = /^[0-9]*$/;\nconst HEXADECIMAL_STRING_REGEX = /^[a-f0-9]*$/;\n/**\n * @param length number of bytes\n */\nfunction randomBytesHex(length) {\n return uint8ArrayToHex(crypto.getRandomValues(new Uint8Array(length)));\n}\nexports.randomBytesHex = randomBytesHex;\nfunction uint8ArrayToHex(value) {\n return [...value].map(b => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\nexports.uint8ArrayToHex = uint8ArrayToHex;\nfunction hexStringToUint8Array(hexString) {\n return new Uint8Array(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));\n}\nexports.hexStringToUint8Array = hexStringToUint8Array;\nfunction hexStringFromBuffer(buf, includePrefix = false) {\n const hex = buf.toString(\"hex\");\n return (0, types_1.HexString)(includePrefix ? \"0x\" + hex : hex);\n}\nexports.hexStringFromBuffer = hexStringFromBuffer;\nfunction bigIntStringFromBN(bn) {\n return (0, types_1.BigIntString)(bn.toString(10));\n}\nexports.bigIntStringFromBN = bigIntStringFromBN;\nfunction intNumberFromHexString(hex) {\n return (0, types_1.IntNumber)(new bn_js_1.default(ensureEvenLengthHexString(hex, false), 16).toNumber());\n}\nexports.intNumberFromHexString = intNumberFromHexString;\nfunction hexStringFromIntNumber(num) {\n return (0, types_1.HexString)(\"0x\" + new bn_js_1.default(num).toString(16));\n}\nexports.hexStringFromIntNumber = hexStringFromIntNumber;\nfunction has0xPrefix(str) {\n return str.startsWith(\"0x\") || str.startsWith(\"0X\");\n}\nexports.has0xPrefix = has0xPrefix;\nfunction strip0x(hex) {\n if (has0xPrefix(hex)) {\n return hex.slice(2);\n }\n return hex;\n}\nexports.strip0x = strip0x;\nfunction prepend0x(hex) {\n if (has0xPrefix(hex)) {\n return \"0x\" + hex.slice(2);\n }\n return \"0x\" + hex;\n}\nexports.prepend0x = prepend0x;\nfunction isHexString(hex) {\n if (typeof hex !== \"string\") {\n return false;\n }\n const s = strip0x(hex).toLowerCase();\n return HEXADECIMAL_STRING_REGEX.test(s);\n}\nexports.isHexString = isHexString;\nfunction ensureHexString(hex, includePrefix = false) {\n if (typeof hex === \"string\") {\n const s = strip0x(hex).toLowerCase();\n if (HEXADECIMAL_STRING_REGEX.test(s)) {\n return (0, types_1.HexString)(includePrefix ? \"0x\" + s : s);\n }\n }\n throw new Error(`\"${String(hex)}\" is not a hexadecimal string`);\n}\nexports.ensureHexString = ensureHexString;\nfunction ensureEvenLengthHexString(hex, includePrefix = false) {\n let h = ensureHexString(hex, false);\n if (h.length % 2 === 1) {\n h = (0, types_1.HexString)(\"0\" + h);\n }\n return includePrefix ? (0, types_1.HexString)(\"0x\" + h) : h;\n}\nexports.ensureEvenLengthHexString = ensureEvenLengthHexString;\nfunction ensureAddressString(str) {\n if (typeof str === \"string\") {\n const s = strip0x(str).toLowerCase();\n if (isHexString(s) && s.length === 40) {\n return (0, types_1.AddressString)(prepend0x(s));\n }\n }\n throw new Error(`Invalid Ethereum address: ${String(str)}`);\n}\nexports.ensureAddressString = ensureAddressString;\nfunction ensureBuffer(str) {\n if (Buffer.isBuffer(str)) {\n return str;\n }\n if (typeof str === \"string\") {\n if (isHexString(str)) {\n const s = ensureEvenLengthHexString(str, false);\n return Buffer.from(s, \"hex\");\n }\n else {\n return Buffer.from(str, \"utf8\");\n }\n }\n throw new Error(`Not binary data: ${String(str)}`);\n}\nexports.ensureBuffer = ensureBuffer;\nfunction ensureIntNumber(num) {\n if (typeof num === \"number\" && Number.isInteger(num)) {\n return (0, types_1.IntNumber)(num);\n }\n if (typeof num === \"string\") {\n if (INT_STRING_REGEX.test(num)) {\n return (0, types_1.IntNumber)(Number(num));\n }\n if (isHexString(num)) {\n return (0, types_1.IntNumber)(new bn_js_1.default(ensureEvenLengthHexString(num, false), 16).toNumber());\n }\n }\n throw new Error(`Not an integer: ${String(num)}`);\n}\nexports.ensureIntNumber = ensureIntNumber;\nfunction ensureRegExpString(regExp) {\n if (regExp instanceof RegExp) {\n return (0, types_1.RegExpString)(regExp.toString());\n }\n throw new Error(`Not a RegExp: ${String(regExp)}`);\n}\nexports.ensureRegExpString = ensureRegExpString;\nfunction ensureBN(val) {\n if (val !== null && (bn_js_1.default.isBN(val) || isBigNumber(val))) {\n return new bn_js_1.default(val.toString(10), 10);\n }\n if (typeof val === \"number\") {\n return new bn_js_1.default(ensureIntNumber(val));\n }\n if (typeof val === \"string\") {\n if (INT_STRING_REGEX.test(val)) {\n return new bn_js_1.default(val, 10);\n }\n if (isHexString(val)) {\n return new bn_js_1.default(ensureEvenLengthHexString(val, false), 16);\n }\n }\n throw new Error(`Not an integer: ${String(val)}`);\n}\nexports.ensureBN = ensureBN;\nfunction ensureParsedJSONObject(val) {\n if (typeof val === \"string\") {\n return JSON.parse(val);\n }\n if (typeof val === \"object\") {\n return val;\n }\n throw new Error(`Not a JSON string or an object: ${String(val)}`);\n}\nexports.ensureParsedJSONObject = ensureParsedJSONObject;\nfunction isBigNumber(val) {\n if (val == null || typeof val.constructor !== \"function\") {\n return false;\n }\n const { constructor } = val;\n return (typeof constructor.config === \"function\" &&\n typeof constructor.EUCLID === \"number\");\n}\nexports.isBigNumber = isBigNumber;\nfunction range(start, stop) {\n return Array.from({ length: stop - start }, (_, i) => start + i);\n}\nexports.range = range;\nfunction getFavicon() {\n const el = document.querySelector('link[sizes=\"192x192\"]') ||\n document.querySelector('link[sizes=\"180x180\"]') ||\n document.querySelector('link[rel=\"icon\"]') ||\n document.querySelector('link[rel=\"shortcut icon\"]');\n const { protocol, host } = document.location;\n const href = el ? el.getAttribute(\"href\") : null;\n if (!href || href.startsWith(\"javascript:\")) {\n return null;\n }\n if (href.startsWith(\"http://\") ||\n href.startsWith(\"https://\") ||\n href.startsWith(\"data:\")) {\n return href;\n }\n if (href.startsWith(\"//\")) {\n return protocol + href;\n }\n return `${protocol}//${host}${href}`;\n}\nexports.getFavicon = getFavicon;\nfunction createQrUrl(sessionId, sessionSecret, serverUrl, isParentConnection) {\n const sessionIdKey = isParentConnection ? \"parent-id\" : \"id\";\n const query = (0, qs_1.stringify)({\n [sessionIdKey]: sessionId,\n secret: sessionSecret,\n server: serverUrl,\n v: \"1\",\n });\n const qrUrl = `${serverUrl}/#/link?${query}`;\n return qrUrl;\n}\nexports.createQrUrl = createQrUrl;\n","// Extracted from https://github.com/ethereumjs/ethereumjs-abi and stripped out irrelevant code\n// Original code licensed under the MIT License - Copyright (c) 2015 Alex Beregszaszi\n\nconst util = require('./util')\nconst BN = require('bn.js')\n\n// Convert from short to canonical names\n// FIXME: optimise or make this nicer?\nfunction elementaryName (name) {\n if (name.startsWith('int[')) {\n return 'int256' + name.slice(3)\n } else if (name === 'int') {\n return 'int256'\n } else if (name.startsWith('uint[')) {\n return 'uint256' + name.slice(4)\n } else if (name === 'uint') {\n return 'uint256'\n } else if (name.startsWith('fixed[')) {\n return 'fixed128x128' + name.slice(5)\n } else if (name === 'fixed') {\n return 'fixed128x128'\n } else if (name.startsWith('ufixed[')) {\n return 'ufixed128x128' + name.slice(6)\n } else if (name === 'ufixed') {\n return 'ufixed128x128'\n }\n return name\n}\n\n// Parse N from type\nfunction parseTypeN (type) {\n return parseInt(/^\\D+(\\d+)$/.exec(type)[1], 10)\n}\n\n// Parse N,M from typex\nfunction parseTypeNxM (type) {\n var tmp = /^\\D+(\\d+)x(\\d+)$/.exec(type)\n return [ parseInt(tmp[1], 10), parseInt(tmp[2], 10) ]\n}\n\n// Parse N in type[] where \"type\" can itself be an array type.\nfunction parseTypeArray (type) {\n var tmp = type.match(/(.*)\\[(.*?)\\]$/)\n if (tmp) {\n return tmp[2] === '' ? 'dynamic' : parseInt(tmp[2], 10)\n }\n return null\n}\n\nfunction parseNumber (arg) {\n var type = typeof arg\n if (type === 'string') {\n if (util.isHexString(arg)) {\n return new BN(util.stripHexPrefix(arg), 16)\n } else {\n return new BN(arg, 10)\n }\n } else if (type === 'number') {\n return new BN(arg)\n } else if (arg.toArray) {\n // assume this is a BN for the moment, replace with BN.isBN soon\n return arg\n } else {\n throw new Error('Argument is not a number')\n }\n}\n\n// Encodes a single item (can be dynamic array)\n// @returns: Buffer\nfunction encodeSingle (type, arg) {\n var size, num, ret, i\n\n if (type === 'address') {\n return encodeSingle('uint160', parseNumber(arg))\n } else if (type === 'bool') {\n return encodeSingle('uint8', arg ? 1 : 0)\n } else if (type === 'string') {\n return encodeSingle('bytes', new Buffer(arg, 'utf8'))\n } else if (isArray(type)) {\n // this part handles fixed-length ([2]) and variable length ([]) arrays\n // NOTE: we catch here all calls to arrays, that simplifies the rest\n if (typeof arg.length === 'undefined') {\n throw new Error('Not an array?')\n }\n size = parseTypeArray(type)\n if (size !== 'dynamic' && size !== 0 && arg.length > size) {\n throw new Error('Elements exceed array size: ' + size)\n }\n ret = []\n type = type.slice(0, type.lastIndexOf('['))\n if (typeof arg === 'string') {\n arg = JSON.parse(arg)\n }\n for (i in arg) {\n ret.push(encodeSingle(type, arg[i]))\n }\n if (size === 'dynamic') {\n var length = encodeSingle('uint256', arg.length)\n ret.unshift(length)\n }\n return Buffer.concat(ret)\n } else if (type === 'bytes') {\n arg = new Buffer(arg)\n\n ret = Buffer.concat([ encodeSingle('uint256', arg.length), arg ])\n\n if ((arg.length % 32) !== 0) {\n ret = Buffer.concat([ ret, util.zeros(32 - (arg.length % 32)) ])\n }\n\n return ret\n } else if (type.startsWith('bytes')) {\n size = parseTypeN(type)\n if (size < 1 || size > 32) {\n throw new Error('Invalid bytes width: ' + size)\n }\n\n return util.setLengthRight(arg, 32)\n } else if (type.startsWith('uint')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid uint width: ' + size)\n }\n\n num = parseNumber(arg)\n if (num.bitLength() > size) {\n throw new Error('Supplied uint exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n if (num < 0) {\n throw new Error('Supplied uint is negative')\n }\n\n return num.toArrayLike(Buffer, 'be', 32)\n } else if (type.startsWith('int')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid int width: ' + size)\n }\n\n num = parseNumber(arg)\n if (num.bitLength() > size) {\n throw new Error('Supplied int exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n return num.toTwos(256).toArrayLike(Buffer, 'be', 32)\n } else if (type.startsWith('ufixed')) {\n size = parseTypeNxM(type)\n\n num = parseNumber(arg)\n\n if (num < 0) {\n throw new Error('Supplied ufixed is negative')\n }\n\n return encodeSingle('uint256', num.mul(new BN(2).pow(new BN(size[1]))))\n } else if (type.startsWith('fixed')) {\n size = parseTypeNxM(type)\n\n return encodeSingle('int256', parseNumber(arg).mul(new BN(2).pow(new BN(size[1]))))\n }\n\n throw new Error('Unsupported or invalid type: ' + type)\n}\n\n// Is a type dynamic?\nfunction isDynamic (type) {\n // FIXME: handle all types? I don't think anything is missing now\n return (type === 'string') || (type === 'bytes') || (parseTypeArray(type) === 'dynamic')\n}\n\n// Is a type an array?\nfunction isArray (type) {\n return type.lastIndexOf(']') === type.length - 1\n}\n\n// Encode a method/event with arguments\n// @types an array of string type names\n// @args an array of the appropriate values\nfunction rawEncode (types, values) {\n var output = []\n var data = []\n\n var headLength = 32 * types.length\n\n for (var i in types) {\n var type = elementaryName(types[i])\n var value = values[i]\n var cur = encodeSingle(type, value)\n\n // Use the head/tail method for storing dynamic data\n if (isDynamic(type)) {\n output.push(encodeSingle('uint256', headLength))\n data.push(cur)\n headLength += cur.length\n } else {\n output.push(cur)\n }\n }\n\n return Buffer.concat(output.concat(data))\n}\n\nfunction solidityPack (types, values) {\n if (types.length !== values.length) {\n throw new Error('Number of types are not matching the values')\n }\n\n var size, num\n var ret = []\n\n for (var i = 0; i < types.length; i++) {\n var type = elementaryName(types[i])\n var value = values[i]\n\n if (type === 'bytes') {\n ret.push(value)\n } else if (type === 'string') {\n ret.push(new Buffer(value, 'utf8'))\n } else if (type === 'bool') {\n ret.push(new Buffer(value ? '01' : '00', 'hex'))\n } else if (type === 'address') {\n ret.push(util.setLength(value, 20))\n } else if (type.startsWith('bytes')) {\n size = parseTypeN(type)\n if (size < 1 || size > 32) {\n throw new Error('Invalid bytes width: ' + size)\n }\n\n ret.push(util.setLengthRight(value, size))\n } else if (type.startsWith('uint')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid uint width: ' + size)\n }\n\n num = parseNumber(value)\n if (num.bitLength() > size) {\n throw new Error('Supplied uint exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n ret.push(num.toArrayLike(Buffer, 'be', size / 8))\n } else if (type.startsWith('int')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid int width: ' + size)\n }\n\n num = parseNumber(value)\n if (num.bitLength() > size) {\n throw new Error('Supplied int exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n ret.push(num.toTwos(size).toArrayLike(Buffer, 'be', size / 8))\n } else {\n // FIXME: support all other types\n throw new Error('Unsupported or invalid type: ' + type)\n }\n }\n\n return Buffer.concat(ret)\n}\n\nfunction soliditySHA3 (types, values) {\n return util.keccak(solidityPack(types, values))\n}\n\nmodule.exports = {\n rawEncode,\n solidityPack,\n soliditySHA3\n}\n","const util = require('./util')\nconst abi = require('./abi')\n\nconst TYPED_MESSAGE_SCHEMA = {\n type: 'object',\n properties: {\n types: {\n type: 'object',\n additionalProperties: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n name: {type: 'string'},\n type: {type: 'string'},\n },\n required: ['name', 'type'],\n },\n },\n },\n primaryType: {type: 'string'},\n domain: {type: 'object'},\n message: {type: 'object'},\n },\n required: ['types', 'primaryType', 'domain', 'message'],\n}\n\n/**\n * A collection of utility functions used for signing typed data\n */\nconst TypedDataUtils = {\n /**\n * Encodes an object by encoding and concatenating each of its members\n *\n * @param {string} primaryType - Root type\n * @param {Object} data - Object to encode\n * @param {Object} types - Type definitions\n * @returns {string} - Encoded representation of an object\n */\n encodeData (primaryType, data, types, useV4 = true) {\n const encodedTypes = ['bytes32']\n const encodedValues = [this.hashType(primaryType, types)]\n\n if(useV4) {\n const encodeField = (name, type, value) => {\n if (types[type] !== undefined) {\n return ['bytes32', value == null ?\n '0x0000000000000000000000000000000000000000000000000000000000000000' :\n util.keccak(this.encodeData(type, value, types, useV4))]\n }\n\n if(value === undefined)\n throw new Error(`missing value for field ${name} of type ${type}`)\n\n if (type === 'bytes') {\n return ['bytes32', util.keccak(value)]\n }\n\n if (type === 'string') {\n // convert string to buffer - prevents ethUtil from interpreting strings like '0xabcd' as hex\n if (typeof value === 'string') {\n value = Buffer.from(value, 'utf8')\n }\n return ['bytes32', util.keccak(value)]\n }\n\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['))\n const typeValuePairs = value.map(item =>\n encodeField(name, parsedType, item))\n return ['bytes32', util.keccak(abi.rawEncode(\n typeValuePairs.map(([type]) => type),\n typeValuePairs.map(([, value]) => value),\n ))]\n }\n\n return [type, value]\n }\n\n for (const field of types[primaryType]) {\n const [type, value] = encodeField(field.name, field.type, data[field.name])\n encodedTypes.push(type)\n encodedValues.push(value)\n }\n } else {\n for (const field of types[primaryType]) {\n let value = data[field.name]\n if (value !== undefined) {\n if (field.type === 'bytes') {\n encodedTypes.push('bytes32')\n value = util.keccak(value)\n encodedValues.push(value)\n } else if (field.type === 'string') {\n encodedTypes.push('bytes32')\n // convert string to buffer - prevents ethUtil from interpreting strings like '0xabcd' as hex\n if (typeof value === 'string') {\n value = Buffer.from(value, 'utf8')\n }\n value = util.keccak(value)\n encodedValues.push(value)\n } else if (types[field.type] !== undefined) {\n encodedTypes.push('bytes32')\n value = util.keccak(this.encodeData(field.type, value, types, useV4))\n encodedValues.push(value)\n } else if (field.type.lastIndexOf(']') === field.type.length - 1) {\n throw new Error('Arrays currently unimplemented in encodeData')\n } else {\n encodedTypes.push(field.type)\n encodedValues.push(value)\n }\n }\n }\n }\n\n return abi.rawEncode(encodedTypes, encodedValues)\n },\n\n /**\n * Encodes the type of an object by encoding a comma delimited list of its members\n *\n * @param {string} primaryType - Root type to encode\n * @param {Object} types - Type definitions\n * @returns {string} - Encoded representation of the type of an object\n */\n encodeType (primaryType, types) {\n let result = ''\n let deps = this.findTypeDependencies(primaryType, types).filter(dep => dep !== primaryType)\n deps = [primaryType].concat(deps.sort())\n for (const type of deps) {\n const children = types[type]\n if (!children) {\n throw new Error('No type definition specified: ' + type)\n }\n result += type + '(' + types[type].map(({ name, type }) => type + ' ' + name).join(',') + ')'\n }\n return result\n },\n\n /**\n * Finds all types within a type defintion object\n *\n * @param {string} primaryType - Root type\n * @param {Object} types - Type definitions\n * @param {Array} results - current set of accumulated types\n * @returns {Array} - Set of all types found in the type definition\n */\n findTypeDependencies (primaryType, types, results = []) {\n primaryType = primaryType.match(/^\\w*/)[0]\n if (results.includes(primaryType) || types[primaryType] === undefined) { return results }\n results.push(primaryType)\n for (const field of types[primaryType]) {\n for (const dep of this.findTypeDependencies(field.type, types, results)) {\n !results.includes(dep) && results.push(dep)\n }\n }\n return results\n },\n\n /**\n * Hashes an object\n *\n * @param {string} primaryType - Root type\n * @param {Object} data - Object to hash\n * @param {Object} types - Type definitions\n * @returns {Buffer} - Hash of an object\n */\n hashStruct (primaryType, data, types, useV4 = true) {\n return util.keccak(this.encodeData(primaryType, data, types, useV4))\n },\n\n /**\n * Hashes the type of an object\n *\n * @param {string} primaryType - Root type to hash\n * @param {Object} types - Type definitions\n * @returns {string} - Hash of an object\n */\n hashType (primaryType, types) {\n return util.keccak(this.encodeType(primaryType, types))\n },\n\n /**\n * Removes properties from a message object that are not defined per EIP-712\n *\n * @param {Object} data - typed message object\n * @returns {Object} - typed message object with only allowed fields\n */\n sanitizeData (data) {\n const sanitizedData = {}\n for (const key in TYPED_MESSAGE_SCHEMA.properties) {\n data[key] && (sanitizedData[key] = data[key])\n }\n if (sanitizedData.types) {\n sanitizedData.types = Object.assign({ EIP712Domain: [] }, sanitizedData.types)\n }\n return sanitizedData\n },\n\n /**\n * Returns the hash of a typed message as per EIP-712 for signing\n *\n * @param {Object} typedData - Types message data to sign\n * @returns {string} - sha3 hash for signing\n */\n hash (typedData, useV4 = true) {\n const sanitizedData = this.sanitizeData(typedData)\n const parts = [Buffer.from('1901', 'hex')]\n parts.push(this.hashStruct('EIP712Domain', sanitizedData.domain, sanitizedData.types, useV4))\n if (sanitizedData.primaryType !== 'EIP712Domain') {\n parts.push(this.hashStruct(sanitizedData.primaryType, sanitizedData.message, sanitizedData.types, useV4))\n }\n return util.keccak(Buffer.concat(parts))\n },\n}\n\nmodule.exports = {\n TYPED_MESSAGE_SCHEMA,\n TypedDataUtils,\n\n hashForSignTypedDataLegacy: function (msgParams) {\n return typedSignatureHashLegacy(msgParams.data)\n },\n\n hashForSignTypedData_v3: function (msgParams) {\n return TypedDataUtils.hash(msgParams.data, false)\n },\n\n hashForSignTypedData_v4: function (msgParams) {\n return TypedDataUtils.hash(msgParams.data)\n },\n}\n\n/**\n * @param typedData - Array of data along with types, as per EIP712.\n * @returns Buffer\n */\nfunction typedSignatureHashLegacy(typedData) {\n const error = new Error('Expect argument to be non-empty array')\n if (typeof typedData !== 'object' || !typedData.length) throw error\n\n const data = typedData.map(function (e) {\n return e.type === 'bytes' ? util.toBuffer(e.value) : e.value\n })\n const types = typedData.map(function (e) { return e.type })\n const schema = typedData.map(function (e) {\n if (!e.name) throw error\n return e.type + ' ' + e.name\n })\n\n return abi.soliditySHA3(\n ['bytes32', 'bytes32'],\n [\n abi.soliditySHA3(new Array(typedData.length).fill('string'), schema),\n abi.soliditySHA3(types, data)\n ]\n )\n}\n","// Extracted from https://github.com/ethereumjs/ethereumjs-util and stripped out irrelevant code\n// Original code licensed under the Mozilla Public License Version 2.0\n\nconst createKeccakHash = require('keccak/js')\nconst BN = require('bn.js')\n\n/**\n * Returns a buffer filled with 0s\n * @method zeros\n * @param {Number} bytes the number of bytes the buffer should be\n * @return {Buffer}\n */\nfunction zeros (bytes) {\n return Buffer.allocUnsafe(bytes).fill(0)\n}\n\n/**\n * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @method setLength\n * @param {Buffer|Array} msg the value to pad\n * @param {Number} length the number of bytes the output should be\n * @param {Boolean} [right=false] whether to start padding form the left or right\n * @return {Buffer|Array}\n */\nfunction setLength (msg, length, right) {\n const buf = zeros(length)\n msg = toBuffer(msg)\n if (right) {\n if (msg.length < length) {\n msg.copy(buf)\n return buf\n }\n return msg.slice(0, length)\n } else {\n if (msg.length < length) {\n msg.copy(buf, length - msg.length)\n return buf\n }\n return msg.slice(-length)\n }\n}\n\n/**\n * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param {Buffer|Array} msg the value to pad\n * @param {Number} length the number of bytes the output should be\n * @return {Buffer|Array}\n */\nfunction setLengthRight (msg, length) {\n return setLength(msg, length, true)\n}\n\n/**\n * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BN` and other objects with a `toArray()` method.\n * @param {*} v the value\n */\nfunction toBuffer (v) {\n if (!Buffer.isBuffer(v)) {\n if (Array.isArray(v)) {\n v = Buffer.from(v)\n } else if (typeof v === 'string') {\n if (isHexString(v)) {\n v = Buffer.from(padToEven(stripHexPrefix(v)), 'hex')\n } else {\n v = Buffer.from(v)\n }\n } else if (typeof v === 'number') {\n v = intToBuffer(v)\n } else if (v === null || v === undefined) {\n v = Buffer.allocUnsafe(0)\n } else if (BN.isBN(v)) {\n v = v.toArrayLike(Buffer)\n } else if (v.toArray) {\n // converts a BN to a Buffer\n v = Buffer.from(v.toArray())\n } else {\n throw new Error('invalid type')\n }\n }\n return v\n}\n\n/**\n * Converts a `Buffer` into a hex `String`\n * @param {Buffer} buf\n * @return {String}\n */\nfunction bufferToHex (buf) {\n buf = toBuffer(buf)\n return '0x' + buf.toString('hex')\n}\n\n/**\n * Creates Keccak hash of the input\n * @param {Buffer|Array|String|Number} a the input data\n * @param {Number} [bits=256] the Keccak width\n * @return {Buffer}\n */\nfunction keccak (a, bits) {\n a = toBuffer(a)\n if (!bits) bits = 256\n\n return createKeccakHash('keccak' + bits).update(a).digest()\n}\n\nfunction padToEven (str) {\n return str.length % 2 ? '0' + str : str\n}\n\nfunction isHexString (str) {\n return typeof str === 'string' && str.match(/^0x[0-9A-Fa-f]*$/)\n}\n\nfunction stripHexPrefix (str) {\n if (typeof str === 'string' && str.startsWith('0x')) {\n return str.slice(2)\n }\n return str\n}\n\nmodule.exports = {\n zeros,\n setLength,\n setLengthRight,\n isHexString,\n stripHexPrefix,\n toBuffer,\n bufferToHex,\n keccak\n}\n","/**\n * @fileoverview\n * - modified davidshimjs/qrcodejs library for use in node.js\n * - Using the 'QRCode for Javascript library'\n * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.\n * - this library has no dependencies.\n *\n * @version 0.9.1 (2016-02-12)\n * @author davidshimjs, papnkukn\n * @see http://www.d-project.com/\n * @see http://jeromeetienne.github.com/jquery-qrcode/\n * @see https://github.com/davidshimjs/qrcodejs\n */\n\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\nfunction QR8bitByte(data) {\n this.mode = QRMode.MODE_8BIT_BYTE;\n this.data = data;\n this.parsedData = [];\n\n // Added to support UTF-8 Characters\n for (var i = 0, l = this.data.length; i < l; i++) {\n var byteArray = [];\n var code = this.data.charCodeAt(i);\n\n if (code > 0x10000) {\n byteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18);\n byteArray[1] = 0x80 | ((code & 0x3F000) >>> 12);\n byteArray[2] = 0x80 | ((code & 0xFC0) >>> 6);\n byteArray[3] = 0x80 | (code & 0x3F);\n } else if (code > 0x800) {\n byteArray[0] = 0xE0 | ((code & 0xF000) >>> 12);\n byteArray[1] = 0x80 | ((code & 0xFC0) >>> 6);\n byteArray[2] = 0x80 | (code & 0x3F);\n } else if (code > 0x80) {\n byteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6);\n byteArray[1] = 0x80 | (code & 0x3F);\n } else {\n byteArray[0] = code;\n }\n\n this.parsedData.push(byteArray);\n }\n\n this.parsedData = Array.prototype.concat.apply([], this.parsedData);\n\n if (this.parsedData.length != this.data.length) {\n this.parsedData.unshift(191);\n this.parsedData.unshift(187);\n this.parsedData.unshift(239);\n }\n}\n\nQR8bitByte.prototype = {\n getLength: function (buffer) {\n return this.parsedData.length;\n },\n write: function (buffer) {\n for (var i = 0, l = this.parsedData.length; i < l; i++) {\n buffer.put(this.parsedData[i], 8);\n }\n }\n};\n\nfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n this.typeNumber = typeNumber;\n this.errorCorrectLevel = errorCorrectLevel;\n this.modules = null;\n this.moduleCount = 0;\n this.dataCache = null;\n this.dataList = [];\n}\n\nQRCodeModel.prototype={addData:function(data){var newData=new QR8bitByte(data);this.dataList.push(newData);this.dataCache=null;},isDark:function(row,col){if(row<0||this.moduleCount<=row||col<0||this.moduleCount<=col){throw new Error(row+\",\"+col);}\nreturn this.modules[row][col];},getModuleCount:function(){return this.moduleCount;},make:function(){this.makeImpl(false,this.getBestMaskPattern());},makeImpl:function(test,maskPattern){this.moduleCount=this.typeNumber*4+17;this.modules=new Array(this.moduleCount);for(var row=0;row=7){this.setupTypeNumber(test);}\nif(this.dataCache==null){this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);}\nthis.mapData(this.dataCache,maskPattern);},setupPositionProbePattern:function(row,col){for(var r=-1;r<=7;r++){if(row+r<=-1||this.moduleCount<=row+r)continue;for(var c=-1;c<=7;c++){if(col+c<=-1||this.moduleCount<=col+c)continue;if((0<=r&&r<=6&&(c==0||c==6))||(0<=c&&c<=6&&(r==0||r==6))||(2<=r&&r<=4&&2<=c&&c<=4)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}},getBestMaskPattern:function(){var minLostPoint=0;var pattern=0;for(var i=0;i<8;i++){this.makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(this);if(i==0||minLostPoint>lostPoint){minLostPoint=lostPoint;pattern=i;}}\nreturn pattern;},createMovieClip:function(target_mc,instance_name,depth){var qr_mc=target_mc.createEmptyMovieClip(instance_name,depth);var cs=1;this.make();for(var row=0;row>i)&1)==1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=mod;}\nfor(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=mod;}},setupTypeInfo:function(test,maskPattern){var data=(this.errorCorrectLevel<<3)|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<6){this.modules[i][8]=mod;}else if(i<8){this.modules[i+1][8]=mod;}else{this.modules[this.moduleCount-15+i][8]=mod;}}\nfor(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<8){this.modules[8][this.moduleCount-i-1]=mod;}else if(i<9){this.modules[8][15-i-1+1]=mod;}else{this.modules[8][15-i-1]=mod;}}\nthis.modules[this.moduleCount-8][8]=(!test);},mapData:function(data,maskPattern){var inc=-1;var row=this.moduleCount-1;var bitIndex=7;var byteIndex=0;for(var col=this.moduleCount-1;col>0;col-=2){if(col==6)col--;while(true){for(var c=0;c<2;c++){if(this.modules[row][col-c]==null){var dark=false;if(byteIndex>>bitIndex)&1)==1);}\nvar mask=QRUtil.getMask(maskPattern,row,col-c);if(mask){dark=!dark;}\nthis.modules[row][col-c]=dark;bitIndex--;if(bitIndex==-1){byteIndex++;bitIndex=7;}}}\nrow+=inc;if(row<0||this.moduleCount<=row){row-=inc;inc=-inc;break;}}}}};QRCodeModel.PAD0=0xEC;QRCodeModel.PAD1=0x11;QRCodeModel.createData=function(typeNumber,errorCorrectLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectLevel);var buffer=new QRBitBuffer();for(var i=0;itotalDataCount*8){throw new Error(\"code length overflow. (\"\n+buffer.getLengthInBits()\n+\">\"\n+totalDataCount*8\n+\")\");}\nif(buffer.getLengthInBits()+4<=totalDataCount*8){buffer.put(0,4);}\nwhile(buffer.getLengthInBits()%8!=0){buffer.putBit(false);}\nwhile(true){if(buffer.getLengthInBits()>=totalDataCount*8){break;}\nbuffer.put(QRCodeModel.PAD0,8);if(buffer.getLengthInBits()>=totalDataCount*8){break;}\nbuffer.put(QRCodeModel.PAD1,8);}\nreturn QRCodeModel.createBytes(buffer,rsBlocks);};QRCodeModel.createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r=0)?modPoly.get(modIndex):0;}}\nvar totalCodeCount=0;for(var i=0;i=0){d^=(QRUtil.G15<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)));}\nreturn((data<<10)|d)^QRUtil.G15_MASK;},getBCHTypeNumber:function(data){var d=data<<12;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)>=0){d^=(QRUtil.G18<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)));}\nreturn(data<<12)|d;},getBCHDigit:function(data){var digit=0;while(data!=0){digit++;data>>>=1;}\nreturn digit;},getPatternPosition:function(typeNumber){return QRUtil.PATTERN_POSITION_TABLE[typeNumber-1];},getMask:function(maskPattern,i,j){switch(maskPattern){case QRMaskPattern.PATTERN000:return(i+j)%2==0;case QRMaskPattern.PATTERN001:return i%2==0;case QRMaskPattern.PATTERN010:return j%3==0;case QRMaskPattern.PATTERN011:return(i+j)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case QRMaskPattern.PATTERN101:return(i*j)%2+(i*j)%3==0;case QRMaskPattern.PATTERN110:return((i*j)%2+(i*j)%3)%2==0;case QRMaskPattern.PATTERN111:return((i*j)%3+(i+j)%2)%2==0;default:throw new Error(\"bad maskPattern:\"+maskPattern);}},getErrorCorrectPolynomial:function(errorCorrectLength){var a=new QRPolynomial([1],0);for(var i=0;i5){lostPoint+=(3+sameCount-5);}}}\nfor(var row=0;row=256){n-=255;}\nreturn QRMath.EXP_TABLE[n];},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(var i=0;i<8;i++){QRMath.EXP_TABLE[i]=1<>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);}\nif(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));}\nthis.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];\n\n\n/** Constructor */\nfunction QRCode(options) {\n var instance = this;\n\n //Default options\n this.options = {\n padding: 4,\n width: 256,\n height: 256,\n typeNumber: 4,\n color: \"#000000\",\n background: \"#ffffff\",\n ecl: \"M\",\n image:{\n svg:\"\",\n width:0,\n height:0\n }\n };\n\n //In case the options is string\n if (typeof options === 'string') {\n options = {\n content: options\n };\n }\n\n //Merge options\n if (options) {\n for (var i in options) {\n this.options[i] = options[i];\n }\n }\n\n if (typeof this.options.content !== 'string') {\n throw new Error(\"Expected 'content' as string!\");\n }\n\n if (this.options.content.length === 0 /* || this.options.content.length > 7089 */) {\n throw new Error(\"Expected 'content' to be non-empty!\");\n }\n\n if (!(this.options.padding >= 0)) {\n throw new Error(\"Expected 'padding' value to be non-negative!\");\n }\n\n if (!(this.options.width > 0) || !(this.options.height > 0)) {\n throw new Error(\"Expected 'width' or 'height' value to be higher than zero!\");\n }\n\n //Gets the error correction level\n function _getErrorCorrectLevel(ecl) {\n switch (ecl) {\n case \"L\":\n return QRErrorCorrectLevel.L;\n\n case \"M\":\n return QRErrorCorrectLevel.M;\n\n case \"Q\":\n return QRErrorCorrectLevel.Q;\n\n case \"H\":\n return QRErrorCorrectLevel.H;\n\n default:\n throw new Error(\"Unknwon error correction level: \" + ecl);\n }\n }\n\n //Get type number\n function _getTypeNumber(content, ecl) {\n var length = _getUTF8Length(content);\n\n var type = 1;\n var limit = 0;\n for (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n var table = QRCodeLimitLength[i];\n if (!table) {\n throw new Error(\"Content too long: expected \" + limit + \" but got \" + length);\n }\n\n switch (ecl) {\n case \"L\":\n limit = table[0];\n break;\n\n case \"M\":\n limit = table[1];\n break;\n\n case \"Q\":\n limit = table[2];\n break;\n\n case \"H\":\n limit = table[3];\n break;\n\n default:\n throw new Error(\"Unknwon error correction level: \" + ecl);\n }\n\n if (length <= limit) {\n break;\n }\n\n type++;\n }\n\n if (type > QRCodeLimitLength.length) {\n throw new Error(\"Content too long\");\n }\n\n return type;\n }\n\n //Gets text length\n function _getUTF8Length(content) {\n var result = encodeURI(content).toString().replace(/\\%[0-9a-fA-F]{2}/g, 'a');\n return result.length + (result.length != content ? 3 : 0);\n }\n\n //Generate QR Code matrix\n var content = this.options.content;\n var type = _getTypeNumber(content, this.options.ecl);\n var ecl = _getErrorCorrectLevel(this.options.ecl);\n this.qrcode = new QRCodeModel(type, ecl);\n this.qrcode.addData(content);\n this.qrcode.make();\n}\n\n/** Generates QR Code as SVG image */\nQRCode.prototype.svg = function(opt) {\n var options = this.options || { };\n var modules = this.qrcode.modules;\n\n if (typeof opt == \"undefined\") {\n opt = { container: options.container || \"svg\" };\n }\n\n //Apply new lines and indents in SVG?\n var pretty = typeof options.pretty != \"undefined\" ? !!options.pretty : true;\n\n var indent = pretty ? ' ' : '';\n var EOL = pretty ? '\\r\\n' : '';\n var width = options.width;\n var height = options.height;\n var length = modules.length;\n var xsize = width / (length + 2 * options.padding);\n var ysize = height / (length + 2 * options.padding);\n\n //Join (union, merge) rectangles into one shape?\n var join = typeof options.join != \"undefined\" ? !!options.join : false;\n\n //Swap the X and Y modules, pull request #2\n var swap = typeof options.swap != \"undefined\" ? !!options.swap : false;\n\n //Apply declaration in SVG?\n var xmlDeclaration = typeof options.xmlDeclaration != \"undefined\" ? !!options.xmlDeclaration : true;\n\n //Populate with predefined shape instead of \"rect\" elements, thanks to @kkocdko\n var predefined = typeof options.predefined != \"undefined\" ? !!options.predefined : false;\n var defs = predefined ? indent + '' + EOL : '';\n\n //Background rectangle\n var bgrect = indent + '' + EOL;\n\n //Rectangles representing modules\n var modrect = '';\n var pathdata = '';\n\n for (var y = 0; y < length; y++) {\n for (var x = 0; x < length; x++) {\n var module = modules[x][y];\n if (module) {\n\n var px = (x * xsize + options.padding * xsize);\n var py = (y * ysize + options.padding * ysize);\n\n //Some users have had issues with the QR Code, thanks to @danioso for the solution\n if (swap) {\n var t = px;\n px = py;\n py = t;\n }\n\n if (join) {\n //Module as a part of svg path data, thanks to @danioso\n var w = xsize + px\n var h = ysize + py\n\n px = (Number.isInteger(px))? Number(px): px.toFixed(2);\n py = (Number.isInteger(py))? Number(py): py.toFixed(2);\n w = (Number.isInteger(w))? Number(w): w.toFixed(2);\n h = (Number.isInteger(h))? Number(h): h.toFixed(2);\n\n pathdata += ('M' + px + ',' + py + ' V' + h + ' H' + w + ' V' + py + ' H' + px + ' Z ');\n }\n else if (predefined) {\n //Module as a predefined shape, thanks to @kkocdko\n modrect += indent + '' + EOL;\n }\n else {\n //Module as rectangle element\n modrect += indent + '' + EOL;\n }\n }\n }\n }\n\n if (join) {\n modrect = indent + '';\n }\n let imgSvg = \"\";\n if(this.options.image !== undefined && this.options.image.svg){\n const imgWidth = width * this.options.image.width / 100;\n const imgHeight = height * this.options.image.height / 100;\n const imgX = (width/2) - imgWidth/2;\n const imgY = (height/2) - imgHeight/2;\n imgSvg += ``;\n imgSvg += this.options.image.svg + EOL;\n imgSvg += '';\n }\n\n var svg = \"\";\n switch (opt.container) {\n //Wrapped in SVG document\n case \"svg\":\n if (xmlDeclaration) {\n svg += '' + EOL;\n }\n svg += '' + EOL;\n svg += defs + bgrect + modrect;\n svg += imgSvg;\n svg += '';\n break;\n\n //Viewbox for responsive use in a browser, thanks to @danioso\n case \"svg-viewbox\":\n if (xmlDeclaration) {\n svg += '' + EOL;\n }\n svg += '' + EOL;\n svg += defs + bgrect + modrect;\n svg += imgSvg;\n svg += '';\n break;\n\n\n //Wrapped in group element\n case \"g\":\n svg += '' + EOL;\n svg += defs + bgrect + modrect;\n svg += imgSvg;\n svg += '';\n\n break;\n\n //Without a container\n default:\n svg += (defs + bgrect + modrect + imgSvg).replace(/^\\s+/, \"\"); //Clear indents on each line\n break;\n }\n\n return svg;\n};\n\nmodule.exports = QRCode;\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LIB_VERSION = void 0;\nexports.LIB_VERSION = \"3.1.0\";\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n",null,null,null,null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar Semaphore_1 = require(\"./Semaphore\");\nvar Mutex = /** @class */ (function () {\n function Mutex() {\n this._semaphore = new Semaphore_1.default(1);\n }\n Mutex.prototype.acquire = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _a, releaser;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this._semaphore.acquire()];\n case 1:\n _a = _b.sent(), releaser = _a[1];\n return [2 /*return*/, releaser];\n }\n });\n });\n };\n Mutex.prototype.runExclusive = function (callback) {\n return this._semaphore.runExclusive(function () { return callback(); });\n };\n Mutex.prototype.isLocked = function () {\n return this._semaphore.isLocked();\n };\n Mutex.prototype.release = function () {\n this._semaphore.release();\n };\n return Mutex;\n}());\nexports.default = Mutex;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar Semaphore = /** @class */ (function () {\n function Semaphore(_maxConcurrency) {\n this._maxConcurrency = _maxConcurrency;\n this._queue = [];\n if (_maxConcurrency <= 0) {\n throw new Error('semaphore must be initialized to a positive value');\n }\n this._value = _maxConcurrency;\n }\n Semaphore.prototype.acquire = function () {\n var _this = this;\n var locked = this.isLocked();\n var ticket = new Promise(function (r) { return _this._queue.push(r); });\n if (!locked)\n this._dispatch();\n return ticket;\n };\n Semaphore.prototype.runExclusive = function (callback) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _a, value, release;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.acquire()];\n case 1:\n _a = _b.sent(), value = _a[0], release = _a[1];\n _b.label = 2;\n case 2:\n _b.trys.push([2, , 4, 5]);\n return [4 /*yield*/, callback(value)];\n case 3: return [2 /*return*/, _b.sent()];\n case 4:\n release();\n return [7 /*endfinally*/];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n Semaphore.prototype.isLocked = function () {\n return this._value <= 0;\n };\n Semaphore.prototype.release = function () {\n if (this._maxConcurrency > 1) {\n throw new Error('this method is unavailabel on semaphores with concurrency > 1; use the scoped release returned by acquire instead');\n }\n if (this._currentReleaser) {\n var releaser = this._currentReleaser;\n this._currentReleaser = undefined;\n releaser();\n }\n };\n Semaphore.prototype._dispatch = function () {\n var _this = this;\n var nextConsumer = this._queue.shift();\n if (!nextConsumer)\n return;\n var released = false;\n this._currentReleaser = function () {\n if (released)\n return;\n released = true;\n _this._value++;\n _this._dispatch();\n };\n nextConsumer([this._value--, this._currentReleaser]);\n };\n return Semaphore;\n}());\nexports.default = Semaphore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withTimeout = exports.Semaphore = exports.Mutex = void 0;\nvar Mutex_1 = require(\"./Mutex\");\nObject.defineProperty(exports, \"Mutex\", { enumerable: true, get: function () { return Mutex_1.default; } });\nvar Semaphore_1 = require(\"./Semaphore\");\nObject.defineProperty(exports, \"Semaphore\", { enumerable: true, get: function () { return Semaphore_1.default; } });\nvar withTimeout_1 = require(\"./withTimeout\");\nObject.defineProperty(exports, \"withTimeout\", { enumerable: true, get: function () { return withTimeout_1.withTimeout; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withTimeout = void 0;\nvar tslib_1 = require(\"tslib\");\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction withTimeout(sync, timeout, timeoutError) {\n var _this = this;\n if (timeoutError === void 0) { timeoutError = new Error('timeout'); }\n return {\n acquire: function () {\n return new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n var isTimeout, ticket, release;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n isTimeout = false;\n setTimeout(function () {\n isTimeout = true;\n reject(timeoutError);\n }, timeout);\n return [4 /*yield*/, sync.acquire()];\n case 1:\n ticket = _a.sent();\n if (isTimeout) {\n release = Array.isArray(ticket) ? ticket[1] : ticket;\n release();\n }\n else {\n resolve(ticket);\n }\n return [2 /*return*/];\n }\n });\n }); });\n },\n runExclusive: function (callback) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var release, ticket;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n release = function () { return undefined; };\n _a.label = 1;\n case 1:\n _a.trys.push([1, , 7, 8]);\n return [4 /*yield*/, this.acquire()];\n case 2:\n ticket = _a.sent();\n if (!Array.isArray(ticket)) return [3 /*break*/, 4];\n release = ticket[1];\n return [4 /*yield*/, callback(ticket[0])];\n case 3: return [2 /*return*/, _a.sent()];\n case 4:\n release = ticket;\n return [4 /*yield*/, callback()];\n case 5: return [2 /*return*/, _a.sent()];\n case 6: return [3 /*break*/, 8];\n case 7:\n release();\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n },\n release: function () {\n sync.release();\n },\n isLocked: function () { return sync.isLocked(); },\n };\n}\nexports.withTimeout = withTimeout;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants;\n(function (constants) {\n constants.typeOfFunction = 'function';\n constants.boolTrue = true;\n})(constants || (constants = {}));\nfunction bind(target, propertyKey, descriptor) {\n if (!descriptor || (typeof descriptor.value !== constants.typeOfFunction)) {\n throw new TypeError(\"Only methods can be decorated with @bind. <\" + propertyKey + \"> is not a method!\");\n }\n return {\n configurable: constants.boolTrue,\n get: function () {\n var bound = descriptor.value.bind(this);\n // Credits to https://github.com/andreypopp/autobind-decorator for memoizing the result of bind against a symbol on the instance.\n Object.defineProperty(this, propertyKey, {\n value: bound,\n configurable: constants.boolTrue,\n writable: constants.boolTrue\n });\n return bound;\n }\n };\n}\nexports.bind = bind;\nexports.default = bind;\n","const EthQuery = require('eth-query')\nconst pify = require('pify')\nconst SafeEventEmitter = require('safe-event-emitter')\n\nconst sec = 1000\n\nconst calculateSum = (accumulator, currentValue) => accumulator + currentValue\nconst blockTrackerEvents = ['sync', 'latest']\n\nclass BaseBlockTracker extends SafeEventEmitter {\n\n //\n // public\n //\n\n constructor (opts = {}) {\n super()\n // config\n this._blockResetDuration = opts.blockResetDuration || 20 * sec\n // state\n this._blockResetTimeout\n this._currentBlock = null\n this._isRunning = false\n // bind functions for internal use\n this._onNewListener = this._onNewListener.bind(this)\n this._onRemoveListener = this._onRemoveListener.bind(this)\n this._resetCurrentBlock = this._resetCurrentBlock.bind(this)\n // listen for handler changes\n this._setupInternalEvents()\n }\n\n isRunning () {\n return this._isRunning\n }\n\n getCurrentBlock () {\n return this._currentBlock\n }\n\n async getLatestBlock () {\n // return if available\n if (this._currentBlock) return this._currentBlock\n // wait for a new latest block\n const latestBlock = await new Promise(resolve => this.once('latest', resolve))\n // return newly set current block\n return latestBlock\n }\n\n // dont allow module consumer to remove our internal event listeners\n removeAllListeners (eventName) {\n // perform default behavior, preserve fn arity\n if (eventName) {\n super.removeAllListeners(eventName)\n } else {\n super.removeAllListeners()\n }\n // re-add internal events\n this._setupInternalEvents()\n // trigger stop check just in case\n this._onRemoveListener()\n }\n\n //\n // to be implemented in subclass\n //\n\n _start () {\n // default behavior is noop\n }\n\n _end () {\n // default behavior is noop\n }\n\n //\n // private\n //\n\n _setupInternalEvents () {\n // first remove listeners for idempotence\n this.removeListener('newListener', this._onNewListener)\n this.removeListener('removeListener', this._onRemoveListener)\n // then add them\n this.on('newListener', this._onNewListener)\n this.on('removeListener', this._onRemoveListener)\n }\n\n _onNewListener (eventName, handler) {\n // `newListener` is called *before* the listener is added\n if (!blockTrackerEvents.includes(eventName)) return\n this._maybeStart()\n }\n\n _onRemoveListener (eventName, handler) {\n // `removeListener` is called *after* the listener is removed\n if (this._getBlockTrackerEventCount() > 0) return\n this._maybeEnd()\n }\n\n _maybeStart () {\n if (this._isRunning) return\n this._isRunning = true\n // cancel setting latest block to stale\n this._cancelBlockResetTimeout()\n this._start()\n }\n\n _maybeEnd () {\n if (!this._isRunning) return\n this._isRunning = false\n this._setupBlockResetTimeout()\n this._end()\n }\n\n _getBlockTrackerEventCount () {\n return blockTrackerEvents\n .map(eventName => this.listenerCount(eventName))\n .reduce(calculateSum)\n }\n\n _newPotentialLatest (newBlock) {\n const currentBlock = this._currentBlock\n // only update if blok number is higher\n if (currentBlock && (hexToInt(newBlock) <= hexToInt(currentBlock))) return\n this._setCurrentBlock(newBlock)\n }\n\n _setCurrentBlock (newBlock) {\n const oldBlock = this._currentBlock\n this._currentBlock = newBlock\n this.emit('latest', newBlock)\n this.emit('sync', { oldBlock, newBlock })\n }\n\n _setupBlockResetTimeout () {\n // clear any existing timeout\n this._cancelBlockResetTimeout()\n // clear latest block when stale\n this._blockResetTimeout = setTimeout(this._resetCurrentBlock, this._blockResetDuration)\n // nodejs - dont hold process open\n if (this._blockResetTimeout.unref) {\n this._blockResetTimeout.unref()\n }\n }\n\n _cancelBlockResetTimeout () {\n clearTimeout(this._blockResetTimeout)\n }\n\n _resetCurrentBlock () {\n this._currentBlock = null\n }\n\n}\n\nmodule.exports = BaseBlockTracker\n\nfunction hexToInt(hexInt) {\n return Number.parseInt(hexInt, 16)\n}\n","const pify = require('pify')\nconst BaseBlockTracker = require('./base')\n\nconst sec = 1000\n\nclass PollingBlockTracker extends BaseBlockTracker {\n\n constructor (opts = {}) {\n // parse + validate args\n if (!opts.provider) throw new Error('PollingBlockTracker - no provider specified.')\n const pollingInterval = opts.pollingInterval || 20 * sec\n const retryTimeout = opts.retryTimeout || pollingInterval / 10\n const keepEventLoopActive = opts.keepEventLoopActive !== undefined ? opts.keepEventLoopActive : true\n const setSkipCacheFlag = opts.setSkipCacheFlag || false\n // BaseBlockTracker constructor\n super(Object.assign({\n blockResetDuration: pollingInterval,\n }, opts))\n // config\n this._provider = opts.provider\n this._pollingInterval = pollingInterval\n this._retryTimeout = retryTimeout\n this._keepEventLoopActive = keepEventLoopActive\n this._setSkipCacheFlag = setSkipCacheFlag\n }\n\n //\n // public\n //\n\n // trigger block polling\n async checkForLatestBlock () {\n await this._updateLatestBlock()\n return await this.getLatestBlock()\n }\n\n //\n // private\n //\n\n _start () {\n this._performSync().catch(err => this.emit('error', err))\n }\n\n async _performSync () {\n while (this._isRunning) {\n try {\n await this._updateLatestBlock()\n await timeout(this._pollingInterval, !this._keepEventLoopActive)\n } catch (err) {\n const newErr = new Error(`PollingBlockTracker - encountered an error while attempting to update latest block:\\n${err.stack}`)\n try {\n this.emit('error', newErr)\n } catch (emitErr) {\n console.error(newErr)\n }\n await timeout(this._retryTimeout, !this._keepEventLoopActive)\n }\n }\n }\n\n async _updateLatestBlock () {\n // fetch + set latest block\n const latestBlock = await this._fetchLatestBlock()\n this._newPotentialLatest(latestBlock)\n }\n\n async _fetchLatestBlock () {\n const req = { jsonrpc: \"2.0\", id: 1, method: 'eth_blockNumber', params: [] }\n if (this._setSkipCacheFlag) req.skipCache = true\n const res = await pify((cb) => this._provider.sendAsync(req, cb))()\n if (res.error) throw new Error(`PollingBlockTracker - encountered error fetching block:\\n${res.error}`)\n return res.result\n }\n\n}\n\nmodule.exports = PollingBlockTracker\n\nfunction timeout (duration, unref) {\n return new Promise(resolve => {\n const timoutRef = setTimeout(resolve, duration)\n // don't keep process open\n if (timoutRef.unref && unref) {\n timoutRef.unref()\n }\n })\n}\n","const BaseFilter = require('./base-filter')\n\n// tracks all results ever recorded\nclass BaseFilterWithHistory extends BaseFilter {\n\n constructor () {\n super()\n this.allResults = []\n }\n\n async update () {\n throw new Error('BaseFilterWithHistory - no update method specified')\n }\n\n addResults (newResults) {\n this.allResults = this.allResults.concat(newResults)\n super.addResults(newResults)\n }\n\n addInitialResults (newResults) {\n this.allResults = this.allResults.concat(newResults)\n super.addInitialResults(newResults)\n }\n\n getAllResults () {\n return this.allResults\n }\n\n}\n\nmodule.exports = BaseFilterWithHistory","const SafeEventEmitter = require('@metamask/safe-event-emitter').default\n\nclass BaseFilter extends SafeEventEmitter {\n\n constructor () {\n super()\n this.updates = []\n }\n\n async initialize () {}\n\n async update () {\n throw new Error('BaseFilter - no update method specified')\n }\n\n addResults (newResults) {\n this.updates = this.updates.concat(newResults)\n newResults.forEach(result => this.emit('update', result))\n }\n\n addInitialResults (newResults) {}\n\n getChangesAndClear () {\n const updates = this.updates\n this.updates = []\n return updates\n }\n \n}\n\nmodule.exports = BaseFilter\n","const BaseFilter = require('./base-filter')\nconst getBlocksForRange = require('./getBlocksForRange')\nconst { incrementHexInt } = require('./hexUtils')\n\nclass BlockFilter extends BaseFilter {\n\n constructor ({ provider, params }) {\n super()\n this.type = 'block'\n this.provider = provider\n }\n\n async update ({ oldBlock, newBlock }) {\n const toBlock = newBlock\n const fromBlock = incrementHexInt(oldBlock)\n const blockBodies = await getBlocksForRange({ provider: this.provider, fromBlock, toBlock })\n const blockHashes = blockBodies.map((block) => block.hash)\n this.addResults(blockHashes)\n }\n\n}\n\nmodule.exports = BlockFilter\n","module.exports = getBlocksForRange\n\nasync function getBlocksForRange({ provider, fromBlock, toBlock }) {\n if (!fromBlock) fromBlock = toBlock\n\n const fromBlockNumber = hexToInt(fromBlock)\n const toBlockNumber = hexToInt(toBlock)\n const blockCountToQuery = toBlockNumber - fromBlockNumber + 1\n // load all blocks from old to new (inclusive)\n const missingBlockNumbers = Array(blockCountToQuery).fill()\n .map((_,index) => fromBlockNumber + index)\n .map(intToHex)\n const blockBodies = await Promise.all(\n missingBlockNumbers.map(blockNum => query(provider, 'eth_getBlockByNumber', [blockNum, false]))\n )\n return blockBodies\n}\n\nfunction hexToInt(hexString) {\n if (hexString === undefined || hexString === null) return hexString\n return Number.parseInt(hexString, 16)\n}\n\nfunction incrementHexInt(hexString){\n if (hexString === undefined || hexString === null) return hexString\n const value = hexToInt(hexString)\n return intToHex(value + 1)\n}\n\nfunction intToHex(int) {\n if (int === undefined || int === null) return int\n const hexString = int.toString(16)\n return '0x' + hexString\n}\n\nfunction query(provider, method, params) {\n return new Promise((resolve, reject) => {\n provider.sendAsync({ id: 1, jsonrpc: '2.0', method, params }, (err, res) => {\n if (err) return reject(err)\n resolve(res.result)\n })\n })\n}\n","\nmodule.exports = {\n minBlockRef,\n maxBlockRef,\n sortBlockRefs,\n bnToHex,\n blockRefIsNumber,\n hexToInt,\n incrementHexInt,\n intToHex,\n unsafeRandomBytes,\n}\n\nfunction minBlockRef(...refs) {\n const sortedRefs = sortBlockRefs(refs)\n return sortedRefs[0]\n}\n\nfunction maxBlockRef(...refs) {\n const sortedRefs = sortBlockRefs(refs)\n return sortedRefs[sortedRefs.length-1]\n}\n\nfunction sortBlockRefs(refs) {\n return refs.sort((refA, refB) => {\n if (refA === 'latest' || refB === 'earliest') return 1\n if (refB === 'latest' || refA === 'earliest') return -1\n return hexToInt(refA) - hexToInt(refB)\n })\n}\n\nfunction bnToHex(bn) {\n return '0x' + bn.toString(16)\n}\n\nfunction blockRefIsNumber(blockRef){\n return blockRef && !['earliest', 'latest', 'pending'].includes(blockRef)\n}\n\nfunction hexToInt(hexString) {\n if (hexString === undefined || hexString === null) return hexString\n return Number.parseInt(hexString, 16)\n}\n\nfunction incrementHexInt(hexString){\n if (hexString === undefined || hexString === null) return hexString\n const value = hexToInt(hexString)\n return intToHex(value + 1)\n}\n\nfunction intToHex(int) {\n if (int === undefined || int === null) return int\n let hexString = int.toString(16)\n const needsLeftPad = hexString.length % 2\n if (needsLeftPad) hexString = '0' + hexString\n return '0x' + hexString\n}\n\nfunction unsafeRandomBytes(byteCount) {\n let result = '0x'\n for (let i = 0; i < byteCount; i++) {\n result += unsafeRandomNibble()\n result += unsafeRandomNibble()\n }\n return result\n}\n\nfunction unsafeRandomNibble() {\n return Math.floor(Math.random() * 16).toString(16)\n}\n","const Mutex = require('async-mutex').Mutex\nconst { createAsyncMiddleware } = require('json-rpc-engine')\nconst createJsonRpcMiddleware = require('eth-json-rpc-middleware/scaffold')\nconst LogFilter = require('./log-filter.js')\nconst BlockFilter = require('./block-filter.js')\nconst TxFilter = require('./tx-filter.js')\nconst { intToHex, hexToInt } = require('./hexUtils')\n\nmodule.exports = createEthFilterMiddleware\n\nfunction createEthFilterMiddleware({ blockTracker, provider }) {\n\n // create filter collection\n let filterIndex = 0\n let filters = {}\n // create update mutex\n const mutex = new Mutex()\n const waitForFree = mutexMiddlewareWrapper({ mutex })\n\n const middleware = createJsonRpcMiddleware({\n // install filters\n eth_newFilter: waitForFree(toFilterCreationMiddleware(newLogFilter)),\n eth_newBlockFilter: waitForFree(toFilterCreationMiddleware(newBlockFilter)),\n eth_newPendingTransactionFilter: waitForFree(toFilterCreationMiddleware(newPendingTransactionFilter)),\n // uninstall filters\n eth_uninstallFilter: waitForFree(toAsyncRpcMiddleware(uninstallFilterHandler)),\n // checking filter changes\n eth_getFilterChanges: waitForFree(toAsyncRpcMiddleware(getFilterChanges)),\n eth_getFilterLogs: waitForFree(toAsyncRpcMiddleware(getFilterLogs)),\n })\n\n // setup filter updating and destroy handler\n const filterUpdater = async ({ oldBlock, newBlock }) => {\n if (filters.length === 0) return\n // lock update reads\n const releaseLock = await mutex.acquire()\n try {\n // process all filters in parallel\n await Promise.all(objValues(filters).map(async (filter) => {\n try {\n await filter.update({ oldBlock, newBlock })\n } catch (err) {\n // handle each error individually so filter update errors don't affect other filters\n console.error(err)\n }\n }))\n } catch (err) {\n // log error so we don't skip the releaseLock\n console.error(err)\n }\n // unlock update reads\n releaseLock()\n }\n\n // expose filter methods directly\n middleware.newLogFilter = newLogFilter\n middleware.newBlockFilter = newBlockFilter\n middleware.newPendingTransactionFilter = newPendingTransactionFilter\n middleware.uninstallFilter = uninstallFilterHandler\n middleware.getFilterChanges = getFilterChanges\n middleware.getFilterLogs = getFilterLogs\n\n // expose destroy method for cleanup\n middleware.destroy = () => {\n uninstallAllFilters()\n }\n\n return middleware\n\n //\n // new filters\n //\n\n async function newLogFilter(params) {\n const filter = new LogFilter({ provider, params })\n const filterIndex = await installFilter(filter)\n return filter\n }\n\n async function newBlockFilter() {\n const filter = new BlockFilter({ provider })\n const filterIndex = await installFilter(filter)\n return filter\n }\n\n async function newPendingTransactionFilter() {\n const filter = new TxFilter({ provider })\n const filterIndex = await installFilter(filter)\n return filter\n }\n\n //\n // get filter changes\n //\n\n async function getFilterChanges(filterIndexHex) {\n const filterIndex = hexToInt(filterIndexHex)\n const filter = filters[filterIndex]\n if (!filter) {\n throw new Error(`No filter for index \"${filterIndex}\"`)\n }\n const results = filter.getChangesAndClear()\n return results\n }\n\n async function getFilterLogs(filterIndexHex) {\n const filterIndex = hexToInt(filterIndexHex)\n const filter = filters[filterIndex]\n if (!filter) {\n throw new Error(`No filter for index \"${filterIndex}\"`)\n }\n // only return results for log filters\n if (filter.type === 'log') {\n results = filter.getAllResults()\n } else {\n results = []\n }\n return results\n }\n\n\n //\n // remove filters\n //\n\n\n async function uninstallFilterHandler(filterIndexHex) {\n // check filter exists\n const filterIndex = hexToInt(filterIndexHex)\n const filter = filters[filterIndex]\n const result = Boolean(filter)\n // uninstall filter\n if (result) {\n await uninstallFilter(filterIndex)\n }\n return result\n }\n\n //\n // utils\n //\n\n async function installFilter(filter) {\n const prevFilterCount = objValues(filters).length\n // install filter\n const currentBlock = await blockTracker.getLatestBlock()\n await filter.initialize({ currentBlock })\n filterIndex++\n filters[filterIndex] = filter\n filter.id = filterIndex\n filter.idHex = intToHex(filterIndex)\n // update block tracker subs\n const newFilterCount = objValues(filters).length\n updateBlockTrackerSubs({ prevFilterCount, newFilterCount })\n return filterIndex\n }\n\n async function uninstallFilter(filterIndex) {\n const prevFilterCount = objValues(filters).length\n delete filters[filterIndex]\n // update block tracker subs\n const newFilterCount = objValues(filters).length\n updateBlockTrackerSubs({ prevFilterCount, newFilterCount })\n }\n\n async function uninstallAllFilters() {\n const prevFilterCount = objValues(filters).length\n filters = {}\n // update block tracker subs\n updateBlockTrackerSubs({ prevFilterCount, newFilterCount: 0 })\n }\n\n function updateBlockTrackerSubs({ prevFilterCount, newFilterCount }) {\n // subscribe\n if (prevFilterCount === 0 && newFilterCount > 0) {\n blockTracker.on('sync', filterUpdater)\n return\n }\n // unsubscribe\n if (prevFilterCount > 0 && newFilterCount === 0) {\n blockTracker.removeListener('sync', filterUpdater)\n return\n }\n }\n\n}\n\n// helper for turning filter constructors into rpc middleware\nfunction toFilterCreationMiddleware(createFilterFn) {\n return toAsyncRpcMiddleware(async (...args) => {\n const filter = await createFilterFn(...args)\n const result = intToHex(filter.id)\n return result\n })\n}\n\n// helper for pulling out req.params and setting res.result\nfunction toAsyncRpcMiddleware(asyncFn) {\n return createAsyncMiddleware(async (req, res) => {\n const result = await asyncFn.apply(null, req.params)\n res.result = result\n })\n}\n\nfunction mutexMiddlewareWrapper({ mutex }) {\n return (middleware) => {\n return async (req, res, next, end) => {\n // wait for mutex available\n // we can release immediately because\n // we just need to make sure updates aren't active\n const releaseLock = await mutex.acquire()\n releaseLock()\n middleware(req, res, next, end)\n }\n }\n}\n\nfunction objValues(obj, fn){\n const values = []\n for (let key in obj) {\n values.push(obj[key])\n }\n return values\n}\n","const EthQuery = require('eth-query')\nconst pify = require('pify')\nconst BaseFilterWithHistory = require('./base-filter-history')\nconst { bnToHex, hexToInt, incrementHexInt, minBlockRef, blockRefIsNumber } = require('./hexUtils')\n\nclass LogFilter extends BaseFilterWithHistory {\n\n constructor ({ provider, params }) {\n super()\n this.type = 'log'\n this.ethQuery = new EthQuery(provider)\n this.params = Object.assign({\n fromBlock: 'latest',\n toBlock: 'latest',\n address: undefined,\n topics: [],\n }, params)\n // normalize address parameter\n if (this.params.address) {\n // ensure array\n if (!Array.isArray(this.params.address)) {\n this.params.address = [this.params.address]\n }\n // ensure lowercase\n this.params.address = this.params.address.map(address => address.toLowerCase())\n }\n }\n\n async initialize({ currentBlock }) {\n // resolve params.fromBlock\n let fromBlock = this.params.fromBlock\n if (['latest', 'pending'].includes(fromBlock)) fromBlock = currentBlock\n if ('earliest' === fromBlock) fromBlock = '0x0'\n this.params.fromBlock = fromBlock\n // set toBlock for initial lookup\n const toBlock = minBlockRef(this.params.toBlock, currentBlock)\n const params = Object.assign({}, this.params, { toBlock })\n // fetch logs and add to results\n const newLogs = await this._fetchLogs(params)\n this.addInitialResults(newLogs)\n }\n\n async update ({ oldBlock, newBlock }) {\n // configure params for this update\n const toBlock = newBlock\n let fromBlock\n // oldBlock is empty on first sync\n if (oldBlock) {\n fromBlock = incrementHexInt(oldBlock)\n } else {\n fromBlock = newBlock\n }\n // fetch logs\n const params = Object.assign({}, this.params, { fromBlock, toBlock })\n const newLogs = await this._fetchLogs(params)\n const matchingLogs = newLogs.filter(log => this.matchLog(log))\n\n // add to results\n this.addResults(matchingLogs)\n }\n\n async _fetchLogs (params) {\n const newLogs = await pify(cb => this.ethQuery.getLogs(params, cb))()\n // add to results\n return newLogs\n }\n\n matchLog(log) {\n // check if block number in bounds:\n if (hexToInt(this.params.fromBlock) >= hexToInt(log.blockNumber)) return false\n if (blockRefIsNumber(this.params.toBlock) && hexToInt(this.params.toBlock) <= hexToInt(log.blockNumber)) return false\n\n // address is correct:\n const normalizedLogAddress = log.address && log.address.toLowerCase()\n if (this.params.address && normalizedLogAddress && !this.params.address.includes(normalizedLogAddress)) return false\n\n // topics match:\n // topics are position-dependant\n // topics can be nested to represent `or` [[a || b], c]\n // topics can be null, representing a wild card for that position\n const topicsMatch = this.params.topics.every((topicPattern, index) => {\n // pattern is longer than actual topics\n let logTopic = log.topics[index]\n if (!logTopic) return false\n logTopic = logTopic.toLowerCase()\n // normalize subTopics\n let subtopicsToMatch = Array.isArray(topicPattern) ? topicPattern : [topicPattern]\n // check for wild card\n const subtopicsIncludeWildcard = subtopicsToMatch.includes(null)\n if (subtopicsIncludeWildcard) return true\n subtopicsToMatch = subtopicsToMatch.map(topic => topic.toLowerCase())\n // check each possible matching topic\n const topicDoesMatch = subtopicsToMatch.includes(logTopic)\n return topicDoesMatch\n })\n\n return topicsMatch\n }\n\n}\n\nmodule.exports = LogFilter\n","'use strict';\n\nconst processFn = (fn, options, proxy, unwrapped) => function (...arguments_) {\n\tconst P = options.promiseModule;\n\n\treturn new P((resolve, reject) => {\n\t\tif (options.multiArgs) {\n\t\t\targuments_.push((...result) => {\n\t\t\t\tif (options.errorFirst) {\n\t\t\t\t\tif (result[0]) {\n\t\t\t\t\t\treject(result);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.shift();\n\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (options.errorFirst) {\n\t\t\targuments_.push((error, result) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\targuments_.push(resolve);\n\t\t}\n\n\t\tconst self = this === proxy ? unwrapped : this;\n\t\tReflect.apply(fn, self, arguments_);\n\t});\n};\n\nconst filterCache = new WeakMap();\n\nmodule.exports = (input, options) => {\n\toptions = {\n\t\texclude: [/.+(?:Sync|Stream)$/],\n\t\terrorFirst: true,\n\t\tpromiseModule: Promise,\n\t\t...options\n\t};\n\n\tconst objectType = typeof input;\n\tif (!(input !== null && (objectType === 'object' || objectType === 'function'))) {\n\t\tthrow new TypeError(`Expected \\`input\\` to be a \\`Function\\` or \\`Object\\`, got \\`${input === null ? 'null' : objectType}\\``);\n\t}\n\n\tconst filter = (target, key) => {\n\t\tlet cached = filterCache.get(target);\n\n\t\tif (!cached) {\n\t\t\tcached = {};\n\t\t\tfilterCache.set(target, cached);\n\t\t}\n\n\t\tif (key in cached) {\n\t\t\treturn cached[key];\n\t\t}\n\n\t\tconst match = pattern => (typeof pattern === 'string' || typeof key === 'symbol') ? key === pattern : pattern.test(key);\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(target, key);\n\t\tconst writableOrConfigurableOwn = (desc === undefined || desc.writable || desc.configurable);\n\t\tconst included = options.include ? options.include.some(match) : !options.exclude.some(match);\n\t\tconst shouldFilter = included && writableOrConfigurableOwn;\n\t\tcached[key] = shouldFilter;\n\t\treturn shouldFilter;\n\t};\n\n\tconst cache = new WeakMap();\n\n\tconst proxy = new Proxy(input, {\n\t\tapply(target, thisArg, args) {\n\t\t\tconst cached = cache.get(target);\n\n\t\t\tif (cached) {\n\t\t\t\treturn Reflect.apply(cached, thisArg, args);\n\t\t\t}\n\n\t\t\tconst pified = options.excludeMain ? target : processFn(target, options, proxy, target);\n\t\t\tcache.set(target, pified);\n\t\t\treturn Reflect.apply(pified, thisArg, args);\n\t\t},\n\n\t\tget(target, key) {\n\t\t\tconst property = target[key];\n\n\t\t\t// eslint-disable-next-line no-use-extend-native/no-use-extend-native\n\t\t\tif (!filter(target, key) || property === Function.prototype[key]) {\n\t\t\t\treturn property;\n\t\t\t}\n\n\t\t\tconst cached = cache.get(property);\n\n\t\t\tif (cached) {\n\t\t\t\treturn cached;\n\t\t\t}\n\n\t\t\tif (typeof property === 'function') {\n\t\t\t\tconst pified = processFn(property, options, proxy, target);\n\t\t\t\tcache.set(property, pified);\n\t\t\t\treturn pified;\n\t\t\t}\n\n\t\t\treturn property;\n\t\t}\n\t});\n\n\treturn proxy;\n};\n","const SafeEventEmitter = require('@metamask/safe-event-emitter').default\nconst createScaffoldMiddleware = require('eth-json-rpc-middleware/scaffold')\nconst { createAsyncMiddleware } = require('json-rpc-engine')\nconst createFilterMiddleware = require('./index.js')\nconst { unsafeRandomBytes, incrementHexInt } = require('./hexUtils.js')\nconst getBlocksForRange = require('./getBlocksForRange.js')\n\nmodule.exports = createSubscriptionMiddleware\n\n\nfunction createSubscriptionMiddleware({ blockTracker, provider }) {\n // state and utilities for handling subscriptions\n const subscriptions = {}\n const filterManager = createFilterMiddleware({ blockTracker, provider })\n\n // internal flag\n let isDestroyed = false\n\n // create subscriptionManager api object\n const events = new SafeEventEmitter()\n const middleware = createScaffoldMiddleware({\n eth_subscribe: createAsyncMiddleware(subscribe),\n eth_unsubscribe: createAsyncMiddleware(unsubscribe),\n })\n middleware.destroy = destroy\n return { events, middleware }\n\n async function subscribe(req, res) {\n\n if (isDestroyed) throw new Error(\n 'SubscriptionManager - attempting to use after destroying'\n )\n\n const subscriptionType = req.params[0]\n // subId is 16 byte hex string\n const subId = unsafeRandomBytes(16)\n\n // create sub\n let sub\n switch (subscriptionType) {\n case 'newHeads':\n sub = createSubNewHeads({ subId })\n break\n case 'logs':\n const filterParams = req.params[1]\n const filter = await filterManager.newLogFilter(filterParams)\n sub = createSubFromFilter({ subId, filter })\n break\n default:\n throw new Error(`SubscriptionManager - unsupported subscription type \"${subscriptionType}\"`)\n\n }\n subscriptions[subId] = sub\n\n res.result = subId\n return\n\n function createSubNewHeads({ subId }) {\n const sub = {\n type: subscriptionType,\n destroy: async () => {\n blockTracker.removeListener('sync', sub.update)\n },\n update: async ({ oldBlock, newBlock }) => {\n // for newHeads\n const toBlock = newBlock\n const fromBlock = incrementHexInt(oldBlock)\n const rawBlocks = await getBlocksForRange({ provider, fromBlock, toBlock })\n const results = rawBlocks.map(normalizeBlock)\n results.forEach((value) => {\n _emitSubscriptionResult(subId, value)\n })\n }\n }\n // check for subscription updates on new block\n blockTracker.on('sync', sub.update)\n return sub\n }\n\n function createSubFromFilter({ subId, filter }){\n filter.on('update', result => _emitSubscriptionResult(subId, result))\n const sub = {\n type: subscriptionType,\n destroy: async () => {\n return await filterManager.uninstallFilter(filter.idHex)\n },\n }\n return sub\n }\n }\n\n async function unsubscribe(req, res) {\n\n if (isDestroyed) throw new Error(\n 'SubscriptionManager - attempting to use after destroying'\n )\n\n const id = req.params[0]\n const subscription = subscriptions[id]\n // if missing, return \"false\" to indicate it was not removed\n if (!subscription) {\n res.result = false\n return\n }\n // cleanup subscription\n delete subscriptions[id]\n await subscription.destroy()\n res.result = true\n }\n\n function _emitSubscriptionResult(filterIdHex, value) {\n events.emit('notification', {\n jsonrpc: '2.0',\n method: 'eth_subscription',\n params: {\n subscription: filterIdHex,\n result: value,\n },\n })\n }\n\n function destroy () {\n events.removeAllListeners()\n for (const id in subscriptions) {\n subscriptions[id].destroy()\n delete subscriptions[id]\n }\n isDestroyed = true\n }\n}\n\nfunction normalizeBlock(block) {\n return {\n hash: block.hash,\n parentHash: block.parentHash,\n sha3Uncles: block.sha3Uncles,\n miner: block.miner,\n stateRoot: block.stateRoot,\n transactionsRoot: block.transactionsRoot,\n receiptsRoot: block.receiptsRoot,\n logsBloom: block.logsBloom,\n difficulty: block.difficulty,\n number: block.number,\n gasLimit: block.gasLimit,\n gasUsed: block.gasUsed,\n nonce: block.nonce,\n mixHash: block.mixHash,\n timestamp: block.timestamp,\n extraData: block.extraData,\n }\n}\n","const BaseFilter = require('./base-filter')\nconst getBlocksForRange = require('./getBlocksForRange')\nconst { incrementHexInt } = require('./hexUtils')\n\nclass TxFilter extends BaseFilter {\n\n constructor ({ provider }) {\n super()\n this.type = 'tx'\n this.provider = provider\n }\n\n async update ({ oldBlock }) {\n const toBlock = oldBlock\n const fromBlock = incrementHexInt(oldBlock)\n const blocks = await getBlocksForRange({ provider: this.provider, fromBlock, toBlock })\n const blockTxHashes = []\n for (const block of blocks) {\n blockTxHashes.push(...block.transactions)\n }\n // add to results\n this.addResults(blockTxHashes)\n }\n\n}\n\nmodule.exports = TxFilter\n","module.exports = function createScaffoldMiddleware (handlers) {\n return (req, res, next, end) => {\n const handler = handlers[req.method]\n // if no handler, return\n if (handler === undefined) {\n return next()\n }\n // if handler is fn, call as middleware\n if (typeof handler === 'function') {\n return handler(req, res, next, end)\n }\n // if handler is some other value, use as result\n res.result = handler\n return end()\n }\n}\n","// for backwards compat\nmodule.exports = require('json-rpc-engine/src/createScaffoldMiddleware')\n","const extend = require('xtend')\nconst createRandomId = require('json-rpc-random-id')()\n\nmodule.exports = EthQuery\n\n\nfunction EthQuery(provider){\n const self = this\n self.currentProvider = provider\n}\n\n//\n// base queries\n//\n\n// default block\nEthQuery.prototype.getBalance = generateFnWithDefaultBlockFor(2, 'eth_getBalance')\nEthQuery.prototype.getCode = generateFnWithDefaultBlockFor(2, 'eth_getCode')\nEthQuery.prototype.getTransactionCount = generateFnWithDefaultBlockFor(2, 'eth_getTransactionCount')\nEthQuery.prototype.getStorageAt = generateFnWithDefaultBlockFor(3, 'eth_getStorageAt')\nEthQuery.prototype.call = generateFnWithDefaultBlockFor(2, 'eth_call')\n// standard\nEthQuery.prototype.protocolVersion = generateFnFor('eth_protocolVersion')\nEthQuery.prototype.syncing = generateFnFor('eth_syncing')\nEthQuery.prototype.coinbase = generateFnFor('eth_coinbase')\nEthQuery.prototype.mining = generateFnFor('eth_mining')\nEthQuery.prototype.hashrate = generateFnFor('eth_hashrate')\nEthQuery.prototype.gasPrice = generateFnFor('eth_gasPrice')\nEthQuery.prototype.accounts = generateFnFor('eth_accounts')\nEthQuery.prototype.blockNumber = generateFnFor('eth_blockNumber')\nEthQuery.prototype.getBlockTransactionCountByHash = generateFnFor('eth_getBlockTransactionCountByHash')\nEthQuery.prototype.getBlockTransactionCountByNumber = generateFnFor('eth_getBlockTransactionCountByNumber')\nEthQuery.prototype.getUncleCountByBlockHash = generateFnFor('eth_getUncleCountByBlockHash')\nEthQuery.prototype.getUncleCountByBlockNumber = generateFnFor('eth_getUncleCountByBlockNumber')\nEthQuery.prototype.sign = generateFnFor('eth_sign')\nEthQuery.prototype.sendTransaction = generateFnFor('eth_sendTransaction')\nEthQuery.prototype.sendRawTransaction = generateFnFor('eth_sendRawTransaction')\nEthQuery.prototype.estimateGas = generateFnFor('eth_estimateGas')\nEthQuery.prototype.getBlockByHash = generateFnFor('eth_getBlockByHash')\nEthQuery.prototype.getBlockByNumber = generateFnFor('eth_getBlockByNumber')\nEthQuery.prototype.getTransactionByHash = generateFnFor('eth_getTransactionByHash')\nEthQuery.prototype.getTransactionByBlockHashAndIndex = generateFnFor('eth_getTransactionByBlockHashAndIndex')\nEthQuery.prototype.getTransactionByBlockNumberAndIndex = generateFnFor('eth_getTransactionByBlockNumberAndIndex')\nEthQuery.prototype.getTransactionReceipt = generateFnFor('eth_getTransactionReceipt')\nEthQuery.prototype.getUncleByBlockHashAndIndex = generateFnFor('eth_getUncleByBlockHashAndIndex')\nEthQuery.prototype.getUncleByBlockNumberAndIndex = generateFnFor('eth_getUncleByBlockNumberAndIndex')\nEthQuery.prototype.getCompilers = generateFnFor('eth_getCompilers')\nEthQuery.prototype.compileLLL = generateFnFor('eth_compileLLL')\nEthQuery.prototype.compileSolidity = generateFnFor('eth_compileSolidity')\nEthQuery.prototype.compileSerpent = generateFnFor('eth_compileSerpent')\nEthQuery.prototype.newFilter = generateFnFor('eth_newFilter')\nEthQuery.prototype.newBlockFilter = generateFnFor('eth_newBlockFilter')\nEthQuery.prototype.newPendingTransactionFilter = generateFnFor('eth_newPendingTransactionFilter')\nEthQuery.prototype.uninstallFilter = generateFnFor('eth_uninstallFilter')\nEthQuery.prototype.getFilterChanges = generateFnFor('eth_getFilterChanges')\nEthQuery.prototype.getFilterLogs = generateFnFor('eth_getFilterLogs')\nEthQuery.prototype.getLogs = generateFnFor('eth_getLogs')\nEthQuery.prototype.getWork = generateFnFor('eth_getWork')\nEthQuery.prototype.submitWork = generateFnFor('eth_submitWork')\nEthQuery.prototype.submitHashrate = generateFnFor('eth_submitHashrate')\n\n// network level\n\nEthQuery.prototype.sendAsync = function(opts, cb){\n const self = this\n self.currentProvider.sendAsync(createPayload(opts), function(err, response){\n if (!err && response.error) err = new Error('EthQuery - RPC Error - '+response.error.message)\n if (err) return cb(err)\n cb(null, response.result)\n })\n}\n\n// util\n\nfunction generateFnFor(methodName){\n return function(){\n const self = this\n var args = [].slice.call(arguments)\n var cb = args.pop()\n self.sendAsync({\n method: methodName,\n params: args,\n }, cb)\n }\n}\n\nfunction generateFnWithDefaultBlockFor(argCount, methodName){\n return function(){\n const self = this\n var args = [].slice.call(arguments)\n var cb = args.pop()\n // set optional default block param\n if (args.length < argCount) args.push('latest')\n self.sendAsync({\n method: methodName,\n params: args,\n }, cb)\n }\n}\n\nfunction createPayload(data){\n return extend({\n // defaults\n id: createRandomId(),\n jsonrpc: '2.0',\n params: [],\n // user-specified\n }, data)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = stringify\nstringify.default = stringify\nstringify.stable = deterministicStringify\nstringify.stableStringify = deterministicStringify\n\nvar LIMIT_REPLACE_NODE = '[...]'\nvar CIRCULAR_REPLACE_NODE = '[Circular]'\n\nvar arr = []\nvar replacerStack = []\n\nfunction defaultOptions () {\n return {\n depthLimit: Number.MAX_SAFE_INTEGER,\n edgesLimit: Number.MAX_SAFE_INTEGER\n }\n}\n\n// Regular stringify\nfunction stringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n decirc(obj, '', 0, [], undefined, 0, options)\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(obj, replacer, spacer)\n } else {\n res = JSON.stringify(obj, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction setReplace (replace, val, k, parent) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k)\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, { value: replace })\n arr.push([parent, k, val, propertyDescriptor])\n } else {\n replacerStack.push([val, k, replace])\n }\n } else {\n parent[k] = replace\n arr.push([parent, k, val])\n }\n}\n\nfunction decirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n decirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n var keys = Object.keys(val)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n decirc(val[key], key, i, stack, val, depth, options)\n }\n }\n stack.pop()\n }\n}\n\n// Stable-stringify\nfunction compareFunction (a, b) {\n if (a < b) {\n return -1\n }\n if (a > b) {\n return 1\n }\n return 0\n}\n\nfunction deterministicStringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n var tmp = deterministicDecirc(obj, '', 0, [], undefined, 0, options) || obj\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer)\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n // Ensure that we restore the object as it was.\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction deterministicDecirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n try {\n if (typeof val.toJSON === 'function') {\n return\n }\n } catch (_) {\n return\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {}\n var keys = Object.keys(val).sort(compareFunction)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n deterministicDecirc(val[key], key, i, stack, val, depth, options)\n tmp[key] = val[key]\n }\n if (typeof parent !== 'undefined') {\n arr.push([parent, k, val])\n parent[k] = tmp\n } else {\n return tmp\n }\n }\n stack.pop()\n }\n}\n\n// wraps replacer function to handle values we couldn't replace\n// and mark them as replaced value\nfunction replaceGetterValues (replacer) {\n replacer =\n typeof replacer !== 'undefined'\n ? replacer\n : function (k, v) {\n return v\n }\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i]\n if (part[1] === key && part[0] === val) {\n val = part[2]\n replacerStack.splice(i, 1)\n break\n }\n }\n }\n return replacer.call(this, key, val)\n }\n}\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n/* globals document: false */\nvar documentDotAll = typeof document === 'object' && typeof document.all === 'undefined' && document.all !== undefined ? document.all : {};\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (value === documentDotAll) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (typeof value === 'function' && !value.prototype) { return true; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (value === documentDotAll) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (typeof value === 'function' && !value.prototype) { return true; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\treturn strClass === fnClass || strClass === genClass;\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.9.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var algorithm = is224 ? 'sha224' : 'sha256';\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n",null,null,null,null,null,null,"module.exports = IdIterator\n\nfunction IdIterator(opts){\n opts = opts || {}\n var max = opts.max || Number.MAX_SAFE_INTEGER\n var idCounter = typeof opts.start !== 'undefined' ? opts.start : Math.floor(Math.random() * max)\n\n return function createRandomId () {\n idCounter = idCounter % max\n return idCounter++\n }\n\n}","module.exports = require('./lib/api')(require('./lib/keccak'))\n","const createKeccak = require('./keccak')\nconst createShake = require('./shake')\n\nmodule.exports = function (KeccakState) {\n const Keccak = createKeccak(KeccakState)\n const Shake = createShake(KeccakState)\n\n return function (algorithm, options) {\n const hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm\n switch (hash) {\n case 'keccak224': return new Keccak(1152, 448, null, 224, options)\n case 'keccak256': return new Keccak(1088, 512, null, 256, options)\n case 'keccak384': return new Keccak(832, 768, null, 384, options)\n case 'keccak512': return new Keccak(576, 1024, null, 512, options)\n\n case 'sha3-224': return new Keccak(1152, 448, 0x06, 224, options)\n case 'sha3-256': return new Keccak(1088, 512, 0x06, 256, options)\n case 'sha3-384': return new Keccak(832, 768, 0x06, 384, options)\n case 'sha3-512': return new Keccak(576, 1024, 0x06, 512, options)\n\n case 'shake128': return new Shake(1344, 256, 0x1f, options)\n case 'shake256': return new Shake(1088, 512, 0x1f, options)\n\n default: throw new Error('Invald algorithm: ' + algorithm)\n }\n }\n}\n","const { Transform } = require('readable-stream')\n\nmodule.exports = (KeccakState) => class Keccak extends Transform {\n constructor (rate, capacity, delimitedSuffix, hashBitLength, options) {\n super(options)\n\n this._rate = rate\n this._capacity = capacity\n this._delimitedSuffix = delimitedSuffix\n this._hashBitLength = hashBitLength\n this._options = options\n\n this._state = new KeccakState()\n this._state.initialize(rate, capacity)\n this._finalized = false\n }\n\n _transform (chunk, encoding, callback) {\n let error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n _flush (callback) {\n let error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n update (data, encoding) {\n if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n this._state.absorb(data)\n\n return this\n }\n\n digest (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)\n let digest = this._state.squeeze(this._hashBitLength / 8)\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n this._resetState()\n\n return digest\n }\n\n // remove result from memory\n _resetState () {\n this._state.initialize(this._rate, this._capacity)\n return this\n }\n\n // because sometimes we need hash right now and little later\n _clone () {\n const clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)\n this._state.copy(clone._state)\n clone._finalized = this._finalized\n\n return clone\n }\n}\n","const { Transform } = require('readable-stream')\n\nmodule.exports = (KeccakState) => class Shake extends Transform {\n constructor (rate, capacity, delimitedSuffix, options) {\n super(options)\n\n this._rate = rate\n this._capacity = capacity\n this._delimitedSuffix = delimitedSuffix\n this._options = options\n\n this._state = new KeccakState()\n this._state.initialize(rate, capacity)\n this._finalized = false\n }\n\n _transform (chunk, encoding, callback) {\n let error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n _flush () {}\n\n _read (size) {\n this.push(this.squeeze(size))\n }\n\n update (data, encoding) {\n if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')\n if (this._finalized) throw new Error('Squeeze already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n this._state.absorb(data)\n\n return this\n }\n\n squeeze (dataByteLength, encoding) {\n if (!this._finalized) {\n this._finalized = true\n this._state.absorbLastFewBits(this._delimitedSuffix)\n }\n\n let data = this._state.squeeze(dataByteLength)\n if (encoding !== undefined) data = data.toString(encoding)\n\n return data\n }\n\n _resetState () {\n this._state.initialize(this._rate, this._capacity)\n return this\n }\n\n _clone () {\n const clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)\n this._state.copy(clone._state)\n clone._finalized = this._finalized\n\n return clone\n }\n}\n","const P1600_ROUND_CONSTANTS = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648, 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648]\n\nexports.p1600 = function (s) {\n for (let round = 0; round < 24; ++round) {\n // theta\n const lo0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40]\n const hi0 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41]\n const lo1 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42]\n const hi1 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43]\n const lo2 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44]\n const hi2 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45]\n const lo3 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46]\n const hi3 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47]\n const lo4 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48]\n const hi4 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49]\n\n let lo = lo4 ^ (lo1 << 1 | hi1 >>> 31)\n let hi = hi4 ^ (hi1 << 1 | lo1 >>> 31)\n const t1slo0 = s[0] ^ lo\n const t1shi0 = s[1] ^ hi\n const t1slo5 = s[10] ^ lo\n const t1shi5 = s[11] ^ hi\n const t1slo10 = s[20] ^ lo\n const t1shi10 = s[21] ^ hi\n const t1slo15 = s[30] ^ lo\n const t1shi15 = s[31] ^ hi\n const t1slo20 = s[40] ^ lo\n const t1shi20 = s[41] ^ hi\n lo = lo0 ^ (lo2 << 1 | hi2 >>> 31)\n hi = hi0 ^ (hi2 << 1 | lo2 >>> 31)\n const t1slo1 = s[2] ^ lo\n const t1shi1 = s[3] ^ hi\n const t1slo6 = s[12] ^ lo\n const t1shi6 = s[13] ^ hi\n const t1slo11 = s[22] ^ lo\n const t1shi11 = s[23] ^ hi\n const t1slo16 = s[32] ^ lo\n const t1shi16 = s[33] ^ hi\n const t1slo21 = s[42] ^ lo\n const t1shi21 = s[43] ^ hi\n lo = lo1 ^ (lo3 << 1 | hi3 >>> 31)\n hi = hi1 ^ (hi3 << 1 | lo3 >>> 31)\n const t1slo2 = s[4] ^ lo\n const t1shi2 = s[5] ^ hi\n const t1slo7 = s[14] ^ lo\n const t1shi7 = s[15] ^ hi\n const t1slo12 = s[24] ^ lo\n const t1shi12 = s[25] ^ hi\n const t1slo17 = s[34] ^ lo\n const t1shi17 = s[35] ^ hi\n const t1slo22 = s[44] ^ lo\n const t1shi22 = s[45] ^ hi\n lo = lo2 ^ (lo4 << 1 | hi4 >>> 31)\n hi = hi2 ^ (hi4 << 1 | lo4 >>> 31)\n const t1slo3 = s[6] ^ lo\n const t1shi3 = s[7] ^ hi\n const t1slo8 = s[16] ^ lo\n const t1shi8 = s[17] ^ hi\n const t1slo13 = s[26] ^ lo\n const t1shi13 = s[27] ^ hi\n const t1slo18 = s[36] ^ lo\n const t1shi18 = s[37] ^ hi\n const t1slo23 = s[46] ^ lo\n const t1shi23 = s[47] ^ hi\n lo = lo3 ^ (lo0 << 1 | hi0 >>> 31)\n hi = hi3 ^ (hi0 << 1 | lo0 >>> 31)\n const t1slo4 = s[8] ^ lo\n const t1shi4 = s[9] ^ hi\n const t1slo9 = s[18] ^ lo\n const t1shi9 = s[19] ^ hi\n const t1slo14 = s[28] ^ lo\n const t1shi14 = s[29] ^ hi\n const t1slo19 = s[38] ^ lo\n const t1shi19 = s[39] ^ hi\n const t1slo24 = s[48] ^ lo\n const t1shi24 = s[49] ^ hi\n\n // rho & pi\n const t2slo0 = t1slo0\n const t2shi0 = t1shi0\n const t2slo16 = (t1shi5 << 4 | t1slo5 >>> 28)\n const t2shi16 = (t1slo5 << 4 | t1shi5 >>> 28)\n const t2slo7 = (t1slo10 << 3 | t1shi10 >>> 29)\n const t2shi7 = (t1shi10 << 3 | t1slo10 >>> 29)\n const t2slo23 = (t1shi15 << 9 | t1slo15 >>> 23)\n const t2shi23 = (t1slo15 << 9 | t1shi15 >>> 23)\n const t2slo14 = (t1slo20 << 18 | t1shi20 >>> 14)\n const t2shi14 = (t1shi20 << 18 | t1slo20 >>> 14)\n const t2slo10 = (t1slo1 << 1 | t1shi1 >>> 31)\n const t2shi10 = (t1shi1 << 1 | t1slo1 >>> 31)\n const t2slo1 = (t1shi6 << 12 | t1slo6 >>> 20)\n const t2shi1 = (t1slo6 << 12 | t1shi6 >>> 20)\n const t2slo17 = (t1slo11 << 10 | t1shi11 >>> 22)\n const t2shi17 = (t1shi11 << 10 | t1slo11 >>> 22)\n const t2slo8 = (t1shi16 << 13 | t1slo16 >>> 19)\n const t2shi8 = (t1slo16 << 13 | t1shi16 >>> 19)\n const t2slo24 = (t1slo21 << 2 | t1shi21 >>> 30)\n const t2shi24 = (t1shi21 << 2 | t1slo21 >>> 30)\n const t2slo20 = (t1shi2 << 30 | t1slo2 >>> 2)\n const t2shi20 = (t1slo2 << 30 | t1shi2 >>> 2)\n const t2slo11 = (t1slo7 << 6 | t1shi7 >>> 26)\n const t2shi11 = (t1shi7 << 6 | t1slo7 >>> 26)\n const t2slo2 = (t1shi12 << 11 | t1slo12 >>> 21)\n const t2shi2 = (t1slo12 << 11 | t1shi12 >>> 21)\n const t2slo18 = (t1slo17 << 15 | t1shi17 >>> 17)\n const t2shi18 = (t1shi17 << 15 | t1slo17 >>> 17)\n const t2slo9 = (t1shi22 << 29 | t1slo22 >>> 3)\n const t2shi9 = (t1slo22 << 29 | t1shi22 >>> 3)\n const t2slo5 = (t1slo3 << 28 | t1shi3 >>> 4)\n const t2shi5 = (t1shi3 << 28 | t1slo3 >>> 4)\n const t2slo21 = (t1shi8 << 23 | t1slo8 >>> 9)\n const t2shi21 = (t1slo8 << 23 | t1shi8 >>> 9)\n const t2slo12 = (t1slo13 << 25 | t1shi13 >>> 7)\n const t2shi12 = (t1shi13 << 25 | t1slo13 >>> 7)\n const t2slo3 = (t1slo18 << 21 | t1shi18 >>> 11)\n const t2shi3 = (t1shi18 << 21 | t1slo18 >>> 11)\n const t2slo19 = (t1shi23 << 24 | t1slo23 >>> 8)\n const t2shi19 = (t1slo23 << 24 | t1shi23 >>> 8)\n const t2slo15 = (t1slo4 << 27 | t1shi4 >>> 5)\n const t2shi15 = (t1shi4 << 27 | t1slo4 >>> 5)\n const t2slo6 = (t1slo9 << 20 | t1shi9 >>> 12)\n const t2shi6 = (t1shi9 << 20 | t1slo9 >>> 12)\n const t2slo22 = (t1shi14 << 7 | t1slo14 >>> 25)\n const t2shi22 = (t1slo14 << 7 | t1shi14 >>> 25)\n const t2slo13 = (t1slo19 << 8 | t1shi19 >>> 24)\n const t2shi13 = (t1shi19 << 8 | t1slo19 >>> 24)\n const t2slo4 = (t1slo24 << 14 | t1shi24 >>> 18)\n const t2shi4 = (t1shi24 << 14 | t1slo24 >>> 18)\n\n // chi\n s[0] = t2slo0 ^ (~t2slo1 & t2slo2)\n s[1] = t2shi0 ^ (~t2shi1 & t2shi2)\n s[10] = t2slo5 ^ (~t2slo6 & t2slo7)\n s[11] = t2shi5 ^ (~t2shi6 & t2shi7)\n s[20] = t2slo10 ^ (~t2slo11 & t2slo12)\n s[21] = t2shi10 ^ (~t2shi11 & t2shi12)\n s[30] = t2slo15 ^ (~t2slo16 & t2slo17)\n s[31] = t2shi15 ^ (~t2shi16 & t2shi17)\n s[40] = t2slo20 ^ (~t2slo21 & t2slo22)\n s[41] = t2shi20 ^ (~t2shi21 & t2shi22)\n s[2] = t2slo1 ^ (~t2slo2 & t2slo3)\n s[3] = t2shi1 ^ (~t2shi2 & t2shi3)\n s[12] = t2slo6 ^ (~t2slo7 & t2slo8)\n s[13] = t2shi6 ^ (~t2shi7 & t2shi8)\n s[22] = t2slo11 ^ (~t2slo12 & t2slo13)\n s[23] = t2shi11 ^ (~t2shi12 & t2shi13)\n s[32] = t2slo16 ^ (~t2slo17 & t2slo18)\n s[33] = t2shi16 ^ (~t2shi17 & t2shi18)\n s[42] = t2slo21 ^ (~t2slo22 & t2slo23)\n s[43] = t2shi21 ^ (~t2shi22 & t2shi23)\n s[4] = t2slo2 ^ (~t2slo3 & t2slo4)\n s[5] = t2shi2 ^ (~t2shi3 & t2shi4)\n s[14] = t2slo7 ^ (~t2slo8 & t2slo9)\n s[15] = t2shi7 ^ (~t2shi8 & t2shi9)\n s[24] = t2slo12 ^ (~t2slo13 & t2slo14)\n s[25] = t2shi12 ^ (~t2shi13 & t2shi14)\n s[34] = t2slo17 ^ (~t2slo18 & t2slo19)\n s[35] = t2shi17 ^ (~t2shi18 & t2shi19)\n s[44] = t2slo22 ^ (~t2slo23 & t2slo24)\n s[45] = t2shi22 ^ (~t2shi23 & t2shi24)\n s[6] = t2slo3 ^ (~t2slo4 & t2slo0)\n s[7] = t2shi3 ^ (~t2shi4 & t2shi0)\n s[16] = t2slo8 ^ (~t2slo9 & t2slo5)\n s[17] = t2shi8 ^ (~t2shi9 & t2shi5)\n s[26] = t2slo13 ^ (~t2slo14 & t2slo10)\n s[27] = t2shi13 ^ (~t2shi14 & t2shi10)\n s[36] = t2slo18 ^ (~t2slo19 & t2slo15)\n s[37] = t2shi18 ^ (~t2shi19 & t2shi15)\n s[46] = t2slo23 ^ (~t2slo24 & t2slo20)\n s[47] = t2shi23 ^ (~t2shi24 & t2shi20)\n s[8] = t2slo4 ^ (~t2slo0 & t2slo1)\n s[9] = t2shi4 ^ (~t2shi0 & t2shi1)\n s[18] = t2slo9 ^ (~t2slo5 & t2slo6)\n s[19] = t2shi9 ^ (~t2shi5 & t2shi6)\n s[28] = t2slo14 ^ (~t2slo10 & t2slo11)\n s[29] = t2shi14 ^ (~t2shi10 & t2shi11)\n s[38] = t2slo19 ^ (~t2slo15 & t2slo16)\n s[39] = t2shi19 ^ (~t2shi15 & t2shi16)\n s[48] = t2slo24 ^ (~t2slo20 & t2slo21)\n s[49] = t2shi24 ^ (~t2shi20 & t2shi21)\n\n // iota\n s[0] ^= P1600_ROUND_CONSTANTS[round * 2]\n s[1] ^= P1600_ROUND_CONSTANTS[round * 2 + 1]\n }\n}\n","const keccakState = require('./keccak-state-unroll')\n\nfunction Keccak () {\n // much faster than `new Array(50)`\n this.state = [\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0\n ]\n\n this.blockSize = null\n this.count = 0\n this.squeezing = false\n}\n\nKeccak.prototype.initialize = function (rate, capacity) {\n for (let i = 0; i < 50; ++i) this.state[i] = 0\n this.blockSize = rate / 8\n this.count = 0\n this.squeezing = false\n}\n\nKeccak.prototype.absorb = function (data) {\n for (let i = 0; i < data.length; ++i) {\n this.state[~~(this.count / 4)] ^= data[i] << (8 * (this.count % 4))\n this.count += 1\n if (this.count === this.blockSize) {\n keccakState.p1600(this.state)\n this.count = 0\n }\n }\n}\n\nKeccak.prototype.absorbLastFewBits = function (bits) {\n this.state[~~(this.count / 4)] ^= bits << (8 * (this.count % 4))\n if ((bits & 0x80) !== 0 && this.count === (this.blockSize - 1)) keccakState.p1600(this.state)\n this.state[~~((this.blockSize - 1) / 4)] ^= 0x80 << (8 * ((this.blockSize - 1) % 4))\n keccakState.p1600(this.state)\n this.count = 0\n this.squeezing = true\n}\n\nKeccak.prototype.squeeze = function (length) {\n if (!this.squeezing) this.absorbLastFewBits(0x01)\n\n const output = Buffer.alloc(length)\n for (let i = 0; i < length; ++i) {\n output[i] = (this.state[~~(this.count / 4)] >>> (8 * (this.count % 4))) & 0xff\n this.count += 1\n if (this.count === this.blockSize) {\n keccakState.p1600(this.state)\n this.count = 0\n }\n }\n\n return output\n}\n\nKeccak.prototype.copy = function (dest) {\n for (let i = 0; i < 50; ++i) dest.state[i] = this.state[i]\n dest.blockSize = this.blockSize\n dest.count = this.count\n dest.squeezing = this.squeezing\n}\n\nmodule.exports = Keccak\n","'use strict';\n\nconst processFn = (fn, opts) => function () {\n\tconst P = opts.promiseModule;\n\tconst args = new Array(arguments.length);\n\n\tfor (let i = 0; i < arguments.length; i++) {\n\t\targs[i] = arguments[i];\n\t}\n\n\treturn new P((resolve, reject) => {\n\t\tif (opts.errorFirst) {\n\t\t\targs.push(function (err, result) {\n\t\t\t\tif (opts.multiArgs) {\n\t\t\t\t\tconst results = new Array(arguments.length - 1);\n\n\t\t\t\t\tfor (let i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tresults[i - 1] = arguments[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tresults.unshift(err);\n\t\t\t\t\t\treject(results);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(results);\n\t\t\t\t\t}\n\t\t\t\t} else if (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\targs.push(function (result) {\n\t\t\t\tif (opts.multiArgs) {\n\t\t\t\t\tconst results = new Array(arguments.length - 1);\n\n\t\t\t\t\tfor (let i = 0; i < arguments.length; i++) {\n\t\t\t\t\t\tresults[i] = arguments[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(results);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfn.apply(this, args);\n\t});\n};\n\nmodule.exports = (obj, opts) => {\n\topts = Object.assign({\n\t\texclude: [/.+(Sync|Stream)$/],\n\t\terrorFirst: true,\n\t\tpromiseModule: Promise\n\t}, opts);\n\n\tconst filter = key => {\n\t\tconst match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key);\n\t\treturn opts.include ? opts.include.some(match) : !opts.exclude.some(match);\n\t};\n\n\tlet ret;\n\tif (typeof obj === 'function') {\n\t\tret = function () {\n\t\t\tif (opts.excludeMain) {\n\t\t\t\treturn obj.apply(this, arguments);\n\t\t\t}\n\n\t\t\treturn processFn(obj, opts).apply(this, arguments);\n\t\t};\n\t} else {\n\t\tret = Object.create(Object.getPrototypeOf(obj));\n\t}\n\n\tfor (const key in obj) { // eslint-disable-line guard-for-in\n\t\tconst x = obj[key];\n\t\tret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x;\n\t}\n\n\treturn ret;\n};\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tc,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (\n\t\t\tvalue != null &&\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\n\t\t) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix